![]() |
![]() |
|
Общее количество товара по аналогам в запросе | ☑ | ||
---|---|---|---|---|
0
spapin87
24.10.13
✎
13:18
|
Добрый день, подскажите с запросом, пожалуйста, пытаюсь получить общее количество по всем аналогам номенклатуры, т.е. беру номенклатуру смотрю аналоги по ИдентификаторГруппыАналогов и получаю данные, но мне нужно получить общее количество по всем аналогам. Пытаюсь вложенным запросом функцией Сумма, но чего-то не то ...
ВыборкаНом = Справочники.Номенклатура.Выбрать(); Пока ВыборкаНом.Следующий() = 1 Цикл ОбработкаПрерыванияПользователя(); НоменклатураОбъект=ВыборкаНом.ПолучитьОбъект(); ИдентификаторГруппыАналогов=НоменклатураОбъект.ИдентификаторГруппыАналогов(); Если ИдентификаторГруппыАналогов=Неопределено Тогда НомеклатураАналогов = НоменклатураОбъект.Ссылка; СтрГлавныйПоГруппе = НоменклатураОбъект; Иначе Запрос = Новый Запрос("ВЫБРАТЬ | Номенкл.Артикул КАК Артикул, | Номенкл.Ссылка, | Номенкл.Родитель КАК Каталог, | ЦеныСрезПоследних.Цена КАК ЦенаПродажи, | ЛОЖЬ КАК ГлавныйПоГруппе, | ГруппыАналогов.ИдентификаторГруппы, | ГруппыАналогов.Артикул КАК Артикул1, | СУММА(ВложенныйЗапрос1.КоличествоОстаток) КАК КоличествоОстаток |ИЗ | РегистрСведений.ГруппыАналогов КАК ГруппыАналогов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенкл | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ) КАК ЦеныСрезПоследних | ПО (ЦеныСрезПоследних.Номенклатура = Номенкл.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ | Номенкл.Артикул КАК Артикул, | Номенкл.Ссылка КАК Ссылка, | Номенкл.Родитель КАК Каталог, | ЛОЖЬ КАК ГлавныйПоГруппе, | ГруппыАналогов.ИдентификаторГруппы КАК ИдентификаторГруппы, | ГруппыАналогов.Артикул КАК Артикул1, | СУММА(ОстаткиТоваровКомпанииОстатки.КоличествоОстаток) КАК КоличествоОстаток | ИЗ | РегистрСведений.ГруппыАналогов КАК ГруппыАналогов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК Номенкл | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&ИдентификаторГруппы, ) КАК ОстаткиТоваровКомпанииОстатки | ПО (ОстаткиТоваровКомпанииОстатки.Номенклатура = Номенкл.Ссылка) | ПО ГруппыАналогов.Артикул = Номенкл.Артикул | | СГРУППИРОВАТЬ ПО | Номенкл.Артикул, | Номенкл.Ссылка, | Номенкл.Родитель, | ГруппыАналогов.ИдентификаторГруппы, | ГруппыАналогов.Артикул) КАК ВложенныйЗапрос1 | ПО Номенкл.Артикул = ВложенныйЗапрос1.Артикул | ПО ГруппыАналогов.Артикул = Номенкл.Артикул |ГДЕ | ГруппыАналогов.ИдентификаторГруппы = &ИдентификаторГруппы | |СГРУППИРОВАТЬ ПО | Номенкл.Артикул, | Номенкл.Ссылка, | Номенкл.Родитель, | ЦеныСрезПоследних.Цена, | ГруппыАналогов.ИдентификаторГруппы, | ГруппыАналогов.Артикул"); Запрос.УстановитьПараметр("ИдентификаторГруппы",ИдентификаторГруппыАналогов); Выборка = Запрос.Выполнить().Выбрать(); |
|||
1
Maxus43
24.10.13
✎
13:23
|
если надо по всем, зачем же тянешь в запросе:
| Номенкл.Артикул КАК Артикул, | Номенкл.Ссылка, | Номенкл.Родитель КАК Каталог, они для каждой номенклатуры свои, потому и рвёт сумму на много |
|||
2
spapin87
24.10.13
✎
13:32
|
убрав эти поля считаются вообще все остатки по всем аналогам, а надо например для номенклатуры 111(ВыборкаНом) в запросе по ИдентификаторГруппыАналогов я получаю все аналоги именно по 111 и вывести общее количество для каждого аналога
|
|||
3
spapin87
24.10.13
✎
13:38
|
Все разобрался, не поставил условие во вложенном запросе по ИдентификаторГруппы, спасибо за внимание и помощь.
Как только у кого-нить спрашиваю соображаю сам ))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |