NULL в запросах 1С 8.3. Функция ЕСТЬNULL

Курс

Разыменование полей в запросе

Разыменование полей в запросе — это возможность обращаться через точку к реквизиту ссылки.

Например, есть документ Продажа услуг, у которого есть реквизит Покупатель типа справочник контрагенты. Тогда в запросе через точку от реквизиту Покупатель можно обращаться к реквизитам контрагента:

Разыменование поля в запросе

При этом будет выполнено неявное левое соединение с основной таблицей справочника Контрагенты. То есть запрос выше аналогичен такому запросу:

При этом если в документе не будет заполнен покупатель, то в полях ПокупательНаименование и ПокупательКод будет NULL.

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

С помощью оператора ЕСТЬ NULL можно проверить является ли значение NULL:

Если покупатель в документе не заполнен, то запрос вернет следующий результат:

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

ЕСТЬ NULL можно использовать в условии:

Для проверки, что значение не равно NULL можно использовать ЕСТЬ НЕ NULL или НЕ ЕСТЬ NULL:

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

Также есть функция ЕСТЬNULL, которая позволяет привести NULL к какому-либо значению. Функция принимает 2 параметра. Первый — само значение. Второй — то значение, которое будет использоваться, если первый параметр равен NULL.

Например, в следующем запросе:

В поле Код будет код покупателя, если покупатель заполнен в документе:

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

И «Поле равно NULL», если покупатель не заполнен в документе:

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

Битые ссылки в запросе

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

Также при обращении к реквизитам битой ссылки в запросе будет получен NULL. Битая ссылка — это ссылка, которой не соответствует ни один объект базы данных. Такая ссылка может быть получена, если в документе был заполнен покупатель, а потом этот покупатель был удален из базы данных. Следующий запрос позволяет найти все битые ссылки на покупателя в документе Продажа услуг:

Битые ссылки в запросе

В условии мы проверяем, что покупатель в реквизите заполнен, но при этом обращении к его реквизитам возвращает NULL.


Подписывайтесь на группу ВКонтакте , где я публикую ссылки на новые статьи с данного сайта, а также интересные материалы с других ресурсов по программированию в 1С
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!:

Используя этот сайт, Вы даете согласие на использование cookies. На данном этапе Вы можете отказаться от использования cookies, настроив необходимые параметры в своем браузере.
ok