Пустая дата в скд

С помощью языка запросов 1С 8 решаются практически все задачи по получению данных в платформе 1С 8.3 и 8.2. Дата — один из часто используемых типов данных. Рассмотрим, как использовать дату в запросах 1С.

Проверка на пустую дату в запросе 1С 8.3

Проверим значение на пустую дату в запросе 1С.

Например, отберем только не закрытые банковские счета из справочника. Критерий того, что они не закрытые, — наличие пустой даты в поле «ДатаЗакрытия»:

Получите 267 видеоуроков по 1С бесплатно:

ВЫБРАТЬ
БанковскиеСчета.Ссылка
ИЗ
Справочник.БанковскиеСчета КАК БанковскиеСчета
ГДЕ
БанковскиеСчета.ДатаЗакрытия = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

Произвольная дата в языке запросов

Используя функцию ДатаВремя, помимо пустой даты можно указывать и любые другие произвольные даты.

Например, отберем все документы «Счет на оплату покупателю» за месяц, от 1 до 28 февраля:

ВЫБРАТЬ
СчетНаОплатуПокупателю.Ссылка
ИЗ
Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
ГДЕ
СчетНаОплатуПокупателю.Дата МЕЖДУ ДАТАВРЕМЯ(2015, 2, 1, 0, 0, 0) И ДАТАВРЕМЯ(2015, 2, 28, 23, 59, 59)

Текущая дата в запросе

К сожалению, в языке запросов нет аналога метода «ТекущаяДата()», поэтому чтобы получить это значение, его можно передать в запрос с помощью параметра:

Запрос = Новый Запрос;
Запрос.Текст = »
|ВЫБРАТЬ
| СчетНаОплатуПокупателю.Ссылка
|ИЗ
| Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
|ГДЕ
| СчетНаОплатуПокупателю.Дата = &ТекущаяДата«;
Запрос.УстановитьПараметр(«ТекущаяДата», ТекущаяДата());

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

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

Читайте также  Проблема с установкой драйвера видеокарты

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

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

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

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

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

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

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

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

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

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

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

Реклама — двигатель всеобщей дебилизации населения.

Проверка на пустую дату в текстах модулей

Если Дата = ‘00010101’ Тогда
//
КонецЕсли;
или
Если Дата = ‘00010101000000’ Тогда
//
КонецЕсли;
или
Если Дата = ‘0001-01-01’ Тогда
//
КонецЕсли;
или
Если Дата = Дата(1, 1, 1) Тогда
//
КонецЕсли;

Проверка на пустую дату в запросах
ВЫБРАТЬ
ЗаказПокупателя.Ссылка
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
ЗаказПокупателя.Дата = ДАТАВРЕМЯ(1,1,1,0,0,0)
или
ВЫБРАТЬ
ЗаказПокупателя.Ссылка
ИЗ
Документ.ЗаказПокупателя КАК ЗаказПокупателя
ГДЕ
ЗаказПокупателя.Дата = &ПустаяДата;

Ссылка на основную публикацию
Adblock
detector