Как исправить ошибку при обновлении 1С:ЗУП 3 с релиза 3.1.10 на 3.1.12?

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

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

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

Почему возникает критическая ошибка при обновлении?

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

  1. Ветки длительного сопровождения (LTS): в них оперативно вносятся изменения, связанные исключительно с законодательством, и исправляются критические ошибки. Примером такой ветки в свое время являлась редакция 3.1.10.
  2. Текущие технологические ветки: они содержат не только изменения законодательства, но и масштабные оптимизации, новый функционал и переработанную структуру метаданных (например, редакции 3.1.11, 3.1.12 и далее).

Попытка совершить «резкий прыжок» и обновить конфигурацию, минуя промежуточные релизы (например, напрямую с релиза 3.1.10.135 на 3.1.12.113), практически всегда приводит к краху системы. Это происходит по следующим причинам:

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

Как мы видим, версия 3.1.10.135 отсутствует в этом списке. Следовательно, прямая установка обновления недопустима.

Как решить проблему: пошаговый алгоритм

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

Шаг 1. Создание резервной копии

Перед проведением любых манипуляций в Конфигураторе в обязательном порядке создайте резервную копию базы данных. Если вы работаете в файловом варианте, скопируйте файл 1Cv8.1CD. Если используется клиент-серверный вариант (MS SQL, PostgreSQL), выполните резервное копирование средствами СУБД или выгрузите информационную базу в файл .dt через меню Администрирование -> Выгрузить информационную базу....

Шаг 2. Использование транзитного CF-файла

Вместо того чтобы последовательно скачивать и устанавливать десятки мелких обновлений (файлов формата .cfu), мы сократим время и снизим риск ошибок, применив полный файл конфигурации транзитной версии. Нашей точкой стыковки является релиз 3.1.10.276.

  1. Скачайте дистрибутив полной конфигурации релиза 3.1.10.276 (или получите файл 1cv8.cf из шаблона установки этого релиза).
  2. Откройте вашу базу данных в режиме Конфигуратор.
  3. Перейдите в меню Конфигурация -> Поддержка -> Обновить конфигурацию... (или используйте меню Конфигурация -> Сравнить, объединить с конфигурацией из файла..., предварительно сняв конфигурацию с поддержки, если требуется ручное объединение. Однако в типовом варианте рекомендуется стандартное обновление).
  4. Укажите путь к файлу 1cv8.cf от релиза 3.1.10.276.
  5. Выполните сравнение и объединение конфигураций, соглашаясь со всеми изменениями, после чего обновите конфигурацию базы данных (нажав клавишу F7 или синюю бочку на панели инструментов).

Шаг 3. Критически важный запуск в режиме «1С:Предприятие»

Внимание! Это ключевой момент, на котором чаще всего ошибаются специалисты. Нельзя сразу после применения метаданных 3.1.10.276 накатывать целевой релиз 3.1.12.113. Если вы так сделаете, данные не пройдут конвертацию через промежуточные обработчики БСП, и база будет испорчена.

Необходимо выполнить следующие действия:

  1. Запустите программу в режиме 1С:Предприятие под пользователем с полными административными правами.
  2. При запуске система определит изменение версии и откроет окно обновления программы. Начнется автоматическое выполнение обработчиков обновления.
  3. Дождитесь завершения всех фоновых процедур обновления на 100%. Контролировать процесс можно через форму мониторинга обновления БСП (обычно доступна в разделе Администрирование -> Обслуживание -> Результаты обновления и подготовка данных).

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


Процедура ЗарегистрироватьОбработчикиОбновления(ОписаниеРелиза) Export
    // Регистрация обработчиков для перехода на релиз 3.1.10.276
    Обработчик = ОписаниеРелиза.Обработчики.Добавить();
    Обработчик.Версия = "3.1.10.276";
    Обработчик.Процедура = "ОбновлениеИнформационнойБазыЗУП.ЗаполнитьКадровыеМероприятияЭТК";
    Обработчик.РежимВыполнения = "Отложенно";
КонецПроцедуры

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

Шаг 4. Обновление до целевого релиза 3.1.12.113

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

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

Дополнительные факторы риска, о которых важно помнить

При переходе между такими крупными и архитектурно различающимися релизами, как 3.1.10 и 3.1.12, полезно обратить внимание на сопутствующие нюансы, которые могут вызвать непредвиденные сбои:

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

← На главную