Работа с датами в 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/