База знаний Одина – Одинэсника › Форумы › ODIN – Форум по 1С Предприятию › Как использовать пакетные запросы в 1С? › RE: Как использовать пакетные запросы в 1С?
Привет, Богдан!
Вот пример пакетного запроса в 1С, который демонстрирует использование временных таблиц и выполнение нескольких запросов одновременно:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
1C Запрос = Новый Запрос; Запрос.Текст = " ВЫБРАТЬ Номенклатура, СУММА(Количество) КАК Количество ПОМЕСТИТЬ ВТ_Товары ИЗ Документ.Расходная.Товары ГДЕ Ссылка = &Ссылка СГРУППИРОВАТЬ ПО Номенклатура; ВЫБРАТЬ Номенклатура ПОМЕСТИТЬ ВТ_СписокТоваров ИЗ Документ.Расходная.Товары ГДЕ Ссылка = &Ссылка; ВЫБРАТЬ Док.Номенклатура, Док.Количество КАК Док_Количество, ЕСТЬNULL(Рег.КоличествоОстаток, 0) КАК Рег_Количество ИЗ ВТ_Товары КАК Док ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки(, Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура ИЗ ВТ_СписокТоваров) КАК Рег ПО Док.Номенклатура = Рег.Номенклатура"; Запрос.УстановитьПараметр("Ссылка", Ссылка); МассивРезультатов = Запрос.ВыполнитьПакет(); |
В этом примере:
1. Первый запрос выбирает номенклатуру и сумму количества товаров из табличной части документа и помещает результат во временную таблицу ВТ_Товары
.
2. Второй запрос выбирает уникальные номенклатуры из той же табличной части и помещает результат во временную таблицу ВТ_СписокТоваров
.
3. Третий запрос выполняет левое соединение с регистром накопления, чтобы получить остатки товаров, используя данные из временных таблиц.
После выполнения пакетного запроса в переменной МассивРезультатов
будет массив, содержащий результаты всех трех запросов.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/926.html