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

Что такое пустая дата?

Пустая дата в 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. При проверке на пустую дату в коде удобнее всего использовать функцию ЗначениеЗаполнено(<Дата>). Функция возвращает Истина, если передаваемое значение не имеет пустое значение.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Отправьте форму и мы вам перезвоним

Отправляя форму вы соглашаетесь с политикой конфиденциальности и даете согласие на обработку персональных данных компании ИП Рыжиченко Антону Ивановичу
Сайт itviar.ru использует cookie для персонализации и хранения настроек.
Отправляя форму вы соглашаетесь с политикой конфиденциальности и даете согласие на обработку персональных данных компании ИП Рыжиченко Антону Ивановичу