Нужно ли заходить в 1С:Предприятие при последовательном обновлении измененной конфигурации ЗУП 3.1 через Конфигуратор?

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

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

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

Разбор архитектуры обновлений БСП: монопольные и отложенные обработчики

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

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

Почему «сквозное» обновление в Конфигураторе губительно для данных

Проанализируем ситуацию, когда мы решили применить «сквозной» метод обновления без промежуточного запуска режима «1С:Предприятие». Предположим, мы обновляем базу с релиза 305 до 395 через промежуточный релиз 369.

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

Если мы накатываем обновления последовательно в Конфигураторе (305 -> 369 -> 395) и только после этого запускаем «1С:Предприятие», происходят следующие деструктивные процессы:

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

Что делать с окном «Выполнение дополнительных процедур обработки данных»

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

Выясним, как правильно вести себя в этой ситуации:

  1. Проявите терпение и ждите. Категорически запрещено закрывать программу через диспетчер задач, принудительно завершать процессы 1cv8.exe или выключать компьютер (сервер). Прерывание транзакции монопольного обновления гарантированно приведет к разрушению логической целостности базы данных.
  2. Дождитесь информационного сообщения. Программа должна либо сообщить об успешном завершении обновления и открыть форму со списком изменений в релизе, либо выдать диагностическое сообщение об ошибке.
  3. Контролируйте ход выполнения. Если процесс визуально «завис», мы можем открыть еще один сеанс Конфигуратора и запустить «Журнал регистрации». Отфильтруйте события по уровню «Ошибка» и посмотрите, выполняются ли в данный момент фоновые или монопольные процессы обновления. Если транзакции идут — система работает, не мешайте ей.

Пошаговый золотой стандарт безопасного обновления измененной конфигурации

Рассмотрим по шагам правильную методику работы с измененной базой «1С:ЗУП 3.1»:

  1. Создание резервной копии. Это обязательный и самый важный шаг. Выполните выгрузку информационной базы в файл .dt или сделайте копию файла 1Cv8.1CD (для файловых баз) / бэкап на сервере SQL (для клиент-серверного варианта).
  2. Обновление в Конфигураторе. Откройте конфигурацию, выберите пункт меню «Конфигурация» — «Поддержка» — «Обновить конфигурацию». Выберите файл обновления первого промежуточного релиза (в нашем примере это 3.1.14.369).
  3. Сравнение и объединение. Поскольку наша база содержит изменения, аккуратно проведите сравнение и объединение конфигураций, сохраняя свои уникальные доработки и перенося новые типовые механизмы.
  4. Применение изменений. Нажмите клавишу F7 (или синий бочонок на панели инструментов) для реструктуризации базы данных.
  5. Запуск «1С:Предприятие». Запустите базу в режиме Предприятия от имени пользователя с правами Администратора. Подтвердите легальность получения обновлений.
  6. Завершение обработки данных. Дождитесь, пока полностью отработает окно «Выполнение дополнительных процедур обработки данных». Перейдите в раздел «Администрирование» — «Обслуживание» — «Результаты обновления и дополнительная обработка данных» и убедитесь, что все (включая отложенные) обработчики завершены со статусом «Выполнен успешно».
  7. Повторение цикла. Только после успешного завершения всех процедур для релиза 369 можно закрыть Предприятие, вернуться в Конфигуратор и начать накат следующего релиза 3.1.14.395, повторив все шаги с 1 по 6.

Лайфхак: ускорение выполнения отложенных обработчиков через параметры запуска

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

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

Посмотрим на пример командной строки для запуска такого форсированного обновления:


"C:\Program Files\1cv8\8.3.22.1709\bin\1cv8.exe" ENTERPRISE /F "C:\1C_Bases\ZUP" /N "Администратор" /P "Пароль" /C "ВыполнитьОтложенноеОбновлениеСейчас"

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

Автоматизация процесса: использование специализированного софта

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

Эта утилита умеет делать следующее:

Использование подобных инструментов автоматизации полностью страхует базу данных от случайных сбоев, связанных с нарушением последовательности выполнения регламентных процедур БСП.

← На главную