Что такое пустая дата?
Пустая дата в 1С:Предприятие 8.5 (и предыдущих версиях) — это значение типа «Дата», равное 1 января 1 года 00:00:00 по григорианскому календарю. Это значение по умолчанию для полей и переменных типа Дата при отсутствии заполнения.
Инициализация в запросе
В запросе можно инциализировать пустую дату 2 способами:
- напрямую в запросе;
- через параметр.
В запросе это можно сделать с помощью функции ДАТАВРЕМЯ(), которая имеет следующий синтаксис:
ДАТАВРЕМЯ(<Год>, <Месяц>, <День>)В нашем случае получится такой результат:
ВЫБРАТЬ
ДАТАВРЕМЯ(1,1,1) КАК ПустаяДатаПри передачи пустой даты в качестве параметра необходимо использовать функцию ДАТА(<Значение даты>) или инициализировать дату константой. Значение даты может быть задана следующими способами:
- ПустаяДата = ‘00010101’; // 01.01.0001
- ПустаяДата = Дата(«00010101»);
- ПустаяДата = Дата(1, 1, 1);
Таким образом, получаем код:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПустаяДата", Дата(1, 1, 1));
Запрос.Текст =
"ВЫБРАТЬ
| &ПустаяДата КАК ПустаяДата";Проверка на пустую дату
По аналогии с инициализацией, проверку на пустую дату в запросе можно осуществить напрямую в запросе или через параметр.
Пример проверки сразу в запросе:
ВЫБРАТЬ
ВЫБОР
КОГДА НД.Дата = ДАТА(1, 1, 1)
ТОГДА Истина
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК ЭтоПустаяДата
ИЗ
Документ.НашДокумент КАК НДПример проверки на пустую дату в запросе через параметр:
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("ПустаяДата", Дата(1, 1, 1));
Запрос.Текст =
"ВЫБРАТЬ
| ВЫБОР
| КОГДА НД.Дата = &ПустаяДата
| ТОГДА Истина
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ЭтоПустаяДата
|ИЗ
| Документ.НашДокумент КАК НД";P.S. При проверке на пустую дату в коде удобнее всего использовать функцию ЗначениеЗаполнено(<Дата>). Функция возвращает Истина, если передаваемое значение не имеет пустое значение.