Почему в СП 1С при поиске ЕСТЬNULL открывается функция Вычислить?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При работе с документацией платформы 1С:Предприятие разработчики часто сталкиваются с особенностями навигации в Системе Проектирования (СП). Одной из таких проблем является некорректная работа индекса справки: при попытке найти описание ЕСТЬNULL система ошибочно перенаправляет пользователя на описание функции Вычислить (Eval). Разберем, почему это происходит и как правильно пользоваться инструментами языка запросов.

Решение проблемы навигации в справке

Описанная ситуация является известным артефактом индексации документации в различных релизах платформы. Чтобы гарантированно найти нужный раздел, рекомендуем придерживаться следующих правил:

  1. Используйте функцию Поиск по справке (вкладка «Поиск»), а не стандартный алфавитный индекс. Индекс формируется автоматически, и в нем периодически возникают «битые» ссылки.
  2. Используйте Содержание справки, переходя по дереву объектов: Язык запросов -> Функции.

Различие между оператором ЕСТЬ NULL и функцией ЕСТЬNULL()

Часто путаница возникает из-за того, что в языке запросов 1С присутствуют два разных инструмента для работы с NULL, которые имеют схожие названия. Важно понимать их функциональное назначение, чтобы не допускать ошибок при написании кода.

Оператор проверки значения на NULL

Оператор ЕСТЬ NULL — это логический оператор. Его основная задача — вернуть результат типа Булево (ИСТИНА или ЛОЖЬ). Он не преобразует данные, а лишь проверяет текущее состояние поля в базе данных. Этот оператор применяется в секциях ГДЕ, ИМЕЮЩИЕ или в условиях соединения таблиц.

Рассмотрим пример использования:


ВЫБРАТЬ
    Справочник.Номенклатура.Наименование,
    Справочник.Номенклатура.ЗакупочнаяЦена
ГДЕ 
    Справочник.Номенклатура.ЗакупочнаяЦена ЕСТЬ NULL

Функция ЕСТЬNULL() для преобразования данных

Функция ЕСТЬNULL() — это полноценный инструмент для преобразования значений. Она принимает два аргумента и возвращает первое значение, если оно не равно NULL, или второе значение (значение по умолчанию), если первое является NULL. В других SQL-диалектах эта функция известна как COALESCE.

Разберем пример обработки итогов:


// Получить сумму по полю количество. 
// В случае, если нет записей, вернуть 0
ВЫБРАТЬ 
    ЕСТЬNULL(СУММА(Количество), 0) КАК Количество 
ИЗ 
    Документ.РасхНакл.Состав

Технические нюансы и рекомендации

Для повышения качества кода и производительности запросов, обратите внимание на следующие аспекты:

Понимая эти различия, вы сможете эффективнее проектировать запросы и быстрее находить нужную информацию в документации, не опираясь на автоматический индекс, который иногда дает сбои.

← На главную