Обновление сильно устаревших конфигураций 1С, таких как «Управление торговлей» редакции 11.1 до актуальных версий 11.4 или 11.5, часто превращается в настоящий квест. Если следовать официальным рекомендациям, может потребоваться пройти через 40–60 промежуточных обновлений. В этой статье мы разберем, как оптимизировать этот процесс, определим безопасные способы «прыжков» через релизы и выясним, когда лучше отказаться от последовательного обновления в пользу переноса данных.
Основная опасность при перепрыгивании через несколько релизов (например, с помощью применения cf файла вместо последовательных cfu) — это необратимая потеря данных. Это происходит, когда в промежуточных релизах разработчики 1С удаляли объекты или меняли их структуру, перенося данные в новые места с помощью специальных обработчиков. Если мы просто заменим конфигурацию на финальную, обработчики не увидят старых данных, так как поля уже будут удалены из структуры базы.
Разберем алгоритм технического анализа для поиска максимально возможного прыжка:
cf файл базы и целевой cf. В окне сравнения установим фильтр «Показывать отличия в конфигурациях».Удалить. Если мы видим, что реквизит в нашей текущей версии существует, а в целевой он отсутствует или переименован в УдалитьИмяРеквизита, нам необходимо проверить наличие данных в этом поле в нашей рабочей базе.Вместо того чтобы накатывать все 49 обновлений подряд, проанализируем историю развития конфигурации. В архитектуре УТ 11 существуют критические точки, где происходила полная переработка подсистем (например, расчет себестоимости, учет НДС или механизмы обеспечения). Рассмотрим стратегию перехода по крупным версиям:
Проанализируем цепочку следующим образом:
cfu).Такой подход позволяет сократить количество запусков «1С:Предприятия» для выполнения процедур обновления, сохраняя при этом логическую последовательность трансформации данных.
Самый надежный способ понять, что происходит с данными — заглянуть «под капот» системы. Проанализируем программный код в модуле ОбновлениеИнформационнойБазы. В каждом релизе содержится список процедур, которые отвечают за миграцию данных.
Посмотрим на пример того, как система регистрирует обработчики:
// Пример логики в модуле обновления
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
НовыйОбработчик = Обработчики.Добавить();
НовыйОбработчик.Версия = "11.2.3.10";
НовыйОбработчик.Процедура = "Справочники.Контрагенты.ЗаполнитьНовыеРеквизиты";
НовыйОбработчик.РежимВыполнения = "Отложенно";
КонецПроцедуры
Если в описании релиза или в коде мы видим «жесткие» обработчики, которые переносят остатки из одного регистра в другой (например, при переходе на новую схему учета себестоимости), пропускать такой релиз категорически запрещено. Система должна отработать этот код в режиме «1С:Предприятие», прежде чем структура базы будет изменена следующим обновлением.
Если анализ показал, что последовательное обновление неизбежно, не стоит делать это вручную. Рассмотрим варианты автоматизации:
cfu файлы через конфигуратор в пакетном режиме:
1cv8.exe DESIGNER /UpdateCfg "путь_к_файлу.cfu" /UpdateDBSchema.Важно помнить: после каждого применения обновления необходимо запускать базу в режиме пользователя для отработки фоновых процедур. Выясним, завершены ли они, можно через форму «Результаты обновления программы».
Иногда обновление на 49 релизов занимает больше времени и порождает больше ошибок, чем «чистый» перенос. Проанализируем ситуацию: если база сильно изменена, а типовой функционал 11.1 уже не удовлетворяет потребностям бизнеса, рассмотрим вариант перехода в новую пустую базу 11.4.
Рассмотрим шаги при таком подходе:
EnterpriseData. Он менее чувствителен к различиям в версиях метаданных, чем прямой обмен через «Конвертацию данных 2.0».Этот способ позволяет избавиться от «мусора» в базе, накопленного за 5-7 лет эксплуатации, и начать работу в оптимизированной системе.
Прежде чем приступать к любым манипуляциям, выполним обязательные подготовительные действия, чтобы не столкнуться с аварийным завершением реструктуризации:
Выясним, насколько успешно прошло обновление. Недостаточно просто увидеть надпись «Обновление завершено». Проанализируем следующие показатели:
Подводя итог, скажем: если ваша УТ 11.1 не сильно доработана, самым надежным и быстрым способом будет свертка базы, перенос остатков в 11.4 и ручной донос уникальных доработок. Если же история крайне важна — готовьтесь к последовательному обновлению с обязательным контролем «узловых» точек 11.2 и 11.3.