Файл обновления CFU: создание в Конфигураторе и установка в базу

· 9 мин

Содержание

CFU делают в Конфигураторе через Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления. Ставите флажок «Создать файл обновления », указываете путь к будущему .cfu и добавляете в список CF-файлы прошлых версий, с которых разрешено обновляться. Без этого списка файл обновления не собрать.

Частое заблуждение: «CFU — это просто CF поменьше, его можно сделать из любой базы». Нет. Файл обновления — это разница между новой версией и конкретными старыми версиями поставки. Он работает только у того, у кого конфигурация стоит на поддержке этого же поставщика и у кого одна из перечисленных версий.

Чем CFU отличается от CF и когда нужен каждый

Оба файла создаются одной командой, но решают разные задачи.

CF (файл поставки)CFU (файл обновления)
Что внутриКонфигурация целикомИзменения относительно указанных версий
Для чегоПервая установка, создание базы из шаблона, обновление «с нуля»Обновление базы, где уже стоит прошлая версия
Требование к базеНетКонфигурация на поддержке этого поставщика, версия из списка в CFU
РазмерПолныйЗависит от числа версий в списке
Чем загружаютЗагрузить конфигурацию из файла или Обновить конфигурациюТолько Обновить конфигурацию

Типовые конфигурации фирма 1С выпускает именно так: релиз приходит с 1Cv8.cf и 1Cv8.cfu. Тот же механизм доступен любому разработчику, который ведёт свою конфигурацию или отраслевое решение.

💡 Если пользователи вашей разработки сидят на разных версиях, CFU удобнее: им не нужно сравнивать всю конфигурацию, платформа сама применит изменения поверх их версии.

Что проверить в конфигурации до сборки файла обновления

CFU собирают из конфигурации разработчика, а не из рабочей базы пользователей. Перед сборкой пройдите по четырём пунктам.

1. Свойства конфигурации: поставщик и версия

Откройте дерево конфигурации, вызовите свойства корневого элемента. Заполните:

  • 🏷 Поставщик — одна и та же строка во всех версиях. Сменили поставщика — у пользователей обновление не встанет.
  • 🔢 Версия — например, 1.0.3.12. Каждый новый выпуск получает новый номер, больше предыдущего.
  • 📝 Авторские права и адрес информации — по желанию.

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

2. Настройка поставки

Команда Конфигурация → Поставка конфигурации → Настройка поставки. Здесь для каждого объекта задаётся правило для получателя:

  • ✅ Изменения разрешены — пользователь может дорабатывать объект, при обновлении его правки объединяются с вашими.
  • 🔒 Не редактируется — объект закрыт от изменений, пока пользователь не включит возможность изменения.
  • 🚫 Не поставляется — объект не попадёт в поставку (служебные обработки разработчика, тестовые данные).

Обычно правило ставят на корень конфигурации и не трогают отдельные объекты, если нет причины.

3. Архив прошлых CF

Для CFU нужны файлы поставки предыдущих версий — те самые CF, которые вы когда-то отдали пользователям. Без старых CF собрать обновление с этих версий нельзя. Заведите правило: каждый выпуск сохраняется в папку с номером версии, например D:\Releases\1.0.3.11\1Cv8.cf.

4. Резервная копия

Сборка файла базу не меняет. Но перед выпуском разумно выгрузить .dt и сохранить исходники в хранилище или Git, чтобы потом точно знать, из чего собран выпуск.

Перед созданием CFU
Выполнено: 0 / 6

Как сделать CFU файл: пошагово в Конфигураторе

Шаг 1. Откройте команду создания файлов

В Конфигураторе: Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления. Если пункт недоступен, сначала сохраните конфигурацию.

Шаг 2. Отметьте, какие файлы нужны

В окне два флажка:

  1. «Создать файл поставки» — путь к новому 1Cv8.cf. Его тоже лучше собрать сразу: он понадобится, когда выйдет следующая версия.
  2. «Создать файл обновления» — путь к 1Cv8.cfu.

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

Под флажком CFU есть таблица дистрибутивов. Кнопкой добавления укажите CF-файлы прошлых версий. После выбора файла платформа сама прочитает из него номер версии.

Сколько версий включать — решать вам:

Сколько версий в спискеПлюсыМинусы
Только предыдущаяМаленький файл, быстрая сборкаОтставшим пользователям придётся ставить обновления по цепочке
3–5 последнихОбычный компромиссФайл растёт
Все версии с началаОбновится любойТяжёлый файл, долгая сборка

Фирма 1С в типовых релизах обычно тоже держит несколько последних версий, а не все.

Шаг 4. Запустите создание

Нажмите «Выполнить». Сборка с несколькими версиями в списке может идти несколько минут. В результате в папке появятся 1Cv8.cf и 1Cv8.cfu.

Шаг 5. Проверьте файл

Скопируйте базу на прошлой версии и обновите её новым CFU. Только после этого отдавайте файл пользователям.

Если нужен установщик с setup.exe, как у типовых релизов, загляните в то же подменю Поставка конфигурации: там есть команды для описания и создания комплекта поставки. Комплект ставится в каталог шаблонов, как релиз фирмы 1С. Для простой передачи обновления достаточно CFU.

