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