Расширение в файле .cfe: как его открыть, хранить в хранилище и вести в Git
Содержание
Файл CFE в 1С — это сохранённое в один файл расширение конфигурации
. Открыть его можно только платформой 1С:Предприятие 8.3: в конфигураторе через окно Конфигурация → Расширения конфигурации или в пользовательском режиме через Администрирование → Печатные формы, отчеты и обработки → Расширения. Блокнотом его не прочитать: внутри сжатый бинарный контейнер.
Частое заблуждение — что бывают «текстовые CFE» и «бинарные CFE». Формат .cfe всегда один, бинарный. Текстовым бывает другое представление того же расширения: выгрузка в каталог XML-файлов и модулей .bsl. Именно её кладут в Git и сравнивают построчно, а из неё при необходимости снова собирают .cfe.
Что хранит файл CFE и чем он отличается от CF
Расширения конфигурации появились в платформе 8.3.6. Это способ доработать типовую конфигурацию , не снимая её с поддержки: свои реквизиты, формы, печатные формы, перехват методов. Сам механизм живёт в базе, а файл .cfe нужен, чтобы перенести расширение между базами или сохранить его копию.
Внутри файла:
- 📦 собственные объекты расширения — справочники, документы, общие модули, отчёты;
- 🔗 заимствованные объекты основной конфигурации с изменёнными формами и модулями;
- ⚙️ свойства самого расширения: имя, синоним, префикс, назначение, режим совместимости;
- 🧩 модули с перехватчиками
&Перед,&После,&Вместо,&ИзменениеИКонтроль.
Данных базы (документов, остатков, пользователей) в .cfe нет. Это только «код и метаданные».
| Формат | Что внутри | Где применяется |
|---|---|---|
.cf | Вся конфигурация целиком | Перенос или замена основной конфигурации |
.cfe | Одно расширение конфигурации | Подключение доработки к базе |
.cfu | Файл поставки обновления | Обновление конфигурации на поддержке |
.dt | Выгрузка информационной базы с данными | Резервная копия, перенос базы |
Если подрядчик прислал доработку в виде .cf, а не .cfe, уточните, что это: полная конфигурация или выгруженное расширение. Загрузка .cf в основную конфигурацию заменит её целиком.
«Текстовый» и бинарный вид расширения: в чём разница
Одно и то же расширение может существовать в двух видах. Отличаются они не содержанием, а удобством работы.
Файл .cfe | Выгрузка в XML-файлы | |
|---|---|---|
| Вид | Один бинарный файл | Каталог с сотнями файлов |
| Читается человеком | Нет | Да, XML и .bsl |
| Построчное сравнение версий | Только средствами конфигуратора | Любым diff, в Git |
| Перенос в другую базу | Одной загрузкой | Нужна загрузка из файлов |
| Размер | Обычно сотни килобайт | Больше, но хорошо сжимается |
Структура XML-выгрузки расширения похожа на выгрузку обычной конфигурации:
Extension/
Configuration.xml — свойства расширения
ConfigDumpInfo.xml — служебный файл для инкрементальной выгрузки
CommonModules/
МойМодуль.xml
МойМодуль/Ext/Module.bsl
Documents/
РеализацияТоваровУслуг.xml
РеализацияТоваровУслуг/Forms/...
Languages/
Русский.xml
Модули лежат в файлах .bsl — это обычный текст на встроенном языке. Их удобно читать в любом редакторе и в веб-интерфейсе Git-сервера.
Не правьте XML-файлы вручную ради «быстрой правки» в рабочей базе. Ошибка в разметке метаданных всплывёт только при загрузке, и расширение не соберётся.
Как открыть файл CFE в 1С
Открыть .cfe «посмотреть» без базы нельзя. Нужна информационная база с подходящей основной конфигурацией: расширение заимствует её объекты и без них не загрузится. Для изучения чужого файла заведите копию рабочей базы или пустую базу на той же конфигурации.
В конфигураторе
- Откройте базу в режиме «Конфигуратор».
- Если основная конфигурация не открыта, откройте её:
Конфигурация → Открыть конфигурацию. - Выберите
Конфигурация → Расширения конфигурации. - В окне расширений нажмите «Добавить» — появится новое пустое расширение.
- Выделите его и через меню «Конфигурация» в этом окне выберите «Загрузить конфигурацию из файла …», укажите .cfe.
- Откройте дерево расширения двойным щелчком — видны все объекты и модули.
- Чтобы расширение заработало в базе, выполните
Конфигурация → Обновить конфигурацию базы данныхдля него (клавиша F7 в дереве расширения).
Загрузка файла и обновление конфигурации базы данных — два разных шага. Пока второй не выполнен, пользователи доработку не увидят.
Сохранить расширение обратно в файл можно там же: меню «Конфигурация» окна расширений → «Сохранить конфигурацию в файл…».
В пользовательском режиме
В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11 и другие) расширения подключают без конфигуратора:
Администрирование → Печатные формы, отчеты и обработки.- Ссылка «Расширения».
- Кнопка «Добавить из файла» → выберите .cfe.
- Подтвердите предупреждение о безопасности и перезапустите программу.
Расширение выполняет код в вашей базе. Подключайте .cfe только от известного разработчика. Галочку «Безопасный режим» снимайте лишь тогда, когда понимаете, зачем расширению полный доступ.
Выгрузка CFE в XML и сборка обратно
Перевести расширение из .cfe в файлы и обратно можно вручную из конфигуратора или пакетно из командной строки. Второй способ нужен для автоматизации и Git.
Через меню конфигуратора
Откройте дерево нужного расширения и в главном меню выберите Конфигурация → Выгрузить конфигурацию в файлы…. Укажите пустой каталог. Обратная операция — Конфигурация → Загрузить конфигурацию из файлов… в том же дереве расширения.
Через командную строку
Пакетный запуск конфигуратора принимает параметр -Extension с именем расширения. Пример для файловой базы:
rem Выгрузить расширение из базы в XML
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /N "Администратор" /P "" ^
/DumpConfigToFiles "D:\Repo\Extension" -Extension МоиДоработки /Out "D:\log_dump.txt"
rem Загрузить XML обратно в расширение базы
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /N "Администратор" /P "" ^
/LoadConfigFromFiles "D:\Repo\Extension" -Extension МоиДоработки /Out "D:\log_load.txt"
rem Собрать из базы файл .cfe
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /N "Администратор" /P "" ^
/DumpCfg "D:\Out\МоиДоработки.cfe" -Extension МоиДоработки
rem Применить расширение к базе данных
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Test" /N "Администратор" /P "" ^
/UpdateDBCfg -Extension МоиДоработки
Путь к 1cv8.exe замените на свою версию платформы. Для клиент-серверной базы вместо /F используется /S "сервер\база".
Цепочка «файл .cfe → XML» выглядит так: загрузить .cfe в базу (/LoadCfg файл.cfe -Extension Имя), затем выгрузить из неё в файлы. Прямого конвертера «файл в файл» в платформе нет — всегда нужна промежуточная база.
Параметр -update у /DumpConfigToFiles выгружает только изменённые объекты по данным ConfigDumpInfo.xml. На крупном расширении это заметно ускоряет каждую выгрузку.
Результат пакетного запуска смотрите в файле из /Out: при ошибке конфигуратор пишет туда причину, а на экран ничего не выводит.
Хранилище конфигурации для расширения
Когда над доработкой работают двое и больше, расширение подключают к хранилищу конфигурации. У каждого расширения своё хранилище, отдельное от хранилища основной конфигурации.
Порядок действий:
- В конфигураторе откройте дерево расширения.
- В меню
Конфигурация → Хранилище конфигурациивыберите «Создать хранилище…» (первый разработчик) или «Подключиться к хранилищу…» (остальные). - Укажите каталог хранилища или адрес сервера хранилища вида
tcp://сервер/путь. - Дальше работа обычная: захват объектов, помещение изменений, получение чужих правок.
Что учесть на практике:
- 🔒 у расширения и основной конфигурации разные пользователи хранилища — заведите их в обоих;
- 🗂 не кладите хранилище расширения в каталог хранилища основной конфигурации, держите рядом отдельной папкой;
- 🏷 перед выпуском .cfe ставьте метку версии в хранилище — потом проще найти, какой файл ушёл заказчику;
- 🔄 при обновлении типовой конфигурации сначала обновите её, затем проверьте расширение и поместите исправления заимствованных объектов.
Хранилище хранит историю, но в собственном формате. Для просмотра изменений построчно, код-ревью и CI его обычно дублируют в Git.
Как вести расширение CFE в Git
Сам файл .cfe в Git класть можно, но толку мало: diff покажет «бинарный файл изменён». Хранят XML-выгрузку, а .cfe собирают из неё при выпуске.
Рабочая схема
- Создайте репозиторий, в нём каталог, например
src/МоиДоработки. - Выгрузите расширение командой
/DumpConfigToFiles ... -Extension МоиДоработки. - Сделайте первый коммит.
- После каждой доработки повторяйте выгрузку и коммит.
- Для выпуска собирайте .cfe из базы командой
/DumpCfgи прикладывайте к релизу или тегу.
Настройка репозитория
# .gitattributes
*.bsl text eol=crlf
*.xml text eol=crlf
*.cf binary
# .gitignore
*.cfe
*.log
ConfigDumpInfo.xml
ConfigDumpInfo.xml часто исключают из репозитория: он меняется при каждой выгрузке и создаёт шумные конфликты. Если пользуетесь -update, храните его локально у себя.
Если команда уже работает в хранилище
Переносить историю из хранилища в Git вручную долго. Для этого есть открытые инструменты сообщества на OneScript (например, gitsync): они проходят по версиям хранилища и делают коммит на каждую с автором и комментарием. Перед внедрением прогоните их на копии хранилища.
Через 1С:EDT
Среда 1С:Enterprise Development Tools хранит проект расширения в своём формате, а не в формате XML-выгрузки конфигуратора. Смешивать оба формата в одном каталоге нельзя. Выберите один: либо команда работает в конфигураторе и коммитит его выгрузку, либо все переходят на EDT и импортируют расширение в проект один раз.
Что проверить перед тем, как отдать CFE в рабочую базу
Файл .cfe легко собрать и так же легко подключить с сюрпризом. Перед передачей заказчику или коллеге пройдите короткую проверку на копии рабочей базы.
Назначение влияет на порядок применения: сначала применяются расширения с назначением «Исправление», затем «Адаптация», затем «Дополнение». Если два расширения перехватывают один и тот же метод, результат зависит от этого порядка.
Номер версии удобно хранить в свойстве «Версия» самого расширения. Тогда в списке расширений базы сразу видно, какая сборка подключена, и не нужно гадать по дате файла.
Ошибки при работе с CFE и что с ними делать
Большинство проблем возникает не при загрузке файла, а при применении расширения к базе.
Обновление конфигурации базы данных для расширения, которое добавляет свои реквизиты или регистры, меняет структуру таблиц. Делайте его вне рабочих часов и после резервной копии: при сбое пользователи получат ошибки в открытых сеансах.
Отдельно о совместимости: режим совместимости расширения должен соответствовать режиму основной конфигурации. Если они разные, конфигуратор предупредит при проверке, а часть возможностей языка в расширении будет недоступна.