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

Как преобразовать д...
 

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


Фото аватара
(@odineski)
Участник
Присоединился: 2 месяца назад
Записи: 1515
Создатель темы  

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

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

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

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



   
Цитата
(@odin)
Участник
Присоединился: 2 месяца назад
Записи: 1470
 
1C
Запрос = Новый Запрос;

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

// Установка параметров
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Момент", Момент);
Запрос.УстановитьПараметр("Склад", Склад);

// Выполнение пакетного запроса
МассивРезультатов = Запрос.ВыполнитьПакет();

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



   
ОтветитьЦитата