Перейти к содержанию

Новая система замещения

В TESSA есть возможность включить новую систему замещения. Она не работает вместе со старой, а полностью заменяет собой старую систему замещения.

Для её включения необходимо:

  1. В карточке “Настройки сервера” установить флаг “Использовать новую систему замещения”.
  2. Запустить Chronos для полного перерасчёта заместителей.

Основные отличия новой системы замещения от старой:

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

    Поддерживаются следующие комбинации наследования замещения:

    • Замещаемый -> Заместитель 1 (без указания типов документов) -> Заместитель 2 (без указания типов документов);
    • Замещаемый -> Заместитель 1 (без указания типов документов) -> Заместитель 2* (по типам документов);
    • Замещаемый -> Заместитель 1 (по типам документов) -> Заместитель 2* (без указания типов документов);
    • Замещаемый -> Заместитель 1 (по типам документов) -> Заместитель 2* (по типам документов).

    В указанных примерах Заместитель 2 получит доступ ко всем заданиям Замещаемого, а Заместитель 2* получит доступ к заданиям с учетом настроенных типов документов для замещений.

  4. Не используется таблица RoleDeputies для расчёта заместителей.

  5. При отправке задания на контекстную роль не создаётся временная роль. В качестве функциональных ролей задания добавляется сама контекстная роль и сотрудники, которых вернёт контекстная роль при отправке задания.

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

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

  • В представлениях задействуйте конструкцию с условием #if(DeputiesSettings.UseDeputyRoleSeparation). При использовании старой системы замещения условие вернёт true, а при использовании новой - вернёт false.
  • В коде расширения выполните Resolve объекта IDeputiesManagementSettingsProvider из контейнера Unity, чтобы получить объект с настройками через метод GetSettingsAsync, и в полученном объекте проверьте значение свойства UseRoleDeputies. Если данное свойство имеет значение true, то используется таблица RoleDeputies и старая система замещения, в противном случае используется новая система замещения (без таблицы RoleDeputies).
Back to top