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