В современных версиях системы 1С:Документооборот (начиная с 2.0 и выше) используется механизм асинхронного выполнения задач. Это означает, что после того, как пользователь нажимает кнопку «Согласовано» или «Исполнено», система не заставляет его ждать окончания всех серверных процедур — проверки условий маршрутизации, старта новых этапов, рассылки уведомлений. Вместо этого задача помещается в специальную очередь, а пользователю выдается сообщение: «Задача находится в очереди для выполнения. Выполнение задачи произойдет автоматически в ближайшее время». Однако случаются ситуации, когда это «ближайшее время» затягивается на дни, а статус задачи не меняется. Разберем подробно, почему это происходит, как реанимировать процесс и выявить зависшие процессы в Документообороте.
Проанализируем механику работы системы: когда регламентное задание пытается завершить задачу, оно должно внести изменения в карточку документа и связанные регистры. Если в этот момент карточка заблокирована другим пользователем или файл, прикрепленный к процессу, открыт кем-то на редактирование, фоновый процесс не сможет получить доступ к объекту. Рассмотрим, что нужно сделать в первую очередь:
Выясним причину, связанную с административными настройками. Очередь задач обрабатывается специальным регламентным заданием ВыполнениеЗадач. Если работа регламентных заданий в базе запрещена, очередь не сдвинется с места. Посмотрим, где это проверить:
ВыполнениеЗадач в списке регламентных и фоновых заданий. Оно должно быть включено и иметь актуальную дату последнего завершения — для этого подойдёт обработка контроля выполнения регламентных заданий в 1С.Разберем ситуацию, когда задание запускается, но не может выполнить код из-за ограничений прав. В 1С:Документооборот фоновые процессы часто выполняются от имени конкретного пользователя, указанного в настройках, или от имени системной учетной записи. Если у этого пользователя недостаточно прав на изменение объектов (например, нет прав на конкретную папку документов или роль «Полные права» для системных действий), задача будет «откатываться» обратно в очередь.
Рекомендуется временно назначить пользователю, под которым выполняются фоновые задания, полные права и проверить, исчезнут ли задачи из очереди. Если это помогло, следует детально проанализировать профили групп доступа.
Иногда происходит логический сбой: бизнес-процесс считается прерванным или завершенным, но в регистре сведений ЗадачиДляВыполнения запись о задаче остается в статусе «Активна». Рассмотрим по шагам, как исправить это вручную, если стандартные методы не помогают:
Задачи для выполнения (через «Все функции» или «Функции для технического специалиста»).Пример кода для программной корректировки статуса (использовать только в крайних случаях через внешнюю обработку) — для этого подойдёт универсальный технический инструментарий разработчика и администратора 1С:
ОбъектЗадача = ЗадачаСсылка.ПолучитьОбъект();
ОбъектЗадача.СостояниеБизнесПроцесса = Перечисления.СостоянияБизнесПроцессов.Прерван;
ОбъектЗадача.Записать();
Проанализируем ситуацию, когда одна «плохая» задача блокирует всю остальную очередь. Если при выполнении алгоритма конкретной задачи (например, в расширении или при срабатывании подписки на событие) возникает критическая ошибка, фоновое задание может аварийно завершаться. Система видит, что задача не выполнена, и при следующем запуске регламентного задания снова берет её в работу, наступая на те же грабли.
Для диагностики выполним следующие действия:
ВыполнениеЗадач.Рассмотрим практический совет, который часто помогает пользователям без глубокого погружения в конфигуратор: если задача зависла только у одного сотрудника, попробуйте остановить и заново запустить бизнес-процесс. Для этого:
Это действие обновляет записи в регистрах очередей и может «протолкнуть» зависшую операцию.
Важный нюанс: если вы используете старую версию (например, 2.0.18.1), помните, что в ней механизмы очереди были менее стабильны, чем в современных релизах 2.1 или 3.0. Постоянные зависания — серьезный повод задуматься об обновлении конфигурации до актуальной версии.