Недокументированная возможность у функции Дата()
Очередная багофича
Д = Дата("100.1.2022 0:0:0"))
Этот кусок кода получит дату:
0 января 2022 + 100 дней = 10.04.2022 0:00:00
То есть, если число дней больше, чем существующих в месяце, то 1С работает по принципу ДобавитьКДате(). Просто добавляет к дате число дней, каждый раз при переполнении переходя к следующему месяцу.
Ещё пример:
Д - Дата("1.3.2022 0:0:-1")
Данный кусок кода породит дату по формуле:
1 марта 2022 года - 1 секунда
Т.е. , мы получим конец последнего дня февраля 22 года. Здесь мы уже вычитаем 1 секунду. И тем самым получаем конец февраля.
Но при этом, если порог доступной в 1С даты превышен, то мы получаем пустое значение.
Сообщить(Дата("1.1.9999999999 0:0:0"));
Результатом будет пустая дата. Не ошибка (что опять таки довольно странно). Просто пустая дата.
Так что, используя платформенный метод Дата(), помните, что он может сработать не совсем так, как вы предполагаете. Особенно, когда в метод передаются данные “из вне” 😁