1с в отчете дублируются строки
Когда в отчете данные группируются по иерархии и для элементов-родителей есть детальные записи, то по таким элементам выводится две строки, одна по иерархии другая по элементу. Видео демонстрирует как убрать такие строки.
(0) Спасибо за видео. Для себя открыл две новые возможности СКД. Подскажите пожалуйста, что не так в первом случаи формировании отчета? Желательно картинку справочника партнера.
В первом случае элемент у которого есть подчиненные элементы, выводится двумя строками: 1-как группа, 2-как элемент.
Пользователи называют такое поведение "строки задвоились".
На примере партнера "Мир продуктов-сеть магазинов":
Структура в справочнике:
1 Мир продуктов-сеть магазинов
1.1 Мир продуктов (Пражская)
1.2 Мир продуктов (ТК Звездочка)
Структура в отчете (вариант 1- без фильтра):
1 Мир продуктов-сеть магазинов
1.1 Мир продуктов-сеть магазинов
1.2 Мир продуктов (Пражская)
1.3 Мир продуктов (ТК Звездочка)
Структура в отчете (вариант 2- с фильтром):
1 Мир продуктов-сеть магазинов
1.1 Мир продуктов (Пражская)
1.2 Мир продуктов (ТК Звездочка)
У меня почему-то для одного элемента не правильно определяет родителя:
Вот иерархия элементов:
Вот что выводит:
Код пользовательского поля:
Боль, связанная с тем, что почти каждое действие, которое надо сделать в обозревателе, будет казаться костылем по сравнению с тем, как это делается в 1Ске. Буду показывать на примере сортировки строк в табличке.
В ролике описывается текстовый правщик "Кодемир". Правщик сделан в формате ActiveX отображалки для работы в толстом клиенте в конфигурации "Ленстудия". Конфигурация "Ленстудия" - это наш ответ конфигуратору, и в следующих экрозаписях мы постараемся о Ленстудии рассказать более подробно. Правщик Кодемир зрительно выглядит очень похожим на текстовый правщик в конфигураторе. Это сделано осознанно для уменьшения нагрузки при одновременной работе с конфигуратором и Ленстудией. В экрозаписи обзорно показан основной функционал Кодемира.
Создание веб-морд для 1Ски это долго, сложно и тяжело. Создав достаточно большое количество проектов, стало понятно, что мы что-то делаем не так и надо менять подходы к построению веб-морд для 1Ски. Данный проект это попытка сделать некое решение для упрощения сложной работы веб-программиста и 1Сника одновременно. Попытка разработать некое универсальное решение, которое будет сделано по всем знакомым принципам быстрой разработки.
При обращении в запросе два или более раз к одной и той же таблице (поле), строки могут дублироваться:
Рассмотрим одну из причин, почему одинаковые данные могут выводиться несколько раз.
1. В данном примере, отчет в СКД построен на Временных таблицах. В наборе данных они добавлены на вкладке "Пакет запросов":
2. Временная таблица выглядит как Набор данных. Отличие в том, что не нужно создавать отдельно Набор данных на каждый документ, регистр, справочник и далее их связывать через "Связи наборов данных", а можно в одном Наборе данных создать временные таблицы и связать их во внутреннем результирующем запросе Выборки данных:
3. Временная таблица или Выборка данных указываются на вкладке "Дополнительно". Справа в конструкторе видны созданные вкладки с Временными таблицами и Выборкой данных:
4. На вкладке "Таблицы и поля" данные во Временные таблицы добавляются как в обычном Наборе данных:
5. После создания и добавления данных во все Временные таблицы, создается последний запрос Выборки данных в котором выбираются ранее созданные Временные таблицы:
6. Теперь, находясь в этой Выборке данных, необходимо соединить между собой поля из Временных таблиц, чтобы выстроилась цепочка данных для результата, который мы увидим в отчете. Иначе данные не будут связаны между собой и отчет либо не будет работать, либо будут выводиться пустые поля (именно эти поля выведенные здесь из Временных таблиц в 3-ю колонку "Поля" будут добавлены в Настройках на вкладке "Выбранные поля" (пункт №7)). Соединяются поля на вкладке "Связи":
7. Именно здесь, в Связях данных кроется ответ на вопрос почему задваиваются строки в отчете. Причина оказалась в том, что если мы выводим в отчете информацию о номенклатуре из разных таблиц:
Тогда нужно эти поля из таблиц (документов) с номенклатурой соединить между собой, иначе данные будут задваиваться. Добавляем еще одну Связь с номенклатурой:
8. Галочки в колонках: "В" означает все, "П" означает произвольную связь. Очень важно бывает их проставить, если не получили нужного результата. Так же если данные все равно задваиваются, то стоит менять местами "Таблица 1" с "Таблица 2" - это тоже может повлиять на результат. После добавления этой связи, данные в отчете перестали задваиваться:
Набор данных в отчете СКД добавлен из регистра сведений. В регистре имеются повторяющиеся записи. Необходимо вывести данные в отчет, без дублирования строк.
В моем примере отчета, дублирующиеся строки выглядят так:
То, что выделено красным цветом, нужно будет удалить.
Сам регистр сведений откуда берутся данные в отчет:
01 Перед тем как начать удалять дублирующиеся строки, мне нужно добавить отбор по колонке "Уровень вложенности", чтобы понять какие дублирующиеся строки нужно удалить, а какие оставить. Для одного вида номенклатур уровень вложенности = 1, для других = 0. Я буду брать первую запись из регистра, а последующие (дублирующиеся) удалять.
Добавляем Вычисляемое поле:
02 Теперь добавляем еще одно Вычисляемое поле, в котором будем находить дублирующиеся строки, а конкретно одно поле "МатериалыИУслуги.Номенклатура", которое будет сравниваться с предыдущим:
03 Для последнего добавленного вычисляемого поля "ПредыдущийМатериал" установим отбор в Детальных записях отчета. Отбор по полю с условием и "После группировки или для иерархии":
04 Оставаясь в настройках этой Детальной записи, переходим на вкладку "Другие настройки" и устанавливаем "Выводить отбор" - "Не выводить":
05 На этом готово: В зависимости от выбранной номенклатуры, срабатывает отбор по уровню вложенности 1 или 0 и дублирующиеся строки из регистра, содержащие в себе одинаковые поля, не выводятся:
Добрый день! Помогите найти ошибку в отчете, при формировании дублируются строки отчета. Вот код процедуры с кодом запроса, заранее очень благодарен!
Процедура ЗаказыНажатие(Элемент)
//СформироватьАдрес(Запрос.Заказ.АГород,Запрос.Заказ.АУлица,Запрос.Заказ.АДом,Запрос.Заказ.АКв)
//Перем Запрос, ТекстЗапроса, Таб;
////Создание объекта типа Запрос
//Запрос = СоздатьОбъект("Запрос");
//ТекстЗапроса =
//"// //|Период с ВыбНачПериода по ВыбКонПериода;
//|Заказ = Регистр.Розница.Заказ;
//|ТекДок = Регистр.Розница.ТекущийДокумент;
//|ЗакДок = Регистр.Розница.Заказ.ДатаДок;
//|ДатаДок = Регистр.Розница.ТекущийДокумент.ДатаДок;
//|Клиент = Регистр.Розница.Клиент;
//|Реклама = Регистр.Розница.Реклама;
//|Замерщик = Регистр.Розница.Замерщик;
//|Сумма = Регистр.Розница.Сумма;
//|КэшФло = Регистр.Розница.КэшФло;
//|Площадь = Регистр.Розница.Площадь;
//|Периметр = Регистр.Розница.Периметр;
//|Функция СуммаКонОст = КонОст(Сумма);
//|Функция КэшФлоНачОст = НачОст(КэшФло);
//|Функция КэшФлоПриход = Приход(КэшФло);
//|Функция КэшФлоРасход = Расход(КэшФло);
//|Функция КэшФлоКонОст = КонОст(КэшФло);
//|Функция ПлощадьРасход = Расход(Площадь);
//|Функция ПериметрРасход = Расход(Периметр);
//|Группировка Заказ упорядочить по Заказ.ДатаДок;
//|Группировка ТекДок упорядочить по ТекДок.ДатаДок;
//|Условие(Заказ в ВыбЗаказ);
//|Условие(Клиент в ВыбКлиент);
//|Условие(Реклама в ВыбРеклама);
//|Условие(Замерщик в ВыбЗамерщик);
//|";//>>ЗАПРОС
Запрос=Новый Запрос;
Запрос.Текст="ВЫБРАТЬ РАЗЛИЧНЫЕ
| РозницаОстаткиИОбороты.Заказ КАК Заказ
|ПОМЕСТИТЬ ДокиДвиж
|ИЗ
| РегистрНакопления.Розница.ОстаткиИОбороты(
| &ВыбНачПериода,
| &ВыбКонПериода,
| Регистратор,
| Движения,
| (Заказ В (&ВыбЗаказ)
| ИЛИ &ВыбЗаказ = ЗНАЧЕНИЕ(Документ.Заказ.ПустаяСсылка))
| И (Клиент В (&ВыбКлиент)
| ИЛИ &ВыбКлиент = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка))
| И (Реклама В (&ВыбРеклама)
| ИЛИ &ВыбРеклама = ЗНАЧЕНИЕ(Справочник.Реклама.ПустаяСсылка))
| И (Замерщик В (&ВыбЗамерщик)
| ИЛИ &ВыбЗамерщик = ЗНАЧЕНИЕ(Справочник.Контрагент.ПустаяСсылка))) КАК РозницаОстаткиИОбороты
|ГДЕ
| (&флпер = 1
| И (РозницаОстаткиИОбороты.Заказ.Дата МЕЖДУ &ВыбНачПериода И &ВыбКонПериода)
| ИЛИ НЕ &флпер = 1)
| И (&флпер = 2
| И (РозницаОстаткиИОбороты.КэшФлоРасход <> 0
| ИЛИ РозницаОстаткиИОбороты.КэшФлоПриход <> 0)
| ИЛИ НЕ &флпер = 2)
|
|СГРУППИРОВАТЬ ПО
| РозницаОстаткиИОбороты.Заказ
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗЛИЧНЫЕ
| РозницаОстаткиИОбороты.Заказ.Дата КАК ЗаказДата,
| РозницаОстаткиИОбороты.Заказ КАК Заказ,
| РозницаОстаткиИОбороты.Регистратор,
| РозницаОстаткиИОбороты.Регистратор.Дата КАК ДокДата,
| РозницаОстаткиИОбороты.Заказ.Клиент КАК Клиент,
| РозницаОстаткиИОбороты.Заказ.Клиент.Телефон1 КАК Телефон1,
| """" + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Агород <> """"
| ТОГДА РозницаОстаткиИОбороты.Заказ.Агород.Наименование
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Аулица <> """"
| ТОГДА "","" + РозницаОстаткиИОбороты.Заказ.Аулица
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Адом <> """"
| ТОГДА "",д."" + РозницаОстаткиИОбороты.Заказ.Адом
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Акв <> """"
| ТОГДА "",кв. "" + РозницаОстаткиИОбороты.Заказ.Акв
| ИНАЧЕ """"
| КОНЕЦ КАК КлиентАдрес,
| ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Регистратор ССЫЛКА Документ.Монтаж
| ТОГДА РозницаОстаткиИОбороты.Регистратор
| ИНАЧЕ """"
| КОНЕЦ КАК ТДМ,
| ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Регистратор ССЫЛКА Документ.ДилЗаказ
| ТОГДА РозницаОстаткиИОбороты.Регистратор
| ИНАЧЕ """"
| КОНЕЦ КАК ТДДЗ,
| ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Регистратор ССЫЛКА Документ.Монтаж
| ТОГДА ""М""
| ИНАЧЕ """"
| КОНЕЦ КАК флМонтаж,
| ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Регистратор ССЫЛКА Документ.ДилЗаказ
| ТОГДА ""ДЗ""
| ИНАЧЕ """"
| КОНЕЦ КАК флДилЗаказ,
| ВЫБОР
| КОГДА НЕ НарядЗаказа.Монтажник1 ЕСТЬ NULL
| ТОГДА """" + НарядЗаказа.Монтажник1.Наименование + ""; "" + НарядЗаказа.Монтажник2.Наименование
| ИНАЧЕ """"
| КОНЕЦ КАК Наряд,
| МАКСИМУМ(НарядЗаказа.Дата) КАК НарядДата,
| РозницаОстаткиИОбороты.КэшФлоНачальныйОстаток КАК КэшФлоНачОст,
| РозницаОстаткиИОбороты.КэшФлоПриход КАК КэшФлоПриход,
| РозницаОстаткиИОбороты.КэшФлоРасход КАК КэшФлоРасход,
| РозницаОстаткиИОбороты.КэшФлоКонечныйОстаток КАК КэшФлоКонОст,
| РозницаОстаткиИОбороты.ПлощадьРасход КАК ПлощадьРасход,
| РозницаОстаткиИОбороты.ПериметрРасход КАК ПериметрРасход,
| РозницаОстаткиИОбороты.СуммаКонечныйОстаток КАК СуммаКонОст
|ИЗ
| РегистрНакопления.Розница.ОстаткиИОбороты(
| &ВыбНачПериода,
| &ВыбКонПериода,
| Регистратор,
| ДвиженияИГраницыПериода,
| (Заказ В (&ВыбЗаказ)
| ИЛИ &ВыбЗаказ = ЗНАЧЕНИЕ(Документ.Заказ.ПустаяСсылка))
| И (Клиент В (&ВыбКлиент)
| ИЛИ &ВыбКлиент = ЗНАЧЕНИЕ(Справочник.Клиенты.ПустаяСсылка))
| И (Реклама В (&ВыбРеклама)
| ИЛИ &ВыбРеклама = ЗНАЧЕНИЕ(Справочник.Реклама.ПустаяСсылка))
| И (Замерщик В (&ВыбЗамерщик)
| ИЛИ &ВыбЗамерщик = ЗНАЧЕНИЕ(Справочник.Контрагент.ПустаяСсылка))) КАК РозницаОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.НарядЗаказа КАК НарядЗаказа
| ПО РозницаОстаткиИОбороты.Заказ = НарядЗаказа.ДокОснование
|
|ГДЕ
| (&флпер = 1
| И (РозницаОстаткиИОбороты.Заказ.Дата МЕЖДУ &ВыбНачПериода И &ВыбКонПериода)
| ИЛИ НЕ &флпер = 1)
| И (&флпер = 2
| И (РозницаОстаткиИОбороты.КэшФлоРасход <> 0
| ИЛИ РозницаОстаткиИОбороты.КэшФлоПриход <> 0)
| ИЛИ НЕ &флпер = 2)
| И (РозницаОстаткиИОбороты.Регистратор <> НЕОПРЕДЕЛЕНО
| ИЛИ РозницаОстаткиИОбороты.Заказ <> ЗНАЧЕНИЕ(Документ.Заказ.ПустаяСсылка)
| И НЕ РозницаОстаткиИОбороты.Заказ В
| (ВЫБРАТЬ
| Доки.Заказ
| ИЗ
| ДокиДвиж КАК Доки))
|
|СГРУППИРОВАТЬ ПО
| РозницаОстаткиИОбороты.Регистратор,
| РозницаОстаткиИОбороты.Заказ,
| ВЫБОР
| КОГДА НЕ НарядЗаказа.Монтажник1 ЕСТЬ NULL
| ТОГДА """" + НарядЗаказа.Монтажник1.Наименование + ""; "" + НарядЗаказа.Монтажник2.Наименование
| ИНАЧЕ """"
| КОНЕЦ,
| РозницаОстаткиИОбороты.Заказ.Дата,
| РозницаОстаткиИОбороты.Регистратор.Дата,
| РозницаОстаткиИОбороты.Заказ.Клиент,
| РозницаОстаткиИОбороты.Заказ.Клиент.Телефон1,
| """" + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Агород <> """"
| ТОГДА РозницаОстаткиИОбороты.Заказ.Агород.Наименование
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Аулица <> """"
| ТОГДА "","" + РозницаОстаткиИОбороты.Заказ.Аулица
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Адом <> """"
| ТОГДА "",д."" + РозницаОстаткиИОбороты.Заказ.Адом
| ИНАЧЕ """"
| КОНЕЦ + ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Заказ.Акв <> """"
| ТОГДА "",кв. "" + РозницаОстаткиИОбороты.Заказ.Акв
| ИНАЧЕ """"
| КОНЕЦ,
| ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Регистратор ССЫЛКА Документ.Монтаж
| ТОГДА ""М""
| ИНАЧЕ """"
| КОНЕЦ,
| ВЫБОР
| КОГДА РозницаОстаткиИОбороты.Регистратор ССЫЛКА Документ.ДилЗаказ
| ТОГДА ""ДЗ""
| ИНАЧЕ """"
| КОНЕЦ,
| РозницаОстаткиИОбороты.КэшФлоНачальныйОстаток,
| РозницаОстаткиИОбороты.КэшФлоПриход,
| РозницаОстаткиИОбороты.КэшФлоРасход,
| РозницаОстаткиИОбороты.КэшФлоКонечныйОстаток,
| РозницаОстаткиИОбороты.ПлощадьРасход,
| РозницаОстаткиИОбороты.ПериметрРасход,
| РозницаОстаткиИОбороты.СуммаКонечныйОстаток
|
|УПОРЯДОЧИТЬ ПО
| ЗаказДата,
| ДокДата";
Запрос.УстановитьПараметр("флпер",флпер);
Запрос.УстановитьПараметр("флУсл",флУсл);
Запрос.УстановитьПараметр("ВыбНачПериода",ВыбНачПериода);
Запрос.УстановитьПараметр("ВыбКонПериода",ВыбКонПериода);
Запрос.УстановитьПараметр("ВыбЗаказ",ВыбЗаказ);
Запрос.УстановитьПараметр("ВыбКлиент",ВыбКлиент);
Запрос.УстановитьПараметр("ВыбРеклама",ВыбРеклама);
Запрос.УстановитьПараметр("ВыбЗамерщик",ВыбЗамерщик);
//Если флпер=1 тогда
// ТекстЗапроса =ТекстЗапроса +"Условие((ЗакДок>=ВыбНачПериода)и(ЗакДок <=ВыбКонПериода));";
//КонецЕсли;
//// Если ошибка в запросе, то выход из процедуры
//Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
// Возврат;
//КонецЕсли;
Рез=Запрос.Выполнить().Выбрать();
//СуммаКонОст = 0;
//КэшФлоНачОст = 0;
//КэшФлоПриход = 0;
//КэшФлоРасход = 0;
//КэшФлоКонОст = 0;
//ПлощадьРасход = 0;
//ПериметрРасход = 0;
СтрИтогов=Новый Структура("СуммаКонОст,КэшФлоНачОст,КэшФлоПриход,КэшФлоРасход,КэшФлоКонОст,ПлощадьРасход,ПериметрРасход",0,0,0,0,0,0,0);
//// Подготовка к заполнению выходных форм данными запроса
//Таб = СоздатьОбъект("Таблица");
Таб=Новый ТабличныйДокумент;
//Таб.ИсходнаяТаблица("Заказы");
Макет=ПолучитьМакет("Заказы");
ОбластьЗаголовок=Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаказ=Макет.ПолучитьОбласть("Заказ");
ОбластьИтого=Макет.ПолучитьОбласть("Итого");
//// Заполнение полей "Заголовок"
//Таб.ВывестиСекцию("Заголовок");
Таб.Вывести(ОбластьЗаголовок);
//Состояние("Заполнение выходной таблицы. ");
//Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
ии=0;
//док=создатьобъект("Документ");
//Пока Запрос.Группировка(1) = 1 Цикл
Пока Рез.Следующий() Цикл
// ТДМ="";
// ТДДЗ="";
// // Заполнение полей Заказ
Если ((Рез.СуммаКонОст=0 и флусл=1) или (Рез.СуммаКонОст<>0 и флусл=2) или флусл=3)
//и ((флпер=2 и (Запрос.КэшФлоРасход<>0 или Запрос.КэшФлоПриход<>0)) или флпер<>2)
Тогда
ии=ии+1;
// СуммаКонОст = СуммаКонОст+Запрос.СуммаКонОст;
// КэшФлоНачОст =КэшФлоНачОст+Запрос.КэшФлоНачОст;
// КэшФлоПриход =КэшФлоПриход+Запрос.КэшФлоПриход;
// КэшФлоРасход =КэшФлоРасход+Запрос.КэшФлоРасход;
// КэшФлоКонОст =КэшФлоКонОст+Запрос.КэшФлоКонОст;
// ПлощадьРасход =ПлощадьРасход+Запрос.ПлощадьРасход;
// ПериметрРасход =ПериметрРасход+Запрос.ПериметрРасход;
// СуммаКонОст = СуммаКонОст+Запрос.СуммаКонОст;
СтрИтогов.КэшФлоНачОст =СтрИтогов.КэшФлоНачОст+Рез.КэшФлоНачОст;
СтрИтогов.КэшФлоПриход =СтрИтогов.КэшФлоПриход+Рез.КэшФлоПриход;
СтрИтогов.КэшФлоРасход =СтрИтогов.КэшФлоРасход+Рез.КэшФлоРасход;
СтрИтогов.КэшФлоКонОст =СтрИтогов.КэшФлоКонОст+Рез.КэшФлоКонОст;
СтрИтогов.ПлощадьРасход =СтрИтогов.ПлощадьРасход+Рез.ПлощадьРасход;
СтрИтогов.ПериметрРасход =СтрИтогов.ПериметрРасход+Рез.ПериметрРасход;
// флМонтаж="";
// флДилЗаказ="";
// Наряд="";
// док.ВыбратьПодчиненныеДокументы(Запрос.Заказ.ДатаДок,,Запрос.Заказ);
// Пока док.ПолучитьДокумент()=1 цикл
// если док.Вид()="НарядЗаказа" тогда
// Наряд=""+док.ДатаДок+" - ("+док.Монтажник1+"; "+док.Монтажник2+")";
// конецесли;
//
// конеццикла;
// Пока Запрос.Группировка(2) = 1 Цикл
// Если СокрЛП(Запрос.ТекДок.Вид())="Монтаж" Тогда флМонтаж="М";ТДМ=Запрос.ТекДок; КонецЕсли;
// Если СокрЛП(Запрос.ТекДок.Вид())="ДилЗаказ" Тогда флДилЗаказ="ДЗ";ТДДЗ=Запрос.ТекДок; КонецЕсли;
// КонецЦикла;
// Таб.ВывестиСекцию("Заказ");
ОбластьЗаказ.Параметры.Заполнить(Рез);
ОбластьЗаказ.Параметры.ии=ии;
ОбластьЗаказ.Параметры.Наряд=?(ЗначениеЗаполнено(Рез.Наряд),""+Формат(Рез.НарядДата,"ДЛФ=Д")+"- ("+Рез.Наряд+")","");
Таб.Вывести(ОбластьЗаказ);
КонецЕсли;
КонецЦикла;
//// Заполнение полей "Итого"
//Таб.ВывестиСекцию("Итого");
ОбластьИтого.Параметры.Заполнить(СтрИтогов);
Таб.Вывести(ОбластьИтого);
//// Вывод заполненной формы
//Таб.ТолькоПросмотр(1);
Таб.ТолькоПросмотр=Истина;
//Таб.Показать("Заказы", "");
Таб.Показать("Заказы");
КонецПроцедуры
Простая настройка вызывается через кнопку Настройки, в отчете можно установить отборы, например, подразделение, должность, сотрудник. В каждом отчете они могут быть разные.
РАСШИРЕННАЯ НАСТРОЙКА ОТЧЕТОВ
Расширенную настройку отчетов можно включить через кнопку Настройки - Вид - Расширенный.
Поле «Отборы». Расширенная настройка отборов позволяет добавлять/удалять отборы, редактировать существующие.
Представлена в виде таблицы со следующими полями:
- Поле – поле, по которому производится отбор.
- Условие – вариант отбора, возможные значения:
- Равно – отбор только по выбранному значению поля;
- Не равно – отбор по всем значениям поля, исключая выбранное;
- В списке – отбор по списку значений поля;
- Не в списке – отбор по всем значениям поля, исключая выбранный список;
- В группе – отбор по всем значениям поля, входящим в выбранную группу (если выбран элемент, аналогично условию Равно);
- Не в группе – отбор по всем значениям поля, не входящим в выбранную группу (если выбран элемент, аналогично условию Не равно);
- В группе из списка - отбор по всем значениям поля, входящим в группы из выбранного списка (если выбраны только элементы, аналогично условию В списке);
- Не в группе из списка - отбор по всем значениям поля, не входящим в группы из выбранного списка (если выбраны только элементы, аналогично условию Не в списке);
- Заполнено – отбор по всем непустым значениям поля;
- Не заполнено – отбор по всем пустым значениям поля;
- Значение – значение отбора (элемент, группа или список).
- «Звездочка» - расположение отбора, возможные значения:
- В шапке отчета – отбор будет отображаться на форме отчета в быстрых отборах;
- Только флажок в шапке отчета - отбор будет отображаться на форме отчета в быстрых отборах, но без возможности выбора значения, можно будет выбрать только его активность;
- В настройках отчета – отбор будет отображаться в настройках отчета (даже в простом режиме);
- Только флажок в настройках отчета - отбор будет отображаться в настройках отчета (даже в простом режиме), но без возможности выбора значения, можно будет выбрать только его активность;
- Не показывать – отбор будет отображаться только в расширенном режиме настроек.
- Заголовок – название отбора в панели быстрых отборов и в простом режиме настроек.
- Кроме того, в подменю Еще есть пункт «Сгруппировать отборы». Он позволяет объединять отдельные отборы по условиям «И» (группа срабатывает, если срабатывают все отборы вместе), «ИЛИ» (группа срабатывает, если срабатывает один из отборов), «НЕ» (обращает действие отборов). Для группировки необходимо выделить несколько нужных отборов и нажать «Сгруппировать отборы». Для отмены группировки необходимо выбрать группу и нажать «Разгруппировать».
Например, чтобы вывести отбор по виду занятости, входим в расширенную настройку – Добавить отбор – В поле Работа выбираем Вид занятости.
Условие = В списке (выбираем вид занятости «Основное место работы» и «Внутреннее совместительство»).
В настройках «Звездочка» выбираем показывать в Шапке отчета.
Заголовок - Занятость сотрудника.
После всех настроек можно устанавливать данный отбор на форме отчета.
Вкладка «Поля и сортировки». Позволяет выводить в отчет необходимые поля из доступных, а также настраивать сортировки колонок отчета. На вкладке находятся 2 таблицы:
Таблица полей – содержит поля, предназначенные для вывода в отчет. Поля, входящие в группировки, указывать не нужно, они всегда попадают в отчет. Необходимо указать требуемые реквизиты, а также, если выбрана группировка «Детальные записи», те поля детальных записей, которые пользователь хочет видеть в отчете. Поля не дублируются, т.е. если пользователь добавил поле в группировку и потом выбрал его на вкладке «Поля», оно выведется только один раз – в группировке.
Если в таблице Полей нет необходимого поля, его можно добавить через соответствующий пункт меню. Например, добавим поле Должность и Подразделение в настройки отчета.
Данные поля можно сгруппировать: удерживаем Shift на клавиатуре, выделяем две позиции (Должность и Подразделение) – Еще – Сгруппировать.
Указываем заголовок и Расположение.
Получаем данные в отчете, сгруппированные по этим полям.
Таблица сортировок – содержит поля, по которым необходимо сортировать результат. Необходимо отметить, что группировка, содержащая одно поле, автоматически сортируется по этому полю. Данная настройка актуальна для группировок по нескольким полям и для детальных записей. В этой же таблице выбирается направление сортировки (по возрастанию или по убыванию).
В таблице сортировок через кнопку Добавить устанавливаем Вид занятости – По возрастанию. Стрелочками Вверх и Вниз можно установить приоритет, в нашем примере в приоритете будет Вид занятости, а потом будет идти сортировка по ФИО.
Вкладка «Оформление». Задание условного оформления полей отчета. Условное оформление позволяет отформатировать любую ячейку отчета. Набор строк для форматирования задается отбором (аналогично отборам отчета), набор колонок задается списком конкретных полей. При добавлении или редактировании элемента условного оформления появляется окно его настроек. В верхней части окна содержится поле «Заголовок», содержащее наименование элемента. Окно содержит следующие вкладки:
- Оформление – задание оформления полей (шрифт, границы, цвета, ширина ячеек, видимость).
- Условие – позволяет задавать строки отчета, к которому применяется оформление. Аналогично отбору отчета с теми же колонками и поведением.
- Оформляемые поля – выбор колонок отчета, к которым будет применяться условное оформление.
- Дополнительно – область использования условного оформления.
Например, настроим выделение сумм меньше 1000,00 руб.
Цвет текста выбираем красный.
На закладке Условие проставляем «сумма меньше 1000,00 руб.».
Получаем отчет в таком виде.
Также можно настраивать отчет в целых числах, установив в оформлении следующие настройки: Формат – Точность = 0.
Получаем отчет в целых числах.
Вкладка «Структура». Формирование структуры отчета: горизонтальные, вертикальные группировки измерений, иерархия.
Работа с группировками позволяет выводить данные отчета иерархически, получать итоги по разрезам аналитики в вертикальном и горизонтальном измерениях. Группировать данные можно несколькими способами:
- Группировка – создание отдельных группировок с необходимой иерархией. Итоги по простым группировкам строятся вертикально.
- Таблица – дает возможность строить группировки в двух направлениях: вертикально и горизонтально. Таблица состоит и строк и колонок, которые, в свою очередь, включают в себя простые группировки. Группировки, входящие в строки, формируют вертикальную иерархию и итоги, в столбцы – горизонтальную. Использование таблиц позволяет формировать сложные сводные таблицы с различной аналитикой.
- Диаграмма – позволяет отображать содержимое отчета графически в виде диаграмм различного вида.
При создании или редактировании новой группировки открывается окно настроек.
Окно состоит из следующих вкладок:
- Состав группировки – выбор полей, по которым группируются итоги.
- Поля и сортировки – настройка выводимых полей и сортировки для данной группировки. Настройка аналогична настройке для отчета в целом. При выборе «Авто» будут использованы настройки, сделанные для отчета.
- Отборы – настройка отборов для данной группировки. Настройка аналогична настройке для отчета в целом.
- Оформление – настройка условного оформления для данной группировки. Настройка аналогична настройке для отчета в целом.
Настроим отчет «Полный свод начислений, удержаний и выплат» не в разрезе начислений, а в разрезе сотрудников только по начисленным суммам. Сначала уберем из отчета суммы Удержаний/Выплат и сальдо. Заходим в Расширенные настройки отчета – Еще – Прочее – Изменить вариант отчета. В блоке Строки снимаем все галочки, кроме той, что указана на картинке. В поле Отбор оставляем только отбор по группе Начислено.
Далее в расширенных настройках ниже уровня Группа добавляем сотрудника, а галочку с поля Вид расчета снимаем.
Сохранение настроек отчета. Любые настройки отчета можно сохранить. Нажимаем на дискету – Сохранить вариант отчета.
При сохранении можно указать, кому будет доступен данный отчет – только автору или всем пользователям, и место - в каком разделе программы будет доступен отчет.
Копирование настроек отчета. Настройки отчета можно скопировать, например, для переноса в другую базу. Сделать это можно через меню Еще – Прочее – Изменить вариант отчета.
Далее нажимаем – Еще – Сохранить настройки или Загрузить настройки.
Чернышова Людмила,
Старший консультант Компании «АНТ-ХИЛЛ»
Тел. (473) 202-20-10
При цитировании статей или заметок ссылка на сайт автора обязательна
Накопились вопросы и нужна помощь?
С удовольствием на них ответим и поможем все настроить! Обращайтесь по тел.
Читайте также: