(1) Пример работы с расшифровкой Системы компоновки данных.
Скачать отчет
В отчете есть пример работы с расшифровкой. Для работы этого отчета используется типовой справочник Номенклатура.
При двойном клике по ячейке с Номенклатурой + если ЭтоГруппа = Истина формируется своё меню.
(2) Программное изменение запроса
Скачать отчет
Программная установка запроса по настройкам пользователя. Если флаг "Текущая настройка поиска" снят, то отчет формируется по всем ключевым фразам. Поиск идет по каждому слову из ключевой фразы для поиска. Настройки поиска сохраняются/восстанавливаются (ХранилищеОбщихНастроек).
(3) Оплаченные реализации
Скачать отчет
Выбираем все взаиморасчеты. Раскидываем пришедние деньги по суммам реализаций (как в отчёте Дебиторка). Оставляем только полностью оплаченные рту. Закидываем этот список в СКД для дальшейшей выборки данных.
(4) Программное изменение варианта отчёта
Создаём варианты отчета "Основной" и "Товары". и далее
Если (условие) Тогда
ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(
ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Основной.Настройки);
Иначе
ОтчетОбъект.КомпоновщикНастроек.ЗагрузитьНастройки(
ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек.Товары.Настройки);
КонецЕсли;
(5) Программное формирование отчета с установкой нужного варианта.
Есть отчет на СКД. С двумя вариантами. Используя один из вариантов отчета и установив отбор получаем табличный документ с результатом.
это модуль объекта отчета:
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
ДокументРезультат.Автомасштаб = Истина;
КонецПроцедуры
Функция СформироватьОтчет() Экспорт
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
Настройки = СхемаКомпоновкиДанных.ВариантыНастроек.СверкаЗаТриМесяца.Настройки;
ЭлОтбора = Настройки.Отбор.Элементы.Добавить(тип ("ЭлементОтбораКомпоновкиДанных"));
ЭлОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлОтбора.Использование = Истина;
ЭлОтбора.ЛевоеЗначение = новый ПолеКомпоновкиДанных("Контрагент");
ЭлОтбора.ПравоеЗначение = Справочники.Контрагенты.НайтиПоКоду("А00000248");
для каждого эл из Настройки.ПараметрыДанных.Элементы Цикл
Если эл.параметр = новый ПараметрКомпоновкиДанных("НачалоПериода") Тогда
эл.Значение = Дата("20190501");
ИначеЕсли эл.параметр = новый ПараметрКомпоновкиДанных("КонецПериода") Тогда
эл.Значение = Дата("20190601");
КонецЕсли;
КонецЦикла;
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
ТД = новый ТабличныйДокумент;
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТД);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
возврат ТД;
конецФункции
вызов функции:
отч = Отчеты.ИмяОтчета.Создать();
ТД = отч.СформироватьОтчет();
ТД.Записать("C:\7.pdf", ТипФайлаТабличногоДокумента.PDF);
(6) Итоги по группировкам.
В колонке "Сумма РТУ" нет сумм в детальных записях потому, что они скрыты в настройках по Детальным записям на закладке Настройки. Есть они или нет - неважно.
Значения в группировках формируются формулой Максимум(СуммаРТУ),
А итоговая сумма, состоящая из сумм по этим группировкам, формируется формулой СУММА(ВычислитьВыражениеСГруппировкойМассив("Максимум(СуммаРТУ)","Контрагент"))