Конфа 11.4. Задача следующая: В печати этикеток и ценников мы выбираем цену (вид цен), которую будем печатать. Нужно проверять так же есть ли у Номенклатуры установленная цена (вид цены) Цена со скидкой. Если установлена - берем ее. Немного доработав запрос, начал тестить. Если цену еще не устанавливали для Цена со скидкой, тогда выводится выбранная цена, например, розничная. Когда даем номенклатуре цену со скидкой, уже выводится цена со скидкой. Это все правильно, но когда мы убираем цену со скидкой, тогда в РС будет находить уже не NULL, а 0. Следовательно вопрос: Как сделать проверку на NULL и 0? Должно быть так:

Если ЦенаСоСкидкой = NULL или 0 Тогда Берем РозничнуюЦену (Например)
Иначе берем ЦенуСоСкидкой.

Прилагаю кусочек запроса

```1c
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ИсходныеДанныеПоследнийЗапрос.Порядок КАК Порядок,
    ИсходныеДанныеПоследнийЗапрос.Номенклатура КАК Номенклатура,
    ИсходныеДанныеПоследнийЗапрос.Характеристика КАК Характеристика,
    ВЫБОР
    КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеДляВидаНоменклатуры)
    ИЛИ ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ИндивидуальныеДляНоменклатуры)
    ИЛИ ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыИспользованияХарактеристикНоменклатуры.ОбщиеСДругимВидомНоменклатуры)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ХарактеристикиИспользуются,
    ВЫБОР
    КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиЕдиницыИзмерения.ПустаяСсылка)
    ТОГДА ВЫБОР
    КОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ
    ИНАЧЕ ВЫБОР
    КОГДА ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения.ТипИзмеряемойВеличины = ЗНАЧЕНИЕ(Перечисление.ТипыИзмеряемыхВеличин.Вес)
    ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
    КОНЕЦ
    КОНЕЦ КАК Весовой,
    ИсходныеДанныеПоследнийЗапрос.Количество КАК Количество,
    ШтрихкодыНоменклатуры.Штрихкод КАК Штрихкод,
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних2.Цена,ЦеныНоменклатурыСрезПоследних.Цена) КАК Цена, //СЮДА Я ВТУЛИЛ ПРОВЕРКУ НА NULL, НО КАК СЮДА ЖЕ ВПИСАТЬ НА 0 ПРОВЕРКУ?
    ЦеныНоменклатурыСрезПоследних.Период КАК ДатаПоследнегоИзмененияЦены,
    ТоварыНаСкладахОстатки.ВНаличииОстаток КАК ОстатокНаСкладе,
    ИсходныеДанныеПоследнийЗапрос.НеОднаЕдиничнаяУпаковка КАК НеОднаЕдиничнаяУпаковка,
    ВЫБОР
    КОГДА ИсходныеДанныеПоследнийЗапрос.НеОднаЕдиничнаяУпаковка
    ТОГДА ИсходныеДанныеПоследнийЗапрос.Номенклатура.ЕдиницаИзмерения
    ИНАЧЕ ИсходныеДанныеПоследнийЗапрос.Упаковка.ЕдиницаИзмерения
    КОНЕЦ КАК ЕдиницаИзмерения,
    ЕСТЬNULL(ИсходныеДанныеПоследнийЗапрос.Номенклатура.ИспользоватьУпаковки, ЛОЖЬ) КАК ИспользоватьУпаковки,
    ИсходныеДанныеПоследнийЗапрос.Номенклатура.ВидНоменклатуры.ШаблонЦенника КАК НоменклатураВидНоменклатурыШаблонЦенника,
    ИсходныеДанныеПоследнийЗапрос.Номенклатура.ВидНоменклатуры.ШаблонЭтикетки КАК НоменклатураВидНоменклатурыШаблонЭтикетки,
    ИсходныеДанныеПоследнийЗапрос.Номенклатура.ШаблонЦенника КАК НоменклатураШаблонЦенника,
    ИсходныеДанныеПоследнийЗапрос.Номенклатура.ШаблонЭтикетки КАК НоменклатураШаблонЭтикетки
    ИЗ
    ИсходныеДанныеРасширенные КАК ИсходныеДанныеПоследнийЗапрос
    ЛЕВОЕ СОЕДИНЕНИЕ ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
    ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ШтрихкодыНоменклатуры.Номенклатура
    И ИсходныеДанныеПоследнийЗапрос.Характеристика = ШтрихкодыНоменклатуры.Характеристика
    И ИсходныеДанныеПоследнийЗапрос.Упаковка = ШтрихкодыНоменклатуры.Упаковка
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), ВидЦены = &ВидЦены) КАК ЦеныНоменклатурыСрезПоследних
    ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
    И ИсходныеДанныеПоследнийЗапрос.Характеристика = ЦеныНоменклатурыСрезПоследних.Характеристика
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(КОНЕЦПЕРИОДА(&Дата, ДЕНЬ), ВидЦены = &ВидЦеныДополнительно) КАК ЦеныНоменклатурыСрезПоследних2
    ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ЦеныНоменклатурыСрезПоследних2.Номенклатура
    И ИсходныеДанныеПоследнийЗапрос.Характеристика = ЦеныНоменклатурыСрезПоследних2.Характеристика
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(
    ,
    (Номенклатура, Характеристика) В
    (ВЫБРАТЬ
    ИсходныеДанные.Номенклатура,
    ИсходныеДанные.Характеристика
    ИЗ
    ИсходныеДанные)) КАК ТоварыНаСкладахОстатки
    ПО ИсходныеДанныеПоследнийЗапрос.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
    И ИсходныеДанныеПоследнийЗапрос.Характеристика = ТоварыНаСкладахОстатки.Характеристика

    УПОРЯДОЧИТЬ ПО
    ИсходныеДанныеПоследнийЗапрос.Порядок
```
---
```1c
    ВЫБОР
    КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних2.Цена, 0) = 0 ТОГДА
    ЦеныНоменклатурыСрезПоследних1.Цена
    ИНАЧЕ
    ЦеныНоменклатурыСрезПоследних2.Цена
    КОНЕЦ КАК Цена
```
---
```1c
    ВЫБОР
    КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних2.Цена, 0) = 0 ТОГДА
    ЦеныНоменклатурыСрезПоследних1.Цена
    ИНАЧЕ
    ЦеныНоменклатурыСрезПоследних2.Цена
    КОНЕЦ КАК Цена
```
---
ВЫБОР
КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних2.Цена, 0) = 0 ТОГДА
ЦеныНоменклатурыСрезПоследних1.Цена
ИНАЧЕ
ЦеныНоменклатурыСрезПоследних2.Цена
КОНЕЦ КАК Цена

Спасибо! Я тоже через ВЫБОР КОГДА... пробовал, теперь понял как нужно было)
---
Еще можно несколько условий использовать.

Например

```1c
    ВЫБОР
    КОГДА *условие* ТОГДА
    *значение1*
    КОГДА *условие2* ТОГДА
    *значение2*
```

и тд.

Они будут обрабатываться по очереди. С верху вниз
---
Понял, спасибо)