Создаем форму отчета
Вместо стандартной кнопки "Сформировать" делаем свою
В модуле формы добавляем процедуру
Процедура ДействияФормыСформироватьОтчет(Кнопка)
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных";);// твой макет СКД
Настройки = Этаформа.КомпоновщикНастроек.Настройки;
ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
ДатаОкончания=МакетКомпоновки.ЗначенияПараметров.ПериодОтчета.Значение.ДатаОкончания;//МакетКомпоновки.ЗначенияПараметров.КонецПериода.Значение;
ТабЗн1=ПолучитьТабЗнДляОтчета();
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТабЗн",ТабЗн1); // Вот здесь и заполняется таблица значений
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки); // а вот здесь передается в скд
Результат = ЭлементыФормы.Результат;
Результат.Очистить();
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
КонецПроцедуры
Для внешней таблицы ТабЗн1
В схеме компоновки данных добавляем набор данных объект и описываем его поля,
указываем имя объекта ТабЗн1
Программно заполняем ТабЗн1 с помощью процедуры ПолучитьТабЗнДляОтчета()