Один из самых частых вопросов при запуске документа в обработку - "какой маршрут?" и "кто будет согласовывать?".
Алгоритмы программы таковы, что согласующие вычисляются в момент старта процесса, а если используется схема комплексного процесса со множеством действий и между действиями согласования есть разрыв (другие действия), то и вовсе виза согласующего появится после выполнения предыдущего действия. Пользователи вынуждены помнить или догадываться о порядке согласования документа. Если есть условия маршрутизации, то такая задача вовсе превращается в квест.
Частично эту проблему можно решить, добавив механизм просмотра согласующих до старта процесса, который описан ниже. Алгоритм не вычисляет весь маршрут документа, только согласующих, что вполне достаточно для ответа на поставленный вопрос.
Как работает (очень кратко):
1. Получаем все действия процесса и ищем среди них согласование.
2. Если согласования нет, тогда в результате список согласующих пуст.
3. Формируем дерево действий шаблона процесса от старта до завершения.
3. Идём снизу верх, проверяя условия маршрутизации, пытаясь найти все возможные пути прохождения от точки "Завершение" до точки "Старт".
4. Если какая-либо ветка не дошла до точки "Старт" - она исключается.
5. В итоге должна остаться одна ветка, движение по которой (с учетом условий маршрутизации) приведёт от конца к началу процесса (и, соответственно, наоборот).
6. По данной ветке из действий согласования собираем список согласующих, роли, вычисляем автоподстановки и всё это помещается в таблицу значений с указанием порядка согласования (вместе, после).
7. Итоговая таблица значений и есть список согласующих.
Обработка выглядит следующим образом:
Она предназначена для демонстрации работы.
Сначала нужно указать предмет - доступен выбор внутреннего или исходящего документа.
После выбора предмета нажать "Показать согласующих". В этот момент обработка получит список возможных (доступных для пользователя) шаблонов согласования и шаблонов комплексных процессов и вычислит список согласующих для первого шаблона из списка.
Если шаблонов будет несколько, то можно выбрать нужный из списка и повторно нажать "Показать согласующих":
Даже если маршрут будет таким:
Программа всё равно вычислит согласующих.
Как это использовать?
Наличие данного модуля позволяет преобразить, например, закладку "Визы" в карточке документа:
Этой доработки в публикации нет, но это пример того, как может выглядеть документ с использованием данного расширения, если соединить его с таблицей виз.
Как видно из скриншота, документ не отправлен в обработку, о чем свидетельствует надпись, виз согласования нет, но список согласующих уже доступен для просмотра и выстроен в том порядке, в котором пользователи будут согласовывать. Поэтому, пользователю достаточно записать документ и перейти на закладку "Визы", где можно увидеть кто будет согласовывать документ.
Чего нет, ограничения, минусы:
1. В алгоритм просмотра заложены только комплексные процессы и согласование. "Обработка внутреннего документа" или комплексный процесс в другим вложенным процессом - это работать не будет.
2. Для работы документ (предмет) должен быть записан. К сожалению, без этого не получится вычислить условия маршрутизации.
Данный алгоритм тестировался на ДО КОРП 2.1.27.1, версия платформы 8.3.15.2107, режим совместимости 8.3.14.
Инструмент представлен как есть и достаточен для выполнения описанной работы.