Как обновить нетиповую 1С:ERP, если прямой релиз обновления недоступен?

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

При обслуживании и сопровождении крупных решений, таких как 1С:ERP Управление предприятием, специалистам часто приходится сталкиваться с ситуацией, когда текущий релиз информационной базы отсутствует в списке поддерживаемых исходных версий для целевого файла обновления (.cfu). Рассмотрим подробнее, почему возникает такая проблема, почему нельзя пытаться обмануть систему ручным изменением номера версии в конфигураторе и как правильно выполнить переход между версиями на доработанной конфигурации.

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

Файл обновления .cfu содержит служебный файл манифеста UpdInfo.txt, в котором разработчики 1С жестко фиксируют список релизов, с которых допустим прямой переход. Это связано с работой Библиотеки стандартных подсистем (БСП).

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

Чем опасно изменение номера версии в конфигураторе

Выясним причину, почему идея просто изменить значение свойства «Версия» в корне конфигуратора (например, откатить с 2.1.3.213 на 2.1.3.199) является критической ошибкой:

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

Варианты решения проблемы

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

Вариант 1. Последовательное обновление по поддерживаемой цепочке (Рекомендуемый)

Самый надежный метод — довести текущую конфигурацию до релиза, с которого открыт переход на следующую редакцию или ветку. В нашем примере вместо попытки накатить 2.2.1 на 2.1.3.213 следует выполнить дообновление в рамках ветки 2.1 (например, до релиза 2.1.3.220), после чего выполнить переход на релиз 2.2.2, поддерживающий данный исходный релиз.

Вариант 2. Обновление через полный файл конфигурации (.cf)

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

Особенности работы с нетиповой конфигурацией

Если в 1С:ERP внесены доработки, процесс обновления требует повышенного внимания:

  1. Категорически запрещено использовать команду «Загрузить конфигурацию из файла»: Данное действие полностью затрет все пользовательские изменения и доработки конфигурации.
  2. Используйте сравнение и объединение: Обновление нетиповой базы выполняется через процедуру сравнения и объединения с конфигурацией поставщика или путем обновления конфигурации поставщика с сохранением нетиповых объектов.
  3. Следите за конфигурацией поставщика: При последовательном обновлении важно обновлять не только основную конфигурацию, но и конфигурацию поставщика, чтобы сохранять корректность всех последующих сравнений.

Разберем по шагам алгоритм безопасного обновления

  1. Создание резервной копии: Перед любыми манипуляциями выполните полное резервное копирование информационной базы (выгрузку .dt или копию базы на СУБД).
  2. Завершение отложенных обработчиков: Зайдите в базу в режиме «1С:Предприятие» под правами администратора и убедитесь, что в разделе Администрирование — Обслуживание — Результаты обновления программы завершены все оперативные и отложенные процессы обновления данных.
  3. Обновление до промежуточного релиза: Обновите конфигурацию до релиза (например, 2.1.3.220), который входит в список поддерживаемых для целевой ветки (2.2.2).
  4. Применение изменений и запуск БСП: Запустите базу в режиме «1С:Предприятие» и дождитесь полного окончания выполнения процедур обновления информационной базы.
  5. Переход на целевой релиз: Выполните сравнение и объединение с новым релизом (2.2.2), аккуратно перенося доработки вашей нетиповой базы.
  6. Тестирование на копии: Проверьте корректность проведения основных документов, сведение остатков по регистрам и работу ключевых отчетов.
← На главную