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