Найти в Дзене

1с как естьnull

В 1С проверка на Null (пустое значение) — важная операция, используемая для обработки ситуаций, когда переменная или реквизит объекта не содержит никакого значения. Правильная проверка на Null позволяет избежать ошибок времени выполнения и обеспечить корректную работу программы. Способы проверки на Null в 1С: Использование ключевого слова Null: Это самый простой и распространенный способ проверки на Null. O Если МояПеременная = Null Тогда O // Переменная имеет значение Null O Сообщить("Переменная пуста!"); O КонецЕсли; O O Если МойРеквизит <> Null Тогда O // Реквизит не имеет значения Null O Сообщить("Реквизит заполнен!"); O КонецЕсли; Использование функции ТипЗнч(): Функция ТипЗнч() возвращает тип значения переменной. Если переменная имеет значение Null, то функция вернет Тип("Null"). O Если ТипЗнч(МояПеременная) = Тип("Null") Тогда O // Переменная имеет значение Null O Сообщить("Переменная пуста!"); O КонецЕсли; Использование функции ПустаяСтрока() (для строк): Эта функция проверяет,

В 1С проверка на Null (пустое значение) — важная операция, используемая для обработки ситуаций, когда переменная или реквизит объекта не содержит никакого значения. Правильная проверка на Null позволяет избежать ошибок времени выполнения и обеспечить корректную работу программы.

Способы проверки на Null в 1С:

Использование ключевого слова Null:

Это самый простой и распространенный способ проверки на Null.

O Если МояПеременная = Null Тогда

O // Переменная имеет значение Null

O Сообщить("Переменная пуста!");

O КонецЕсли;

O

O Если МойРеквизит <> Null Тогда

O // Реквизит не имеет значения Null

O Сообщить("Реквизит заполнен!");

O КонецЕсли;

Использование функции ТипЗнч():

Функция ТипЗнч() возвращает тип значения переменной. Если переменная имеет значение Null, то функция вернет Тип("Null").

O Если ТипЗнч(МояПеременная) = Тип("Null") Тогда

O // Переменная имеет значение Null

O Сообщить("Переменная пуста!");

O КонецЕсли;

Использование функции ПустаяСтрока() (для строк):

Эта функция проверяет, является ли строка пустой. Пустая строка ("") — это не то же самое, что и Null, но часто они используются взаимозаменяемо.

O Если ПустаяСтрока(МояСтрока) Тогда

O // Строка пуста (равна "")

O Сообщить("Строка пуста!");

O КонецЕсли;

Использование метода Пустая() (для ссылочных типов):

Этот метод доступен для объектов ссылочных типов (например, справочников, документов). Он проверяет, указывает ли ссылка на существующий объект или является пустой ссылкой.

O Если МойСправочник. Пустая() Тогда

O // Ссылка на справочник пуста (не указывает ни на один элемент)

O Сообщить("Ссылка на справочник пуста!");

O КонецЕсли;

Альтернативный способ проверки пустой ссылки (менее предпочтительный):

O Если МойСправочник = Справочники. Номенклатура. ПустаяСсылка() Тогда

O // Ссылка на справочник пуста (не указывает ни на один элемент)

O Сообщить("Ссылка на справочник пуста!");

O КонецЕсли;

Использование .ПустаяСсылка() не всегда рекомендуется, так как может приводить к проблемам при сравнении с ссылками, полученными из запросов. Лучше использовать .Пустая().

Использование функции ЗначениеЗаполнено():

Эта функция проверяет, заполнено ли значение переменной. Она возвращает Истина, если значение заполнено, и Ложь в противном случае. Функция ЗначениеЗаполнено() учитывает особенности разных типов данных (для строк проверяет, не является ли строка пустой, для чисел — не равен ли ноль и т. д.).

O Если Не ЗначениеЗаполнено(МояПеременная) Тогда

O // Переменная не заполнена (Null, пустая строка, 0, пустая дата и т. д.)

O Сообщить("Переменная не заполнена!");

O КонецЕсли;

Когда какой способ использовать?

Для общих случаев (переменные любых типов): Используйте МояПеременная = Null или ТипЗнч(МояПеременная) = Тип("Null"). Для строк: Используйте ПустаяСтрока(МояСтрока). Для ссылочных типов (справочники, документы): Используйте МойСправочник. Пустая(). Для комплексной проверки заполненности (с учетом особенностей разных типов данных): Используйте ЗначениеЗаполнено(МояПеременная).

Примеры использования:

Проверка реквизита документа перед выполнением операции:

· Если Документ. Контрагент <> Null Тогда

· // Выполняем действия, связанные с контрагентом

· Сообщить("Контрагент: " + Документ. Контрагент. Наименование);

· Иначе

· // Обрабатываем ситуацию, когда контрагент не указан

· Сообщить("Внимание: Не указан контрагент!");

· КонецЕсли;

Проверка значения, полученного из запроса:

· Запрос = Новый Запрос;

· Запрос. Текст =

· "ВЫБРАТЬ

· | ПервичныеДокументы. СуммаДокумента

· |ИЗ

· | РегистрНакопления. ПервичныеДокументы КАК ПервичныеДокументы

· |ГДЕ

· | ПервичныеДокументы. Регистратор = &Регистратор";

·

· Запрос. УстановитьПараметр("Регистратор", ЭтотОбъект. Ссылка);

·

· Результат = Запрос. Выполнить();

·

· Если Не Результат. Пустой() Тогда

· Выборка = Результат. Выбрать();

· Выборка. Следующий();

· СуммаДокумента = Выборка. СуммаДокумента;

·

· Если СуммаДокумента <> Null Тогда

· // Обрабатываем сумму документа

· Сообщить("Сумма документа: " + СуммаДокумента);

· Иначе

· // Обрабатываем ситуацию, когда сумма документа не найдена

· Сообщить("Сумма документа не найдена!");

· КонецЕсли;

· КонецЕсли;

Проверка значения перед записью в базу данных:

· Если Не ПустаяСтрока(МойАдрес) Тогда

· НовыйКонтрагент. ЮридическийАдрес = МойАдрес;

· КонецЕсли;

Важные моменты:

Null — это не то же самое, что и пустая строка (""), 0 (ноль) или пустая дата (Дата(1,1,1)). Каждый тип данных имеет свое “пустое” значение. Перед использованием переменной, которая может иметь значение Null, всегда проверяйте ее на Null, чтобы избежать ошибок. Функция ЗначениеЗаполнено() является наиболее универсальным способом проверки заполненности значения, но ее использование может быть менее производительным, чем использование специализированных способов (например, Пустая() для ссылочных типов). При работе с SQL-запросами необходимо учитывать особенности обработки Null в SQL. Используйте оператор IS NULL для проверки на Null в SQL-запросах.

Пример использования IS NULL в запросе:

Запрос = Новый Запрос;

Запрос. Текст =

"ВЫБРАТЬ

| Сотрудники. Ссылка

|ИЗ

| Справочник. Сотрудники КАК Сотрудники

|ГДЕ

| Сотрудники. ДатаПриема = &ДатаПриема

| И Сотрудники. ДатаУвольнения ЕСТЬ NULL"; // Проверяем, что ДатаУвольнения равна Null

Запрос. УстановитьПараметр("ДатаПриема", Дата(2023, 1, 1));

Результат = Запрос. Выполнить();

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

  📷
📷