Как поместить в запрос таблицу значений 1С 8.X ?

table

Очень часто начинающие программисты не знают как поместить полученную таблицу значений в запрос . Начинают сооружать циклы и для каждого перебора выполнять свой запрос, что существенно сокращает время выполнения. А ведь на самом деле все очень просто — достаточно указать таблицу в виде параметра и передать его в запрос. Важно заметить, чтобы эта таблица значений была с типизированными полями.

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

ТЗ = Новый ТаблицаЗначений;

Заполняем таблицу значений удобным для вас способом и после передаем значения в запрос

Запрос=Новый Запрос;
Запрос.Текст=

«ВЫБРАТЬ
| ВнешняяТаблицаОС.Наименование,
| ВнешняяТаблицаОС.ГруппаОС,
| ВнешняяТаблицаОС.ИнвНомер
|ПОМЕСТИТЬ Таблица
|ИЗ
| &ВнешняяТаблицаОС КАК ВнешняяТаблицаОС
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| Таблица.Наименование,
| Таблица.ГруппаОС,
| Таблица.ИнвНомер
|ИЗ
| Таблица КАК Таблица
|ГДЕ
| Таблица.ГруппаОС = &НеобходимаяГруппа»;

Запрос.УстановитьПараметр(«ВнешняяТаблицаКонтрагентов», ТЗ);
Запрос.УстановитьПараметр(«НеобходимаяГруппа», Перечисления.ГруппыОС.ЗемельныеУчастки)

Результат=Запрос.Выполнить();

Есть маленький нюанс, таблицу значений передаем при помощи параметров и обязательно помещаем ее во временную таблицу, а уже после используем ее в запросе. И еще раз повторимся, что поля таблицы должны быть типизированными. Как сделать тоже самое, но при помощи конструктора запроса? Легко. Для этого в конструкторе создаем описание временной таблицы. Присваиваем ей имя параметра и указываем тип значений для полей. Обязательно на вкладке «Дополнительно» указываем, что мы создаем временную таблицу, то есть в группе «Тип запроса» выбираем «Создание временной таблицы».

constructor

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

packet

Обсуждение: 2 комментария
  1. Асель:

    Очень полезная статья! Но у меня не учитывается условие в запросе, прям вообще как будто нет текста начиная с Где и т.д. Подскажите, с чем может быть проблема?

Поделитесь своим мнением

Свежие записи
Советы и помощь программиста в 1с © 2018 ·   Войти   · Наверх