This commit is contained in:
wakadakawaka 2025-04-15 01:29:48 +05:00
parent c04fad90f8
commit d697d117b0

View File

@ -0,0 +1,40 @@
---
title: Программное формирование отчета на СКД
---
В модуле объекта в общем виде прописывается:
```bsl
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
// 0. Отказ от стандартной обработки
СтандартнаяОбработка = Ложь;
//1. Получение схемы компоновки данных
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
//2. Получение настроек компоновки данных
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
//3. Формирование макета компоновки данных на основании схемы и настроек
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
//4. Выполнение компоновки данных
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
//4.1. Добавление внешнего набора данных. Условно, есть ТЗ "ТЗДанные" с данными, которую необходимо использовать в СКД
ТЗДанные = Новый ТаблицаЗначений();
ВнешниеНаборыДанных = Новый Структура;
//Первым аргуменом передается имя объекта, содержащего данные в СКД. Поля и типы полей должны совпадать в источнике "ТЗДанные" и приемнике "ВнешнийНаборДанных1"
ВнешниеНаборыДанных.Вставить("ВнешнийНаборДанных1", ТЗДанные);
ПроцессорКомпоновкиДанных.инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);
//5. Вывод результата компоновки данных в табличный документ
ДокументРезультат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
```