|
Запрос по остаткам товаров в разрезе характеристик номенклатуры и цен | ☑ | ||
---|---|---|---|---|
0
Kuryshev
25.04.12
✎
17:41
|
Подскажите пожалуйста, как выбрать цены номенклатуры (одна номенклатура может быть как с характеристикой, так и без нее). Написал запрос, но есть проблема: если номенклатуре устанавливали цену без характеристики (что тоже резонно), то результат запроса - цена без характеристики пустая. Конфигурация КА 8.
ВЫБРАТЬ Остатки.Склад, ВЫБОР КОГДА Остатки.МестоХранения = ЗНАЧЕНИЕ(Справочник.МестаХранения.ПустаяСсылка) ТОГДА ВложенныйЗапрос.МестоХранения ИНАЧЕ Остатки.МестоХранения КОНЕЦ КАК МестоХранения, Остатки.Номенклатура, Остатки.ХарактеристикаНоменклатуры, СУММА(Остатки.СвободныйОстаток) КАК СвободныйОстаток, СУММА(Остатки.ОстатокНаСкладе) КАК ОстатокНаСкладе, СУММА(Остатки.Резерв) КАК Резерв, СРЕДНЕЕ(ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Коэффициент) КАК Цена, СУММА(ЦеныНоменклатурыСрезПоследних.Цена * ЦеныНоменклатурыСрезПоследних.ЕдиницаИзмерения.Коэффициент * Остатки.ОстатокНаСкладе) КАК Сумма, ЦеныНоменклатурыСрезПоследних.Период ИЗ (ВЫБРАТЬ СвободныеОстаткиОстатки.Склад КАК Склад, СвободныеОстаткиОстатки.Номенклатура КАК Номенклатура, СвободныеОстаткиОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ЕСТЬNULL(СвободныеОстаткиОстатки.КоличествоОстаток, 0) КАК СвободныйОстаток, 0 КАК ОстатокНаСкладе, 0 КАК Резерв, СвободныеОстаткиОстатки.МестоХранения КАК МестоХранения ИЗ РегистрНакопления.СвободныеОстатки.Остатки(&Период, ) КАК СвободныеОстаткиОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, 0, ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0), 0, ТоварыНаСкладахОстатки.МестоХранения ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК ТоварыНаСкладахОстатки ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ТоварыВРезервеНаСкладахОстатки.Склад, ТоварыВРезервеНаСкладахОстатки.Номенклатура, ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры, 0, 0, ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0), NULL ИЗ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) КАК ТоварыВРезервеНаСкладахОстатки) КАК Остатки ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних ПО Остатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура И Остатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ МестаХраненияНоменклатуры.Номенклатура КАК Номенклатура, МестаХраненияНоменклатуры.Склад КАК Склад, МестаХраненияНоменклатуры.МестоХранения КАК МестоХранения ИЗ РегистрСведений.МестаХраненияНоменклатуры КАК МестаХраненияНоменклатуры ГДЕ МестаХраненияНоменклатуры.Приоритет = 0) КАК ВложенныйЗапрос ПО Остатки.Склад = ВложенныйЗапрос.Склад И Остатки.Номенклатура = ВложенныйЗапрос.Номенклатура ГДЕ 1 = 1 СГРУППИРОВАТЬ ПО Остатки.Склад, Остатки.Номенклатура, Остатки.ХарактеристикаНоменклатуры, ВЫБОР КОГДА Остатки.МестоХранения = ЗНАЧЕНИЕ(Справочник.МестаХранения.ПустаяСсылка) ТОГДА ВложенныйЗапрос.МестоХранения ИНАЧЕ Остатки.МестоХранения КОНЕЦ, ЦеныНоменклатурыСрезПоследних.Период |
|||
1
palpetrovich
25.04.12
✎
17:46
|
Извиняюсь, в код не вникал, а разве у РС ЦеныНоменклатуры нет измерения ХарактеристикаНоменклатуры? ...в смысле - код должен выглядеть попроще ;)
|
|||
2
palpetrovich
25.04.12
✎
17:50
|
+1 зря не вникал, в сабже немного не так сказано :)
|
|||
3
Нуф-Нуф
25.04.12
✎
17:50
|
разбивай запросы на пакетные и отлаживай
|
|||
4
Нуф-Нуф
25.04.12
✎
17:52
|
а по сабжу - запрос жесть
|
|||
5
Buster007
25.04.12
✎
17:56
|
ГДЕ
1 = 1 Класс ) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |