Дополнительные обработки. Подключение и отладка

Описание программы

В BPMS систему ОптимаСофт:Менеджер процессов встроен мощный механизм расширения дополнительными обработками с кодом 1С. В дополнительных обработках можно реализовывать алгоритмы и формы, с которыми будет работать пользователь для выполнения задач бизнес-процессов. Например, для пользователя можно реализовать полноценное рабочее место, в котором он будет работать, даже не зная, что выполняет задачу бизнес-процесса. В дополнительных обработках, встроенных в конфигурацию, можно реализовать алгоритмы для выполнения автоматических задач BPMN на сервере из регламентных заданий. Например, для реализации "отложенной" обработки подписки на событие или иных алгоритмов для работы с задачами бизнес-процессов.

Внешние или встроенные обработки для выполнения задач в 1С.
Для разработчиков дополнительного функционала мы можем дать несколько рекомендаций относительного того, как лучше обработку встроить в систему - в виде внешней или встроенной обработки.

Внешние обработки.
Подходят для использования на рабочих местах пользователей, когда для пользователя необходимо реализовать персональный интерфейс рабочего места. Плюсы внешних обработок:
  • Меньше объектов в конфигурации;
  • Возможность изменять без обновления конфигурации во время работы остальных пользователей в базе.
Встроенные обработки.
Подходят для выполнения на сервере кода, запускаемого из регламентного задания ("отложенная" обработка событий подписки и запуск из регламентного задания). Плюсы встроенных в конфигурацию обработок:
  • Возможность отлаживать выполнение обработки на сервере;
  • Возможность вести версионирование при коллективной разработке;
  • Возможность захватывать в хранилище при коллективной разработке;
  • Отвечает модели безопасности 1С (при выполнении на сервере внешней обработки, может быть проблема с ключами, подключаемыми через COM).
Внешние алгоритмы.
Можно использовать как компромисс между внешней и внутренней обработкой.
Плюсы использования внешних алгоритмов:
  • Алгоритм описывается на встроенном языке 1С и располагается в спр. "Внешние отчеты и обработки" на закладке "Внешний алгоритм".
  • Возможно выполнение кода на сервере;
  • Удобное и быстрое редактирование.
Вся привязка дополнительных обработок (внешних, внутренних, алгоритмов) реализована через спр. "Внешние отчеты и обработки". В зависимости от переключателя "Вид используемого объекта", программа по разному работает с элементом справочника. Если установлено значение "Внешняя обработка" или "Внешний отчет", то будет создан и запущен экземпляр внешнего объекта, сохраненного в элементе справочника.

Если переключатель "Вид используемого объекта" установлен в значение "Внутренняя обработка" или "Внутренний отчет", то программа создаст соответствующий объект метаданных с именем из поля "Имя внутреннего отчета (обработки)". Если переключатель "Вид используемого объекта" установлен в значение "Внешний алгоритм", то для выполнения задачи бизнес-процесса программа выполнит код, написанный в режиме Предприятие в текстовом поле на этой закладке. Выполнение такого кода будет выполнено в служебной обработке "осОбработкаВнешнихАлгоритмов".

Как видно из картинки, если необходимо вернуть какое-то значение, то присваиваем его переменной "ЗначениеВозврата".

prikkartinka_5db56d6f-4e9b-4691-ab87-262549f7f543_3.png

В зависимости от настроек вызывающего элемента (элемента Дерева процессов - точка БП) или назначения использования, в модуле дополнительной обработки (внешней или внутренней) вызываются различные методы и используются различные реквизиты. В общем случае в обработке должен быть реквизит "СсылкаНаОбъект" с произвольным типом и реквизит "ИмяФайлаМакета" для отчета. В реквизит "ИмяФайлаМакета" передается имя файла для макета для отчета.

Подключение и отладка дополнительных обработок.
После того, как принято решение писать дополнительную обработку, встанет вопрос отладки. В ОптимаСофт:Менеджер процессов для этого разработано несколько механизмов. Вы можете использовать предлагаемые или использовать какие-то свои методы и инструменты.

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

После создания элемента спр. "Внешние отчеты и обработки", необходимо подключить созданный элемент с обработкой к элементу диаграммы. Одну обработку можно подключать к нескольким элементам диаграммы бизнес-процесса. Это удобно, если задачи бизнес-процесса однотипные или для них подходит одна универсальная форма.

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

Отладка формы внешней обработки.
Для отладки подключенных пользовательских обработок, необходимо установить галочку "Открывать форму задачи" для пользователя, выполняющего отладку. Для этого переходим в интерфейс ОптимаСофт:Менеджер процессов, в главном меню программы "Сервис" / "Текущий пользователь".

После установки этой галочки, при двойном клике на задаче будет открываться форма задачи с доступной кнопкой "Запустить выполнение задачи". Этот же способ получения формы задачи можно использоваться для просмотра всех параметров входа и выхода задачи. Просмотр параметров бывает необходим на этапах отладки БП и в для выявления отклонений в процессе выполнения задачи.

Т.к. обработка внешняя, то для ее открытия каждый раз создается новый файл на диске. Для автоматического подключения созданного файла в конфигураторе можно воспользоваться следующим приемом. В коде формы обработки в методе "ПередОткрытием()" расположить код, который вызовет ошибку. Взять этот код в конструкцию "Попытка - Исключение" и установить в конфигураторе галочку "Останавливаться по ошибке". При открытии формы, обработка сама откроется в конфигураторе для отладки.

