Шаблонный код для программного формирования отчета на СКД
Управляемые формы;
СКД;
Очень часто встречаются ситуации, когда для создания отчета на СКД (система компоновки данных) не обойтись без внедрения в него программного кода. Ниже я привожу шаблон, который отменяет стандартное формирование отчета, и переводит его в режим программного формирования.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; НастройкиКомпоновки = КомпоновщикНастроек.ПолучитьНастройки(); КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,НастройкиКомпоновки,ДанныеРасшифровки); ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ,ДанныеРасшифровки); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);
КонецПроцедурыПроцедура ПриКомпоновкеРезультата - это стандартный обработчик общего модуля отчета на СКД. Компоновка результата проходит в несколько этапов - получение настроек компоновщика, формирование макета компоновки, инициализация процессора компоновки и вывод данных в табличный документ (ДокументРезультат). Поэтому, в зависимости от поставленной задачи, добавляем необходимое изменение в необходимые этапы. Для определения программного контекста очень помогает использование отладчика.