Как решить проблему с преждевременной просрочкой задач и массово закрыть их в 1С:Документооборот?

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

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

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

Часть 1. Почему задачи становятся просроченными за сутки или раньше срока?

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

1. Отключенная опция использования времени в сроках задач

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

Рассмотрим пример: процесс стартовал в пятницу в 16:00. Срок задачи — 1 день. Если учет времени отключен, крайним сроком выполнения станет суббота 00:00:00. Фактически у исполнителя остается всего несколько рабочих часов до того, как задача автоматически перейдет в статус просроченной. Для исправления этой логики необходимо включить учет времени в настройках процессов и задач, чтобы система рассчитывала дедлайн с точностью до минут (например, ровно +24 часа с момента старта задачи).

2. Ошибки в настройках сроков внутри шаблонов бизнес-процессов

Сроки исполнения задач жестко задаются в шаблонах бизнес-процессов (согласование, исполнение, ознакомление и др.). Если в конкретной точке маршрута процесса установлен некорректный срок (например, указано значение «1 день» вместо реальных рабочих нормативов), задачи будут систематически уходить в просрочку.

3. Влияние часовых поясов и системного времени

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

4. Неверно заполненный производственный календарь

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

Часть 2. Как исправить проблему преждевременной просрочки задач по шагам

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

Шаг 1. Проверяем и настраиваем шаблоны бизнес-процессов

Не нужно искать решение в конфигураторе 1С — все настройки находятся в пользовательском режиме. Выполним следующие действия:

  1. Перейдем в раздел Управление процессами (в зависимости от версии интерфейса это может быть раздел «Процессы и согласование» или «Настройка процессов»).
  2. Откроем справочник Шаблоны бизнес-процессов.
  3. Выберем интересующий нас шаблон (например, «Исполнение») и перейдем к его редактированию.
  4. В схеме процесса или в таблице этапов выберем конкретную точку действия (задачу).
  5. На вкладке со списком исполнителей найдем реквизит Срок исполнения. Если там установлено значение «1 день», увеличим его до приемлемого (например, 2 или 3 дня).
  6. Сохраним изменения в шаблоне.

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

Шаг 2. Проверяем системные настройки времени на сервере

Рекомендуется убедиться, что системное время на сервере приложений 1С, сервере СУБД и локальных компьютерах пользователей синхронизировано. Для баз данных, работающих с филиалами в разных регионах, обязательно должна быть настроена функция ЧасовойПоясИнформационнойБазы и часовые пояса для каждого конкретного пользователя в их карточках.

Часть 3. Как безопасно закрыть тысячи просроченных задач одновременно?

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

Почему нельзя использовать стандартное «Групповое изменение реквизитов» для прямой установки флага «Выполнена»?

Многие начинающие администраторы совершают грубую ошибку: находят задачи через обработку группового изменения реквизитов и принудительно устанавливают реквизиту Выполнена значение Истина, а реквизиту Состояние — статус Выполнена.

Этого делать категорически нельзя! Бизнес-процесс в 1С:ДО — это сложный объект, управляемый картой маршрута. Задача является лишь внешней точкой взаимодействия с исполнителем. Если просто поменять статус задачи напрямую в базе данных, связанный с ней бизнес-процесс «не узнает» о выполнении. Он зависнет навсегда, не перейдет к следующей точке (например, к контролеру или следующему исполнителю) и не завершится. Это приведет к критическому повреждению ссылочной целостности бизнес-логики базы данных.

Для корректного решения этой проблемы существует два безопасных пути.

Способ А. Программный метод выполнения задач через код

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

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


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

Использование конструкции ЗадачаОбъект.ВыполнитьЗадачу() гарантирует, что все подписки на события сработают штатно, история выполнения запишется в регистры сведений, а подчиненные процессы получат сигналы о завершении этапа.

Способ Б. Прерывание бизнес-процессов (Административный метод)

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

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

Рассмотрим, как выполнить это действие групповым способом:

  1. Зайдите в систему под учетной записью с правами Администратора.
  2. Откройте список бизнес-процессов (например, через функции технического специалиста или стандартные журналы процессов).
  3. Отфильтруйте процессы по дате создания (например, выберите все процессы за прошлый год).
  4. Выделите нужные процессы в списке с помощью комбинации клавиш Ctrl + A или удерживая клавишу Shift.
  5. Нажмите правую кнопку мыши и выберите команду Прервать (или воспользуйтесь соответствующей кнопкой на панели управления процессами).

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

← На главную