В 1С проверка на пустое значение осуществляется специальной функцией. Что бы проверить заполнен ли имеющийся у вас реквизит или переменная следует использовать функцию из глобального контекста ЗначениеЗаполнено(<Значение>).
В 1С 8 значение считается заполненным (не пустым) если оно отличается от значения по умолчанию для данного типа. Например для ссылочного типа значение по умолчанию — это Пустая ссылка (данного справочника, документа и т.п.). Также пустыми являются переменные и реквизиты содержащие значения Null и Неопределено.
1с проверка на пустое значение. Примеры
Пример 1:
Переменная = Справочники.Номенклатура.ПустаяСсылка();
Проверка = ЗначениеЗаполнено(Переменная);
В данном случае переменная Проверка будет содержать значение Ложь. Также функцию ЗначениеЗаполнено(<Значение>). можно использовать напрямую в условиях.
Пример 1.1
Если ЗначениеЗаполнено(Переменная) Тогда
Сообщить("Значение в переменной не является пустым!");
КонецЕсли;
Пример2:
Переменная = Документы.АвансовыйОтчет.НайтиПоНомеру("000000001");
Проверка = ЗначениеЗаполнено(Переменная);
В данном примере, если документ Авансовый отчет с номером 000000001 существует, то в переменной Проверка будет содержаться значение Истина, иначе Ложь.
Использовать функцию ЗначениеЗаполнено нельзя для переменных мутабельных типов, таких как Таблица значений, Дерево значений и т.п. Функция работает для всех конфигураций.
Как же проверить, что в 1с таблица значений пустая? Для этого используется метод Количество(), с его помощью можно проверить сколько строк содержится в таблице значений.
Пример 3. Пусть МояТаблица — таблица значений определенная выше в коде.
Если МояТаблица.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Этим же методом можно определить заполненность дерева значений и выборки результата запроса.
Пример 4. Пусть МоеДерево — дерево значений определенное выше в коде.
Если МоеДерево.Строки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
Как видите, в дереве значений мы проверяем наличие строк первого уровня, если их нет, то дерево пустое.
Пример 5. Пусть Запрос — запрос к базе данных 1С 8, определенный выше.
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 0 Тогда
Возврат Ложь;
Иначе
Выборка.Следующий();
...
На этом описание основных приемов, при помощи которых осуществляется в 1с проверка на пустое значение, закончено. Если вы хотите узнать, как сделать проверку на пустое значение в запросе, прочитайте следующие статьи: Проверка на null в запросе и Проверка на Неопределено в запросе
А что с датами?
ЗначениеЗаполнено работает и для дат. Можно еще так на пустую дату проверять: Дата = Дата(1,1,1)
а самому слабо проверить было?
в примере 1.1 забыли написать очень важную вещь
если Переменная равна 0, то результатом будет Ложь
эта функция используется в СКД и если в параметрах задать галочку ЗапрещатьНезаполненныеЗначения, то отчет может выдать ошибку, если параметр будет равным нулю
голяк на мутабельных значениях не работает не одно из
А если мне нужно проверить заполнение ячейки табличной части с типом данных «число» функция ЗначениеЗаполнено() прекрасно проверяет этот факт кроме одного факта — не работает, если ячейка заполнена значением «0»!?
Как быть при нуле?