Как правильно обновить 1С:Управление торговлей 11 при пропуске большого количества релизов?

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

Ситуация, когда информационная база «1С:Управление торговлей 11» (УТ 11) не обновлялась длительное время, — например, пропущено 28 релизов, — является стандартной, но технически сложной задачей. В этой статье мы подробно разберем, можно ли «перепрыгнуть» через версии, какие риски при этом возникают и какую стратегию обновления выбрать, чтобы не потерять данные и сохранить работоспособность системы.

Анализ проблемы: почему нельзя просто обновить на последний релиз

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

Проанализируем основную опасность: отложенные обработчики обновления. В современных версиях УТ 11 (начиная с 11.4 и выше) после объединения метаданных в конфигураторе основная работа по трансформации данных происходит в режиме «1С:Предприятие». Программа должна пересчитать регистры, заполнить новые реквизиты и перенести данные из старых подсистем в новые (например, при изменении механизмов учета себестоимости или Intercompany). Если мы пропустим промежуточные этапы, эти обработчики могут просто не найти нужных исходных данных в ожидаемом формате, что приведет к «битым» ссылкам и некорректным остаткам.

Стратегия №1: Последовательное обновление по матрице релизов

Рассмотрим самый надежный, хотя и длительный способ. Он заключается в постепенном продвижении по цепочке релизов, рекомендованных фирмой «1С».

  1. Изучение матрицы обновлений: На официальном портале поддержки пользователей (users.v8.1c.ru) для каждого релиза указано, с каких предыдущих версий возможен переход. Нам не нужно устанавливать все 28 релизов. Как правило, цепочка для такого объема пропусков составит около 7–10 промежуточных обновлений.
  2. Подготовка базы: Обязательно выполним резервное копирование. Перед началом процесса запустим утилиту chdbfl.exe и процедуру «Тестирование и исправление» в конфигураторе. Наличие логических ошибок в старой базе гарантированно вызовет сбой при реструктуризации на новых версиях.
  3. Пошаговый накат: Устанавливаем первое промежуточное обновление. После каждого обновления метаданных обязательно запускаем базу в режиме «1С:Предприятие» от имени администратора.
  4. Завершение обработки данных: Мы должны дождаться, пока в разделе «Обслуживание» — «Обновление программы» — «Результаты обновления» завершатся все дополнительные процедуры обработки данных. Переходить к следующему релизу в цепочке, не завершив обработчики текущего, категорически запрещено.

Стратегия №2: Автоматизация процесса с помощью специальных инструментов

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

Программа самостоятельно:

Использование подобных инструментов значительно снижает риск человеческой ошибки при обновлении на 28 релизов, так как программа «не забудет» запустить промежуточный обработчик.

Особенности перехода между крупными редакциями (11.1 -> 11.2 -> 11.3 -> 11.4 -> 11.5)

Разберем нюанс, упомянутый опытными специалистами. Прямой переход через .cf файл возможен только в рамках одной редакции. Если же меняется вторая цифра номера версии (например, переход с 11.4 на 11.5), правила меняются.

Посмотрим на алгоритм перехода между редакциями:

  1. Обновляемся до последнего доступного релиза в текущей редакции (например, 11.4.14.XXX) через .cf или последовательно.
  2. Переход на новую редакцию (например, на 11.5.7.XXX) осуществляем только через файл обновления .cfu. Это критически важно, так как именно в файле обновления заложены правила конвертации данных между существенно различающимися структурами таблиц.
  3. После перехода на новую редакцию снова можно двигаться до актуального релиза внутри неё.

Технические требования и платформа

Проанализируем ситуацию с системным окружением. Обновление конфигурации на 28 шагов вперед неизбежно потребует обновления платформы «1С:Предприятие».

Важно помнить:

Что делать, если база сильно доработана?

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

Алгоритм действий:

  1. Развернем пустую базу актуального релиза УТ 11.
  2. Настроим перенос нормативно-справочной информации (НСИ) и начальных остатков.
  3. Для этого можно использовать «Конвертацию данных 3.0» или встроенные обработки выгрузки/загрузки в формате XML.

Этот метод часто оказывается быстрее, чем попытки «протащить» сильно измененную базу через 28 релизов, исправляя возникающие конфликты кода на каждом шаге.

Резюме и рекомендации

Подведем итог. Можно ли перепрыгнуть 28 релизов? Технически — можно, практически — опасно.

Оптимальный план действий выглядит так:

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

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

← На главную