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