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

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

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

    База знаний 1С