27.06.2017

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) КАК Цена
|ИЗ ОстаткиТоваров КАК ВТ" 

Заключение

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



Другие статьи

Оператор "ПОДОБНО" в запросе 1С

   В статье рассматривается использование оператора "ПОДОБНО" в запросах 1С, примеры и особенности поведения
 

Получение в запросе 1С, курса валюты на дату документа

     Пример запроса 1С, для получения курса валюты документа, на дату документа.

Остатки по дням запросом 1С

      Пример запроса, который выводит информацию по остаткам товаров на каждый день, даже если не было движений

Нумерация строк в запросе 1С

Один из способов пронумеровать строки в запросе 1С

Оптимизация запросов 1С

В статье рассмотрены основные приемы по оптимизации запросов 1С. В отдельных случаях, понимая как работают механизмы платформы, возможно увеличить скорость выполнения запроса в РАЗЫ!