Выбор согласующих

Состав согласующих может определяться различными способами. Количество доступных способов зависит от вида используемого согласования — Усовершенствованное согласование предоставляет больше способов выбора согласующих.

Чтобы определить список согласующих:
  1. Создайте новую или откройте существующую карточку этапа.

  2. Перейдите на вкладку Параметры этапа.

  3. Определите способ выбора согласующих.

Обычное согласование

В обычном согласовании согласующих можно назначить следующими способами:

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

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

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

  • Если БП не задан, согласующий выбирается из поля (если поле заполнено).

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

Усовершенствованное согласование

В усовершенствованном согласовании согласующих можно назначить следующими способами:

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

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

Вычисление согласующих при помощи бизнес-процессов не поддерживается в усовершенствованном согласовании.

Выбор сотрудников вручную

Если предполагается явно выбирать сотрудников из Справочника сотрудников:
  1. Выберите согласующих в поле выбора согласующих.

    Выбор согласующих из "Справочника сотрудников"
    Рисунок 1. Выбор согласующих из "Справочника сотрудников"
В качестве согласующих могут быть выбраны следующие значения из "Справочника сотрудников":
  • Сотрудник.

  • Организация или подразделение.

  • Группа.

  • Роль.

  • Последние использованные значения — одно из введённых ранее значений.

  • Поисковые слова:

    Руководитель инициатора

    Будет найден руководитель, указанный в карточке сотрудника-инициатора согласования. Если руководитель не указан в карточке сотрудника, будет поиск продолжается, будет выбран руководитель подразделения, в котором состоит сотрудник. Если в подразделении, в котором состоит сотрудник руководитель не указан, то ищем руководителя подразделения, находящегося выше по иерархии. Поиск продолжается выше по иерархии, пока не находится руководитель. Как только руководитель находится, он записывается в поле карточки, и поиск прекращается.

    В поле Уровень иерархии укажите целое числовое значение, обозначающее уровень в иерархии.

    Порядок определяется снизу вверх. Например, уровень непосредственного руководителя — 1. Если указан уровень иерархии 2, поиск выполняется сразу по руководителю подразделения, в котором состоит сотрудник. Если у подразделения, в котором состоит сотрудник не указан руководитель, то поиск продолжается по иерархии. Найденные руководители не суммируются.

    Все руководители инициатора

    Будут найдены сотрудники, которые указаны в Справочнике сотрудников как непосредственные и вышестоящие руководители сотрудника-инициатора согласования.

    Инициатор

    Будет указан сотрудник, который создал согласование из карточки Документ.

    Регистратор

    Будет указан сотрудник, который создал карточку вида Документ УД, и зарегистрировал документ в системе Docsvision.

Выбор сотрудников из поля карточки документа

Если предполагается указывать сотрудников из определённого поля в структуре карточки:
  1. Выберите Документ, поле или секцию карточки, из которого следует загружать данные о сотрудниках, в Поле документа.

    Выбирать можно также динамические поля и секции. После создания данных полей в Конструкторе разметок, перезапустите сервис Workflow, чтобы бизнес-процессы работали корректно.

Выбор сотрудников бизнес-процессом

Вычисление согласующих при помощи бизнес-процессов не поддерживается в усовершенствованном согласовании. Если другие способы не заданы, согласующие не будут определены.
Если предполагается использовать бизнес-процесс для поиска сотрудников:
  1. В поле Бизнес-процесс выберите шаблон бизнес-процесса, который должен быть запущен при старте этапа.

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

    Чтобы передавать и получать переменные из процесса, который определён как источник согласующих, в этом процессе необходимо создать набор переменных. Данные переменные должны совпадать по имени и типу с переменными в родительском процессе. В зависимости от типа маршрутизации этапа это будет или КС Подпроцесс параллельное согласование или КС Подпроцесс последовательное согласование.

    В подключаемом бизнес-процессе должна быть настроена переменная-коллекция типа Сотрудник DV с названием Согласующие. Именно в неё будут записаны вычисленные процессом сотрудники. Чтобы стало возможным передавать значения переменных из родительских процессов, в настройках переменной необходимо нажать кнопку Дополнительно и в открывшемся окне снять флаг Скрыта от родительского процесса.

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

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

Выбор сотрудников при помощи специального сервиса логики этапа

Специальный сервис логики этапа может переопределять или дополнять логику этапа. Использование сервиса настраивается на вкладке Специальная логика этапа.

Использование специального сервиса логики этапа не поддерживается в обычном согласовании.
Специальный сервис логики этапа позволяет:
  • Определить согласующих этапа.

  • Задать дополнительные параметры заданий этапа (указать контролёра, определить сроки, текст заданий и прочее).

  • Выполнить определённые действия в любой момент этапа:

    • До запуска.

    • При запуске или завершении заданий.

    • При завершении этапа.

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

Чтобы указать специальный сервис логики этапа:
  1. Создайте собственный специальный сервис логики этапа в формате .dll можно с помощью Visual Studio актуальной версии.

  2. В карточке этапа перейдите на вкладку Специальная логика этапа.

  3. В области Специальный сервис логики этапа найдите поле Имя сервиса и нажмите на кнопку Три точки.

  4. Выберите из файловой системы файл .dll, содержащий специальный сервис логики этапа.

  5. При необходимости добавьте комментарий для сервиса.

  6. Если планируется использовать специальный сервис логики этапа для усовершенствованного согласования в Web-клиенте, сборку сервиса необходимо добавлять в каталог Web-клиента и каталог Службы фоновых операций.

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

Методы, обрабатывающие специальный сервис логики этапа, содержатся в классах ApprovalStageEventHandlerService и ApprovalStageService. Пример сервиса см. в документации Web-клиента, раздел "Специальный сервис логики этапа согласования".