Файл обновления .cfu: как накатить релиз на базу 1С 8.3 и не сломать её

· 10 мин

Содержание

Чтобы обновить конфигурацию 1С файлом CFU, откройте базу в Конфигураторе, выберите Конфигурация → Поддержка → Обновить конфигурацию…, укажите файл 1cv8.cfu и после загрузки выполните Конфигурация → Обновить конфигурацию базы данных (клавиша F7). Затем запустите базу в режиме 1С:Предприятие, чтобы отработали обработчики обновления. Перед всем этим нужна выгрузка базы в .dt.

Это общий порядок платформы 8.3, он одинаков для Бухгалтерии, ЗУП, УТ и других типовых решений. Различаются только номера релизов и то, дорабатывали ли вашу конфигурацию. Сложности начинаются там, где релизы пропущены, платформа устарела или база входит в распределённую систему.

Что лежит в файле CFU и чем он отличается от CF

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

Отсюда главное правило: обновление идёт строго по цепочке. Если у вас релиз 3.0.150, а CFU рассчитан на переход с 3.0.160 и новее, файл не подойдёт. Сначала ставите промежуточные релизы.

ФайлЧто внутриКогда использовать
.cfuИзменения от конкретных предыдущих версийТиповая база на поддержке, обычное плановое обновление
.cfПолная конфигурацияНовая пустая база, конфигурация снята с поддержки, сильно доработанная база
.dtКонфигурация вместе с даннымиРезервная копия и перенос базы, не для обновления

Где взять CFU:

  • 📦 Распаковать дистрибутив обновления (updsetup.exe или setup.exe). Установщик кладёт файлы в каталог шаблонов, по умолчанию %APPDATA%\1C\1cv8\tmplts\1c\<конфигурация>\<версия>\1cv8.cfu.
  • 🌐 Скачать с портала поддержки по договору ИТС и тоже распаковать.
  • 🔄 Довериться автоматическому обновлению в самой программе: оно скачивает те же файлы, только без вашего участия.

В папке релиза рядом с CFU лежит файл ReadMe.txt или описание «Новое в версии». В нём указаны версии, с которых возможно обновление, и минимальный номер платформы. Прочитайте его до начала, это две минуты.

Подготовка базы к обновлению конфигурации

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

Перед загрузкой CFU
Выполнено: 0 / 8

Как составить цепочку релизов

Пример. В базе стоит релиз 3.0.150. Вы хотите перейти на 3.0.175. В ReadMe последнего релиза сказано, что обновление возможно с 3.0.165 и новее.

  1. Откройте ReadMe более раннего релиза, например 3.0.165, и посмотрите, с каких версий он ставится.
  2. Если ваш 3.0.150 в этом списке есть, цепочка готова: 3.0.150 → 3.0.165 → 3.0.175.
  3. Если нет, спускайтесь ниже, пока не найдёте релиз, который принимает вашу версию.

Скачайте и распакуйте все звенья цепочки заранее. Обнаружить нехватку промежуточного файла посреди ночного обновления — неприятно.

Как сделать резервную копию

В Конфигураторе: Администрирование → Выгрузить информационную базу…, указать путь и имя файла .dt. Выгрузка требует, чтобы в базе никто не работал.

Для серверной базы MS SQL или PostgreSQL дополнительно сделайте копию средствами СУБД. Выгрузка .dt удобна, но на базах в десятки гигабайт идёт долго, а штатный бэкап СУБД снимается быстрее.

Как освободить базу от пользователей

Файловая база: попросите всех выйти и проверьте Администрирование → Активные пользователи в Конфигураторе.

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

Обновление конфигурации через CFU по шагам

Ниже порядок для типовой конфигурации на поддержке, без изменений. Особенности доработанных баз — в конце раздела.

Шаг 1. Загрузить файл обновления

  1. Запустите базу в режиме «Конфигуратор» под администратором.
  2. Откройте конфигурацию: Конфигурация → Открыть конфигурацию.
  3. Выберите Конфигурация → Поддержка → Обновить конфигурацию….
  4. Отметьте Выбор файла обновления, нажмите «Далее» и укажите путь к 1cv8.cfu.
  5. Нажмите «Готово». Конфигуратор проверит, подходит ли файл к текущей версии, и покажет описание релиза.
  6. В следующем окне нажмите «Выполнить» (для типовой без изменений) или проверьте дерево объединения (для доработанной).

Можно выбрать и Поиск доступных обновлений: тогда Конфигуратор сам просмотрит каталог шаблонов и предложит подходящие файлы. Этот режим удобен, если в шаблонах лежит сразу несколько релизов.

Шаг 2. Обновить конфигурацию базы данных

После загрузки изменилась только основная конфигурация, данные пока работают со старой структурой. Выполните Конфигурация → Обновить конфигурацию базы данных или нажмите F7.

Платформа покажет список изменений структуры. Нажмите «Принять». На этом этапе нужен монопольный доступ к базе, поэтому шаг подготовки с пользователями не пропускайте.

Шаг 3. Запустить обработчики обновления

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

Дождитесь окончания. Часть обработчиков выполняется отложенно, в фоне: их статус виден в Администрирование → Обслуживание → Результаты обновления программы.

Шаг 4. Повторить для следующего релиза цепочки

Если вы шли через промежуточные версии, после каждого CFU выполняйте все три шага, включая запуск в режиме 1С:Предприятие. Пропуск запуска между релизами — частая причина того, что обработчики следующего релиза падают на необновлённых данных.

Если конфигурация доработана

