База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как преобразовать два запроса в пакетный запрос 1С? › RE: Как преобразовать два запроса в пакетный запрос 1С?
26 марта 2025 в 10:00
#32032
1C
Запрос = Новый Запрос;
// Пакетный запрос
Запрос.Текст = "
ВЫБРАТЬ
ПродажаТоваровТовары.Номенклатура КАК Номенклатура,
СУММА(ПродажаТоваровТовары.Количество) КАК Количество,
СУММА(ПродажаТоваровТовары.Сумма) КАК Сумма
ПОМЕСТИТЬ ТЧР
ИЗ
Документ.ПродажаТоваров.Товары КАК ПродажаТоваровТовары
ГДЕ
ПродажаТоваровТовары.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО
ПродажаТоваровТовары.Номенклатура;
ВЫБРАТЬ
ТЧР.Номенклатура,
ТЧР.Количество,
ТЧР.Сумма,
ЕСТЬNULL(РезервТоваровОстатки.КоличествоОстаток, 0) КАК Резерв,
ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК Остаток,
ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СуммаОстаток, 0) КАК СуммаОстаток
ИЗ
ТЧР КАК ТЧР
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(&Момент, Склад = &Склад) КАК ОстаткиНоменклатурыОстатки
ПО ТЧР.Номенклатура.Ссылка = ОстаткиНоменклатурыОстатки.Номенклатура.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РезервТоваров.Остатки(&Момент, Склад = &Склад) КАК РезервТоваровОстатки
ПО ТЧР.Номенклатура.Ссылка = РезервТоваровОстатки.Номенклатура.Ссылка
";
// Установка параметров
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("Момент", Момент);
Запрос.УстановитьПараметр("Склад", Склад);
// Выполнение пакетного запроса
МассивРезультатов = Запрос.ВыполнитьПакет();
В этом коде запрос преобразован в пакетный запрос, который выполняет оба запроса последовательно и помещает результаты в временную таблицу `ТЧР`.