![]() |
![]() |
![]() |
|
Подскажите с запросом. | ☑ | ||
---|---|---|---|---|
0
mzelensky
12.12.11
✎
13:25
|
Доброго всем!
Имеется запрос: ВЫБРАТЬ | НоменклатураСпр.Ссылка КАК Ссылка, | НоменклатураСпр.Родитель.Код КАК Родитель, | НоменклатураСпр.ЭтоГруппа КАК ЭтоГруппа, | НоменклатураСпр.Код, | НоменклатураСпр.Артикул, | НоменклатураСпр.Наименование, | ВЫРАЗИТЬ(НоменклатураСпр.НаименованиеПолное КАК СТРОКА(1000)) КАК НаименованиеПолное, | ВЫБОР | КОГДА НоменклатураСпр.ЕдиницаХраненияОстатков <> ЗНАЧЕНИЕ(справочник.единицыизмерения.пустаяссылка) | ТОГДА НоменклатураСпр.ЕдиницаХраненияОстатков.ЕдиницаПоКлассификатору.Код | ИНАЧЕ НоменклатураСпр.БазоваяЕдиницаИзмерения.Код | КОНЕЦ КАК ЕдИзм, | НоменклатураСпр.ЦеноваяГруппа.Код КАК ЦеноваяГруппа, | НоменклатураСпр.НоменклатурнаяГруппа.Код КАК НоменклатурнаяГруппа, | НоменклатураСпр.ВесНетто, | НоменклатураСпр.ЕдиницаИзмеренияМест.ЕдиницаПоКлассификатору.Код КАК ЕдИзмУпак, | НоменклатураСпр.ЕдиницаИзмеренияМест.Коэффициент КАК ЕдИзмУпакКол |ПОМЕСТИТЬ ВТ |ИЗ | Справочник.Номенклатура КАК НоменклатураСпр |ГДЕ | НоменклатураСпр.ПометкаУдаления = ЛОЖЬ | И НоменклатураСпр.ЭтоГруппа = ЛОЖЬ | И НоменклатураСпр.Ссылка В Иерархии (&ПарАс) |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | НоменклатураСпр.Ссылка КАК Ссылка, | НоменклатураСпр.Код КАК Код, | ЦеныНоменклатурыСрезПоследних.ТипЦен.Код КАК ТипЦен, | ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК цена, | ЦеныНоменклатурыСрезПоследних.ПроцентСкидкиНаценки КАК Наценка, | ВЫБОР | КОГДА ЦеныНоменклатурыСрезПоследних.ТипЦен.БазовыйТипЦен = ЗНАЧЕНИЕ(справочник.типыценноменклатуры.пустаяссылка) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ КАК ЕстьБазовыйТип, | ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток |ИЗ | ВТ КАК НоменклатураСпр | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних( | &ДК, | Номенклатура В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ВТ.Ссылка | ИЗ | ВТ КАК ВТ)) КАК ЦеныНоменклатурыСрезПоследних | ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = НоменклатураСпр.Ссылка) | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки( | &ДК, | Номенклатура В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | ВТ.Ссылка | ИЗ | ВТ КАК ВТ) И Склад В ИЕРАРХИИ (&Склады) ) КАК ТоварыНаСкладахОстатки | ПО (ТоварыНаСкладахОстатки.Номенклатура = НоменклатураСпр.Ссылка) | | Где ( ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) >0 ИЛИ | НоменклатураСпр.ЭтоГруппа = ИСТИНА ) |УПОРЯДОЧИТЬ ПО | Ссылка, | ЦеныНоменклатурыСрезПоследних.ТипЦен.Рассчитывается |ИТОГИ | МАКСИМУМ(Код), | МИНИМУМ(Остаток) |ПО | Ссылка Смысл его прост - берем определенный ассортимет позиций и получаем для него цены и остакти. Проблема у меня заключается в параметре СКЛАД. Устанавливается он так: ПарСклады=" И Склад В ИЕРАРХИИ (&Склады) "; Запрос.УстановитьПараметр("Склады" , СписокСкладов.склады.ВыгрузитьКолонку("Склад") ); По факту это табличная часть в элементе справочника. Проблема в том, что по одним складам нужно получить ВСЕ ТОВАРЫ (с положительным и отрицательным остатком), а по другим только с положительным остатком. Определяется это галочкой в той же самой табличной части элемента справочника. Как наложить такое условие???? |
|||
1
wade25
12.12.11
✎
13:27
|
2 вложенных запроса сделать?
|
|||
2
mzelensky
12.12.11
✎
13:28
|
(0) самое просто вижу так:
Перенести условие по складу в "ГДЕ" и разделить все склады на 2 группы. Написать что-то типа: ГДЕ (СкладыПолные В (&Склады) ) или (СкладыТокСОстатком В (&Склады2) и ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) >0 ) |
|||
3
wade25
12.12.11
✎
13:28
|
Ну или выбор когда склад = такой то, то выбираем >0, иначе все...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |