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

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

В типовом процессе «Согласование» конфигурации «1С:Документооборот» итоговая задача «Ознакомиться с результатом согласования» по умолчанию направляется исключительно автору (инициатору) процесса. Это обусловлено логикой бизнес-процесса: именно инициатор принимает решение, что делать с документом дальше (повторить согласование с новыми правками или прервать процесс). Однако в реальной практике часто требуется, чтобы все согласующие лица или определенный круг экспертов узнали о финальном статусе документа. Рассмотрим причины такого поведения системы и подробно разберем все способы решения этой задачи.

Почему нельзя настроить ознакомление внутри одного шаблона согласования

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

Поэтому в рамках изолированного шаблона «Согласование» ознакомить остальных участников штатными кнопками нельзя. Для реализации этой задачи необходимо разделить этапы принятия решения и информирования.

Способ 1. Настройка комплексного процесса с этапом «Ознакомление»

Разберем основной типовой механизм, предназначенный для объединения нескольких действий в единую цепочку. Для этого переведем обработку документа на Комплексный процесс.

  1. Перейдем в раздел Управление процессами и откроем справочник Шаблоны комплексных процессов.
  2. Создадим новый шаблон и добавим в схему первый шаг — Согласование, указав нужный список согласующих лиц.
  3. Добавим второй шаг — Ознакомление. В настройках порядка выполнения укажем условие: «Стартовать после завершения шага 1 (Согласование) при условии, что результат = Согласовано».
  4. В табличной части исполнителей шага «Ознакомление» укажем сотрудников, которым необходимо направить результат.
  5. В настройках шаблона комплексного процесса включим автоматический старт при создании процесса по документу.

В таком сценарии каждый согласующий получит индивидуальную задачу «Ознакомиться», нажмет кнопку «Ознакомился», и факт выполнения будет зафиксирован в системе в отчетах по исполнительской дисциплине.

Способ 2. Автоматическое заполнение участников через механизм автоподстановок

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

В конфигурации предусмотрено расширение перечня автоподстановок исполнителей через общий модуль ШаблоныБизнесПроцессовПереопределяемый. Добавив собственную автоподстановку (например, «Все согласовавшие документ»), можно динамически заполнять участников ознакомления на основании фактических виз документа.

Посмотрим на пример переопределения модуля:


Процедура ПриПолученииСпискаАвтоподстановок(Автоподстановки) Экспорт
    
    НоваяСтрока = Автоподстановки.Добавить();
    НоваяСтрока.Имя = "ВсеУчастникиПредыдущегоСогласования";
    НоваяСтрока.Представление = НСтр("ru = 'Все участники предыдущего согласования'");
    
КонецПроцедуры

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

Способ 3. Использование этапа-скрипта в маршруте процесса

В версиях «1С:Документооборот КОРП» в схему комплексного процесса можно встроить этап с типом Скрипт (обработка на встроенном языке). Этот способ не требует доработки конфигурации на поддержке и настраивается в пользовательском режиме.

  1. Разместим этап-скрипт между действиями «Согласование» и «Ознакомление».
  2. В теле скрипта обратимся к предмету процесса и соберем список пользователей, установивших визы.
  3. Заполним список исполнителей для следующего по маршруту процесса ознакомления.

Пример алгоритма для этапа-скрипта:


СписокИсполнителей = Новый Массив;

// Получаем визы по предмету процесса
ТаблицаВиз = ДокументооборотКлиентСервер.ПолучитьВизыДокумента(Предмет);
Для Каждого СтрокаВизы Из ТаблицаВиз Цикл
    Если ЗначениеЗаполнено(СтрокаВизы.УстановившийВизу) Тогда
        СписокИсполнителей.Добавить(СтрокаВизы.УстановившийВизу);
    ИначеЕсли ЗначениеЗаполнено(СтрокаВизы.Исполнитель) Тогда
        СписокИсполнителей.Добавить(СтрокаВизы.Исполнитель);
    КонецЕсли;
КонецЦикла;

// Передаем сформированный массив в параметры следующего действия
ПроцессОзнакомления = ПолучитьСледующийПроцессПоМаршруту();
ПроцессОзнакомления.Исполнители.Очистить();
Для Каждого Сотрудник Из СписокИсполнителей Цикл
    НоваяСтрока = ПроцессОзнакомления.Исполнители.Добавить();
    НоваяСтрока.Исполнитель = Сотрудник;
КонецЦикла;

Способ 4. Оповещение по электронной почте и подписки на бизнес-события

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

  1. В разделе Настройка и администрирование перейдем в Уведомления по бизнес-событиям.
  2. Выберем событие Изменение состояния документа (при переходе в состояние «Согласован»).
  3. Настроим отправку почтовых или системных уведомлений участникам рабочих групп документа или согласующим лицам.

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

Особенности реализации в «1С:Документооборот 3.0»

В редакции 3.0 логика комплексных процессов заменена на Правила обработки документов. Для реализации задачи выполним следующие настройки:

  1. В правиле обработки настроим последовательные действия: Согласование $\rightarrow$ Ознакомление.
  2. Для действия «Ознакомление» в параметре Момент разыменования укажем вариант Перед началом действия.
  3. В качестве участников действия выберем предопределенную роль или автоподстановку участников согласования. Система вычислит итоговый состав участников непосредственно в момент успешного окончания согласования.

Контроль прав доступа и рабочая группа документа

При настройке ознакомления важно учитывать политику прав доступа. Если для вида документа включено автоматическое ограничение прав по составу Рабочей группы, убедимся, что:

  1. Участники процесса не удаляются из состава рабочей группы документа после завершения своей задачи согласования.
  2. Пользователи сохраняют права на чтение карточки и файлов документа на момент формирования задачи ознакомления.
← На главную