Простые типы / Типы с "пустым" значением

//Неопределено и NULL - разные типы,
//друг другу они не равны
Сравнение = (Неопределено = NULL);
//Сравнение = Ложь

//Неопределено значит «значения нет»:
//так выглядит переменная без присвоения
//и ключ, которого нет в коллекции

//NULL значит «нет самого поля» и приходит
//только из запроса: при левом соединении,
//когда пары не нашлось, и у реквизитов,
//которых нет у группы справочника
Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |    Товары.Ссылка КАК Товар,
    |    Цены.Цена КАК Цена
    |ИЗ
    |    Справочник.Номенклатура КАК Товары
    |        ЛЕВОЕ СОЕДИНЕНИЕ
    |        РегистрСведений.Цены КАК Цены
    |        ПО Цены.Товар = Товары.Ссылка";

Выборка = Запрос.Выполнить().Выбрать();
Пустых = 0;
Пока Выборка.Следующий(Цикл
    Если Выборка.Цена = NULL Тогда
        Пустых = Пустых + 1;
    КонецЕсли;
КонецЦикла;

//В тексте запроса знак равенства для NULL
//не работает, там свой оператор:
//    ГДЕ Цены.Цена ЕСТЬ NULL

Сообщить("Без цены: " + Пустых);