Записки программиста 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с

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

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

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

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

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

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

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

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

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

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

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