Как настроить отработку замечаний при согласовании в 1С:Документооборот 2.1

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

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

Способ 1. Использование встроенного механизма «Задать вопрос»

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

Разберем, как это работает (чтобы контролировать нагрузку, полезно вывести цикл согласования в форму задачи):

  1. Согласующий, обнаружив ошибку, не завершает задачу согласования, а нажимает «Задать вопрос» автору.
  2. Процесс согласования в этой точке приостанавливается (задача согласующего остается активной).
  3. Автор получает задачу, исправляет документ и отвечает на вопрос.
  4. Только после получения ответа согласующий нажимает «Согласовано».

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

Способ 2. Настройка условий маршрутизации в комплексном процессе

Если мы хотим автоматизировать возврат задачи автору именно после выбора варианта «Согласовано с замечаниями», нам необходимо проанализировать схему комплексного процесса. В версии 2.1 мы можем внедрить Условие маршрутизации после каждого этапа согласования.

Посмотрим на алгоритм настройки (технической основой для реализации выступает проверка условий маршрутизации):

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

Пример кода для проверки результата в условии:


Результат = Ложь;
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	ЗадачиИсполнителя.РезультатВыполнения
    |ИЗ
    |	Задача.ЗадачиИсполнителя КАК ЗадачиИсполнителя
    |ГДЕ
    |	ЗадачиИсполнителя.БизнесПроцесс = &БизнесПроцесс
    |	И ЗадачиИсполнителя.РезультатВыполнения = ЗНАЧЕНИЕ(Перечисление.ВариантыВыполненияЗадач.СогласованоСЗамечаниями)";

Запрос.УстановитьПараметр("БизнесПроцесс", Объект.Ссылка);
Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Следующий() Тогда
    Результат = Истина;
КонецЕсли;

Способ 3. Использование дополнительных обработчиков событий

Наиболее гибкий технический способ — использование дополнительных обработчиков, которые можно настроить непосредственно в действии комплексного процесса на вкладке «Дополнительно». Мы можем прописать сценарий, который будет срабатывать При завершении задачи согласования.

Рассмотрим логику скрипта:

  1. Система проверяет вариант выполнения задачи, выбранный пользователем.
  2. Если выбран вариант СогласованоСЗамечаниями, программно создается новая задача (например, процесс «Поручение») для автора документа.
  3. Текущий основной процесс можно временно приостановить, пока созданное поручение не будет выполнено.

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

Способ 4. Блокировка процесса через дополнительные реквизиты

Проанализируем еще один интересный вариант: использование дополнительных реквизитов для контроля отработки замечаний. Мы можем добавить для документа булево поле ЗамечанияОтработаны (флаг).

Разберем по шагам:

  1. В комплексном процессе перед каждым этапом (кроме первого) ставится условие проверки: «Если у предыдущего согласующего были замечания, установлен ли флаг Замечания отработаны?».
  2. Если флаг не установлен, процесс автоматически ставит задачу автору с требованием исправить документ и взвести флаг.
  3. Только после установки флага ЗамечанияОтработаны = Истина задача переходит к следующему согласующему.

Способ 5. Методическое ограничение (радикальный подход)

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

В настройках системы или через расширение можно скрыть вариант «Согласовано с замечаниями». Тогда у пользователя остается два четких пути:

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

Особенности реализации в версии 3.0

Важно отметить, что в 1С:Документооборот 3.0 концепция работы с результатами была переработана. Там появились «Правила обработки результатов», где для варианта «Согласовано с замечаниями» можно штатно настроить действие «Возврат на итерацию». В версии 2.1 мы вынуждены имитировать это поведение через вышеописанные скрипты и условия.

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

← На главную