Обновление конфигураций 1С, которые «перепрыгивают» через несколько подредакций (например, с 2.0 сразу на 2.3), всегда является серьезным вызовом для разработчика. Ситуация осложняется, если база сильно кастомизирована (переписана), содержит отраслевую специфику (как в случае с «Рарус: Аптека») и работает в режиме распределенной информационной базы (РИБ) на 15 и более узлов. В такой ситуации стандартное нажатие кнопки «Обновить конфигурацию» практически гарантированно приведет к критическим ошибкам.
Проанализируем опыт экспертов и выделим две основные стратегии перехода, а также разберем технические нюансы, которые помогут сохранить целостность данных.
Этот метод предполагает постепенное обновление конфигурации через ключевые релизы, на которых происходят важные изменения структуры данных. Мы не можем просто накатить конфигурацию 2.3 на 2.1, так как в промежуточных версиях (например, в 2.2) выполняются обработчики обновления, которые реструктуризируют таблицы для работы с маркировкой, честным знаком и требованиями 54-ФЗ.
Рассмотрим пошаговый алгоритм:
Администрирование — Обслуживание — Результаты обновления программы. Пока статус не будет «Обновление успешно завершено», переходить к следующему релизу нельзя.Если база «переписана до неузнаваемости», эксперты рекомендуют отказаться от классического обновления в пользу переноса данных в новую, чистую базу актуального релиза. Это позволяет избавиться от «мусора» в коде и некорректно заполненных регистров, накопившихся за годы работы.
Разберем этот процесс:
КонвертацияДанных (версии 2.1), создаем правила обмена между старой и новой версиями.Преимущество этого метода в том, что мы получаем чистую систему, полностью готовую к работе с маркировкой (МДЛП). Недостаток — потеря истории документов (хотя старую базу можно оставить как архив).
Обновление 15 узлов — это зона повышенного риска. Проанализируем, почему это так, и как минимизировать риски:
Проблема гигантских пакетов обмена: При переходе между редакциями происходит массовая перезапись документов и регистров (из-за работы обработчиков обновления). Это регистрирует тысячи изменений для обмена. При попытке синхронизации сформируется файл обмена в несколько гигабайт, который периферийный узел может просто не «переварить».
Решение для РИБ:
Переход на 2.3 потребует актуальной версии платформы (не ниже 8.3.15). Выясним причину возможных проблем при смене платформы: старые базы часто работают в режиме совместимости с 8.2. При обновлении до 2.3 режим совместимости будет поднят до 8.3.14 или выше.
На что обратить внимание:
БиблиотекаПодключаемогоОборудования (БПО). Старые драйверы ККТ могут не поддерживаться, потребуется перенастройка всех касс в 15 магазинах.ОбновитьПОВерсии: В коде типовых обновлений часто встречаются вызовы, которые жестко завязаны на наличие определенных метаданных. Если вы удалили какой-то «ненужный» типовой реквизит в своей переписанной базе, обновление прервется с ошибкой.Для упрощения процесса можно рассмотреть использование специализированного ПО, такого как Обновлятор-1С. Рассмотрим его возможности:
// Пример логики, которую может выполнять скрипт обновления
Процедура ВыполнитьПоследовательноеОбновление()
// 1. Создание резервной копии
Копия = СоздатьБэкап();
// 2. Скачивание релизов из списка
СписокРелизов = ПолучитьСписокДоступныхОбновлений();
Для Каждого Релиз Из СписокРелизов Цикл
Если Релиз.Обязательный Тогда
ОбновитьКонфигурацию(Релиз);
ЗапуститьПредприятиеИВыполнитьОбработчики();
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Однако помните, что даже самый лучший инструмент автоматизации не заменит ручного анализа кода в сильно кастомизированной системе. Особенно это касается Рарус: Аптека, где логика учета лекарственных средств плотно переплетена с типовыми механизмами 1С:Розницы.
Подведем итог: если ваша база 2.1 содержит минимум доработок, идите путем последовательного обновления через ключевые релизы 2.2. Если же база изменена значительно (на 30-50% и более), выберите путь создания новой базы на 2.3 и переноса остатков через Конвертацию Данных. Для РИБ на 15 узлов наиболее безопасным способом будет пересоздание начальных образов после того, как центральный узел будет полностью отлажен и проверен в работе.