Как обновить старую доработанную конфигурацию УТ 10.3 на последнюю версию, сохранив все изменения?

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

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

Почему «прыжок» через много версий вызывает ошибки?

Ключевая проблема заключается в механизме обновления платформы 1С. При переходе с одной версии на другую разработчики конфигурации часто встраивают специальные процедуры — обработчики обновления. Эти обработчики запускаются автоматически при первом старте программы после обновления и выполняют критически важные действия с данными:

Когда вы обновляете конфигурацию, перепрыгивая сразу через множество релизов (например, с 10.3.29 на 10.3.72), система не может последовательно выполнить все промежуточные обработчики. В результате данные в базе остаются в старом формате, а код конфигурации уже новый. Это несоответствие приводит к многочисленным ошибкам, как при запуске, так и в процессе работы.

Стратегии обновления: от простого к сложному

В зависимости от сложности доработок и имеющегося времени можно выбрать один из нескольких подходов. Проанализируем основные из них.

Стратегия 1: Последовательное обновление с доработками (Классический подход)

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

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

Преимущества: Максимальная надежность. Все обработчики обновления данных гарантированно отработают в нужной последовательности.

Недостатки: Очень долго. Если нужно пройти через 30-40 релизов, процесс может занять несколько дней или даже недель.

Стратегия 2: Обновление типовой базы с последующим накатом доработок (Комбинированный подход)

Этот метод позволяет разделить процесс обновления данных и процесс переноса доработок.

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

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

Недостатки: Есть риск, что после финального наката доработок что-то не будет работать с обновленными данными. Требуется тщательное тестирование.

Решение типичных ошибок при обновлении

В процессе обновления вы почти наверняка столкнетесь с ошибками. Рассмотрим самые частые из них.

Ошибка: «Слишком много фактических параметров» или «Недостаточно фактических параметров»

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

Алгоритм исправления:

  1. Запустите обновление в режиме отладки. В настройках отладчика включите опцию «Останавливаться по ошибке».
  2. Когда выполнение прервется на ошибке, изучите стек вызовов, чтобы понять, откуда была вызвана проблемная процедура.
  3. Перейдите к строке кода с вызовом. Установите на нее курсор и нажмите F12 (или «Перейти к определению» в контекстном меню), чтобы посмотреть, как теперь выглядит объявление этой процедуры в новой конфигурации.
  4. Сравните параметры в вызове и в определении. Вы увидите, какого параметра не хватает или какой является лишним.
  5. Внесите исправление прямо в коде. Чаще всего требуется добавить в конец вызова недостающий параметр, например Неопределено, Ложь или Истина, если он не является обязательным.
  6. Продолжите выполнение (F5) и повторяйте процесс для следующих ошибок.

Ошибка: «Процедура или функция с указанным именем не определена»

Эта ошибка означает, что в коде происходит вызов процедуры, которую в новых релизах удалили или переименовали. Здесь нужно действовать аккуратно.

  1. Найдите место вызова с помощью отладчика.
  2. Проанализируйте, что делала эта процедура. Часто по ее названию можно понять назначение (например, УстановитьПризнакВыгрузкиПродажНемаркируемойПродукции).
  3. Если вы понимаете, что эта функциональность устарела и ее вызов больше не является критичным для процесса обновления, можно просто закомментировать строку с вызовом.
  4. Если же логика важна, придется искать в новой типовой конфигурации аналог этой процедуры или переписывать код, чтобы достичь того же результата новыми средствами.

Важно: Комментирование кода — это быстрый, но потенциально опасный путь. Используйте его, только если уверены, что не нарушаете важную бизнес-логику.

Обязательные шаги после завершения обновления

Когда конфигурация наконец обновилась и запускается без ошибок, работа еще не закончена. Необходимо выполнить несколько критически важных проверок.

  1. Обновление конфигурации поставщика. Это обязательный шаг! После обновления основной конфигурации, конфигурация поставщика все еще остается старой. Чтобы это исправить, снова зайдите в режим «Конфигурация» -> «Поддержка» -> «Обновить конфигурацию». Выберите тот же самый финальный файл .cf. Система напишет, что основная конфигурация и конфигурация базы данных не отличаются, и предложит обновить только конфигурацию поставщика. Согласитесь. Если этого не сделать, при следующем штатном обновлении у вас возникнут огромные проблемы.
  2. Тестирование и исправление (ТиИ). Запустите утилиту «Тестирование и исправление информационной базы» (в режиме Конфигуратора) со всеми включенными проверками. Это поможет выявить возможные проблемы со ссылочной целостностью, возникшие в процессе обновления.
  3. Перепроведение документов. Обязательно перепроведите документы за последний значимый период (месяц, квартал). Это позволит убедиться, что все новые механизмы (например, учет прослеживаемости, НДС, расчет себестоимости) корректно работают с вашими старыми данными.
  4. Проверка прав доступа. В новых релизах появляются новые объекты метаданных и, соответственно, новые роли и права. Если вы сильно изменяли типовые роли, необходимо заново проанализировать их и добавить пользователям доступ к новым объектам, иначе они не смогут работать.
  5. Финальное тестирование пользователями. Перед запуском в промышленную эксплуатацию дайте ключевым пользователям протестировать обновленную базу. Они лучше всего знают свои участки работы и быстро найдут мелкие недочеты (не перенесенные колонки в отчетах, пропавшие кнопки на формах), которые вы могли упустить.

Обновление старой и сильно измененной конфигурации — это марафон, а не спринт. Выбирайте стратегию, запасайтесь терпением, тщательно тестируйте каждый шаг, и результат обязательно будет успешным.

← На главную