Как реализовать ветвление бизнес-процесса с выбором более чем из двух вариантов в 1С:Документооборот 2.1?

Программист 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

В процессе настройки Комплексного процесса в 1С:Документооборот 2.1 часто возникают задачи, требующие сложной маршрутизации. Стандартный функционал платформы для настройки условий может показаться ограниченным, так как визуальный редактор чаще всего предлагает бинарную логику (Да/Нет). Рассмотрим, как профессионально и надежно реализовать выбор из трех и более направлений.

Реализация через дополнительные реквизиты документа

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

  1. Создайте в карточке документа Дополнительные реквизиты (например, флажки или поле с типом СправочникСсылка.ВидыПодписей).
  2. Настройте процесс так, чтобы на начальном этапе пользователь проставлял необходимые значения (флажки), определяющие дальнейший маршрут.
  3. Внутри Комплексного процесса на этапе выбора пути установите Условие маршрутизации, которое обращается к этим реквизитам.

Такой подход делает маршрут прозрачным: любой пользователь или администратор, открыв документ, сразу увидит, какой статус был присвоен и по какой ветке пойдет процесс. Это исключает путаницу, которая часто возникает при «слепых» каскадах условий.

Использование каскадных условий (бинарных развилок)

Если нет возможности дорабатывать структуру документа, мы можем прибегнуть к каскадной логике. Хотя этот метод требует внимательности, он позволяет добиться нужного результата средствами типового функционала:

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


Если ВыбраноА Тогда
    Маршрут = А;
Иначе
    Если ВыбраноБ Тогда
        Маршрут = Б;
    Иначе
        Маршрут = В;
    КонецЕсли;
КонецЕсли;

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

Автоматизация выбора через условия маршрутизации

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

Разберем, как это работает:

Рекомендации по архитектуре процесса

Чтобы ваш бизнес-процесс не превратился в «зверя», которого невозможно поддерживать, придерживайтесь следующих правил:

Модульность — это ключ к успеху. Не старайтесь запихнуть всю логику компании в один гигантский Комплексный процесс. Если процесс стал слишком громоздким, разделите его на несколько подпроцессов. Основной процесс будет выполнять роль «диспетчера», запуская нужные ветки в зависимости от условий.

Статусная модель — опирайтесь на состояния документа. Вместо того чтобы хранить состояние в памяти процесса (в «переменных» процесса), используйте Дополнительные реквизиты как статусы. Это позволит вам проводить расследование инцидентов: если процесс ушел «не туда», вы всегда сможете посмотреть историю изменений реквизита в карточке документа.

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

Подводя итог, можно сказать, что выбор между каскадными условиями и статусными реквизитами зависит от сложности вашей задачи. Для большинства стандартных случаев в 1С:Документооборот 2.1 использование Дополнительных реквизитов является наиболее предпочтительным и легко масштабируемым решением.

← На главную