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