Как нумеровать версии

Формат номера — четыре числа через точку. Удобная схема, близкая к той, что у типовых решений:

  • первое число — поколение конфигурации, меняется редко;
  • второе — редакция с крупными изменениями;
  • третье — функциональный выпуск;
  • четвёртое — исправления внутри выпуска.

Пример: после 1.0.3.12 исправление ошибки получает 1.0.3.13, новый функционал — 1.0.4.1. Главное — номер каждого следующего выпуска больше предыдущего, и ни один номер не повторяется.

Сборка CFU из командной строки

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

"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /F"D:\Dev\MyBase" /N"Admin" /P"" ^
 /CreateDistributionFiles -cffile "D:\Releases\1.0.3.12\1Cv8.cf" ^
 -cfufile "D:\Releases\1.0.3.12\1Cv8.cfu" ^
 -f "D:\Releases\1.0.3.11\1Cv8.cf" -f "D:\Releases\1.0.3.10\1Cv8.cf" ^
 /Out "D:\Releases\build.log"

Каждый ключ -f добавляет одну прошлую версию в список. Номер платформы в пути подставьте свой. Результат смотрите в файле из /Out.

Обновление типовой конфигурации файлом CFU

Теперь сторона получателя. Подходит и для релизов фирмы 1С, и для вашего собственного CFU.

Через Конфигуратор

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

Перед шагом 6 предупредите пользователей: на время реструктуризации им придётся выйти из базы. В клиент-серверном варианте закройте сеансы в нерабочее время.

Что делать, если CFU не подходит, а версия отстала сильно? Есть два пути: ставить промежуточные релизы по цепочке или взять CF новой версии и обновиться через ту же команду, указав CF вместо CFU. Второй путь работает, но сравнение будет полным и дольше.

Через режим 1С:Предприятие

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

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

В пакетном режиме

"C:\Program Files\1cv8\8.3.25.1374\bin\1cv8.exe" DESIGNER /F"D:\Bases\Buh" /N"Admin" /P"" ^
 /UpdateCfg "D:\Releases\1Cv8.cfu" /UpdateDBCfg /Out "D:\update.log"

Так обновляют базы без доработок по расписанию. Для базы с изменениями пакетный режим не годится: объединение требует решений человека.

Расширения и доработки при обновлении через CFU

Доработки в самой конфигурации

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

  • 🔍 смотрите объекты, изменённые и у поставщика, и у вас — там конфликты;
  • 🧩 для модулей выбирайте объединение с приоритетом поставщика или с приоритетом вашей конфигурации, а затем проверяйте код вручную;
  • 📋 после объединения запустите синтаксическую проверку модулей.

Если конфигурацию когда-то сняли с поддержки, CFU не применится вовсе. Придётся заново ставить её на поддержку через сравнение с CF той версии, на которой она основана, и только потом обновлять.

Расширения

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

После обновления:

  1. Откройте Конфигурация → Расширения конфигурации.
  2. Для каждого расширения выполните проверку применимости.
  3. Если объекты, которые расширение заимствовало, переименованы или удалены, расширение отключится при запуске. Его нужно открыть и поправить заимствования.

💡 Это главный довод в пользу доработок через расширения: основная конфигурация остаётся без изменений, обновление CFU идёт без объединения, а исправлять приходится только расширение.

Если вы — разработчик CFU

Учитывайте пользователей с доработками. Не переименовывайте объекты без нужды и не меняйте имена реквизитов в каждом выпуске. Любое такое изменение ломает чужие расширения и создаёт конфликты при объединении.

Ошибки при создании и установке CFU

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

Ещё несколько промахов, которые встречаются у разработчиков:

  • ❌ Собрали CFU, но не сохранили CF текущей версии. Через месяц следующий выпуск не будет поддерживать обновление с этой версии.
  • ❌ Поменяли строку «Поставщик» (опечатку исправили, добавили «ООО»). Для платформы это другой поставщик.
  • ❌ Собрали CFU из рабочей базы пользователя, где есть его правки. Они уедут всем остальным.
  • ❌ Не увеличили номер версии. Платформа сочтёт выпуск той же версией.

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

Можно ли сделать CFU из CF, если исходной базы уже нет?
Да. Создайте пустую базу, загрузите в неё новый CF через Конфигурация → Загрузить конфигурацию из файла, сохраните и соберите CFU, указав прошлые CF. Свойства «Поставщик» и «Версия» придут из файла.
Можно ли открыть CFU и посмотреть, что внутри?
Напрямую нет. Список версий, с которых он обновляет, платформа показывает при выборе файла в окне обновления. Содержимое изменений видно в окне сравнения при обновлении.
Подходит ли CFU типовой конфигурации для базы с доработками?
Да, если конфигурация на поддержке. Платформа предложит объединить изменения поставщика с вашими.
Почему CFU весит почти как CF?
В списке много версий или изменения большие. Уберите старые версии из списка дистрибутивов — файл уменьшится.
Нужно ли обновлять платформу перед установкой CFU?
Если новый релиз требует более новой платформы, обновление не встанет. Минимальный номер платформы указан в описании релиза; установите платформу с номером не ниже указанного.