Пример как поместить Таблицу значений в Запрос 1с.
Для примера возьмём таблицу значений в которую добавлено 2 товара:
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТЗСтр = ТЗ.Добавить();
ТЗСтр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("000000001");
ТЗСтр = ТЗ.Добавить();
ТЗСтр.Номенклатура = Справочники.Номенклатура.НайтиПоКоду("000000002");
Теперь создадим Запрос в который мы установим нашу Таблицу значений параметром:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Товары.Номенклатура КАК Номенклатура
|ПОМЕСТИТЬ ВТ_Номенклатура
|ИЗ
| &Товары КАК Товары
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_Номенклатура.Номенклатура КАК Номенклатура,
| ОстаткиОстатки.КоличествоОстаток КАК КоличествоОстаток
|ИЗ
| ВТ_Номенклатура КАК ВТ_Номенклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Остатки.Остатки КАК ОстаткиОстатки
| ПО ВТ_Номенклатура.Номенклатура = ОстаткиОстатки.Номенклатура";
Запрос.УстановитьПараметр("Товары",ТЗ);
Результат = Запрос.Выполнить().Выгрузить();
Теперь вы можете спокойно работать с данными в запросе, в данном примере получение остатков из Регистра накопления.
ВНИМАНИЕ: Полученные данные из Таблицы значений в Запросе нужно поместить во временную таблицу, и только тогда с ней работать, иначе будет ошибка:
Ошибка при вызове метода контекста (Выполнить): Содержимое объекта данных может быть выбрано только во временную таблицу
2023-07-22