Когда в типовой включена возможность изменений, окно на шаге 1 показывает дерево сравнения: что меняет поставщик и что меняли вы. Флажки у объектов определяют, чья версия попадёт в результат.

  • 🔍 Объекты, которые меняли и вы, и поставщик, просматривайте вручную.
  • 🧩 Доработки, вынесенные в расширения конфигурации , этим окном не затрагиваются. После обновления проверьте, что расширения применяются без ошибок.
  • ✂️ Если конфигурация снята с поддержки, пункт Обновить конфигурацию с CFU не сработает. Нужен полный .cf и Конфигурация → Сравнить, объединить с конфигурацией из файла.

Как обновить CFU в распределённой информационной базе (РИБ)

В РИБ конфигурацию меняют только в главном узле. Подчинённые узлы получают её вместе с сообщениями обмена, загружать CFU в них напрямую нельзя.

Порядок:

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

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

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

Автоматическое и пакетное обновление

Когда баз много, ручной проход Конфигуратором превращается в смену. Есть три способа ускорить работу.

Командная строка 1cv8

Конфигуратор умеет обновляться без окон. Пример bat-файла для файловой базы:

@echo off
set V8="C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe"
set IB=/F"D:\Bases\Buh"
set USR=/N"Администратор" /P"пароль"

rem 1. Резервная копия
%V8% DESIGNER %IB% %USR% /DumpIB "D:\Backup\buh_before_update.dt" /Out "D:\Logs\dump.log" /DisableStartupMessages

rem 2. Загрузка CFU и обновление конфигурации базы данных
%V8% DESIGNER %IB% %USR% /UpdateCfg "D:\Updates\1cv8.cfu" /UpdateDBCfg /Out "D:\Logs\update.log" /DisableStartupMessages

rem 3. Запуск обработчиков обновления
%V8% ENTERPRISE %IB% %USR% /C"ЗапуститьОбновлениеИнформационнойБазы" /DisableStartupMessages

Для серверной базы вместо /F используйте /S"сервер\имя_базы". Номер платформы в пути замените на свой. Ключ /UpdateCfg принимает и .cfu, и .cf.

Если в серверной базе включена блокировка сеансов с кодом разрешения, добавьте ключ /UC"код", иначе пакетный запуск сам не войдёт.

Всегда пишите лог через /Out. Пакетный режим не показывает окон, и без файла журнала вы не узнаете, на каком этапе он остановился.

Обновление из самой программы

В типовых конфигурациях на БСП есть встроенный помощник: Администрирование → Интернет-поддержка и сервисы → Обновление версии программы. Он сам скачивает нужную цепочку CFU, делает резервную копию (для файловой базы) и проходит все шаги. Нужно подключение к интернет-поддержке с действующим договором.

Пакетное обновление многих баз

Для администратора с десятком баз на одном сервере подходит внешняя обработка пакетного обновления конфигураций, которую распространяет фирма 1С для партнёров и подписчиков ИТС. Она берёт список баз, ищет CFU в каталоге шаблонов и обновляет их по очереди. Альтернатива — свой скрипт на основе bat-файла выше, запускаемый планировщиком Windows ночью.

Ошибки при обновлении через CFU и что с ними делать

Начните с текста сообщения: почти каждое прямо указывает на причину.

Диагностика: выберите симптом

Ещё одна частая ситуация: после обновления расширение перестало применяться. Платформа отключает расширение, если оно ссылается на объект, который поставщик переименовал или удалил. Откройте Конфигурация → Расширения конфигурации, посмотрите сообщение по нужному расширению и поправьте его под новую структуру.

Откат обновления конфигурации 1С

Способ отката зависит от того, на каком шаге вы остановились.

Где остановилисьКак вернутьсяЧто теряете
CFU загружен, F7 ещё не нажималиКонфигурация → Конфигурация базы данных → Вернуться к конфигурации БДНичего, данные не тронуты
Конфигурация БД обновлена, база не запускаласьЗагрузка .dt из резервной копииНичего, если копию сделали прямо перед обновлением
Обработчики отработали, пользователи уже вносили данныеЗагрузка .dt из копииВсё, что ввели после копии

Загрузка копии: в Конфигураторе Администрирование → Загрузить информационную базу…, выбрать файл .dt. Загрузка полностью заменяет текущую базу — данные, введённые после выгрузки, пропадут. Если после обновления уже работали, выгрузите текущее состояние отдельно, чтобы потом перенести документы вручную.

Загрузить старый .cf поверх обновлённой базы и нажать F7 — плохая идея. Обработчики уже изменили данные под новую структуру, и обратного преобразования у них нет. Корректный откат только через резервную копию.

Когда откат действительно нужен: база не запускается, обработчики стабильно падают, критичные отчёты или обмены перестали работать, а исправить быстро нельзя. Если же сломалась одна печатная форма или обработка, обычно быстрее поправить её, чем откатывать всё.

Частые вопросы

Можно ли перескочить через несколько релизов одним CFU?
Только если ваша версия есть в списке исходных версий этого CFU. Обычно файл рассчитан на переход с нескольких последних релизов, поэтому после долгого перерыва цепочка неизбежна.
Нужно ли обновлять платформу перед конфигурацией?
Только если новый релиз требует платформу новее установленной. Требование указано в ReadMe. Обновлять платформу на всех рабочих местах и на сервере нужно одной версией.
Сколько длится обновление?
Загрузка CFU и реструктуризация на базе в несколько гигабайт занимают обычно 10–30 минут. Обработчики обновления на крупных базах могут идти часами, часть из них продолжается в фоне.
Можно ли обновлять, пока бухгалтер работает в базе?
Загрузить CFU в основную конфигурацию можно, это не мешает пользователям. Обновление конфигурации базы данных требует монопольного доступа, поэтому этот шаг планируют на нерабочее время.
Что делать с CFU после обновления?
Удалять не обязательно. Но каталог шаблонов растёт на сотни мегабайт с каждым релизом, поэтому старые версии, через которые база уже прошла, можно убрать из tmplts.