Когда необходимо указывать дату в запросе 1С?
Бывает нужно сравнить некую колонку таблицы базы данных 1С с пустым значением. Пустое значение даты - это не ноль, не Неопределено, не пустая строка. С перечисленными переменными сравнивать нельзя!
Передать или сравнить с пустой датой в запросе нужно по-другому.
Передача пустой даты через параметр запроса
Можно сравнить значение в таблице базы данных 1С с пустой датой, передав ее через параметр.
Например, в таком запросе:
ВЫБРАТЬ ПЕРВЫЕ 1 1 КАК Поле1 ИЗ РегистрСведений.ПланОтправкиЭлектронныхПисем КАК ПланОтправкиЭлектронныхПисем ГДЕ ПланОтправкиЭлектронныхПисем.Лид.Контрагент = &Контрагент И ПланОтправкиЭлектронныхПисем.ДатаОтправкиПлан >= &НачалоТекущегоДня И ПланОтправкиЭлектронныхПисем.ПисьмоОтправлено = &ПустаяДатаВЗапросе И ПланОтправкиЭлектронныхПисем.АвтоотправкаЗапрещенаИзЗаСтатуса = &ПустаяДатаВЗапросе И ПланОтправкиЭлектронныхПисем.ОтправкаОтмененаВручную = &ПустаяДатаВЗапросе
Сравнение с пустой датой указано в условии:
ПланОтправкиЭлектронныхПисем.ПисьмоОтправлено = &ПустаяДатаВЗапросе
Передать ее в параметр следует следующим образом:
Запрос.УстановитьПараметр(“ПустаяДатаВЗапросе”, Дата(1,1,1));
То есть при написании кода в 1С пустую дату задают с помощью кода: Дата (1,1,1);
Если хотите задать непустую дату, то синтаксис следующий:
Дата(Год, НомерМесяца, НомерДня, КоличествоЧасов, КоличествоМинут, КоличествоСекунд);
Использование пустой даты с помощью функции ДАТАВРЕМЯ(1,1,1)
Если хочется обойтись без передачи параметра, сравнить прямо в тексте запроса значение с пустой датой можно следующим образом:
ГДЕ ПланОтправкиЭлектронныхПисем.ПисьмоОтправлено = ДАТАВРЕМЯ(1,1,1)
То есть в языке запросов следует использовать функцию ДАТАВРЕМЯ(). Аналогично синтаксис, если нужно передавать непустую дату, а некую конкретную, следующий:
ДАТАВРЕМЯ(Год, НомерМесяца, НомерДня, КоличествоЧасов, КоличествоМинут, КоличествоСекунд)
Удачи вам в изучении языка разработки 1С:Предприятие!













































