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