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