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