Записки программиста 1с

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

Пустая дата в запросе 1с задается при даты 01 января 0001 года и функции ДАТАВРЕМЯ().

пустая дата в запросе 1с
Варианты задания пустой даты в запросе 1с

Как задать пустую дату

В системе 1С инициализировать дату как пустую, возможно, задав для такого типа данных значение по умолчанию (никак иначе). Значение по умолчанию для даты это дата начала отсчёта (01 января 0001 года), то есть самая первая дата по григорианскому календарю. Пример функции проверяющей заполненность даты.

Примеры инициализации:

Пустая дата в модулях 1с

Во-первых проверку на пустую дату в модулях 1с можно выполнить при помощи литералов примитивного типа Дата :
ПустаяДата = '00010101';
ПустаяДата = '0001.01.01';
ПустаяДата = '0001-01-01';
ПустаяДата = '0001/01/01';

Во-вторых при помощи функции Дата и значения:

ПустаяДата = Дата("00010101");
ПустаяДата = Дата(1,1,1);

ДатаВремя в запросе 1с

Для указания Даты и Времени в запросе предназначена функция ДАТАВРЕМЯ(

ДАТАВРЕМЯ ( <Целое число>, <Целое число>, <Целое число>[, <Целое число>, <Целое число>, <Целое число>] )
Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываются год, месяц, день, час, минута, секунда. Последние три указывать необязательно.

Максимальная дата которую возможно задать при помощи литерала ДАТАВРЕМЯ – 31.12.3999 23:59:59.

Как задать дату-константу в запросе 1С?

ДАТАВРЕМЯ(2024, 9, 1)

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

// С помощью ДАТАВРЕМЯ()
"ВЫБРАТЬ
|          ДАТАВРЕМЯ(1, 1, 1) КАК ПустаяДата"
|  ....

// ИЛИ Передать пустую дату в запрос в виде параметра
"ВЫБРАТЬ
// ... выбираемые поля
|ГДЕ
|          Таблица.ДАТА = &ПустаяДата"
Запрос.УстановитьПараметр("ПустаяДата", Дата(1,1,1));

Как получить дату без времени

НАЧАЛОПЕРИОДА(&ТекущаяДата,ДЕНЬ)

Как добавить к дате в запросе

ДОБАВИТЬКДАТЕ(началоПЕРИОДА(&ТекущаяДата, год), ДЕНЬ,305)

ДОБАВИТЬКДАТЕ(началоПЕРИОДА(&ТекущаяДата, год), ДЕНЬ,305)
ВЫБРАТЬ
	НАЧАЛОПЕРИОДА(БольничныйЛист.Дата, ДЕНЬ) КАК Поле1,
	ВЫБОР
		КОГДА РАЗНОСТЬДАТ(БольничныйЛист.Дата,&ТекущаяДата,  ДЕНЬ) > 365
			ТОГДА ДОБАВИТЬКДАТЕ(началоПЕРИОДА(&ТекущаяДата, год), ДЕНЬ,305)
		ИНАЧЕ БольничныйЛист.Дата
	КОНЕЦ КАК Поле2,
	РАЗНОСТЬДАТ(&ТекущаяДата, БольничныйЛист.Дата, ДЕНЬ) КАК Поле3
ИЗ
	Документ.БольничныйЛист КАК БольничныйЛист
ГДЕ
	БольничныйЛист.Ссылка = &Ссылка

Ошибка обработки представления в СКД

({(&ПериодНеИспользовать)}, )

пустая дата в запросе. Сравнение с пустой датой.

Сравнение с пустой датой производиться с помощью синтаксической конструкции ВЫБОР – КОГДА – ТОГДА – ИНАЧЕ. Подробнее об операторе ВЫБОР можно узнать в следующей статье: ВЫБОР.

        |ВЫБОР
	|	КОГДА АнкетаАбитуриентаПодачаЗаявлений.Ссылка.ДатаПолученияУведомления = ДАТАВРЕМЯ(1, 1, 1)
	|		ТОГДА ""-""
	|	ИНАЧЕ ""+""
	|КОНЕЦ КАК Оригинал

В данной статье рассмотрены примеры работы с Пустой датой в 1с.

Добавить комментарий

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