Капитально об программе 1С 8.0-8.3-8.4, 7.7

Пустая дата в запросе в 1С

Значение пустой даты — когда дата не выбрана, можно получить в запросе через функцию ДАТАВРЕМЯ() или передать в качестве параметра запроса.

Как получить пустую дату?

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

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

Запрос.Текст = "ВЫБРАТЬ ДАТАВРЕМЯ(1, 1, 1) КАК ПустаяДата

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ  ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ     ДАТАВРЕМЯ(0001, 01, 01, 0, 0, 0)

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ  &ПустаяДата";

В данном запросе в выборку попадут 4 значения пустой даты.

Вот интересный вариант, которым в запросе можно получить пустую из произвольной даты (в примере дату мы инициализировали произвольной для универсальности запроса)

ВЫБРАТЬ ДобавитьКДате(ДатаВремя(2016,10,1),ГОД,-3000) КАК ПустаяДата

В данном случае, вычитая 3000 лет, мы привели значение к пустой дате (в примере достаточно отнять 2017 лет, чтобы получить).

На практике не рекомендуется использовать такие неявные преобразования, так как в какой-нибудь платформе или операционной системе это может отработать неверно.

Спасибо за внимание!