При настройке маршрутов в конфигурации 1С:Документооборот КОРП (включая редакцию 2.1) специалисты часто сталкиваются со следующей проблемой: в шаблоне комплексного процесса указан исполнитель, в условиях маршрутизации жестко заданы два конкретных подразделения, однако при запуске процесса задачи начинают сыпаться исполнителю по документам от всех подразделений компании. Проанализируем эту ситуацию и разберем по шагам, как исправить настройки маршрутизации.
Для начала выясним причину такого поведения системы. Чаще всего ошибка кроется не в самом шаблоне процесса, а в настройках роли. Когда мы пытаемся привязать сотрудника к определенному подразделению, мы должны делать это через специализированные механизмы адресации.
Чтобы система понимала, что задачи должны приходить исполнителю только по документам его зоны ответственности (конкретного отдела), у соответствующей роли должен быть включен и настроен ОбъектАдресации. Если в качестве объекта адресации не выбран справочник СтруктураПредприятия или Подразделения, система считает данную роль «глобальной». Это значит, что 1С проигнорирует принадлежность документа к отделу и направит задачу сотруднику просто потому, что он занимает указанную должность в рамках всей компании.
Рассмотрим подробнее, где именно задаются эти параметры. Нам необходимо перейти к связке конкретных пользователей с их ролями и объектами адресации.
РолиИсполнителей.Если в регистре указаны только должность и исполнитель, а поле подразделения пустое или отсутствует, маршрутизация будет работать некорректно. Заполните данные объекты адресации для нужных пользователей.
После настройки ролей давайте посмотрим на сам шаблон процесса. Когда в качестве исполнителя мы выбираем роль с настроенным объектом адресации, мы должны указать системе, откуда брать информацию о подразделении в момент создания задачи.
Как правило, для этого используется механизм автоподстановки. Мы настраиваем систему так, чтобы она автоматически считывала реквизит Подразделение. Источником может служить карточка самого обрабатываемого документа или профиль автора, который запустил процесс. Проверьте настройки этапа в шаблоне: правильно ли указан источник для заполнения объекта адресации исполнителя.
Если логика распределения задач в вашей компании сложнее простой ролевой адресации (например, зависит от суммы документа, его вида или особых полномочий инициатора), воспользуемся отдельными правилами — Условиями маршрутизации.
Эти условия можно настроить в визуальном конструкторе, выбрав нужные реквизиты. Однако для специфических проверок мы можем написать скрипт на встроенном языке 1С. Рассмотрим пример, когда мы хотим направить задачу на согласование вышестоящему руководству, если автор документа не является руководителем этого подразделения.
Пример возможного кода для условия маршрутизации (в режиме скрипта):
Результат = Ложь;
ПользовательАвтор = Предмет.Автор;
ПодразделениеДокумента = Предмет.Подразделение;
// Получаем руководителя подразделения
РуководительОтдела = Справочники.СтруктураПредприятия.ПолучитьРуководителя(ПодразделениеДокумента);
Если ПользовательАвтор <> РуководительОтдела Тогда
Результат = Истина; // Условие сработало, направляем по ветке
КонецЕсли;
Переменная Результат определяет, будет ли выполнено условие (направлена ли задача по конкретной ветке процесса).
В завершение разберем важный технический нюанс. При любых изменениях в ролях исполнителей, добавлении новых вложенных подразделений или изменении полномочий, системе 1С:Документооборот требуется время на обработку данных. За это отвечают РегламентныеЗадания по обновлению прав.
Если у вас сложная иерархия (головной офис и подчиненные отделы), маршрутизация может не сработать на новые вложенные подразделения мгновенно. Убедитесь, что регламентные задания (например, "Обновление прав доступа") отработали без ошибок. Также помните, что автоматическое распространение задачи на вложенные подразделения происходит только в том случае, если это прямо предусмотрено вашими настройками маршрутизации и структурой предприятия в системе.