Как использовать бизнес-события в 1С:Документооборот?
В 1С:Документообороте достаточно мощный инструментарий для параметрических настроек как по видам документов, так и по шаблонам процессов. Однако бывают ситуации, когда необходимо расширить возможности типовой конфигурации 1С:Документооборот, но при этом не хочется снимать конфигурацию с поддержки.
Для этих задач может хорошо подойти механизм бизнес-событий.
Бизнес-событие – это отражение факта, что произошло некоторое важное для организации событие, которое подтверждено изменением данных в информационной базе. И к таким событиям можно привязать обработчики на встроенном языке 1С.
Использование бизнес-событий в 1С:Документооборот в клиент-серверном варианте на живых примерах подробно рассмотрена в видеокурсе.
Приведем пример бизнес-событий: входящему документу присвоен регистрационный номер. С точки зрения организации это означает, что документ полностью зарегистрирован и готов для дальнейшей работы. В конфигурации уже предусмотрены готовые бизнес-события, они формируются автоматически и используются для разных механизмов (например, по видам событий «Создание задачи» и «Выполнение задачи» могут быть настроены автоматические уведомления). Для готовых видов бизнес-событий можно создать свои обработчики этих стандартных событий, чтобы расширить функционал системы. А также можно создать свои собственные бизнес-события и привязать к ним обработчики событий. Бизнес-события состоят из нескольких частей:
- детекторы событий (типовые и пользовательские),
- реестр произошедших событий,
- обработчики событий (типовые и пользовательские).
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/1336c0d84eb160bbaaaa1beb0d863eaf.png/s/s1200x/a/101008/sc/401)
Детекторы используются для того, чтобы обнаруживать события. Как только детектор «сработал», записывается новое бизнес-событие. Затем новое бизнес-событие в соответствии с подписками на него будет обработано специальными обработчиками.Обработка одного события происходит в границах одной транзакции. После успешной обработки событие получает статус Задание выполнено. Если событие обработано с ошибками, программа предпримет попытку обработать его несколько раз, а затем удалит, если исправить эту ошибку окажется невозможным.
Если хоть один обработчик событий завершит свою операцию с ошибкой, то обработка всех событий и все действия других обработчиков будут отменены. Во всех случаях информация о результатах обработки будет записана в журнал регистрации. По необработанным событиям будет произведена попытка выполнения обработчиков 3 раза. Необработанные бизнес-события будут храниться в регистре сведений «Произошедшие бизнес-события», чтобы администратор мог разобраться с причинами ошибок и устранить их. Обработанные бизнес-события будут храниться определенное кол-во дней (указывается в настройках программы), а потом будут удалены. Чтобы включить механизм бизнес-событий нужно в настройках программы активировать настройку «Использовать бизнес-события». Далее можно использовать типовые бизнес-события такие, как:
- Возобновление процесса
- Добавление в категорию
- Завершение процесса
- Задача выполнена
- Захват файла для редактирования
- Изменение брони
- Изменение внутреннего документа
- Изменение входящего документа
- Изменение значения показателя процесса
- Изменение исходящего документа
- Изменение мероприятия
- Изменение отсутствия
- Изменение проекта
- Изменение проектной задачи
- Изменение состава комплекта
- Изменение файла
- Назначение ответственным за документ
- Освобождение файла
- Остановка процесса
- Отмена выполнения задачи
- Перенаправление задачи
- Перерегистрация внутреннего документа
- Перерегистрация входящего документа
- Перерегистрация исходящего документа
- Подошел срок задачи
- Получение входящего письма
- Прерывание процесса
- Просрочена задача
- Регистрация внутреннего документа
- Регистрация входящего документа
- Регистрация исходящего документа
- Создание брони
- Создание внутреннего документа
- Создание входящего документа
- Создание задачи
- Создание исходящего документа
- Создание контрагента
- Создание мероприятия
- Создание отсутствия
- Создание проекта
- Создание проектной задачи
- Создание сообщения
- Создание файла
- Старт процесса
- В справочнике «Виды бизнес-событий» добавить новое бизнес-событие.
- Создать детектор для этого события. У детектора установить флаг «Детектор включен».
- Создать дополнительный обработчик. Установить у обработчика флаг «Обработчик включен». Настроить у обработчика подписку на событие.
Привязка запуска шаблона процесса к типовому событию
Рассмотрим самый простой вариант привязки типового обработчика к типовому событию.
Открываем шаблон процесса. Переходим на форму назначения видам документов.
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/033318898d89b004c2263cb40c22764e.png/s/s1200x/a/101008/sc/460)
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/7011e4df4399d766d0470d522d9d05e2.png/s/s1200x/a/101008/sc/53)
Создадим новый документ. Открываем регистр сведений «Произошедшие бизнес-события». Видим, что наше событие пока не обработано.
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/e2a7e3e5962271c7dcae5c9109d1d835.png/s/s1200x/a/101008/sc/199)
После обработки события данный справочник будет выглядеть следующим образом. Видим, что по внутреннего документу был запущен комплексный процесс.
![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/106828af0489d71e145c017a50b59918.png/s/s1200x/a/101008/sc/467)
Дополнительный обработчик типового события
Рассмотрим теперь более сложный случай привязки типового события к своему обработчику.
Открываем в разделе "Настройка и администрирование" справочник "Дополнительные обработчики".![](http://fs-thb02.getcourse.ru/fileservice/file/thumbnail/h/24169070a5b2f6083c615221a6e6e87a.png/s/s1200x/a/101008/sc/505)
Создаем новый обработчик бизнес-события. Заполняем его наименование, описание и код обработки события. Устанавливаем флаг «Обработчик включен».
![](http://fs-thb01.getcourse.ru/fileservice/file/thumbnail/h/1325be6cb3ac5bb16ed3e4957a5e47bd.png/s/s1200x/a/101008/sc/330)
Указываем подписку для данного обработчика.
![](http://fs-thb03.getcourse.ru/fileservice/file/thumbnail/h/7df19a930748fb0e267bd5f3063c53ae.png/s/s1200x/a/101008/sc/197)
Теперь при создании нового внутреннего документа у нас будет не только запускаться комплексный процесс по шаблону, но и производиться его дополнительная обработка.
Поскольку к одному событию теперь привязано два обработчика, то возникает вопрос: в каком порядке будут выполняться обработчики? Порядок вызова обработчиков не определен, поэтому нужно при использовании нескольких обработчиков предусматривать все возможные порядки запуска.
Использование бизнес-событий в 1С:Документооборот в клиент-серверном варианте на живых примерах подробно рассмотрена в видеокурсе.
авторизуйтесь
Да, для этого надо использовать бизнес-события.
Например, документ командировка, при создании запускает комплексный процесс согласования, регистрации, а затем в соответствии со сроком командировки в рамках данного процесса нужно на день возвращения сотрудника запустить для него задачу "Отчитаться о поездке". В ИТС это называют событийно управляемый процесс и рекомендуют вешать процесс исполнения на пользователя Робот. И по типовой подписке при выполнении условий регистрировать бизнес-событие и таким образом запускать с требуемой задержкой.
Этот метод для данной задачи мне кажется не очень хорош, т.к. привязаться к типовым бизнес-событиям нет смысла, а писать в своем детекторе анализ внутренних документов и по дате возврата завершать "ожидание" - нагружать базу. Возможно Вы сможете предложить более изящное решение.
Пока нигде не встречал функционала по исполнению договоров с применением бизнес-событий, когда, очередной платеж зависит, например, от даты отгрузки, пересечения границы, поступления товара на склад заказчика и т.д и т.п.,то есть от некоторого события, описанного в договоре. Более того, условия и поставки и оплаты могут быть описаны в договоре по достаточно сложной схеме, когда очередной этап поставки и/или оплаты зависит от некоторого события, соответственно, в зависимости от этих событий должны запускаться бизнес-процессы для менеджеров и исполнителей по данному договору. Есть ли у Вас такой опыт внедрения системы исполнения договоров?
Простите, что не совсем по теме, но все же:
Документооборот 8 КОРП, редакция 1.4 (1.4.9.4) - подскажите, пожалуйста, можно ли запретить для определенных видов Внутренних документов (договоров) запуск произвольных процессов (не по шаблону)?
Показать еще комментарии (1)
Скажите, пожалуйста - существует ли такая возможность в типовом варианте более новых релизов?