1с проверка на пустое значение с примерами

В 1С проверка на пустое значение осуществляется специальной функцией.  Что бы проверить заполнен ли имеющийся у вас реквизит или переменная следует использовать функцию из глобального контекста ЗначениеЗаполнено(<Значение>).

В 1С 8 значение считается заполненным (не пустым) если оно отличается от значения по умолчанию для данного типа. Например для ссылочного типа значение по умолчанию — это Пустая ссылка (данного справочника, документа и т.п.). Также пустыми являются переменные и реквизиты содержащие значения Null и Неопределено.

1с проверка на пустое значение. Примеры

Пример 1:

Переменная = Справочники.Номенклатура.ПустаяСсылка();

 Проверка = ЗначениеЗаполнено(Переменная);

В данном случае переменная Проверка будет содержать значение Ложь. Также функцию ЗначениеЗаполнено(<Значение>). можно использовать напрямую в условиях.

Пример 1.1

Если ЗначениеЗаполнено(Переменная) Тогда
    Сообщить("Значение в переменной не является пустым!");
КонецЕсли;

Пример2:

Переменная = Документы.АвансовыйОтчет.НайтиПоНомеру("000000001");

Проверка = ЗначениеЗаполнено(Переменная);

В данном примере, если документ Авансовый отчет с номером 000000001 существует, то в переменной Проверка будет содержаться значение Истина, иначе Ложь.

Использовать функцию ЗначениеЗаполнено нельзя для переменных мутабельных типов, таких как Таблица значений, Дерево значений и т.п. Функция работает для всех конфигураций.

Как же проверить, что в 1с таблица значений пустая? Для этого используется метод Количество(), с его помощью можно проверить сколько строк содержится в таблице значений.

Пример 3. Пусть МояТаблица — таблица значений определенная выше в коде.

Если МояТаблица.Количество() = 0 Тогда
    Возврат;
КонецЕсли;

Этим же методом можно определить заполненность дерева значений и выборки результата запроса.

Пример 4. Пусть МоеДерево — дерево значений определенное выше в коде.

Если МоеДерево.Строки.Количество() = 0 Тогда
    Возврат;
КонецЕсли;

Как видите, в дереве значений мы проверяем наличие строк первого уровня, если их нет, то дерево пустое.

Пример 5. Пусть Запрос — запрос к базе данных 1С 8, определенный выше.

Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Количество() = 0 Тогда
    Возврат Ложь;
Иначе
    Выборка.Следующий();
...

На этом описание основных приемов, при помощи которых осуществляется в 1с проверка на пустое значение, закончено. Если вы хотите узнать, как сделать проверку на пустое значение в запросе, прочитайте следующие статьи: Проверка на null в запросе и Проверка на Неопределено в запросе

6 комментариев

  1. в примере 1.1 забыли написать очень важную вещь
    если Переменная равна 0, то результатом будет Ложь

    эта функция используется в СКД и если в параметрах задать галочку ЗапрещатьНезаполненныеЗначения, то отчет может выдать ошибку, если параметр будет равным нулю

  2. А если мне нужно проверить заполнение ячейки табличной части с типом данных «число» функция ЗначениеЗаполнено() прекрасно проверяет этот факт кроме одного факта — не работает, если ячейка заполнена значением «0»!?
    Как быть при нуле?

Добавить комментарий

Ваш адрес email не будет опубликован.