Даты в 1С:Предприятие 8

В 1С:Предприятии 8 используется несколько типов для указания точки на временной оси: дата, момент времени, граница. Разберемся в чем разница между этими типами.

Дата

Тип Дата всегда включает в себя дату и время с точностью до секунды.
При создании реквизитов объектов и реквизитов форм можно ограничить ввод допустимых значений, задав свойство «состав даты»:

  • Дата — можно вводить только дату, время всегда будет равно «00:00:00»;
  • Время — можно вводить только время, дата всегда будет равна «0001.01.01»;
  • Дата и время — можно вводить и дату, и время.

Вне зависимости от указанного свойства «состав даты», в базе данных дата хранится в едином формате, с точностью до секунды.

Как программно указать конкретную дату

В языке 1С можно задать с помощью:

  • литерала типа Дата;
  • функции Дата().

Литерал типа дата представляет собой строку цифр вида ‘ГГГГММДДччммсс’, заключенную в одинарные кавычки, например:

НужнаяДата = ‘20170911142955’;

Час, минуту и секунду указывать не обязательно.
В литерале даты допускается использование различных разделителей:

НужнаяДата = ‘2017-09-11 14:29:55’;

Функция Дата() имеет два варианта синтаксиса:

НужнаяДата = Дата(«20170911142955»);
НужнаяДата = Дата(2017, 09, 11, 14, 29, 55);

Пример указания пустой даты:

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

Как указать конкретную дату в запросе

В запросе для указания даты можно использовать:

  • оператор ДАТАВРЕМЯ(<год>, <месяц>, <день>, <час>, <минута>, <секунда>);
  • значение переданного параметра.

ВЫБРАТЬ
ДАТАВРЕМЯ(2017, 9, 11, 14, 29, 55) КАК ПримерДаты1,
ДАТАВРЕМЯ(2017, 9, 11) КАК ПримерДаты2,
&ПараметрДата КАК ПримерДаты3

Момент времени

Момент времени содержит дату, время и ссылку на объект базы данных, что позволяет однозначно идентифицировать объект на оси времени. Примеры получения момента времени:

Момент = Новый МоментВремени(ДокументСсылка.Дата, ДокументСсылка);
Момент = ДокументСсылка.МоментВремени();

Граница

Граница содержит точку на оси времени (например, секунду) и вид границы этой точки (Включая, Исключая).

Данный тип используется в тех случаях, когда важно указание включения или исключения граничного значения, например, при получении остатков в запросе.

Граница = Новый Граница(Дата, ВидГраницы.Включая);

Оцените статью