Задача соединить две ТаблицыЗначений в одну левым соединением во внешней обработке.
Стал искать в и-нете, нашел: https://helpf.pro/faq83/view/815.html второй пример.
Стал пробовать:
&НаСервере
Процедура(....)
.....
сТабУслугШ = Новый ТаблицаЗначений;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("сТабУслуг",сТабУслуг);
Запрос.УстановитьПараметр("сТабШ",сТабШ);
МВТ=Новый МенеджерВременныхТаблиц;
Запрос.МенеджерВременныхТаблиц=МВТ;
Запрос.Текст =
"ВЫБРАТЬ
| сТабУслуг.СчетчикУ КАК СчетчикУ,
| сТабУслуг.СтоимостьУ КАК СтоимостьУ,
| сТабУслуг.Фирма КАК Фирма
|ПОМЕСТИТЬ
| сТабУслуг
|ИЗ
| &сТабУслуг КАК сТабУслуг";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| сТабШ.СчетчикШ КАК СчетчикШ,
| сТабШ.СтоимостьШ КАК СтоимостьШ,
| сТабШ.Фирма КАК Фирма
|ПОМЕСТИТЬ
| сТабШ
|ИЗ
| &сТабШ КАК сТабШ";
Запрос.Выполнить();
Запрос.Текст =
"ВЫБРАТЬ
| сТабУслуг.СчетчикУ КАК СчетчикУ,
| сТабУслуг.СтоимостьУ КАК СтоимостьУ,
| сТабУслуг.Фирма КАК Фирма,
| сТабШ.СчетчикШ КАК СчетчикШ,
| сТабШ.СтоимостьШ КАК СтоимостьШ,
|ИЗ
| сТабУслуг КАК сТабУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ сТабШ КАК сТабШ
| ПО сТабУслуг.Фирма = сТабШ.Фирма";
сТабУслугШ = Запрос.Выполнить().Выгрузить();
Показать
При созранении кода ошибок не выдается, а при выполнении ошибка при первом обращении в запросе:
{(2, 5)}: Тип не может быть выбран в запросе
<<?>>сТабУслуг.СчетчикУ КАК СчетчикУ,
Соединяемые ТаблицыЗначений ранее в программе нормально работают, правда тип значения колонок я им не задавал.
Знает ли кто, можно ли в запросах работать с ТЗ или надо в цикле их соединять?
(2)
Т.е. моя ошибка в том, что я не типизировал явно колонки исходных таблиц?
А как типизировать колонки получающейся таблицы результата сТабУслугШ ? Или для результата типизация не нужна?