Почему не отображаются задачи в 1С:Документооборот 3.0 после обновления?

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

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

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

Причина 1. Кардинальное изменение архитектуры и перегрузка очереди кэширования

Начиная с версии 3.0.15, разработчики фирмы «1С» перевели систему расчетов прав и отображения списков задач на асинхронный режим для повышения общей производительности СУБД. Если в старых версиях запись происходила напрямую через менеджер записи регистров, то теперь данные сначала помещаются во временный буфер — регистр сведений ОчередьОбновленияКеширующихДанных. Далее регламентные задания в фоновом режиме обрабатывают эту очередь и обновляют кэш для пользователей.

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

Выясним состояние регистра. Для этого выполним следующие действия:

  1. Перейдем в функции для технического специалиста.
  2. Найдем регистр сведений Очередь обновления кеширующих данных.
  3. Проанализируем количество записей в таблице. Если там находятся миллионы строк, системе требуется время на их обработку.

Как ускорить этот процесс? Нам поможет механизм многопоточности, реализованный в платформе. Настроим его по шагам:

  1. Перейдем в раздел Настройки программы — Общие настройки.
  2. Найдем параметр Число потоков обновления кэширующих данных. По умолчанию там установлено значение 5.
  3. Если аппаратные ресурсы сервера (процессор и оперативная память) не загружены на 100%, временно увеличим количество потоков до 10–15. Это позволит серверу 1С запустить параллельные фоновые процессы и кратно быстрее разобрать миллионную очередь.

Причина 2. Блокировка и сбои регламентных заданий

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

  1. Запуск обработки заданий — отвечает за генерацию новых задач по шагам маршрута.
  2. Актуализация данных — пересчитывает кэширующие таблицы и делает задачи видимыми в интерфейсе исполнителей.

Проверим работоспособность заданий через типовую консоль:

  1. Перейдем в раздел Администрирование — Обслуживание — Регламентные и фоновые задания.
  2. Убедимся, что для вышеуказанных заданий стоит флаг Используется.
  3. Проверим колонку Состояние на наличие ошибок выполнения. Если задание завершилось аварийно, изучим текст ошибки в Журнале регистрации.

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

Причина 3. Лимит попыток обработки в «Очереди заданий документооборота»

Еще один важный технический нюанс связан со справочником ОчередьЗаданийДокументооборота. Когда система пытается создать задачу для следующего исполнителя по маршруту, она обращается к целевому объекту (например, к карточке документа или процессу).

Если в этот момент документ заблокирован другим пользователем или в СУБД возникла транзакционная блокировка из-за высокой нагрузки, система совершает попытку записи. По умолчанию в конфигурации установлен лимит в 4 попытки.

Если все 4 попытки завершились неудачей:

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


Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |	Очередь.Ссылка КАК Ссылка
    |ИЗ
    |	Справочник.ОчередьЗаданийДокументооборота КАК Очередь
    |ГДЕ
    |	Очередь.КоличествоПопыток > 3";

Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Пока Выборка.Следующий() Цикл
    ОбъектЗадачи = Выборка.Ссылка.ПолучитьОбъект();
    ОбъектЗадачи.КоличествоПопыток = 0; // Сбрасываем счетчик в ноль
    ОбъектЗадачи.Состояние = ПредопределенноеЗначение("Перечисление.СостоянияЗаданийДокументооборота.ВОчереди");
    ОбъектЗадачи.Записать();
КонецЦикла;

После сброса счетчика регламентное задание Запуск обработки заданий при следующем запуске повторно подхватит эти задачи и успешно создаст их для пользователей.

Причина 4. Проблемы совместительства и расчета прав («Контейнеры сотрудников»)

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

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

Для решения этой проблемы необходимо запустить стандартную процедуру обновления прав доступа через меню Настройки — Поддержка и обслуживание — Управление правами доступа и выполнить полное обновление прав для проблемных пользователей.

← На главную