Содержание:
1. Понятие пустой даты на платформе 1С 8 Предприятие
2. Пустая дата 1С в текстах модулей обработчиков
1. Понятие пустой даты на платформе 1С 8 Предприятие
В технологической платформе «1С:Предприятие 8» не существует понятия "пустая" переменная. Любая переменная всегда имеет определенное значение. Для многих типов данных в 1С:Предприятии 8 существуют значения переменной по умолчанию. Эти значения используются системой в тех случаях, когда нет явного указания на устанавливаемое значение.
Например, значение переменной по умолчанию используется при очистке поля ввода.
Инициализировать переменную даты как пустую в 1С, можно, задав для такого типа данных только значение по умолчанию. Значение даты по умолчанию это дата начала отсчёта (01 января 0001 года), то есть самая первая дата по григорианскому календарю.
Очень часто при разработке прикладного решения необходимо проверить является ли поле с типом «Дата» или переменная, в которой хранится значение с этим типом, пустыми. Есть несколько способов выполнить проверку на пустое значение (проверку на пустую дату) в 1С.
2. Пустая дата 1С в текстах модулей обработчиков
Существует несколько вариантов инициализации пустой даты в 1С 8.3 для текстов модулей:
1. ЕслиДата= '00010101'Тогда
2. ЕслиДата= '00010101000000'Тогда
3. ЕслиДата= '0001-01-01'Тогда
4. Если Дата = Дата(1, 1, 1) Тогда
5. Если Дата = Дата(1, 1, 1, 0, 0, 0) Тогда
6. Если Не ЗначениеЗаполнено(Дата) Тогда
В последнее время набирает популярность конструкция:
Если Не ЗначениеЗаполнено(Дата) Тогда
В этом случае не нужно проверять последовательность и количество символов как в случае с конструкцией
Дата(1, 1, 1, 0, 0, 0)
А в случае использования конструкции
'00010101000000'
возникает проблема с символом «'». Его не так просто отыскать на клавиатуре. Особенно для начинающих разработчиков.
3. Пустая дата в запросе 1С
Значение пустой даты в запросе в 1С 8.3—когда дата не выбрана, можно получить в запросе через функцию ДАТАВРЕМЯ() или передать в качестве параметра запроса.
1. ГДЕДата= ДАТАВРЕМЯ(0001,01,01,0,0,0)
2. ГДЕДата= ДАТАВРЕМЯ(1,1,1)
3. ГДЕДата= &ПустаяДата
Запрос.УстановитьПараметр("ПустаяДата", '00010101');
Специалист компании «Кодерлайн»
Олег Труфанов