Как обновить нетиповую конфигурацию УТ 11 через десятки релизов и не потерять данные

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

Обновление сильно устаревших конфигураций 1С, таких как «Управление торговлей» редакции 11.1 до актуальных версий 11.4 или 11.5, часто превращается в настоящий квест. Если следовать официальным рекомендациям, может потребоваться пройти через 40–60 промежуточных обновлений. В этой статье мы разберем, как оптимизировать этот процесс, определим безопасные способы «прыжков» через релизы и выясним, когда лучше отказаться от последовательного обновления в пользу переноса данных.

Анализ структуры метаданных: как определить безопасный «прыжок»

Основная опасность при перепрыгивании через несколько релизов (например, с помощью применения cf файла вместо последовательных cfu) — это необратимая потеря данных. Это происходит, когда в промежуточных релизах разработчики 1С удаляли объекты или меняли их структуру, перенося данные в новые места с помощью специальных обработчиков. Если мы просто заменим конфигурацию на финальную, обработчики не увидят старых данных, так как поля уже будут удалены из структуры базы.

Разберем алгоритм технического анализа для поиска максимально возможного прыжка:

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

Метод «узловых» релизов (Milestones)

Вместо того чтобы накатывать все 49 обновлений подряд, проанализируем историю развития конфигурации. В архитектуре УТ 11 существуют критические точки, где происходила полная переработка подсистем (например, расчет себестоимости, учет НДС или механизмы обеспечения). Рассмотрим стратегию перехода по крупным версиям:

Проанализируем цепочку следующим образом:

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

Изучение обработчиков обновления конфигурации

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

Посмотрим на пример того, как система регистрирует обработчики:


// Пример логики в модуле обновления
Процедура ПриДобавленииОбработчиковОбновления(Обработчики) Экспорт
    НовыйОбработчик = Обработчики.Добавить();
    НовыйОбработчик.Версия = "11.2.3.10";
    НовыйОбработчик.Процедура = "Справочники.Контрагенты.ЗаполнитьНовыеРеквизиты";
    НовыйОбработчик.РежимВыполнения = "Отложенно";
КонецПроцедуры

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

Автоматизация процесса: экономим время

Если анализ показал, что последовательное обновление неизбежно, не стоит делать это вручную. Рассмотрим варианты автоматизации:

  1. Скрипты на PowerShell или OneScript: Можно написать простой скрипт, который будет последовательно применять cfu файлы через конфигуратор в пакетном режиме: 1cv8.exe DESIGNER /UpdateCfg "путь_к_файлу.cfu" /UpdateDBSchema.
  2. Автоматизированное обновление конфигураций: Используем типовые инструменты от 1С (например, входящие в состав БСП), которые умеют сами выстраивать цепочку и запускать обновления в фоновом режиме.

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

Альтернативный вариант: Перенос данных через КД или EnterpriseData

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

Рассмотрим шаги при таком подходе:

  1. Создаем чистую базу актуального релиза 11.4.
  2. Используем универсальный формат обмена EnterpriseData. Он менее чувствителен к различиям в версиях метаданных, чем прямой обмен через «Конвертацию данных 2.0».
  3. Переносим только справочники и остатки на определенную дату.
  4. Историю документов за прошлые периоды оставляем в старой базе 11.1 для просмотра.

Этот способ позволяет избавиться от «мусора» в базе, накопленного за 5-7 лет эксплуатации, и начать работу в оптимизированной системе.

Техническая подготовка базы перед «прыжком»

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

Контроль результатов

Выясним, насколько успешно прошло обновление. Недостаточно просто увидеть надпись «Обновление завершено». Проанализируем следующие показатели:

  1. Оборотно-сальдовая ведомость: Сравним данные по счетам (если есть учет) или ведомости по денежным средствам до и после обновления.
  2. Складские остатки: «Ведомость по товарам на складах» — самый чувствительный отчет. В УТ 11 часто менялись регистры накопления, отвечающие за остатки.
  3. Взаиморасчеты: Проверим отчет «Задолженность клиентов по срокам». При переходе между крупными версиями механизмы распределения оплат могли измениться, что приведет к «разъезжанию» аналитики.

Подводя итог, скажем: если ваша УТ 11.1 не сильно доработана, самым надежным и быстрым способом будет свертка базы, перенос остатков в 11.4 и ручной донос уникальных доработок. Если же история крайне важна — готовьтесь к последовательному обновлению с обязательным контролем «узловых» точек 11.2 и 11.3.

← На главную