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