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

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

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

В этой статье мы подробно разберем, как реализовать этот механизм, используя гибкость новой редакции программы. Мы рассмотрим как стандартные настройки интерфейса, так и возможности использования скриптов для условий маршрутизации — поможет набор инструментов для разработки и отладки кода в 1С. К слову, если после миграции у вас остались незавершенные процессы, полезно будет узнать про автоматическое закрытие задач «старого» документооборота.

Понимание архитектуры обработки документов в версии 3.0

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

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

Способ 1. Использование опции «Не запрашивать согласование повторно»

В актуальных релизах 1С:Документооборот 3.0 (начиная с 3.0.10) разработчики предусмотрели штатный механизм, который описывает возможность повторного согласования всеми участниками или только теми, кто не согласовал документ. Рассмотрим, как его активировать и правильно настроить:

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

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

Способ 2. Реализация через условия маршрутизации (Скрипты)

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

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

Пример логики скрипта, который можно использовать в условии маршрутизации:


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

Запрос.УстановитьПараметр("Документ", Предмет);
Запрос.УстановитьПараметр("Исполнитель", ТекущийУчастник);

РезультатЗапроса = Запрос.Выполнить();
Если Не РезультатЗапроса.Пустой() Тогда
    // Если виза найдена, возвращаем Ложь, чтобы исключить участника из этапа
    Результат = Ложь;
Иначе
    Результат = Истина;
КонецЕсли;

Это условие необходимо прикрепить к участникам в правилах обработки. Таким образом, при формировании списка задач система будет «опрашивать» каждого участника, и те, кто уже согласовал, просто не получат новую задачу.

Способ 3. Управление точкой возврата при повторном согласовании

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

Выясним, какие варианты нам доступны:

  1. С самого начала: Документ пойдет по всем кругам и всем отделам заново.
  2. С текущего этапа: Процесс возобновится только с того момента, где было получено «Не согласовано».

Если ваша схема предполагает последовательное согласование несколькими отделами (как описывал автор темы: Отдел 1 -> Отдел 2 -> Отдел 3), то выбор варианта «С текущего этапа» позволит автоматически миновать тех, кто уже успешно прошел проверку на предыдущих шагах.

Способ 4. Работа с техническими приложениями и разделение видимости

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

Проанализируем механизм Комментариев в согласовании. В 1С:ДО 3.0 лист согласования формируется динамически. Даже если мы исключаем юристов из повторного круга задач (используя способы выше), они сохраняют доступ к истории:

Рекомендации по настройке

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

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

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

← На главную