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