Имя: Пароль:
1C
1С v8
Передать Таблицу значений как временную таблицу в СКД
,
0 daviels
 
13.11.24
16:09
Добрый день.
Появилась возможность, используя МенеджерВременныхТаблиц, подготовить таблицу значений и передать ее далее для обработки в СКД. 6-й параметр в методе ПроцессорКомпоновкиДанных.Инициализировать  

Пробую воспользоваться данным методом. Не получается!

в процедуре ПриКомпоновкеРезультата() пишу

МВТ = Новый МенеджерВременныхТаблиц;

Запрос_2 = Новый Запрос;
Запрос_2.МенеджерВременныхТаблиц = МВТ;
Запрос_2.Текст = "ВЫБРАТЬ ОбщаяТаблицаМаршрутов.* ПОМЕСТИТЬ ВТ_ОбщаяТаблицаМаршрутов ИЗ &ОбщаяТаблицаМаршрутов КАК ОбщаяТаблицаМаршрутов";
Запрос_2.УстановитьПараметр("ОбщаяТаблицаМаршрутов", ОбщаяТаблицаМаршрутов);
Запрос_2.Выполнить();

//ОбщаяТаблицаМаршрутов - Таблица значений заполненная. Опустил код которым она заполняется

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки,,,Ложь);

ВнешниеНаборыДанных = Новый Структура;


ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,ВнешниеНаборыДанных,ДанныеРасшифровки,,,МВТ);


НО вот далее - обращаясь к временной таблице ВТ_ОбщаяТаблицаМаршрутов в запросе в СКД:
"ВЫБРАТЬ * ИЗ ВТ_ОбщаяТаблицаМаршрутов КАК ВТ_ОбщаяТаблицаМаршрутов"
Получаю ошибку :
1. Если просто добавлять в код такой текст , то на этапе сохранения запроса получаем ошибку что такой таблицы нет.
2. Если принудительно создаю такую таблицу , тогда текст запроса сохранить могу, НО при выполнении запроса получаю ошибку - Таблица не найдена

Подскажите пожалуйста что я делаю не так?
1 Garykom
 
гуру
13.11.24
16:11
и чего ты хочешь от пустой структуры ВнешниеНаборыДанных?
2 maxab72
 
13.11.24
16:11
А если передавать как параметр а не через менеджер временных таблиц?
3 daviels
 
13.11.24
16:12
Хотел испробовать новый метод... Пишут что можно так делать...
4 maxab72
 
13.11.24
16:15
(3) вот пусть напишут КАК это делать. Штаны ведь тоже можно, в принципе, через голову надевать...
5 СвинТуз
 
13.11.24
16:24
6 СвинТуз
 
13.11.24
16:25
Лень = мотиватор

в данном случае видимо зло. Звезды за борт.
7 d4rkmesa
 
13.11.24
16:35
(3) ВнешниеНаборыДанных не нужны, если используется только МВТ. В СКД Набор данных - Запрос (а не объект), в запросе просто используете ВТ как обычно в запросе: "ВЫБРАТЬ * ИЗ ВТ_ОбщаяТаблицаМаршрутов".
8 daviels
 
13.11.24
16:42
(7) Прочитал статью... делаю именно так... ВнешнийНаборДанных - теперь не передаю третьим параметром.
Но таблица не найдена (((
9 daviels
 
13.11.24
16:53
(7) Похоже получилось...
Сделал через Выразить - указал типы... во всяком случае ошибка о том что таблица не найдена - ушла.
Спасибо! Осталось добить отчет... кажется заработало )))
10 d4rkmesa
 
13.11.24
17:10
(9) Ясно, ну tormozit писал про типы в комменте:  https://forum.infostart.ru/forum9/topic240219/#message2435148

У меня, как ни странно, без этого работало, но этого видимо потому, что там в ВТ выбирались данные без составных типов или из ТЗ с типизированными колонками.
11 СвинТуз
 
13.11.24
17:14
(9)
Ну сказали же звезды = зло