Ограничения: Текущая реализация имеет некоторые отступления от нотации: не поддерживается вариант слияния результатов нескольких функций в одно событие через унарную операцию AND / OR / XOR, также не поддерживается ветвление одного события на несколько функций через унарные операции AND / OR / XOR. Не поддерживаются подпроцессы (почему см. в конце). Не поддерживается назначение несколько ролей на одну функцию (шаг процесса), но это скорее ограничение текущей реализации шагов процессов в СППР. Кроме этого для красивого отображения применяются несколько недокументированные возможности платформы, которые рано или поздно разработчики платформы могут ограничить.
На версиях ранее 8.3.17.1549 возможны некорректные сохранения схемы в картинку и некорректное отображение схемы в веб клиенте (браузер). Опубликованное расширение для версии СППР 2.0.7.3, возможно, потребуется обновить формы справочников "Процессы" и "Шаги процессов"
В первую очередь хочу выразить благодарность автору статьи Программное создание графических схем (v.2): API для ГрафическойСхемы его наработки были использованы в процессе разработки решения.
При разработке преследовались 2 основных цели:
1. Получение матрицы ролей и полномочий из заполненных процессов и их шагов.
2. Автоматическая отрисовка описанных процессов в нотации EPC - формирование связей между функциями и событиями и расположение функций в процессе добавления новых событий в справочник и привязке их к функции.
Что было изменено и доработано:
1. В элемент справочника процессы и шаги процессов были добавлены вкладки "Схема процесса" и "Схема шага процесса":
2. Добавлен справочник "События" и сопутствующий ему регистр сведений "Связи"
3. На основной вкладке справочника процессы вместо текстовых полей "Когда стартует" и "Чем завершается" списки событий - входов в процесс и исходящие события
4. У элемента "Шаг процесса" добавлена вкладка "События", где редактируется состав входящих и исходящих событий функции.
5. Добавлена закладка "Входящие и исходящие данные", в числе "Видов данных" могут быть: "Электронный документ", "Документ на бумаге", "Прочие данные" и "Электронный документ системы" (ЭДС), где для первых 3х вариантов в данные выбирается элемент из произвольного справочника, подчинённого произвольному справочнику "Учётные системы", а в качестве данных для варианта ЭДС выступают метаданные системы, загруженные в текущий проект. Документы из произвольного справочника отображаются серым, метаданные отображаются бирюзовым цветом:
Пользователь заполняет шаг процесса - в схеме прорисовка производится автоматически. Алгоритмы размещения элементов стремятся к тому, чтобы функция со всеми её элементами занимала как можно меньше места. При наличии большого количества входящих и исходящих данных схема растёт в высоту и в ширину автоматически:
В некоторых случаях линии связей выводятся не в очень удобном месте, квадратики и связи можно "подвигать" при записи схемы процесса (элемент справочника Процессы) эта ручная подстройка запоминается, однако если нажать на "Обновить схему процесса" будет отрисовано "По умолчанию".
Если вход одного процесса является выходом другого, то на схеме вместо внешний вход и внешний выход отображается имя связанного процесса.
Экспорт в MS Visio не предусмотрен, однако формат хранения схем в JSON достаточно прост, и при понимании формата можно наверно экспортировать в любой формат. Если у кого-то есть толковые ссылки на расшифровку формата MS Visio, буду признателна.
Надо отметить, как это ни печально, что предлагаемая разработка не проходила обкатку ни в ОПЭ, ни в ПЭ в силу того, что требование отрисовки процессов в проекте, для которого разработка делалась, было заказчиком снято, а руководители проекта, в силу недостаточности ресурсов, спустили всё на тормозах :) , однако определённое стресс тестирование всё же проводилось (см. выше фрагмент схемы с большим количеством элементов). Таким образом, само решение было сделано ещё год назад, но не публиковалось, в надежде на обкатку в новых проектах.
На 25.11.2024 решение, не смотря на его ограничения (которые достаточно легко обходятся) успешно использовано в нескольких ERP проектах: ООО ЦИТ (Литейный), а так же для автоматизации внутренних процессов ГК Трайтек 1C:ERP+PM+CRM.
Почему не реализовали подпроцессы: в СППР 2.0.1.58, для которой изначально создавалось решение, поддержка подпроцессов в выгрузке сценариев тестирования отсутствовала, и поскольку кроме 2 основных целей очень хотели, чтобы по процессам собирались автотесты с учётом последовательности событий по сценарию, заморачиваться с подпроцессами не стали.
В публикации от 25.11.2024 доработана схема для отчёта по процессу, схемы компоновки для вариаций EPC/BPMN приложены.
В расширении для процесса добавлен вариант BPMN, пока не рисуется, но у него другая стратегия связи шагов - без событий, указывая предыдущие шаги, в т.ч. из других процессов.
Предыдущие шаги указываются на закладке "Предыдущие шаги"
Проверено на следующих конфигурациях и релизах:
- 1С:Библиотека стандартных подсистем, редакция 3.1, релизы 3.1.7.235