Как правильно обновлять релизы ЗУП 3.1 и управлять блокировкой регламентных заданий

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

Переход с платформы 1С:Предприятие 8.2 (и конфигурации ЗУП 2.5) на современную версию ЗУП 3.1 приносит не только новые функциональные возможности, но и меняет технологические подходы к обслуживанию базы данных. Одной из наиболее острых тем для системных администраторов и программистов является процесс обновления конфигурации, особенно когда требуется «накатать» сразу несколько релизов подряд. Разберемся, как правильно организовать этот процесс, чтобы не нарушить целостность данных и избежать конфликтов с фоновыми заданиями.

Понимание механизмов обновления в современных конфигурациях

В ЗУП 3.1, построенной на базе Библиотеки стандартных подсистем (БСП), процесс обновления разделен на два принципиально разных этапа. Проанализируем их, чтобы понимать, на каком этапе допустима блокировка регламентных заданий, а на каком — нет.

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

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

Вариант 1: Стандартный метод через консоль кластера серверов

Этот способ считается наиболее надежным для клиент-серверных баз. Посмотрим на алгоритм действий, который рекомендуют опытные специалисты:

  1. Заходим в Консоль администрирования кластера серверов 1С.
  2. В свойствах информационной базы устанавливаем галочку «Блокировка регламентных заданий включена». Это гарантирует, что во время обновления не запустятся тяжелые обмены, рассылки или автоматические расчеты, которые могут помешать процессу.
  3. Выполняем обновление конфигурации через Конфигуратор (один релиз или цепочка релизов).
  4. Запускаем базу в режиме 1С:Предприятие от имени администратора.
  5. В этот же момент в консоли кластера снимаем блокировку регламентных заданий.
  6. Переходим в раздел Администрирование — Обслуживание — Результаты обновления программы.
  7. Контролируем выполнение отложенных обработчиков. Важно дождаться завершения всех приоритетных заданий перед тем, как приступать к обновлению на следующий релиз.

Вариант 2: Управление процессом через интерфейс программы

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

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

Особенности для файловых версий программы

В файловом варианте работы 1С фоновые задания ведут себя иначе — они не запустятся, пока в базе нет активного сеанса. Рассмотрим по шагам, как ускорить процесс для файловой ЗУП:

  1. После обновления в конфигураторе запускаем предприятие.
  2. Система предложит выполнить обновление. После завершения основной фазы открываем Результаты обновления программы.
  3. Поскольку «автоматического» фона в файловой базе может не случиться без специального настроенного сеанса, нажимаем кнопку «Выполнить все сразу» или «Запустить сейчас».
  4. Программа выполнит обработчики в текущем сеансе. Да, это временно заблокирует интерфейс, но гарантирует, что данные будут подготовлены корректно.

Стратегия «Перепрыгивания» через релизы

Часто возникает вопрос: можно ли обновить базу сразу на 5-10 релизов, не запуская предприятие после каждого шага? Проанализируем риски такого подхода.

Критически важно: Каждое обновление может содержать так называемые приоритетные обработчики. Если вы обновите схему данных на версию N+5, а обработчик из версии N+1 не успел отработать, вы можете столкнуться с тем, что программа не сможет корректно прочитать старые данные для их трансформации.

Рекомендация: Оптимально делать «контрольные точки». Обновили на 2-3 релиза — запустили Предприятие — дождались завершения критических обработчиков данных — пошли дальше. Если объем данных в базе велик (десятки гигабайт), то запуск отложенного обновления после каждого релиза является обязательным правилом безопасности.

Использование инструментов автоматизации

Для профессиональной работы разберем использование параметров запуска. Мы можем инициировать обновление через командную строку, используя специфические ключи БСП. Например, использование ключа /C ЗапуститьОбновлениеИнформационнойБазы при запуске 1cv8.exe позволяет системе сразу перейти к выполнению процедур обновления.

Также стоит упомянуть объект РегламентныеЗадания. Если вы хотите, чтобы работали только системные механизмы обновления, но не работали «пользовательские» задания (обмены, рассылки), можно поступить так:

Проанализируем программный способ отключения «лишнего» фона:


// Пример логики для программиста
Задания = РегламентныеЗадания.ПолучитьРегламентныеЗадания();
Для Каждого Задание Из Задания Цикл
    Если Задание.Метаданные.Имя <> "ОтложенноеОбновлениеИнформационнойБазы" Тогда
        Задание.Использование = Ложь;
        Задание.Записать();
    КонецЕсли;
КонецЦикла;

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

Заключение

Подведем итог: обновление ЗУП 3.1 требует более внимательного отношения к фоновым процессам, чем это было в версии 2.5. Не стоит бояться отложенного обновления, но и игнорировать его нельзя. Правильная последовательность действий — Блокировка -> Конфигуратор -> Предприятие + Снятие блокировки -> Контроль обработчиков — обеспечит стабильную работу системы и сохранность ваших данных.

← На главную