Работа с датами в 1С

Вычисление разницы между датами в языке 1С (в запросах есть для этого свои удобные операторы).

Изначально даты в 1С включают время в секундах. Соответственно разница между датами также будет в секундах. Чтобы посчитать разницу в днях, но даты привести к началу дня и разницу делить на количество секунд в сутках.

РазницаВДнях = (НачалоДня(ДатаОкончания) - НачалоДня(ДатаНачала)) / (60 * 60 * 24);

https://its.1c.ru/db/metod8dev/content/2413/hdoc

 

В модулях 1С приведение дат к началу дня, недели, месяца, года.

https://www.about1c.ru/v83/language-reference/date-functions/function-end-of-day

Функции НачалоДня, КонецДня, НачалоМесяца, КонецМесяца...

НачПериода = НачалоДня(ПериодОтчета); КонПериода = КонецДня(ПериодОтчета);

 

В запросах приведение даты к началу дня делается оператором НАЧАЛОПЕРИОДА(Реквизит, Период)

Пример:

|ГДЕ
| (Взаиморасчеты.Регистратор ССЫЛКА Документ.ПриходнаяНакладная
| ИЛИ Взаиморасчеты.Регистратор ССЫЛКА Документ.ВозвратТоваровПоставщику)
| И Взаиморасчеты.ДоговорКонтрагента.Владелец = &ВыбКонтрагент
| И НАЧАЛОПЕРИОДА(Взаиморасчеты.Период, ДЕНЬ) = &ВыбДата";

 

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

ГДЕ
(Превышения.Регистратор.Дата МЕЖДУ &НачДата И &КонДата)

 

Вычисление разниц между датами в запросе

РАЗНОСТЬДАТ(<Дата1>, <Дата2>, <Тип>)

ДОБАВИТЬКДАТЕ(&Дата1, ДЕНЬ, -1)

Смотри детали тут https://www.koderline.ru/expert/narabotki/article-funktsiya-1s-raznostdat/