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