NULL, ЕСТЬNULL() И ЕСТЬ NULL В ЗАПРОСАХ 1С

Что такое NULL

NULL в результате запроса, означает отсутствие значения (это не пустое значение, не нулевое, не пустая ссылка).

Например в результате соединения таблиц запроса, не нашлось значения в одной из таблиц при связи по полям соединения. Или в запросе идет обращение к несуществующему реквизиту (свойству).

NULL не равно NULL !

Если вы в запросе 1С захотите наложить отбор (условие) с проверкой на NULL, то конструкция вида


ГДЕ ВТ.Поле1 = NULL


Всегда будет возвращать ЛОЖЬ! Для проверки следует использовать специальный оператор

ЕСТЬ NULL в запросе 1С

Для проверки значения (или для работы со значениями) на NULL необходимо использовать следующую конструкцию


ГДЕ ВТ.Поле1 ЕСТЬ NULL


Или другой пример, использование в конструкции ВЫБОР


ВЫБОР
КОГДА ВТ.Поле1 ЕСТЬ NULL
ТОГДА


Стоит отметить, что функция проверки поля на NULL одна из самых ресурсоемких в запросах 1С. Поэтому если Вы хотите использовать ее в условии запроса, подумайте, возможно ли заменить такую проверку внутренним соединением (вид соединения в запросах, при котором в выборке остаются только записи, присутствующие в обоих таблицах).

Функция ЕСТЬNULL() в запросе 1С

Функция ЕСТЬNULL() позволяет заменить отсутствующее значение в поле запроса, на указанное значение (стандартное значение, заглушку).

К примеру, если информация о стоимости товара отсутствует, то мы указываем ее равной 0 (нулю)


ВЫБРАТЬ
ЕСТЬNULL(ВТ.Цена, 0) КАК Цена
ИЗ ОстаткиТоваров КАК ВТ


Заключение

Пишите запросы правильно и оптимально. Потому что плохой запрос — это тормоза и говнокод 😉