Show/Hide Toolbars

Справочник по интерфейсу администратора



Алгоритм расчета срока

Ссылки Назад Вверх Вперед E-mail

При расчете срока выполнения задач, срока обработки подписи и других аналогичных задач используются функции добавления рабочих дней/часов/минут. Такие функции доступны при редактировании смарт-выражений (ДобавитьРабочихДней, ДобавитьРабочихЧасов, ДобавитьРабочихМинут) и при разработке хранимых процедур (tc_AddWorkingDays, tc_AddWorkingHours, tc_AddWorkingMinutes).

При расчете сроков используются точка отсчета (например, момент запроса подписи) и интервал времени (например, время, выделенное на обработку подписи), а также учитываются системные параметры из Общих настроек приложения: Рабочее время (с... по...) и Рабочих часов в дне, и системный Производственный календарь (для определения рабочих и выходных/праздничных дней)

Алгоритм расчета срока основан на следующих правилах:

Правило

Пример

Пояснения

1

Если точка отсчета приходится на нерабочее время (до начала рабочего дня, после окончания рабочего дня или на выходной день), то она сдвигается на начало ближайшего рабочего дня.

duedates_1

Подпись запрошена в 08:00,
точка отсчета переносится на 10:00.

Подпись запрошена в 20:00,
точка отсчета переносится на 10:00 следующего рабочего дня.

Подпись запрошена в 15:00 в субботу,
точка отсчета переносится на 10:00 понедельника.


2

Обычно время от начала до конца рабочего дня больше чем продолжительность рабочего дня, т.е. в середине дня предусмотрен перерыв (например, рабочий день с 10:00 до 19:00, а продолжительность рабочего дня 8 часов – в середине дня есть 1 час перерыва). Но поскольку конкретные часы перерыва неизвестны, считается, что сотрудник может взять перерыв в любое время, даже в самом начале дня. Поэтому если срок переходит на другой рабочий день, время начала рабочего дня сдвигается на время перерыва (например, вместо 10:00 отсчитывается от 11:00).

2.1

Если точка отсчета и срок приходятся на один и тот же день и интервал времени меньше продолжительности рабочего дня, время на перерыв не учитывается.

duedates_2

Точка отсчета – 12:00,
интервал времени – 4 часа,
расчетный срок – 16:00.


2.2

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

duedates_3

Точка отсчета – 16:00,
интервал времени – 4 часа,
расчетный срок – 12:00 следующего рабочего дня.

С 16:00 до 19:00 – 3 часа,
затем к началу следующего рабочего дня прибавляется 1 час перерыва – 11:00,
с 11:00 до 12:00 - оставшийся 1 час

3

Если интервал времени больше продолжительности рабочего дня, то есть содержит один или несколько рабочих дней, то вместо продолжительности каждого рабочего дня при расчете откладываются сутки.

3.1

Интервал времени равен продолжительности рабочего дня.

duedates_4

Точка отсчета – 14:00 1 октября 2018,
интервал времени – 8 часов,
расчетный срок – 14:00 2 октября 2018.


3.2

Интервал времени больше одного рабочего дня, но остаток не переходит на следующий рабочий день.

duedates_5

Точка отсчета – 14:00 1 октября 2018,
интервал времени – 12 часов,
расчетный срок – 18:00 2 октября 2018.

12 часов = 8 часов (продолжительность рабочего дня) + 4 часа.

К 14:00 прибавляются сутки – 14:00 следующего рабочего дня,
затем к этому времени прибавляются оставшиеся 4 часа – 18:00.

3.3

Интервал времени больше нескольких рабочих дней, но остаток не переходит на следующий рабочий день.

duedates_6

Точка отсчета – 14:00 1 октября 2018,
интервал времени – 18 часов,
расчетный срок – 16:00 3 октября 2018.

18 часов = 16 часов (продолжительность двух рабочих дней) + 2 часа.

К 14:00 1 октября прибавляются двое суток – 14:00 3 октября,
затем к этому времени прибавляются оставшиеся 2 часа – 16:00.

3.4

Интервал времени больше рабочего дня, и остаток переходит на следующий день.

duedates_7

Точка отсчета – 18:00 1 октября 2018,
интервал времени – 12 часов,
расчетный срок – 14:00 3 октября 2018.

12 часов = 8 часов (продолжительность рабочего дня) + 4 часа.

К 18:00 1 октября прибавляются сутки – 18:00 2 октября,
затем к этому времени прибавляется 1 час, оставшийся до конца данного рабочего дня – 19:00 2 октября,
при переходе на следующий день к началу рабочего дня прибавляется 1 час перерыва – 11:00 3 октября,
затем прибавляются оставшиеся 3 часа – с 11:00 до 14:00.