Как исправить ошибку «Обнаружено активное задание закрытия месяца» в 1С?

Бухгалтер 1С v8.3 (Управляемые формы) 1С:ERP Управление предприятием Бухгалтерский учет
← На главную

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

Выясним причину: почему возникает эта ошибка?

Для того чтобы понять, почему система блокирует запуск, проанализируем техническую сторону работы платформы 1С. Информация обо всех запущенных и выполняющихся в текущий момент сессиях расчета закрытия месяца фиксируется в специальном регистре сведений ВыполнениеОперацийЗакрытияМесяца.

Когда расчет запускается в штатном режиме, программа создает запись в этом регистре, указывая организацию, период и уникальный идентификатор фонового задания. После успешного завершения расчета система автоматически очищает эту запись. Однако, если процесс прерывается аварийно, программа просто не успевает стереть данные из регистра. К аварийным ситуациям относятся:

  1. Внезапное отключение электропитания на сервере или рабочем компьютере пользователя.
  2. Принудительное завершение рабочего процесса rphost администратором через консоль кластера 1С.
  3. Зависание или аварийное закрытие сеанса пользователя (например, через диспетчер задач Windows).
  4. Плановый или внезапный перезапуск служб 1С:Предприятия во время выполнения расчета.

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

Особенности файлового режима и прав доступа

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

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

Способ 1. Стандартное решение через пользовательский интерфейс

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

  1. Перейдем в рабочее место Регламентные операции по закрытию месяца.
  2. В правом верхнем углу формы нажмем на кнопку Еще.
  3. В выпадающем меню найдем и выберем пункт Активные сеансы закрытия месяца. Перед нами откроется список всех зарегистрированных в системе процессов расчета.
  4. Найдем строку с зависшим расчетом (ориентируемся по названию организации и периоду).
  5. Нажмем на нужную строку правой кнопкой мыши и выберем команду Удалить (или воспользуемся клавишей Delete на клавиатуре).

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

Способ 2. Прямое удаление записи из регистра сведений (для администраторов)

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

  1. Откроем главное меню программы и перейдем в раздел Функции для технического специалиста (в старых версиях платформы этот пункт назывался Все функции). Если этот пункт меню не отображается, его необходимо включить в настройках параметров системы.
  2. В появившемся дереве объектов раскроем ветку Регистры сведений.
  3. Найдем в списке регистр с именем ВыполнениеОперацийЗакрытияМесяца и откроем его.
  4. В открывшемся списке записей найдем зависшую строку, которая соответствует нашей проблемной организации и периоду закрытия.
  5. Выделим эту строку и удалим её стандартным способом (кнопка Еще — Удалить или клавиша Delete).

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

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

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


РегистрыСведений.ВыполнениеОперацийЗакрытияМесяца.ОбновитьСостояниеАктивныхРасчетов();

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

Способ 4. Принудительное завершение через консоль администрирования (клиент-сервер)

Если наша база работает на сервере 1С:Предприятия, то в дополнение к вышеописанным методам мы можем выполнить очистку на уровне СУБД и сервера приложений:

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

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

Резюме и рекомендации по профилактике

Мы подробно проанализировали проблему зависания заданий закрытия месяца в 1С. Чтобы минимизировать появление таких ситуаций в будущем, рекомендуем соблюдать простые правила совместной работы:

← На главную