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