Как передать таблицу значений в СКД?

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

	ДокументРезультат.ПоказатьУровеньГруппировокСтрок(1);
КонецПроцедуры
Показать
VoVo; motiask; MyNameNoName; +3 Ответить
2. leosoft 165 18.10.18 23:36 Сейчас в теме
Да, можно. Готовите ТЗ и передаете ее в СКД. В СКД источник будет не запрос, а объект с именем ТЗ, поля ТЗ пропишите вручную. На Инфостарте есть примеры - поищите.
alexovik; VoVo; MyNameNoName; +3 Ответить
4. MyNameNoName 22.10.18 22:29 Сейчас в теме
Большое спасибо, вроде на простейших примерах работает!
5. MyNameNoName 22.10.18 22:37 Сейчас в теме
Завтра еще поразбираюсь, спасибо!!!
7. user1863362 30.11.22 12:36 Сейчас в теме
(6) Думаешь, за 4 года у него так ничего и не получилось?
9. mxm2 1267 30.11.22 13:06 Сейчас в теме
(7)Зри глубже: это информация не только для него, но и для тех кто задается таким же вопросом позже.
TODD22; user616816_Romeo8044; svilsa; ruddanil; Rick148; +5 Ответить
13. user1863362 30.11.22 14:49 Сейчас в теме
(9) Зрю еще глубже: надо оставить больше ссылок на свою разработку, да.
15. mxm2 1267 30.11.22 15:36 Сейчас в теме
(13)пиши - оставляй. Делись знаниями. Кто мешает?
16. tugushev98 07.11.23 12:58 Сейчас в теме
8. ImHunter 315 30.11.22 12:45 Сейчас в теме
(7) Вот так вот, из-за некропостеров, и сняли начисления за комменты...
10. mxm2 1267 30.11.22 13:16 Сейчас в теме
(8) когда ж это было? лет 15 назад... впору некроюзерами называть тех кто это помнит )))
11. ImHunter 315 30.11.22 13:32 Сейчас в теме
(10) Гхм... Уже снимали 15 лет назад? Так-то это свежая новость.
12. mxm2 1267 30.11.22 14:05 Сейчас в теме
(11)Значит из нас только я к некроюзерам отношусь )... и вознаграждение раньше было более ощутимое
14. winapi 60 30.11.22 14:52 Сейчас в теме
Важный момент, если вы обращаетесь к общим модулям например в выражении скд, то при инициализации нужно указать это четвертым параметром, наверное лучше сразу так и делать, ведь заранее не известно что понадобится еще:
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки,ВнешниеНаборыДанных,ДанныеРасшифровки, Истина);
svilsa; user705522_constantin_h; +2 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот