Как уведомить руководителя о просроченной задаче сотрудника в 1С:Документооборот?

Бизнес-аналитик 1С v8.3 (Управляемые формы) 1С:Документооборот IT и автоматизация бизнеса
← На главную

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

Почему в шаблоне автостарта процесса нет автоподстановки руководителя исполнителя?

Проанализируем логику работы бизнес-процессов. При попытке настроить автозапуск нового процесса (например, задачи исполнения руководителю с сообщением о срыве сроков) в шаблоне процесса в качестве исполнителя предлагаются такие варианты, как Непосредственный руководитель автора процесса или Ответственный за предмет. Автоподстановки вида «Руководитель исполнителя» там нет.

Причина заключается в архитектурном разделении контекстов:

  1. Шаблон бизнес-процесса формируется в отрыве от конкретной задачи исполнителя. Он ориентируется на автора процесса либо на данные основного предмета (входящий/исходящий документ, внутренний документ, мероприятие).
  2. На этапе проектирования шаблона система еще не знает, какая именно задача и какого исполнителя будет передана на обработку в момент возникновения события.
  3. Создание на каждую просроченную задачу отдельного поручения руководителю загромождает систему встречными процессами и может парализовать работу самого руководителя лавиной уведомлений.

Использование правил эскалации задач

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

Рассмотрим, как функционирует эскалация:

  1. Перейдем в раздел Управление процессами и откроем справочник Правила эскалации задач.
  2. Создадим новое правило и укажем событие, при котором оно должно срабатывать: например, Задача просрочена на... с указанием допустимого временного интервала.
  3. В поле действия выберем требуемую операцию: Перенаправить задачу.
  4. В качестве нового исполнителя укажем автоподстановку Непосредственный руководитель исполнителя.

Обратим внимание на важные технические нюансы работы данного механизма:

  1. Заполнение структуры предприятия: Автоподстановка вычисляется строго по справочнику СтруктураПредприятия. Если у пользователя не заполнено подразделение либо в карточке подразделения не указан реквизит Руководитель, автоподстановка вернет пустое значение и правило не сработает.
  2. Наличие основного предмета: В некоторых релизах автоподстановки для эскалации корректно обрабатываются только в том случае, если исходный процесс имеет заполненный предмет (например, задача на исполнение привязана к документу или мероприятию).
  3. Ошибки релизов: В версиях конфигурации 2.1.9–2.1.10 была зафиксирована ошибка, из-за которой автоподстановка руководителя исполнителя не срабатывала без указания явного условия маршрутизации. Для стабильной работы рекомендуется обновить конфигурацию до релиза 2.1.11.5 или новее. В качестве временного обхода можно задать в правиле эскалации любое формальное условие проверки.
  4. Фоновые задания: Проверка условий эскалации выполняется регламентным заданием Эскалация задач. Убедимся, что регламентное задание включено в расписании и успешно отрабатывает.

Настройка почтовых уведомлений без создания задач

Если задача состоит именно в информировании руководителя, а не в передаче ответственности за выполнение самой работы, генерация новых процессов является избыточной. В программе предусмотрен типовой механизм уведомлений по электронной почте.

Разберем порядок настройки:

  1. В разделе Настройка и администрирование откроем пункт Уведомления программы.
  2. Включим подписку на события задач, связанные с контролем сроков (например, уведомления по контрольным точкам или событиям просрочки).
  3. Если задача была поставлена руководителем лично или он указан в качестве контролера процесса, система автоматически отправит ему письмо при наступлении даты просрочки (событие Просрочена задача автора или Контроль просроченных задач).
  4. Для корректной доставки проверим работу регламентных заданий Мониторинг процессов и Отправка писем.

Автоматическая рассылка сводных отчетов

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

Настроим рассылку отчетов по расписанию:

  1. Откроем отчет Исполнительская дисциплина (или Задачи, истекающие на дату).
  2. Установим отбор по необходимому подразделению.
  3. Через меню настроек выберем пункт Рассылка отчетов.
  4. Укажем получателем руководителя подразделения и настроим расписание: например, отправка каждое утро к началу рабочего дня.

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

Реализация собственной автоподстановки через расширение

Если бизнес-требования категорически требуют автозапуска отдельного поручения на руководителя исполнителя при наступлении бизнес-события, задачу можно решить программно без изменения типовой конфигурации — с помощью механизма расширений.

Для этого в расширении переопределяется логика автоподстановок. Посмотрим на пример кода, позволяющего определить руководителя по исполнителю исходной задачи:


&Вместо("ПолучитьИсполнителейПоАвтоподстановке")
Функция Расш_ПолучитьИсполнителейПоАвтоподстановке(Автоподстановка, Источник, ДополнительныеПараметры)
    
    Если Автоподстановка = Справочники.АвтоподстановкиДляБизнесПроцессов.РуководительИсполнителя Тогда
        Руководитель = Неопределено;
        
        // Предполагаем, что Источник - это ссылка на задачу или процесс-родитель
        Если ЗначениеЗаполнено(Источник) И ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда
            ИсполнительЗадачи = Источник.Исполнитель;
            
            // Получаем подразделение исполнителя через структуру предприятия
            Подразделение = ИсполнительЗадачи.Подразделение;
            Если ЗначениеЗаполнено(Подразделение) Тогда
                Руководитель = Подразделение.Руководитель;
            КонецЕсли;
        КонецЕсли;
        
        Если ЗначениеЗаполнено(Руководитель) Тогда
            Результат = Новый Массив;
            Результат.Добавить(Руководитель);
            Возврат Результат;
        КонецЕсли;
    КонецЕсли;
    
    Возврат ПродолжитьВызов(Автоподстановка, Источник, ДополнительныеПараметры);
КонецФункции

Использование расширения позволяет корректно передать контекст исполнителя в новый процесс, не снимая конфигурацию с официальной поддержки и не нарушая типовые механизмы обновления.

← На главную