Шаблонный код для программного формирования отчета на СКД
Управляемые формы; СКД;

Очень часто встречаются ситуации, когда для создания отчета на СКД (система компоновки данных) не обойтись без внедрения в него программного кода. Ниже я привожу шаблон, который отменяет стандартное формирование отчета, и переводит его в режим программного формирования.

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