Найти тему
Блог 1С программиста

Шаблон отчета СКД с выводом данных в свой макет

При разработке отчета, иногда возникает необходимость, вывести результат в не стандартном виде, который с трудом можно повторить с помощью СКД, при этом сохранить знакомый интерфейс с привычными отборами, настройками, вариантами отчета и др. что дает нам отчет на СКД.

Решить такую задачу можно с помощью вывода результата компоновки в коллекцию значений, а уже ее вывести в необходимый макет.

Образец отчета можно скачать по ссылке.

Описание процедуры "ПриКомпоновкиРезултата()"

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;

// ВЫВОДОМ РЕЗУЛЬТАТА КОМПАНОВКИ В КОЛЛКЕКЦИЮ ЗНАЧЕНИЙ (таблицу значений или дерево значений)

НастройкиОтчета = КомпоновщикНастроек.ПолучитьНастройки();

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных,НастройкиОтчета, , , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;

ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений;

ТаблицаЗначений = Новый ТаблицаЗначений; //Или ДеревоЗначений

ПроцессорВывода.УстановитьОбъект(ТаблицаЗначений);

ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

// ВЫВОД РЕЗУЛЬТАТА В ТАБЛИЧНЫЙ ДОКУМЕНТ

Макет = ПолучитьМакет("МойМакет");

ОбластьШапка = Макет.ПолучитьОбласть("Шапка");

ДокументРезультат.Вывести(ОбластьШапка);

ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");

ДокументРезультат.Вывести(ОбластьШапкаТаблицы);

ОбластьСтрока = Макет.ПолучитьОбласть("Строка");

Для Каждого ТекущаяСтрока Из ТаблицаЗначений Цикл

ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ТекущаяСтрока);

ДокументРезультат.Вывести(ОбластьСтрока);

КонецЦикла;

КонецПроцедуры