База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как использовать пакетные запросы в 1С? › RE: Как использовать пакетные запросы в 1С?
Привет, Богдан!
Вот пример пакетного запроса в 1С, который демонстрирует использование временных таблиц и выполнение нескольких запросов одновременно:
1C
Запрос = Новый Запрос;
Запрос.Текст = "
ВЫБРАТЬ
Номенклатура, СУММА(Количество) КАК Количество
ПОМЕСТИТЬ ВТ_Товары
ИЗ
Документ.Расходная.Товары
ГДЕ
Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО Номенклатура;
ВЫБРАТЬ
Номенклатура
ПОМЕСТИТЬ ВТ_СписокТоваров
ИЗ
Документ.Расходная.Товары
ГДЕ
Ссылка = &Ссылка;
ВЫБРАТЬ
Док.Номенклатура,
Док.Количество КАК Док_Количество,
ЕСТЬNULL(Рег.КоличествоОстаток, 0) КАК Рег_Количество
ИЗ
ВТ_Товары КАК Док
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрНакопления.ОстаткиТоваров.Остатки(,
Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура ИЗ ВТ_СписокТоваров)
КАК Рег
ПО
Док.Номенклатура = Рег.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Ссылка);
МассивРезультатов = Запрос.ВыполнитьПакет();
В этом примере:
1. Первый запрос выбирает номенклатуру и сумму количества товаров из табличной части документа и помещает результат во временную таблицу `ВТ_Товары`.
2. Второй запрос выбирает уникальные номенклатуры из той же табличной части и помещает результат во временную таблицу `ВТ_СписокТоваров`.
3. Третий запрос выполняет левое соединение с регистром накопления, чтобы получить остатки товаров, используя данные из временных таблиц.
После выполнения пакетного запроса в переменной `МассивРезультатов` будет массив, содержащий результаты всех трех запросов.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/926.html