Как правильно обновить доработанную конфигурацию УТ 11 при переходе на новые версии (с 11.2 на 11.3)?

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

Переход между минорными версиями конфигурации «Управление торговлей», такими как 11.2 и 11.3, является сложным техническим процессом. Это не просто обновление «исправлений», а серьезная архитектурная переработка программы. Ситуация осложняется, если в базу внесены значительные изменения: добавлены новые реквизиты, регистры сведений или изменен типовой программный код. Рассмотрим подробно, как выполнить этот процесс максимально безопасно и эффективно.

Анализ сложности и выбор стратегии

Прежде всего, проанализируем объем изменений в вашей конфигурации. Нам необходимо разделить доработки на два типа:

  1. Изменения метаданных: добавление новых реквизитов в типовые справочники и документы, создание новых объектов (регистров, справочников).
  2. Программные изменения: модификация модулей типовых объектов, форм и подписки на события.

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

Сохранение структуры данных в промежуточных релизах

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

Проанализируем ситуацию с программным кодом. Изменения, влияющие на проведение документов (в модулях объектов, подписках на события), крайне желательно переносить в каждый релиз. Это связано с тем, что при обновлении УТ 11 часто запускаются обработчики, которые могут инициировать перепроведение документов или пересчет движений. Если ваш специфический код не отработает в этот момент, данные в регистрах могут сформироваться некорректно.

Алгоритм последовательного обновления

Рассмотрим классический, наиболее надежный способ обновления по шагам:

  1. Подготовка: Обязательно создаем резервную копию. Выполняем «Тестирование и исправление» (ТиИ), чтобы исключить ошибки ссылочной целостности.
  2. Выбор дистрибутивов: Используем полные дистрибутивы (файлы 1cv8.cf), а не файлы обновлений (.cfu). Это позволит более гибко управлять процессом сравнения и объединения.
  3. Обновление на промежуточный релиз:
    • Заходим в «Конфигуратор», выбираем «Поддержка» — «Обновить конфигурацию».
    • При сравнении объектов внимательно следим за своими реквизитами. Важно: не снимайте галочки с ваших объектов метаданных, иначе данные будут удалены.
    • Для типовых объектов, где есть ваши реквизиты, используйте режим «Сравнить, объединить с конфигурацией из файла».
  4. Запуск в пользовательском режиме: После каждого обновления конфигурации базы данных (F7) обязательно запускаем программу под администратором. В УТ 11 начнется процесс «Отложенного обновления данных». Проанализируем состояние через форму «Результаты обновления программы» (раздел «Обслуживание»). Пока не завершатся все приоритетные обработчики, переходить к следующему релизу нельзя.

Технические нюансы перехода на УТ 11.3

Выясним причину, по которой перескок через слишком большое количество релизов опасен именно в УТ 11. В версии 11.3 1С удалила множество устаревших реквизитов, которые использовались в 11.1 и 11.2. Если пытаться обновиться сразу на последний релиз 11.3, механизмы обработки данных могут не найти нужных исходных значений, что приведет к ошибкам в расчете себестоимости и остатков.

Для ускорения процесса в пользовательском режиме мы можем настроить количество потоков обновления. В крупных базах это значительно экономит время. Рассмотрим пример настройки в коде (если требуется программное вмешательство в процесс обновления):


// Пример получения параметров обновления для анализа состояния
ПараметрыОбновления = ОбновлениеИнформационнойБазы.ПараметрыОбновления();
Если ПараметрыОбновления.ТребуетсяОбновление Тогда
    ЗаписатьЛог("Процесс обновления запущен...");
КонецЕсли;

Альтернативный метод: «Загрузка CF»

Существует более быстрый, но рискованный способ, если изменений кода очень много, а данных в ваших реквизитах — мало. Рассмотрим его:

  1. Выгружаем cf вашей доработанной базы.
  2. Берем чистый cf последнего целевого релиза УТ 11.3.
  3. Сравниваем ваш cf с чистым целевым cf и переносим только свои объекты в новый файл.
  4. Загружаем полученный результат в рабочую базу.

Внимание: Этот метод требует глубокого понимания структуры метаданных. Если вы ошибетесь в идентификаторах объектов или не учтете удаленные типовые поля, база может прийти в негодность. Также при таком подходе могут возникнуть проблемы с планами обмена (синхронизацией).

Рекомендации по дальнейшей поддержке

Чтобы упростить будущие обновления, рекомендуем придерживаться следующих правил:

Соблюдение последовательности запуска обработчиков в пользовательском режиме и внимательный контроль за сохранностью метаданных — залог успешного перехода на новые версии УТ 11.

← На главную