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