Как преобразовать два запроса в пакетный запрос 1С?

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

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

        преобразовать запрос в пакет запросов ВЫБРАТЬ
        ПродажаТоваровТовары.Номенклатура КАК Номенклатура,
        СУММА(ПродажаТоваровТовары.Количество) КАК Количество,
        СУММА(ПродажаТоваровТовары.Сумма) КАК Сумма
        ПОМЕСТИТЬ ТЧР
        ИЗ
        Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
        ГДЕ
        ПродажаТоваровТовары.Ссылка = &Ссылка

        СГРУППИРОВАТЬ ПО
        ПродажаТоваровТовары.Номенклатура

        ДЛЯ ИЗМЕНЕНИЯ
        Документ.ПродажаТоваров
        ;

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

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

          В этом коде запрос преобразован в пакетный запрос, который выполняет оба запроса последовательно и помещает результаты в временную таблицу `ТЧР`.

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