Процесс в ДО встал: продолжить, перезапустить или найти причину
Содержание
Остановленный процесс в 1С:Документооборот возобновляют командой «Продолжить» в карточке процесса: откройте процесс, нажмите Ещё и выберите «Продолжить». Задачи вернутся исполнителям, и процесс пойдёт дальше с того места, где встал, а не с начала.
Частое заблуждение — считать, что так же можно вернуть прерванный процесс. Нельзя. «Остановлен» и «Прерван» в ДО — разные состояния. Остановленный процесс стоит на паузе, прерванный завершён окончательно. Его не продолжают, а запускают заново копией. Всё ниже относится к ДО 3.x (ПРОФ и КОРП) на платформе 8.3; в ДО 2.1 логика та же, отличаются названия разделов.
Почему процесс останавливается и чем «завис» отличается от «остановлен»
Прежде чем что-то нажимать, определите, что именно случилось. От этого зависит способ.
| Что видит пользователь | Состояние на самом деле | Что делать |
|---|---|---|
| В карточке пометка «Остановлен», задачи нельзя выполнить | Процесс на паузе | Команда «Продолжить» |
| Состояние «Прерван», указана причина | Процесс завершён | Новый процесс копированием |
| Процесс активен, но ни у кого нет задачи | Сбой маршрута или задача ушла «в пустоту» | Диагностика, перенаправление |
| Задача есть, но не выполняется, висит ошибка | Блокировка или ошибка в обработчике | Журнал регистрации, техжурнал |
Типовые причины остановки и «зависания»:
- 🛑 Остановили вручную. Автор или контролёр нажал «Остановить», например, пока уточняли условия договора.
- 👤 Исполнитель недоступен. Сотрудника уволили или отключили его пользователя, а задача висит на нём.
- 👥 Роль без исполнителей. Задача адресована роли (например, «Юрист филиала»), а в роли никого нет.
- ⏳ Отложенный старт не сработал. Процесс ждал даты старта, а регламентное задание выключено или падает с ошибкой.
- 🔒 Конфликт блокировок. Два пользователя одновременно меняют один процесс или связанный документ.
- 🧩 Ошибка в доработке. Обработчик точки маршрута в доработанной конфигурации вызывает исключение, и задача не создаётся.
Как возобновить процесс пользователю: команда «Продолжить»
Если процесс именно остановлен, его продолжают из интерфейса без администратора.
- Найдите процесс. Быстрее всего — из карточки документа: на панели связанных процессов видны все процессы по нему. Другой путь — список процессов с отбором по автору или состоянию.
- Откройте карточку процесса.
- В командной панели нажмите
Ещёи выберите «Продолжить». - Проверьте, что пометка «Остановлен» исчезла, а у исполнителей появились задачи.
Если процесс комплексный, проверьте и вложенные процессы. Откройте каждый этап: подчинённый процесс мог остаться на паузе, и тогда весь комплексный процесс дальше не пойдёт.
Команды «Продолжить» нет или она неактивна
Три типовые причины:
- 🔑 Не хватает прав. Остановить и продолжить процесс может его автор и пользователь с полными правами. Исполнителю задачи эта команда обычно недоступна.
- 📄 Процесс не остановлен, а прерван или завершён. Тогда продолжать нечего.
- ✏️ Карточка открыта только для просмотра. Кто-то держит процесс открытым на редактирование, и форма открылась без возможности изменений. Попросите коллегу закрыть карточку.
Как перезапустить прерванный процесс
Прерванный процесс не возобновляют. Делают так:
- Откройте прерванный процесс и выделите его в списке.
- Скопируйте его — командой копирования в списке или клавишей
F9. - Проверьте исполнителей, сроки и предмет процесса. Старые сроки, скорее всего, уже прошли.
- Запустите новый процесс.
Результаты согласования в прерванном процессе не переносятся в новый. Если часть согласующих уже дала визу, им придётся согласовать снова. Предупредите их заранее.
Задача без исполнителя: перенаправление
Самый частый случай «процесс встал, хотя никто его не останавливал» — задача висит на человеке, который её не выполнит.
Если исполнитель уволен или в отпуске. Откройте задачу и выполните команду «Перенаправить». Укажите нового исполнителя и комментарий. Процесс продолжится, история сохранится. Перенаправлять может автор процесса, контролёр или пользователь с административными правами.
Если задача адресована роли без исполнителей. Перенаправление вылечит один процесс, но следующий застрянет так же. Исправьте саму роль: откройте справочник ролей исполнителей и добавьте в роль действующего сотрудника. Если роль привязана к подразделению или организации, проверьте, что исполнитель назначен именно с нужной привязкой.
После увольнения сотрудника не ждите, пока процессы начнут вставать. Отберите в списке задач все невыполненные задачи этого исполнителя и перенаправьте их пакетом.
Регламентные и фоновые задания: что проверить администратору
Часть работы процессов идёт без участия пользователя, через регламентные задания подсистемы «Бизнес-процессы и задачи». Если они выключены, процессы не встают в ошибку — они просто не двигаются.
Где смотреть: в разделе Настройка (в некоторых редакциях — Администрирование) откройте обслуживание и форму «Регламентные и фоновые задания».
Что проверить:
- Задание старта отложенных процессов. Отвечает за процессы с датой старта в будущем. Выключено — такие процессы не стартуют.
- Задание мониторинга задач и уведомлений. От него зависят напоминания о просроченных задачах. Если оно не работает, процесс формально идёт, но исполнители о задачах не знают.
- Колонка с результатом последнего запуска. Откройте задание и посмотрите, когда оно выполнялось и с каким итогом. Ошибка в тексте — первая зацепка.
- Пользователь, от имени которого работает задание. Если его отключили или сменили пароль, задание падает на каждом запуске.
Блокировка регламентных заданий на сервере
Частая ловушка после копирования рабочей базы в тестовую. При загрузке копии администратор ставит в консоли кластера флажок «Блокировка регламентных заданий включена», чтобы тестовая база не рассылала письма. Если потом базы перепутали или флажок остался на рабочей — процессы с отложенным стартом встают все разом.
Проверка: консоль администрирования серверов 1С → кластер → информационные базы → свойства нужной базы → флажок блокировки регламентных заданий. В файловом варианте регламентные задания выполняются только при запущенном клиентском сеансе, поэтому без открытого клиента они не идут вовсе.
Маршрут процесса: где именно он остановился
Процесс в 1С движется по карте маршрута. Каждая точка — действие, условие, разделение, слияние, вложенный процесс или завершение. Возобновление всегда идёт с той точки, где процесс остановился: пройденные шаги не повторяются.
Как найти точку остановки:
- Откройте карточку процесса и перейдите к истории или списку его задач.
- Отсортируйте задачи по дате создания. Последняя созданная задача и есть текущая точка.
- Если последняя задача выполнена, а новой нет — маршрут споткнулся на переходе после неё. Обычно это точка условия или создание задач для следующего шага.
Типичные места, где маршрут «ломается»
| Точка маршрута | Что происходит | Как проверить |
|---|---|---|
| Условие | Проверка условия падает с ошибкой из-за пустого реквизита | Журнал регистрации на момент выполнения предыдущей задачи |
| Действие | Задачи не создаются: исполнитель не определён | Роль или поле исполнителя в настройке шага |
| Вложенный процесс | Родитель ждёт подчинённый процесс, который остановлен | Открыть вложенный процесс |
| Слияние | Ждёт все ветви, одна из них не завершена | Список задач всех параллельных веток |
Не пытайтесь «протолкнуть» процесс, отметив задачу выполненной через обработку групповой правки реквизитов. Флаг выполнения изменится, но маршрут не пройдёт дальше: переход по карте делает метод выполнения задачи, а не значение реквизита. Получите процесс в ещё более странном состоянии.
Журнал регистрации и технологический журнал
Если процесс активен, а движения нет, ищите ошибку в журналах.
Журнал регистрации
- Откройте журнал регистрации из раздела администрирования (
Настройка→ обслуживание → «Журнал регистрации»). - Поставьте отбор по периоду: от выполнения последней задачи плюс 10–15 минут.
- Уровень — «Ошибка».
- Если ошибок много, добавьте отбор по пользователю, который выполнял задачу.
Что искать в тексте ошибок:
Конфликт блокировок при выполнении транзакции— два сеанса одновременно писали один объект;Превышено время ожидания захвата блокировки— один сеанс долго держал данные;Не удалось заблокировать объект— карточку процесса или документа держит другой пользователь;- ошибки с упоминанием модуля бизнес-процесса — сбой в коде обработчика маршрута.
Технологический журнал
Если ошибки блокировок повторяются, а виновника не видно, включите технологический журнал. Файл logcfg.xml кладут в каталог conf установленной платформы на сервере 1С. Пример настройки только для ошибок и блокировок:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="C:\1c_techlog" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="TTIMEOUT"/>
</event>
<event>
<eq property="name" value="TDEADLOCK"/>
</event>
<property name="all"/>
</log>
</config>
history="24" — хранить логи 24 часа. Для поиска одной проблемы этого хватает.
Не оставляйте технологический журнал включённым навсегда. Он быстро занимает диск. Соберите данные за 1–2 дня и удалите или переименуйте logcfg.xml. Платформа подхватывает файл без перезапуска службы, сеансы пользователей не обрываются.
Программная проверка и отладка процессов
Этот раздел — для тех, кто сопровождает доработанный Документооборот и имеет доступ к конфигуратору.
Найти активные процессы без задач
Запрос находит процессы, которые стартованы, не завершены и при этом не имеют ни одной невыполненной задачи. Это кандидаты в «зависшие». Пример для процесса «Исполнение»; имя бизнес-процесса подставьте своё:
ВЫБРАТЬ
БП.Ссылка КАК Процесс,
БП.Дата КАК Дата
ИЗ
БизнесПроцесс.Исполнение КАК БП
ЛЕВОЕ СОЕДИНЕНИЕ Задача.ЗадачаИсполнителя КАК З
ПО (З.БизнесПроцесс = БП.Ссылка)
И (НЕ З.Выполнена)
И (НЕ З.ПометкаУдаления)
ГДЕ
БП.Стартован
И НЕ БП.Завершен
И НЕ БП.ПометкаУдаления
И З.Ссылка ЕСТЬ NULL
УПОРЯДОЧИТЬ ПО
БП.Дата
Выполните его в консоли запросов. В выборку попадут и процессы, которые законно ждут вложенный процесс, — их отсейте вручную, открыв карточку.
Как возобновить процесс программно
Не меняйте реквизит состояния процесса напрямую через запись объекта. Команда «Продолжить» делает больше: снимает пометку с задач, меняет состояние подчинённых процессов, пишет историю.
Правильный приём: откройте в конфигураторе форму бизнес-процесса, найдите обработчик команды «Продолжить» и посмотрите, какую серверную процедуру он вызывает. Именно её вызывайте в своей обработке для пакетного возобновления.
Отладка обработчиков маршрута
Код точек маршрута (ПередСозданиемЗадач, ПриСозданииЗадач, ПроверкаУсловия, ПриЗавершении) выполняется на сервере. Часть — в фоновых заданиях. Чтобы поймать ошибку:
- Включите отладку на сервере: служба агента сервера должна быть запущена с ключом
-debug. - В конфигураторе откройте
Отладка → Подключениеи включите автоматическое подключение к фоновым заданиям. - Поставьте точку останова в обработчике проблемной точки маршрута.
- Повторите действие на копии базы: выполните задачу, после которой процесс встаёт.
Добавление ключа -debug требует перезапуска службы агента сервера 1С. Все сеансы пользователей оборвутся. Делайте это вне рабочего времени или на тестовом сервере с копией базы.
Как сделать, чтобы процессы не вставали
Профилактика дешевле разбора.
- 👥 Роли исполнителей вместо конкретных людей. В шаблонах процессов адресуйте шаги ролям. Ушёл юрист — меняете состав роли, а не сто шаблонов.
- 🔁 Регламент увольнения. В чек-лист кадровой службы добавьте пункт «перенаправить задачи в ДО» до отключения пользователя.
- 🗓 Еженедельная проверка. Раз в неделю запускайте запрос из раздела выше и разбирайте найденные процессы.
- 🧪 Доработки — только через тест. Любую правку обработчиков маршрута проверяйте на копии базы, проведя через неё 2–3 реальных сценария.
- 🖥 Контроль регламентных заданий. После каждого копирования базы и обновления проверяйте флажок блокировки регламентных заданий.