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