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

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

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

Разберем механику работы регистра Задачи по авторам

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

Когда задача только создается, система делает запись в этот регистр. Значение 01.01.2100 является служебной «заглушкой», которая означает, что задача в данный момент активна и не завершена. В нормальных условиях, как только исполнитель нажимает кнопку «Выполнено», программный обработчик должен заменить эту дату на фактическую дату завершения. Если в регистре остается 2100 год — значит, по какой-то причине механизм обновления данных не отработал.

Проверим настройки ознакомления с результатом

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

Выясним, как это влияет на интерфейс:

  1. Исполнитель выполняет свою задачу.
  2. Процесс не завершается окончательно, а формирует новую задачу для автора — «Ознакомиться с результатом».
  3. Пока автор не нажмет кнопку «Ознакомился», исходная задача в регистре ЗадачиПоАвторам может сохранять статус активной для определенных фильтров.

Посмотрим на состояние процесса в разрезе всей цепочки. Если в «Процессах и задачах» по документу вы видите, что основная ветка завершена, но висит задача ознакомления, — это и есть причина. Автору необходимо выполнить свою часть работы, чтобы задача ушла из списка актуальных.

Проанализируем работу Очереди обслуживания и фоновых заданий

Важной особенностью 1С:ДО 3.0 является асинхронность. Многие действия (расчет прав, обновление регистров задач, рассылка уведомлений) выполняются не мгновенно, а через Очередь заданий. Если задача выполнена, флаг Выполнена в самой задаче стоит, но в списке «Задачи от меня» она висит — скорее всего, обработка очереди задерживается.

Рекомендуем проверить следующие регламентные задания:

Если эти задания завершаются с ошибкой или очередь переполнена (содержит тысячи необработанных записей), данные в регистре ЗадачиПоАвторам просто не успевают обновляться. Проанализируем Журнал регистрации на предмет ошибок записи в этот регистр — иногда блокировки или недостаток прав мешают системе корректно закрыть запись.

Техническое решение: принудительное обновление данных

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

Для разового исправления можно воспользоваться обработкой «Групповое изменение реквизитов», выбрав регистр Задачи по авторам и отфильтровав запись по конкретной задаче. Однако более надежным будет использование небольшого фрагмента кода в консоли кода:


МенеджерЗаписи = РегистрыСведений.ЗадачиПоАвторам.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Задача = СсылкаНаЗависшуюЗадачу;
МенеджерЗаписи.Прочитать();

Если МенеджерЗаписи.Выбран() Тогда
    МенеджерЗаписи.ДатаОкончанияУчета = ТекущаяДата(); // Устанавливаем реальную дату вместо 01.01.2100
    МенеджерЗаписи.СостояниеЗадачи = Перечисления.СостоянияЗадач.Выполнена;
    МенеджерЗаписи.Записать();
    Сообщить("Данные регистра успешно обновлены для задачи: " + СсылкаНаЗависшуюЗадачу);
КонецЕсли;

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

Обновление конфигурации как способ решения

Стоит отметить, что в ранних релизах ветки 3.0 (до версии 3.0.12) наблюдались программные ошибки, связанные с механизмом перенаправления задач. При перенаправлении флаги в регистре ЗадачиПоАвторам иногда не обновлялись корректно у исходного автора. Разберем ситуацию: если ваша база находится на одном из первых релизов 3.0, крайне рекомендуется обновиться до актуальной версии. Вендор выпустил несколько патчей, исправляющих именно логику работы этого регистра при сложных переходах состояний процессов.

Резюме по решению проблемы

Подводя итог, если задача «зависла» в 1С:ДО 3.0, пройдем по шагам:

  1. Убедимся, что по процессу не требуется ознакомление автора с результатом.
  2. Проверим, стоит ли флаг «Выполнена» в самой форме задачи.
  3. Проанализируем состояние Очереди обслуживания в разделе «Обслуживание».
  4. В крайнем случае — скорректируем запись в регистре Задачи по авторам через обработку или код, заменив дату 01.01.2100 на актуальную.

Эти действия помогут поддерживать списки задач в актуальном состоянии и избежать путаницы в работе сотрудников. Чтобы исключить программные ошибки, связанные с устаревшими релизами, можно автоматизировать обновление баз 1С для регулярного получения патчей от разработчика.

← На главную