Файл обновления конфигурации 1С: от настройки поставки до проверки
Содержание
Файл обновления 1С делают в Конфигураторе: Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления конфигурации. Там отмечают флажок файла обновления, указывают путь к будущему .cfu и добавляют файлы поставки прошлых версий, с которых клиент будет обновляться. Перед этим нужно один раз заполнить настройку поставки и поднять номер версии в свойствах конфигурации.
Дальше — как выбрать формат файла для передачи изменений клиенту, как подготовить конфигурацию к выгрузке, чем полный CF отличается от CFU, когда вместо обновления лучше отдать расширение или внешнюю обработку и как проверить файл до отправки. Всё описано для платформы 8.3 и собственной (не типовой) конфигурации разработчика.
1. Какой файл выбрать для передачи изменений
Формат зависит от двух вопросов: снята ли база клиента с поддержки и насколько большие изменения вы передаёте.
| Формат | Что внутри | Когда подходит | Ограничения |
|---|---|---|---|
.cf — полная конфигурация | Вся конфигурация целиком | Первая установка, клиент снял базу с поддержки, нужно сравнение и объединение вручную | Большой размер, при объединении легко затереть доработки клиента |
.cfu — файл обновления | Только разница между версиями | Клиент стоит на вашей поддержке и не менял объекты | Применяется только к тем версиям, которые вы указали при создании |
.cfe — расширение | Ваши объекты и перехваты поверх основной конфигурации | Доработка типовой конфигурации (БП, ЗУП, УТ) без снятия с поддержки | Не всё можно менять расширением, нужна платформа 8.3.6 и новее |
.epf / .erf — внешняя обработка или отчёт | Одна обработка или отчёт | Печатная форма, загрузка данных, разовый отчёт | Не меняет структуру базы, новые реквизиты не добавить |
.dt — выгрузка информационной базы | Конфигурация вместе с данными | Перенос базы, резервная копия | Для обновления не годится: заменит данные клиента вашими |
💡 Короткое правило: своя конфигурация на поддержке у клиента — CFU. Доработка типовой — расширение. Мелкая отдельная функция — внешняя обработка. Полный CF отдают, когда остальные варианты не работают.
2. Подготовка конфигурации к выгрузке
Без этой подготовки CFU не соберётся или соберётся так, что клиент не сможет его применить. Делается в базе разработчика.
Заполните свойства конфигурации
Откройте конфигурацию (Конфигурация → Открыть конфигурацию), щёлкните правой кнопкой по корню дерева и выберите Свойства. Проверьте три поля:
- 🏷️ Поставщик — название вашей компании или ваше имя. Строка должна совпадать во всех версиях.
- 📦 Имя конфигурации — внутреннее имя объекта метаданных. Его тоже не меняют между версиями.
- 🔢 Версия — номер в формате
1.0.3.1. Для каждого нового выпуска номер должен быть больше предыдущего.
Если сменить поставщика или имя между выпусками, клиентская база не примет обновление: платформа сочтёт, что это другая конфигурация.
Настройте поставку
Откройте Конфигурация → Поставка конфигурации → Настройка поставки. Здесь задаются правила поставки для объектов конфигурации: можно ли клиенту менять объект после установки и нужно ли его вообще поставлять.
Для большинства самописных решений достаточно правила по умолчанию для всей конфигурации. Отдельные правила ставят, если хотите запретить клиенту править критичные модули или наоборот разрешить доработку отчётов.
Обновите конфигурацию базы данных
Перед выгрузкой нажмите F7 (Конфигурация → Обновить конфигурацию базы данных). Затем выполните синтаксическую проверку: Конфигурация → Проверка конфигурации, флажки на проверке модулей в нужных режимах (тонкий клиент, сервер, внешнее соединение).
Файл поставки и обновления собирается из основной конфигурации. Несохранённые изменения в него не попадут, а ошибки компиляции уедут к клиенту.
Заведите архив поставок
Главный приём, без которого CFU не сделать: храните файл поставки .cf каждой выпущенной версии. Удобная структура папок:
D:\Поставки\МояКонфигурация\
1.0.1.1\1Cv8.cf
1.0.2.1\1Cv8.cf
1.0.3.1\1Cv8.cf
1.0.3.1\1Cv8.cfu
Без файла прошлой версии платформа не сможет вычислить разницу, и обновление «с 1.0.2.1» собрать будет не из чего.
3. Полный файл конфигурации: два способа сохранить CF
Сохранить конфигурацию в CF можно двумя путями, и результат у них разный.
Простое сохранение
Конфигурация → Сохранить конфигурацию в файл… → укажите путь и имя. Получится обычный CF без признака поставки. Его можно загрузить в пустую базу (Конфигурация → Загрузить конфигурацию из файла…) или использовать для сравнения.
Такой файл не годится как «прошлая версия» при сборке CFU и не ставит базу клиента на поддержку.
Файл поставки
Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления конфигурации. В окне отметьте флажок создания файла поставки и укажите путь, например D:\Поставки\МояКонфигурация\1.0.3.1\1Cv8.cf.
Файл поставки отличается тем, что несёт сведения о поставщике, версии и правилах поставки. Когда клиент загружает его в новую базу, она сразу встаёт на поддержку вашей конфигурации. Последующие CFU применяются к такой базе через меню поддержки.
💡 Для первой установки у клиента всегда отдавайте именно файл поставки, а не простой CF. Иначе первый же CFU придётся заменять сравнением и объединением.
4. Как сделать файл обновления CFU пошагово
Когда новая версия готова, проверена и номер версии увеличен, собирайте обновление.
- Откройте
Конфигурация → Поставка конфигурации → Создать файлы поставки и обновления конфигурации. - Отметьте флажок создания файла поставки — новый CF пригодится для следующих обновлений. Путь: папка новой версии в архиве.
- Отметьте флажок создания файла обновления и укажите путь к
.cfu. - В списке версий, для которых создаётся обновление, нажмите добавление и выберите файлы поставки прошлых версий: например,
1.0.1.1\1Cv8.cfи1.0.2.1\1Cv8.cf. - Нажмите
Выполнитьи дождитесь окончания. Большая конфигурация собирается несколько минут.
Один CFU может обновлять сразу с нескольких версий. Если у одного клиента стоит 1.0.1.1, а у другого 1.0.2.1, добавьте обе поставки — файл подойдёт обоим.
Какие версии включать
| Ситуация | Что добавить в список |
|---|---|
| Все клиенты регулярно обновляются | Только предыдущую версию |
| Часть клиентов отстала на несколько выпусков | Все версии, которые реально стоят у клиентов |
| Клиентов много, версии неизвестны | Последние 3–5 версий, а отставшим — поставку для сравнения |
Каждая добавленная версия увеличивает размер CFU, поэтому не стоит включать всё, начиная с 1.0.0.1.
Как клиент применяет CFU
В Конфигураторе клиентской базы: Конфигурация → Поддержка → Обновить конфигурацию… → выбрать файл обновления → указать путь к .cfu. Платформа покажет состав изменений; после подтверждения нужно выполнить обновление конфигурации
базы данных.
В типовых конфигурациях на БСП есть помощник установки обновлений в режиме Предприятия (Администрирование → Обслуживание). Если ваша конфигурация построена на БСП, клиент может ставить CFU без Конфигуратора.
Обновление конфигурации базы данных требует монопольного доступа. Пользователи должны выйти из базы, иначе платформа не применит изменения структуры. Предупредите клиента и согласуйте время, а перед обновлением он должен сделать резервную копию.
5. Внешние обработки и расширения вместо файла обновления
Не каждое изменение стоит оформлять обновлением конфигурации. Иногда проще передать отдельный файл, который клиент подключит без Конфигуратора.
Внешняя обработка или отчёт
Если доработка — печатная форма, загрузка из Excel
или аналитический отчёт, оформите её как внешнюю обработку. В Конфигураторе: Файл → Новый → Внешняя обработка, после разработки — Файл → Сохранить в .epf.
Клиент подключает файл в режиме Предприятия через справочник дополнительных отчётов и обработок. В БП 3.0, ЗУП 3.1 и УТ 11 он находится в разделе Администрирование → Печатные формы, отчёты и обработки. Конфигурацию при этом трогать не нужно, поддержка сохраняется.
Расширение конфигурации
Для доработки типовой конфигурации, когда нужно добавить реквизит
, перехватить процедуру модуля или изменить форму, используйте расширение. В Конфигураторе: Конфигурация → Расширения конфигурации, выберите расширение, в меню Конфигурация окна расширения — сохранение в файл .cfe.
У клиента расширение загружают из файла в том же окне расширений или из режима Предприятия (Администрирование → Печатные формы, отчёты и обработки → Расширения). Если расширение добавляет данные (реквизиты, таблицы), после загрузки нужно обновить конфигурацию
базы данных — это отдельный шаг.
| Что меняете | Лучший формат |
|---|---|
| Новая печатная форма документа | Внешняя обработка |
| Новый реквизит в типовом документе | Расширение |
| Изменение логики проведения типовой конфигурации | Расширение |
| Новые подсистемы и документы в собственной конфигурации | CFU |
| Разовая загрузка данных | Внешняя обработка |
6. Выгрузка и сборка из командной строки
Если выпусков много, руками собирать CFU утомительно. Конфигуратор умеет делать то же самое в пакетном режиме, без открытия окна.
Сохранить конфигурацию в CF:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Dev" /N "Администратор" /P "" /DumpCfg "D:\Out\1Cv8.cf" /Out "D:\Out\log.txt"
Создать файл поставки и файл обновления с двух прошлых версий:
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\Bases\Dev" /N "Администратор" /P "" ^
/CreateDistributionFiles -cffile "D:\Поставки\МояКонфигурация\1.0.3.1\1Cv8.cf" ^
-cfufile "D:\Поставки\МояКонфигурация\1.0.3.1\1Cv8.cfu" ^
-f "D:\Поставки\МояКонфигурация\1.0.1.1\1Cv8.cf" ^
-f "D:\Поставки\МояКонфигурация\1.0.2.1\1Cv8.cf" ^
/Out "D:\Out\log.txt"
Номер версии платформы в пути замените на свой. Для серверной базы вместо /F указывают /S "сервер\база".
💡 Ключ /Out пишет протокол в файл. Если сборка молча ничего не создала, ответ почти всегда там: неверный пароль, база занята или указан не тот файл прошлой версии.
На стороне клиента пакетное применение выглядит так: ключ /UpdateCfg с путём к .cfu загружает обновление в основную конфигурацию, а /UpdateDBCfg обновляет конфигурацию базы данных. Полный список параметров ключей смотрите в справке к пакетному режиму Конфигуратора.
7. Проверка файла обновления перед отправкой
Отправлять CFU, не применив его хотя бы раз самому, — главная причина звонков клиентов. Проверка занимает 10–15 минут.
Тестовый прогон
- Создайте пустую файловую базу .
- Загрузите в неё файл поставки прошлой версии:
Конфигурация → Загрузить конфигурацию из файла…. Так вы получите копию клиентской базы на поддержке. - Если есть обезличенная копия данных клиента в
.dt, лучше взять её — так проверите обработчики обновления на реальных данных. - Примените новый CFU через
Конфигурация → Поддержка → Обновить конфигурацию…. - Выполните обновление конфигурации базы данных и запустите Предприятие.
- Проверьте номер версии в окне
О программеи пройдите по изменённым местам.
Если клиент не может применить CFU
Частые вопросы
Можно ли сделать CFU для доработанной типовой конфигурации, например БП 3.0?
Чем CFU отличается от CF по размеру?
Что делать, если файл поставки прошлой версии потерян?
Нужно ли повышать версию, если исправлена одна ошибка?
Можно ли поставить CFU без Конфигуратора?
/UpdateCfg.