Календарь праздников. Настройка и использование


Для контроля сроков исполнения задач, назначаемых на пользователей, в Comindware Platform существует встроенный функционал, который позволяет в настройках задачи указать количество времени, вплоть до секунд, за которое пользователь должен её выполнить. Но бывают случаи, когда сроки, в которые должна быть выполнена задача, необходимо установить с учётом рабочих дней.

Для этого существуют функции WORKDAYS() и WORKHOURS(), которые возвращают дату на основании количества рабочих дней или часов с определённой даты. Однако у этих функций есть ограничение: они учитывают только выходные и не учитывают праздничные дни. Поэтому в данных функциях есть возможность прописать список дат, которые являются нерабочими. Чтобы не прописывать все праздничные даты внутри функции, рекомендуем создать отдельный справочник с календарём выходных и праздничных дней и при написании выражения с WORKDAYS() и WORKHOURS() ссылаться на него.

Порядок настройки

  1. Создайте шаблон записи «Календарь выходных и праздничных дней».

  2. Создайте атрибут типа «Дата и время» и назовите его «Дата».

  3. Настройте форму и таблицу, вынеся на них созданный атрибут.

  4. Заполните шаблон записи. Перейдите на таблицу, нажмите кнопку «Создать» и в поле «Дата» выберите один из праздничных дней, например, 1 января текущего года.

  5. Аналогично создайте записи под все праздничные дни, которые есть в текущем году (для последующих лет также нужно будет создать отдельные записи в справочнике).

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

WORKHOURS(NOW(),18,DURATION("PT9H"),DURATION("PT9H"),LIST((from a in db->holliday_calendar select a->Data))) 

Синтаксис

Здесь:

Значение Описание
holliday_calendar Системное имя шаблона записи, созданного в п. 1.
Data Системное имя атрибута, созданного в п. 2.

Данная формула расшифровывается следующим образом: начиная с текущего момента (когда процесс создал задачу), отсчитай 18 рабочих часов (продолжительность выполнения задачи), учитывая, что рабочий день стартует в 9 часов утра и длится 9 часов, и учитывая все исключения, указанные в календаре праздников.

То есть если задача будет создана 22 февраля 2023 года в 09:00, то с учётом календаря праздников и выражения, указанного в настройках задачи, крайний срок выполнения задачи будет указан 27 февраля 2023 года в 18:00.

Примечание

  • Продолжительность рабочего дня, то есть сумма третьего и четвёртого аргументов функции WORKHOURS(), не может превышать 24 часа.
  • Если в календарь праздников добавить выходной день (субботу или воскресенье), то при вычислении выражения он будет рассматриваться как рабочий.
К началу


Номер Статьи: 5369
Размещено: Thu, Nov 10, 2022
Последнее обновление: Sat, Jun 20, 2026

Online URL: https://kb.comindware.ru/article/kalendar-prazdnikov-nastrojka-i-ispolzovanie-5369.html