Почему комплексный процесс в 1С:Документооборот останавливается после согласования и как убрать дублирование задач

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

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

Анализ очереди маршрутизации комплексных процессов

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

Если процесс «завис», первым делом проанализируем регистр сведений ОчередьМаршрутизацииКомплексныхПроцессов. Для этого перейдем в «Функции для технического специалиста» (или через «Все функции», если версия платформы старше) и найдем данный регистр. Если процесс стоит в очереди и не может продвинуться, в колонке «Текст ошибки» будет содержаться техническое описание проблемы. Часто там можно встретить сообщения о блокировках объектов или ошибках в правах доступа исполнителя следующего этапа. Для своевременного обнаружения таких проблем можно использовать отчет по зависшим процессам в Документообороте.

Выясним причину остановки: если запись в регистре есть, но она не обрабатывается, проверим работу регламентных заданий. За движение процессов отвечает задание ФоноваяМаршрутизацияКомплексныхПроцессов. Разберем шаги для проверки:

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

Проверка настроек вида документа и использования грифа утверждения

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

Рассмотрим порядок действий для проверки:

  1. Откроем справочник Виды документов.
  2. Найдем тот вид документа, по которому запущен процесс.
  3. На закладке «Настройки» проверим наличие флагов Использовать гриф утверждения и Использовать подписание должностным лицом.

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

Логика завершения этапа согласования

Еще одна распространенная причина остановки процесса — настройки самого действия «Согласование» внутри комплексного процесса. Разберем по шагам, на что обратить внимание в шаблоне:

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

Также проверим Условия перехода. В комплексных процессах можно настраивать условия, при которых выполняется то или иное действие. Если между этапом «Согласование» и «Утверждение» стоит условие (например, «Сумма документа > 100 000»), а текущий документ не соответствует этому критерию, процесс завершится сразу после согласования. Проверим правильность настройки скриптов или выражений в конструкторе условий. Для этой задачи подойдёт расширение для проверки условий маршрутизации.

Диагностика дублирования задач

Перейдем к вопросу «двоения» задач, когда участникам приходят две одинаковые задачи одновременно. Рассмотрим основные причины этого явления.

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

2. Дублирование действий в схеме. Посмотрим на структуру комплексного процесса. Иногда при копировании этапов или неаккуратном редактировании в список действий добавляются две одинаковые строки «Согласование» с одним и тем же списком исполнителей. В этом случае система честно создаст две задачи каждому сотруднику.

3. Ошибки в подписках на события (кастомизация). Если в вашу базу вносились программные изменения, велика вероятность, что при записи задачи или бизнес-процесса срабатывает некорректно написанный код. Разберем пример программного кода, который может вызвать дублирование:


Процедура ПередЗаписью(Отказ)
    // Ошибочный код, который инициирует старт процесса повторно
    Если ЭтоНовый() Тогда
        БизнесПроцессы.КомплексныйПроцесс.СоздатьБизнесПроцесс();
        // ... старт процесса без проверки на уже запущенные экземпляры
    КонецЕсли;
КонецПроцедуры

Для исправления подобных ситуаций необходимо внедрять проверку на наличие уже активных процессов по данному предмету (документу). Проанализируем наличие расширений или доработок в конфигураторе, связанных с объектом БизнесПроцессСсылка.КомплексныйПроцесс.

Практические рекомендации по отладке

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

Разберем еще один важный аспект — Состояния документов. В 1С:Документооборот 2.1 существует механизм «Настройка доступности по состояниям». Проверим, не запрещен ли переход документа в состояние «На утверждении» или «Утвержден», когда он находится в состоянии «Согласован». Если в матрице состояний стоит запрет, бизнес-процесс может выдать ошибку при попытке изменить статус документа и остановиться.

Для администраторов будет полезно проанализировать выполнение кода в момент завершения задачи согласования. В модуле менеджера комплексного процесса КомплексныйПроцессСервер можно найти функции, отвечающие за переход к следующему этапу. Использование отладки позволит точно определить, на каком этапе условие Результат = Истина меняется на Ложь, прерывая цепочку действий.

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

← На главную