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