Когда и как блокировать регламентные задания при обновлении 1С:Бухгалтерии 3.0

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

Обновление типовой клиент-серверной конфигурации 1С:Бухгалтерия 3.0 — это ответственный процесс, требующий соблюдения определенной последовательности действий. Одним из наиболее часто обсуждаемых вопросов среди администраторов является необходимость блокировки регламентных заданий. Разберем детально, зачем это нужно, в какой момент устанавливать блокировку и как правильно вернуть систему в рабочее состояние.

Почему важно блокировать регламентные задания?

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

Рассмотрим основные причины, по которым блокировка необходима:

  1. Монопольный доступ: Для успешного принятия изменений конфигурации системе часто требуется эксклюзивный доступ к таблицам.
  2. Стабильность процесса: Как отмечалось в практике (сообщение 6), на больших базах регламентные задания могут вызывать аварийное завершение обновления.
  3. Контроль ресурсов: Фоновые задания потребляют ресурсы сервера (CPU, RAM), которые необходимы для максимально быстрого завершения реструктуризации.

Способ 1: Использование консоли администрирования сервера 1С

Это классический и самый надежный метод для клиент-серверного варианта. Выясним, как правильно выставить настройки в консоли.

Разберем шаги:

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

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

Способ 2: Управление через пользовательский режим (БСП)

Если доступа к консоли администрирования нет, мы можем воспользоваться встроенными средствами Библиотеки стандартных подсистем (БСП). В современных версиях Бухгалтерии 3.0 этот функционал находится в разделе Администрирование — Обслуживание — Блокировка работы пользователей.

Проанализируем работу этого механизма:

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

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


"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /S "ServerName\BaseName" /C "ЗавершитьРаботуПользователей" /UC "КодДоступа"

Способ 3: Автоматизация через утилиту RAC и командную строку

Для опытных администраторов и систем непрерывной интеграции (CI/CD) актуален метод использования утилиты командной строки rac. Она позволяет управлять настройками базы без визуальной консоли.

Выясним пример команды для включения блокировки регламентных заданий:


rac infobase --cluster=<ID_кластера> update --infobase=<ID_базы> --infobase-user=<Имя> --infobase-pwd=<Пароль> --scheduled-jobs-deny=on

И, соответственно, для выключения после завершения всех процедур:


rac infobase --cluster=<ID_кластера> update --infobase=<ID_базы> --infobase-user=<Имя> --infobase-pwd=<Пароль> --scheduled-jobs-deny=off

Проблема фонового обновления данных после Конфигуратора

Рассмотрим критически важный момент, описанный в сообщении 11. В современных конфигурациях 1С после нажатия «F7» в Конфигураторе процесс не заканчивается. При первом запуске 1С:Предприятие стартует этап «Обработка данных», который в новых версиях БСП часто выполняется в фоновом режиме.

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

Решение:

  1. Либо временно снимите блокировку регламентных заданий сразу после входа в пользовательский режим под правами администратора.
  2. Либо используйте специальный параметр запуска /AllowExecuteScheduledJobs -Force.
  3. Либо в параметрах блокировки в консоли укажите «Код разрешения» (например, Update123), и запускайте 1С с параметром /UC Update123. В этом случае фоновые задания, инициированные этим сеансом, смогут обходить общую блокировку.

Рекомендации для стабильного обновления больших баз

Подведем итог и составим оптимальный алгоритм действий для администратора:

  1. Подготовка: Убедимся, что в базе нет активных сеансов. В консоли администрирования установим блокировку начала сеансов и блокировку регламентных заданий.
  2. Очистка: Проверим список активных фоновых заданий. Если есть «зависшие» процессы, которые не завершились после включения блокировки, их следует завершить принудительно. В исключительных случаях на высоконагруженных серверах рекомендуется перезапустить службу 1C:Enterprise 8.3 Server Agent.
  3. Обновление: Выполним обновление конфигурации через Конфигуратор.
  4. Запуск: Запустим базу в режиме «1С:Предприятие». Если используется «Код разрешения», вводим его.
  5. Фоновые процедуры: Зайдем в раздел «Результаты обновления». Если мы видим, что задания обработки данных не выполняются, снимаем блокировку регламентных заданий в консоли.
  6. Завершение: Дождемся окончания всех процедур обработки данных (индикатор прогресса должен дойти до 100%). После этого можно снимать блокировку начала сеансов и пускать пользователей.

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

← На главную