Почему не работает блокировка регламентных заданий в 1С и как это исправить?

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

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

В этой статье мы подробно разберем, почему так происходит в современных версиях платформы (8.3.22, 8.3.24, 8.3.25), и какие шаги необходимо предпринять, чтобы гарантированно остановить выполнение всех заданий.

Разберемся в терминах: регламентные и фоновые задания

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

  1. Регламентные задания — это объекты метаданных, созданные разработчиком в конфигурации. У них есть расписание, и они должны запускаться автоматически.
  2. Фоновые задания — это непосредственно процессы (сеансы в консоли), которые выполняют какой-либо код в фоновом режиме.

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

Причина 1: Особенности синхронизации в новых версиях платформы

Проанализируем техническую составляющую последних релизов платформы. Начиная с веток 8.3.23 и выше, архитектура взаимодействия между менеджером кластера и рабочими процессами rphost претерпела изменения. Часто возникает ситуация «рассинхрона»: вы установили галочку в консоли (MMC-оснастке), но команда не дошла до конкретного рабочего процесса или не была зафиксирована в файле конфигурации кластера srvribrg.lst.

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

Причина 2: Активность Полнотекстового Поиска (ПП)

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

Чтобы полностью остановить активность, выполним следующие действия в самой базе (через «Функции для технического специалиста» или программно):

  1. Перейдем в управление полнотекстовым поиском.
  2. Снимем флаг «Полнотекстовый поиск разрешен».
  3. После этого принудительно завершим текущие сеансы ПП в консоли.

Только после отключения самого механизма индексации фоновые задания этого типа перестанут создаваться «как из ружья».

Причина 3: Ошибка при использовании только одной блокировки

Рассмотрим правильный алгоритм блокировки базы для проведения регламентных работ. Использование только флага «Блокировка регламентных заданий» часто недостаточно. Для гарантированного результата необходимо использовать Код разрешения.

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

  1. Установите флаг «Блокировка начала сеансов включена».
  2. Обязательно заполните поле «Код разрешения» (например, BackupPass).
  3. Установите флаг «Блокировка регламентных заданий включена».
  4. Укажите время начала блокировки (желательно за 5-10 минут до начала работ).

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

Программный метод очистки сеансов

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


// Получаем все активные фоновые задания базы
Задания = ФоновыеЗадания.ПолучитьФоновыеЗадания();

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

Этот метод позволяет более адресно воздействовать на процессы, запущенные через механизм ФоновыеЗадания. Однако помните, что для его выполнения у вас должен быть активный сеанс, который сам может быть заблокирован, если вы уже установили запрет на вход. Для удобного интерактивного управления такими процессами без написания кода подойдёт обработка для мониторинга и отмены регламентных и фоновых заданий.

Использование консоли администрирования (нового образца)

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

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

Если вы столкнулись с тем, что блокировка не работает, выполните действия в следующей последовательности:

  1. Проверьте тип заданий: убедитесь, что это не пользовательские отчеты или внешние подключения (HTTP/REST-сервисы).
  2. Используйте комплексную блокировку: всегда устанавливайте «Блокировку начала сеансов» вместе с «Блокировкой регламентных заданий» и обязательно задавайте КодРазрешения.
  3. Отключите Полнотекстовый поиск: если фоновые задания продолжают появляться, временно отключите индексацию в настройках базы.
  4. Перезагрузите службу: если ничего не помогает, выполните перезапуск 1C:Enterprise 8.3 Server Agent. Это радикальный, но самый действенный метод очистки памяти рабочих процессов от «зависших» заданий.

Помните, что стабильность работы планировщика заданий часто зависит от конкретного релиза. Если проблема повторяется регулярно, рассмотрите возможность обновления платформы до последнего патча в рамках вашей ветки (например, переход с .2106 на более свежий билд 8.3.22).

← На главную