Платформа 1С 8.3 ориентирована на удобство разработчиков, поэтому богата встроенными возможностями, включая разнообразные функции. Одной из таких функций для облегчения разработки в 1С является «РАЗНОСТЬДАТ()». Ее использование может сэкономить массу времени при вычислении разницы между датами. У этой функции есть несколько особенностей, и с ними нужно ознакомиться перед использованием в тексте запроса.
Предназначение данной конструкции – выдавать календарную разницу между двумя датами в указанных единицах времени. При работе помните, что количество рабочих дней отличается от календарных. В качестве параметров в функцию разность дат передаются две даты и одно из следующих значений в виде строки:
- Год;
- Квартал;
- Месяц;
- День;
- Час;
- Минута;
- Секунда.
РАЗНОСТЬДАТ(, , )
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2018,09,01), ДАТАВРЕМЯ(2018,09,15), ДЕНЬ)
РАЗНОСТЬДАТ(ДАТАВРЕМЯ(2018,10,01,00,00,00), ДАТАВРЕМЯ(2018,10,05,00,15,10), СЕКУНДА)
В качестве первого параметра функции разность дат необходимо указать дату начала периода, а в качестве второго – окончания. Стоит строго придерживаться этого правила, чтобы в запросе 1С функция отработала корректно. Если перепутать местами даты, то в итоге выполнения запроса получится отрицательное значение.
Результат будет показан именно в выбранных единицах измерения, причем меньшие будут проигнорированы. То есть, если в качестве третьего параметра указан «МЕСЯЦ», то будет отражаться разность месяцев, а дни не будут иметь значения. Если в качестве единицы измерения указаны секунды или минуты, а даты введены без времени, то время считается равным «00:00:00».
Вместо входных параметров функции разностьдат в СКД могут фигурировать переменные. Их значение можно устанавливать как переменные, через команду «УстановитьПараметр()» перед выполнением запроса. Этим пользуются при вводе дат пользователем на форме отчета, документа или обработки.
Также вы можете использовать эту функцию в разделе условий, если вам необходимо отобрать документы, заведенные в пределах определенной даты. Достаточно лишь сравнить полученное количество дней с заранее заданной переменной, и в результат запроса попадут только нужные документы. Подобный прием достаточно часто используется в бухгалтерских отчетах, чтобы обнаружить просроченные или близкие к просроченным документы.
В конструкторе запроса 1С есть удобная возможность посмотреть синтаксис и необходимые параметры для функции РАЗНОСТЬДАТ. Для этого нужно добавить в область полей новое поле и в верхней правой области будет дерево с подсказками по функциям. При перетаскивании функции в нижнее окно 1С подробно напишет, какие подсказки требуются.
Возможность в запросе узнать разницу между датами позволит решить множество задач, не ломая голову. Другие встроенные функции не менее полезны, поэтому, перед тем как придумывать особенно сложный алгоритм, изучите все возможности языка запросов 1С. Это сэкономит вам время, нервы и силы.
консультация эксперта
самые свежие новости 1 раз в месяц