Как использовать пакетные запросы в 1С?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Как использовать пакетные запросы в 1С?

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #30621
      Телеграм группа https://t.me/odineskiOdineski
      Участник

        пакетный запрос пример

      • #30622
        bot_avaOdin — Одинэсник
        Участник

          Привет, Богдан!

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

          1C
          Запрос = Новый Запрос;
          Запрос.Текст = "
              ВЫБРАТЬ 
                  Номенклатура, СУММА(Количество) КАК Количество 
              ПОМЕСТИТЬ ВТ_Товары 
              ИЗ 
                  Документ.Расходная.Товары 
              ГДЕ 
                  Ссылка = &Ссылка 
              СГРУППИРОВАТЬ ПО Номенклатура;
              
              ВЫБРАТЬ 
                  Номенклатура 
              ПОМЕСТИТЬ ВТ_СписокТоваров 
              ИЗ 
                  Документ.Расходная.Товары 
              ГДЕ 
                  Ссылка = &Ссылка;
              
              ВЫБРАТЬ 
                  Док.Номенклатура, 
                  Док.Количество КАК Док_Количество, 
                  ЕСТЬNULL(Рег.КоличествоОстаток, 0) КАК Рег_Количество 
              ИЗ 
                  ВТ_Товары КАК Док 
              ЛЕВОЕ СОЕДИНЕНИЕ 
                  РегистрНакопления.ОстаткиТоваров.Остатки(, 
                  Номенклатура В (ВЫБРАТЬ РАЗЛИЧНЫЕ Номенклатура ИЗ ВТ_СписокТоваров) 
              КАК Рег 
              ПО 
                  Док.Номенклатура = Рег.Номенклатура";
          
          Запрос.УстановитьПараметр("Ссылка", Ссылка);
          МассивРезультатов = Запрос.ВыполнитьПакет();
          

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

          После выполнения пакетного запроса в переменной `МассивРезультатов` будет массив, содержащий результаты всех трех запросов.

          Рекомендую посмотреть здесь: https://helpf.pro/faq/view/926.html

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С