Сохранение расширения в файл .cfe: Конфигуратор, режим Предприятия, пакетный запуск
Содержание
Выгрузить расширение конфигурации
в файл в 1С 8.3 проще всего из Конфигуратора: Конфигурация → Расширения конфигурации, выделить нужное расширение и в меню окна выбрать команду сохранения в файл. На выходе получится один файл с расширением .cfe. Его можно передать коллеге, загрузить в другую базу или положить в архив.
Есть ещё три способа. Если Конфигуратор недоступен, расширение сохраняют прямо из пользовательского режима, через список расширений. Для регулярных выгрузок используют пакетный запуск 1cv8.exe с ключом -Extension. А если расширение подключено к хранилищу, файл можно взять из любой его версии. Способ выбирают по задаче: разово передать доработку, сделать резервную копию по расписанию или достать старую версию.
Что проверить перед выгрузкой расширения
Сама выгрузка ничего не меняет в базе. Монопольный доступ для неё не нужен, пользователи могут работать. Но несколько вещей лучше проверить заранее, иначе в файл попадёт не то, что вы ожидаете.
📌 Что проверить:
- ✅ Точное имя расширения. У расширения есть имя (латиница или кириллица без пробелов) и синоним, который видит пользователь. Для командной строки нужно именно имя. Его видно в колонке «Имя» списка расширений или в свойствах корня дерева расширения.
- ✅ Несохранённые правки. Если расширение открыто в Конфигураторе и в нём есть изменения, сначала сохраните их. В заголовке дерева несохранённое состояние отмечено звёздочкой.
- ✅ Версия расширения. Посмотрите свойство «Версия» в корне дерева. Если вы её ведёте, проставьте новое значение до выгрузки. Потом по файлу будет понятно, какая это сборка.
- ✅ Права. Для работы с расширениями в режиме Предприятия нужна роль администратора. В Конфигураторе — пользователь с административными правами.
- ✅ Режим совместимости. Свойство «Режим совместимости» расширения не должно быть выше, чем у основной конфигурации в той базе, куда файл потом загрузят.
Если расширение создавали в режиме Предприятия через «Добавить из файла», в Конфигураторе оно тоже видно. Отдельно его «переносить» в Конфигуратор не нужно.
Выгрузка расширения в файл через Конфигуратор
Это основной способ. Подходит для файловой и клиент-серверной базы.
Сохранение в .cfe
- Запустите базу в режиме Конфигуратор.
- Откройте меню
Конфигурация → Расширения конфигурации. Появится окно со списком всех расширений базы. - Выделите нужное расширение одним щелчком.
- В командной панели окна откройте меню «Конфигурация» и выберите команду «Сохранить в файл…». Если вы не видите её на панели, нажмите «Ещё» — команда может быть там.
- Укажите папку и имя файла. Расширение
.cfeпрограмма подставит сама. - Нажмите «Сохранить» и дождитесь сообщения в окне служебных сообщений.
Файл расширения обычно небольшой: от десятков килобайт до нескольких мегабайт. Если там много макетов или картинок, размер растёт.
Выгрузка в XML-файлы
В том же меню окна расширений есть команда выгрузки в файлы. Она сохраняет расширение не одним файлом, а деревом каталогов: каждый объект в своём XML, модули — в текстовых .bsl.
Этот формат нужен, когда:
- 🔹 расширение хранят в Git и сравнивают изменения построчно;
- 🔹 доработку переносят в 1С:EDT;
- 🔹 нужно найти, в каком модуле поменялась одна строка.
Для обычной передачи коллеге или резервной копии XML избыточен. Хватает одного .cfe.
Выгружайте XML в пустую папку. Если в каталоге остались файлы прошлой выгрузки другого расширения, потом будет трудно понять, что к чему относится.
Как сохранить расширение без Конфигуратора
Бывает, что Конфигуратор не установлен на рабочем месте или у пользователя нет к нему доступа. Тогда расширение выгружают в режиме 1С:Предприятие.
Через список расширений в типовой конфигурации
В Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП путь такой: Администрирование → Печатные формы, отчеты и обработки → Расширения.
- Откройте список расширений по этому пути.
- Выделите нужную строку.
- В меню «Ещё» выберите команду сохранения — она называется «Сохранить как…».
- Укажите место и имя файла
.cfe.
Через «Все функции»
Если раздела «Администрирование» нет или конфигурация не типовая, используйте стандартную обработку платформы. Включите пункт «Все функции» в параметрах (Сервис и настройки → Параметры → Отображать команду «Все функции»). Затем откройте Все функции → Стандартные → Управление расширениями конфигурации.
В этой форме выделите расширение и нажмите команду сохранения в файл на её командной панели.
Файл, сохранённый в режиме Предприятия, ничем не отличается от файла из Конфигуратора. Его можно загрузить любым из способов.
Выгрузка расширения из командной строки
Пакетный режим нужен, когда расширения надо сохранять регулярно: каждую ночь, перед обновлением типовой конфигурации, в составе CI-сборки. Конфигуратор запускается без окон, выгружает файл и закрывается.
Один .cfe для файловой базы
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpCfg "D:\Backup\MyExt.cfe" -Extension "МоеРасширение" /Out "D:\Backup\dump.log" /DisableStartupDialogs
Путь к 1cv8.exe подставьте свой: номер версии платформы в каталоге у вас будет другой.
Клиент-серверная база
Вместо /F укажите сервер и имя базы через /S:
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /S "srv1c\buh" /N "Администратор" /P "пароль" /DumpCfg "D:\Backup\MyExt.cfe" -Extension "МоеРасширение" /Out "D:\Backup\dump.log" /DisableStartupDialogs
Выгрузка в XML
"C:\Program Files\1cv8\8.3.24.1691\bin\1cv8.exe" DESIGNER /F "D:\Bases\Buh" /N "Администратор" /P "пароль" /DumpConfigToFiles "D:\Repo\MyExt" -Extension "МоеРасширение" /Out "D:\Repo\dump.log" /DisableStartupDialogs
Для выгрузки всех расширений базы в XML за один запуск у ключа /DumpConfigToFiles есть параметр -AllExtensions. Каждое расширение попадёт в свой подкаталог.
Что важно в пакетном режиме
| Ключ | Зачем | Что будет без него |
|---|---|---|
-Extension "Имя" | указывает, какое расширение выгрузить | выгрузится основная конфигурация в .cf |
/Out "файл.log" | пишет результат и ошибки в лог | о сбое вы не узнаете |
/DisableStartupDialogs | подавляет стартовые диалоги | запуск может зависнуть в ожидании нажатия |
/N и /P | пользователь и пароль | появится окно входа, скрипт встанет |
Не храните пароль администратора открытым текстом в bat-файле на общем диске. Создайте для выгрузок отдельного пользователя с нужными правами, а скрипт положите туда, куда есть доступ только у администраторов.
После запуска проверяйте две вещи: код возврата (%ERRORLEVEL% равен 0 при успехе) и содержимое лога. Пустой лог при ненулевом коде — частый признак того, что не нашлась база или не подошёл пароль.
Для серверных установок есть ещё утилита ibcmd, которая работает с базой без запуска Конфигуратора. Список её команд для конфигурации и расширений смотрите в справке ibcmd help.
Файл .cfe и файл .cf: в чём разница
Путаница между этими форматами — самая частая причина ошибок при переносе доработок.
.cf | .cfe | |
|---|---|---|
| Что внутри | вся конфигурация целиком | только объекты расширения |
| Расширения внутри | не входят | это и есть одно расширение |
| Как загружают | заменяет конфигурацию базы | добавляется поверх основной |
| Размер | десятки и сотни мегабайт | обычно до нескольких мегабайт |
| Зависимость от базы | самодостаточен | нужны заимствованные объекты в основной конфигурации |
Отсюда несколько практических выводов:
- ❗ Сохранение основной конфигурации в .cf не захватывает расширения. Если вы сделали копию конфигурации перед обновлением, расширения нужно выгрузить отдельно.
- ❗ Файл .cfe не работает сам по себе. В нём есть ссылки на заимствованные объекты основной конфигурации: справочники, документы, формы. Если в целевой базе таких объектов нет или их структура другая, расширение не применится.
- ❗ Нельзя загрузить .cfe как основную конфигурацию и наоборот. Конфигуратор не даст этого сделать.
А вот выгрузка всей базы в .dt расширения захватывает: они восстанавливаются вместе с данными. Но .dt — это копия базы целиком, для переноса одной доработки он не годится.
Расширение в хранилище конфигурации: как получить файл
Расширение подключается к своему отдельному хранилищу. Хранилище основной конфигурации к нему отношения не имеет: у каждого расширения свой адрес и своя история версий.
Текущая версия из базы
Если расширение уже подключено к хранилищу в вашей базе, выгружайте его обычным способом из окна расширений. Учтите, что в файл попадёт состояние из вашей базы, а не из хранилища.
Перед выгрузкой:
- Откройте расширение из окна
Конфигурация → Расширения конфигурации. - Если ваши объекты захвачены, поместите изменения в хранилище.
- Получите из хранилища последние изменения коллег.
- Только после этого сохраните расширение в файл.
Иначе в .cfe уйдёт ваша локальная сборка без чужих правок, а то и с недописанным кодом.
Нужная версия из истории
Чтобы достать прошлую версию, не откатывая базу:
- Откройте расширение и в меню работы с хранилищем вызовите историю хранилища.
- Найдите нужную версию по номеру, дате или комментарию.
- Через контекстное меню строки сохраните эту версию в файл.
Получится .cfe именно той версии. Рабочая база при этом не меняется.
Выгрузка из хранилища скриптом
Для автоматической сборки из хранилища есть ключ /ConfigurationRepositoryDumpCfg с параметром -Extension. Подключение к хранилищу задают ключами /ConfigurationRepositoryF (адрес), /ConfigurationRepositoryN и /ConfigurationRepositoryP (пользователь и пароль хранилища). Номер версии указывают параметром -v; без него выгрузится последняя.
Пользователь хранилища и пользователь базы — разные учётные записи. В скрипте нужны обе пары логин-пароль: одна для входа в базу, другая для хранилища.
Как проверить выгруженный файл
Файл, который никто не открывал, — ещё не резервная копия. Проверка занимает пару минут.
- Создайте пустую файловую базу или возьмите тестовую копию рабочей.
- Загрузите в неё ту же основную конфигурацию, что и в рабочей базе.
- В Конфигураторе откройте
Конфигурация → Расширения конфигурации, добавьте расширение и загрузите в него ваш.cfeкомандой загрузки из файла. - Выполните обновление конфигурации базы данных.
- Откройте базу в режиме Предприятия и убедитесь, что доработка работает.
Загрузка .cfe и обновление конфигурации базы данных — два отдельных шага. Пока второй не выполнен, расширение лежит в Конфигураторе, но пользователи его не видят.
Не проверяйте файл на рабочей базе. Если в загружаемом файле окажется другая версия, вы перезапишете действующее расширение.
Частые проблемы при выгрузке и как их снять
Частые вопросы
Попадают ли в файл .cfe данные, введённые в справочники расширения?
.cfe только метаданные: объекты, формы, модули, макеты. Данные хранятся в базе и переносятся выгрузкой в .dt или обменом.Можно ли сохранить сразу все расширения базы одним файлом?
.cfe не бывает: каждое расширение — свой файл. Для массовой выгрузки используйте пакетный запуск по каждому имени или /DumpConfigToFiles с параметром -AllExtensions в XML.Нужно ли выгонять пользователей из базы для выгрузки расширения?
Можно ли открыть .cfe без базы, чтобы посмотреть код?
Защищает ли сохранение расширения от потери при обновлении типовой конфигурации?
.cfe перед обновлением даёт точку, к которой можно вернуться.