Запрос к таблице значений 1С 8.3

Чтобы в 1C 8 поместить таблицу значений в запрос и использовать ее в качестве источника данных нужно:

1. Передать ее в параметр запроса

Пусть у нас есть таблица значений с именем ТЗ и полями: Договор, Количество, Сумма.

Запрос = новый запрос;
Запрос.УстановитьПараметр("ТЗ",ТЗ);

2. В конструкторе запроса задать структуру таблицы

Для этого вызываем конструктор запросов 1С 8, создаем новый запрос и жмем кнопку Создать описание временной таблицы.

Создание временной таблицы в запросе 1с 8

В имени таблицы указываем переданный параметр, в поля заносим имена полей таблицы. Создание структуры временной таблицы:

Создание структуры временной таблицы

Далее на закладке Дополнительно нужно указать, что мы создаем временную таблицу.

Указываем, что создаем временную таблицу

3. Использование созданной временной таблицы в запросе

После того, как мы передали таблицу в запрос, ее можно использовать. Создаем новый пакет запросов на соответствующей закладке, переходим в него и видим, что в таблицах и полях появилась ветка Временные таблицы. Теперь можно делать с созданной таблицей все, что угодно: ставить условия, группировать, соединять с другими таблицами и т.п.

Вот пример простенького запроса с группировкой и условием:

запрос.Текст = "ВЫБРАТЬ
|   ТЗ.Договор,
|   ТЗ.Сумма,
|   ТЗ.Количество
|ПОМЕСТИТЬ Таблица
|ИЗ
|   &ТЗ КАК ТЗ
|;
|
|///////////////////////////////////////////////
|ВЫБРАТЬ
|   Таблица.Договор,
|   СУММА(Таблица.Сумма) КАК Сумма,
|   СУММА(Таблица.Количество) КАК Количество
|ИЗ
|   Таблица КАК Таблица
|ГДЕ
|   Таблица.Сумма <> 0
|
|СГРУППИРОВАТЬ ПО
|   Таблица.Договор";

Следует заметить, что в запрос можно передавать только таблицы значений с типизированными полями.