Для отладки "Выполняется из подписки".
В программе реализована "отложенная" обработка событий подписки. Т.е. события подписки для задачи накапливаются в специальном хранилище, а потом сразу все обрабатываются.
Как происходит обработка событий подписки для точки БП, в которой указано "Выполнение запускается из Подписки на событие":
  • Подбираются все открытые задачи этой точки из всех БП;
  • Получаются обрабатываемые источники событий;
  • Создается экземпляр обработки события, в него передаются массив задач и массив источников;
  • В обработчике события происходит анализ источников и выполнение задачи;
  • Каждый вызов из регламентного задания проходит за один раз по всем задачам и ожидающим событиям.
prikkartinka_a41ee571-26f8-4faf-b4e7-ef3987a4ecd9_9.png

Запуск обработки выполняется из регламентного задания каждые 2 минуты. Соответственно, все выполняется на сервере и с большой частотой, что для отладки затруднительно. Для возможности ручного запуска обработки выполняем следующие шаги.

*) Устанавливаем галочку "Режим отладки выполнения". При этой галочке, когда программа создаст эту задачу, выполнение задачи будет остановлено для возможности отладки.

prikkartinka_895dc60b-d9f3-4689-8b5c-ae78b90c041b_10.png

*) Открываем карту маршрута БП из Монитора бизнес-процессов, и в ней кликаем на остановленную задачу для получения встроенной формы задачи. Переходим в конфигуратор и ставим точку останова в модуле обработки в методе "ОбработатьМассивИсточниковПоМассивуЗадач(мИсточники, мЗадачи)". В открывшейся форме задачи нажимаем "Запустить выполнение". Отлаживаем. После отладки снимаем галочку "Режим отладки выполнения".

Для "Выполняется из регламентного задания".
В программе реализована возможность выполнения задач из регламентного задания. Т.е. после создания, условие выполнения задачи будет проверяться в прикрепленной обработке. Если в обработке выполняется условие, то в коде обработки должна быть выполнена задача. Как происходит обработка задач для точки БП, в которой указано "Выполнение запускается из регламентного задания":
  • Подбираются все открытые задачи этой точки из всех БП;
  • Создается экземпляр обработки события, в него передается массив открытых задач;
  • В обработчике события происходит проверка условия выполнения и выполнение задачи;
  • Каждый вызов из регламентного задания проходит за один раз по всем задачам.
prikkartinka_4f699877-a351-4d9b-9a24-a5183b3c4bcd_12.png

Запуск обработки выполняется из регламентного задания каждые 2 минуты. Соответственно, все выполняется на сервере и с большой частотой, что для отладки затруднительно. Для возможности ручного запуска обработки выполняем следующие шаги.

*) Устанавливаем галочку "Режим отладки выполнения". При этой галочке, когда программа создаст эту задачу, выполнение задачи будет остановлено для возможности отладки.

prikkartinka_895dc60b-d9f3-4689-8b5c-ae78b90c041b_10.png

*) Открываем карту маршрута БП из Монитора бизнес-процессов, и в ней кликаем на остановленную задачу для получения встроенной формы задачи. Переходим в конфигуратор и ставим точку останова в модуле обработки в методе "ОбработатьМассивЗадачЗапускаемыхИзРегламентногоЗадания(мЗадачи)". В открывшейся форме задачи нажимаем "Запустить выполнение". Отлаживаем. После отладки снимаем галочку "Режим отладки выполнения".

Дополнительные отчеты для модели.
В программе реализована возможность создавать дополнительные отчеты, обработки и печатные формы для их заполнения по данным модели бизнес-процесса. Подключение таких дополнительных отчетов реализовано также через спр. "Внешние отчеты и обработки", но с некоторыми дополнительными настройками. Для того, чтобы подключенный отчет можно было использовать через контекстное меню Навигатора БП, в элементе спр. "Внешние отчеты и обработки" необходимо установить галочку "Доступен в контекстном меню" и заполнить таблицу ролей, для которых этот отчет будет доступен.


Т.к. отчет внешний, то при каждом вызове создается новый файл прикрепленной внешней обработки и запускается на выполнение с переданными параметрами. Для его отладки можно воспользоваться приемом. В модуле обработки в методе "Печать()" расположить код, который вызовет ошибку. Взять этот код в конструкцию "Попытка - Исключение" и установить в конфигураторе галочку "Останавливаться по ошибке". При начале выполнения алгоритма печати, обработка сама откроется в конфигураторе для отладки.

prikkartinka_75025c73-1566-47ec-8e70-5f130e842b1a_14.png

Также есть второй способ отладки внешних обработок для печати отчетов:
  • В обработке создается форма для возможности открытия через Файл / Открыть;
  • На форме обработки располагается реквизит с выбираемым элементом Дерева процессов;
  • На форме создается кнопка, которая вызывает метод "Печать(Выбранный элемент Дерева процессов)";
  • В конфигураторе ставим точку останова в методе "Печать()" в модуле обработки и отлаживаем.
Для изучения, вы можете скачивать примеры дополнительных обработок, прикрепленные к нашим выполненным проектам в разделе "Выполненные проекты". Также, можно изучить обработки, входящие в состав демонстрационной базы.

1 комментарий свернуть все
 
написать комментарий
*Имя *e-mail
*разрешена загрузка файлов типа:
**максимальный размер загружаемого файла: 150 kb.


прикрепить файл
 
Защита от автоматического заполнения
CAPTCHA
обновить изображение
Введите слово с картинки*: