Как обновить 1С до конкретного релиза и что делать, если обновление завершается ошибкой?

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

Обновление типовых конфигураций 1С, особенно базовых версий, часто воспринимается как простой процесс «нажал кнопку — подождал». Однако на практике специалисты сталкиваются с ситуациями, когда автоматический механизм платформы дает сбой: система скачивает самый свежий релиз, пытается его установить, но из-за технических ошибок или несоответствия версии платформы происходит критический сбой и автоматический откат (rollback). В результате база остается на прежнем релизе, а время потрачено впустую.

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

Причина проблемы: почему 1С падает и откатывается?

Прежде всего, проанализируем ситуацию. Штатный механизм обновления в режиме «1С:Предприятие» или через стандартный поиск в Конфигураторе настроен на получение самого последнего доступного релиза. Если между вашей текущей версией и актуальной версией на сервере 1С накопилось более 5–10 промежуточных шагов, риск ошибки возрастает в геометрической прогрессии. Платформа пытается выполнить цепочку обновлений за один проход, и если на этапе реструктуризации таблиц базы данных возникает ошибка (например, из-за битых ссылок или нехватки места на диске), срабатывает механизм транзакционности — система возвращает конфигурацию в исходное состояние.

Способ №1. Ручное управление через Конфигуратор

Рассмотрим самый надежный метод, который часто называют обновлением «через файл». Этот способ позволяет полностью контролировать, до какой именно версии мы хотим обновить программу. Вместо того чтобы полагаться на автоматический поиск, мы сами скачиваем нужные файлы обновлений (.cfu) с портала технической поддержки.

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

  1. Зайдем в Конфигуратор от имени администратора.
  2. Перейдем в меню Конфигурация — Поддержка — Обновить конфигурацию.
  3. В открывшемся окне выберем вариант «Выбор файла обновления».
  4. Укажем путь к конкретному файлу 1cv8.cfu того релиза, который мы считаем «стабильным» или промежуточным.
  5. После применения конфигурации необходимо запустить базу в режиме «Предприятие», чтобы выполнились обработчики обновления данных (БСП).

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

Способ №2. Манипуляция с каталогом шаблонов (tmplts)

Разберем ситуацию, когда вы хотите использовать штатный механизм поиска, но ограничить его аппетиты. 1С ищет обновления в локальном каталоге шаблонов, который обычно располагается по пути %AppData%\1C\1cv8\tmplts. Выясним, как это использовать в своих целях:

  1. Позволим системе скачать все доступные обновления через штатный поиск.
  2. Перед тем как нажать кнопку «Выполнить обновление», перейдем в папку tmplts.
  3. Найдем вложенные папки, соответствующие нашей конфигурации (например, 1c\Retail\2_3_9_42).
  4. Удалим все папки с релизами, которые выше того, на котором мы хотим остановиться.
  5. Вернемся в 1С и продолжим обновление. Система «увидит» только те файлы, что остались на диске, и обновится ровно до последнего из доступных в папке шаблонов.

Это эффективный способ «обмануть» автоматику, не прибегая к сложному ручному поиску файлов.

Способ №3. Использование полного дистрибутива (.cf)

Проанализируем предложение использовать полный файл конфигурации (.cf) вместо файлов обновлений (.cfu). Многие опытные администраторы предпочитают скачивать полный дистрибутив нужного релиза. Важно понимать разницу:

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

Когда использовать этот метод:

Способ №4. Специализированный инструмент «Обновлятор-1С»

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

  1. Остановка на конкретном релизе: В настройках можно явно указать версию, выше которой обновляться не следует.
  2. Опция «Не откатывать при ошибках»: Это позволяет программе не делать Rollback базы в случае некритичных сбоев. Однако будьте осторожны: если ошибка произошла на уровне SQL-реструктуризации, база может остаться в «подвешенном» состоянии.
  3. Автоматическая очистка кэша: Огромное количество ошибок обновления связано с «мусором» в локальном кэше пользователя. Обновлятор чистит его перед каждым запуском.
  4. Проверка целостности: Перед применением патчей программа может запустить chdbfl.exe (утилиту проверки физической целостности), что предотвращает падение на битых внутренних таблицах.

Важность «узловых» релизов и версии платформы

Разберем ситуацию на примере «Розницы 2.3». Часто обновление с версии 2.3.8 на 2.3.9 падает из-за того, что в новом коде используются функции платформы версии 8.3.17 и выше. Если ваша платформа устарела, обновление применится к конфигурации, но при попытке запуска база выдаст критическую ошибку.

Помните золотое правило: перед началом обновления всегда проверяйте файл ReadMe.txt в дистрибутиве. Там указана минимально необходимая версия платформы 1С:Предприятие. Также не забывайте про «цепочки». Если в описании релиза сказано, что он обновляется с версий 2.3.8.Х, а у вас 2.3.5.Х, вы обязаны сначала найти промежуточный релиз, который является «мостиком».

Итоговые рекомендации по исправлению ошибок

Если ваша база все же «упала» в процессе обновления, выполните следующие шаги для диагностики:

  1. Проверьте журнал регистрации: там часто фиксируется конкретный объект метаданных (справочник, регистр), на котором споткнулась реструктуризация.
  2. Запустите тестирование и исправление: иногда достаточно просто пересчитать итоги или исправить логическую целостность, чтобы обновление «проскочило» проблемное место.
  3. Используйте прямой метод: попробуйте обновиться на один-единственный релиз вверх, используя способ №1 (через файл .cfu), вместо пакетного обновления сразу на 10 версий.

Таким образом, мы выяснили, что штатные средства 1С — это лишь один из вариантов. Комбинируя ручной выбор файлов, очистку кэша и использование вспомогательного ПО, можно успешно обновить даже самую запущенную базу без потери данных и бесконечных откатов.

← На главную