Выгрузка расширения конфигурации: от Конфигуратора до ночного скрипта
Содержание
Чтобы сохранить расширение 1С в файл, откройте Конфигуратор, выберите Конфигурация → Расширения конфигурации, выделите нужное расширение и в меню окна «Конфигурация» выполните «Сохранить в файл…». Получится один файл с расширением .cfe. Его можно загрузить в другую базу или положить в архив.
Есть и другие способы, и выбирают их по задаче. Файл .cfe удобен для переноса и резервной копии. Выгрузка в XML нужна, если расширение хранят в Git. Без Конфигуратора расширение сохраняют в режиме Предприятия, а для ночных копий ставят пакетный запуск 1cv8.exe. Всё сказанное ниже относится к платформе 8.3 и не зависит от конфигурации: Бухгалтерия, ЗУП и УТ хранят расширения одинаково.
Какой формат выбрать перед сохранением расширения
Расширение живёт внутри информационной базы, а не отдельным файлом на диске. Поэтому «сохранить» значит выгрузить его копию. Форматов три, и у каждого своя задача.
| Формат | Что внутри | Когда выбирать |
|---|---|---|
.cfe | Один файл с полным расширением | Перенос в другую базу, архив, передача разработчику |
| XML-файлы | Каталог с описанием каждого объекта и модулями в тексте | Git, сравнение версий построчно, работа в EDT |
.dt | Вся база целиком, включая все расширения | Полная резервная копия перед обновлением |
Что нужно знать до выгрузки:
- 📦 Файл
.cfосновной конфигурации расширений не содержит. Сохранили только.cf— расширения потеряны. - 🗃️ Данные, которые расширение хранит в своих справочниках и регистрах, в
.cfeне попадают. Там только метаданные, модули, формы и макеты. - ⚙️ Признаки «Активно» и «Безопасный режим» задаются в базе при подключении расширения. В другой базе их выставляют заново.
- 🔑 Для выгрузки нужны права администратора базы или право на администрирование расширений.
Если расширений несколько, сохраните каждое отдельным файлом и назовите файл так же, как расширение в списке. Через полгода вы скажете себе спасибо.
Сохранение расширения в файл .cfe через Конфигуратор
Это основной путь. Он работает и в файловой, и в клиент-серверной базе.
- Запустите базу в режиме «Конфигуратор» под пользователем с полными правами.
- Откройте
Конфигурация → Расширения конфигурации. Появится окно со списком расширений. - Если расширение недавно правили, откройте его дерево и запишите изменения. Затем обновите конфигурацию базы данных (
F7). Так файл совпадёт с тем, что реально работает у пользователей. - Вернитесь в список и выделите строку нужного расширения.
- В командной панели окна нажмите «Конфигурация» и выберите «Сохранить в файл…».
- Укажите папку и имя. Тип файла
*.cfeподставится сам. - Дождитесь окончания. Для расширения на десяток объектов это доли секунды, крупное с сотнями форм сохраняется несколько секунд.
Если дерево расширения уже открыто
Можно не возвращаться в список. Сделайте активным окно дерева расширения, а не основной конфигурации, и вызовите в главном меню Конфигурация → Сохранить конфигурацию в файл…. Команда сработает для того дерева, которое сейчас в фокусе. Если в диалоге предлагается тип .cf, значит, активно окно основной конфигурации: закройте диалог и щёлкните по дереву расширения.
Расширение подключено к хранилищу
Сохранение в файл не зависит от хранилища и захвата объектов. Но в файл уйдёт ваша локальная версия. Нужна версия из хранилища? Сначала обновите расширение из хранилища, потом сохраняйте.
Монопольный режим для сохранения в файл не нужен. Пользователи могут работать в базе дальше. Монопольный доступ потребуется только при обновлении конфигурации базы данных, если меняется структура таблиц.
Выгрузка расширения в XML-файлы для Git и переноса
.cfe — двоичный файл. Глазами в нём ничего не найти, а система контроля версий видит только «файл изменился». Для командной разработки расширение выгружают в XML.
- Откройте дерево расширения в Конфигураторе.
- Сделайте его окно активным и выберите в главном меню
Конфигурация → Выгрузить конфигурацию в файлы…. - Укажите пустой каталог, например
D:\Git\MyExt\src. - Выберите иерархический формат, если дальше будете работать в EDT или в Git.
- Для повторных выгрузок включите выгрузку только изменённых объектов. Платформа сравнит текущее состояние со служебным файлом
ConfigDumpInfo.xmlв каталоге и перезапишет только то, что поменялось.
После выгрузки в каталоге окажется Configuration.xml с описанием расширения и папки по видам объектов: CommonModules, Catalogs, Documents и так далее. Модули лежат обычным текстом в файлах .bsl. Это и делает XML удобным для сравнения.
Обратная операция — Конфигурация → Загрузить конфигурацию из файлов… в окне дерева расширения целевой базы. После загрузки обязательно обновите конфигурацию базы данных.
Чем XML лучше и хуже .cfe
- ✅ Видно построчно, кто и что изменил в модуле.
- ✅ Можно хранить историю в Git и сливать ветки.
- ❌ Каталог из сотен файлов неудобно передавать по почте.
- ❌ Загрузка из файлов дольше, чем из одного
.cfe.
Для передачи другому специалисту отправляйте .cfe. XML оставьте для репозитория.
Сохранение расширения в режиме Предприятия, без Конфигуратора
Конфигуратор есть не везде. В облаке или при работе через публикацию часто доступно только пользовательское приложение. Сохранить расширение можно и оттуда.
В типовых конфигурациях на БСП
В Бухгалтерии 3.0 и ЗУП 3.1 откройте Администрирование → Печатные формы, отчеты и обработки → Расширения. В других конфигурациях на БСП ищите пункт «Печатные формы, отчеты и обработки» в разделе администрирования: в УТ 11 он находится в разделе «НСИ и администрирование».
Выделите расширение и найдите в меню «Ещё» команду сохранения в файл. Программа предложит место для .cfe. Команда видна пользователю с полными правами.
Через стандартную обработку платформы
Если в конфигурации нет такого раздела, выручит обработка платформы. Включите Сервис и настройки → Параметры → Отображать команду «Все функции». Затем откройте Все функции → Стандартные → Управление расширениями конфигурации. В списке выделите расширение и выполните команду сохранения из командной панели.
Кодом на встроенном языке
Иногда нужно сохранить все расширения разом, например в регламентном задании. Объект РасширенияКонфигурации даёт доступ к подключённым расширениям, а метод ПолучитьДанные() возвращает их двоичные данные.
&НаСервере
Процедура СохранитьРасширенияНаСервере(Каталог)
Для Каждого Расширение Из РасширенияКонфигурации.Получить() Цикл
Данные = Расширение.ПолучитьДанные();
Данные.Записать(Каталог + "\" + Расширение.Имя + ".cfe");
КонецЦикла;
КонецПроцедуры
Код выполняется на сервере. В клиент-серверной базе путь Каталог — это папка на сервере 1С, а не на вашем компьютере. У пользователя службы сервера должно быть право записи в эту папку.
Автоматическая выгрузка расширений из командной строки
Ночная копия расширений — дешёвая страховка. Особенно когда в базе работает несколько доработчиков и кто-то может случайно удалить чужое расширение.
Пакетный режим Конфигуратора умеет сохранять расширение двумя командами:
/DumpCfg <файл> -Extension <имя>— в один файл.cfe;/DumpConfigToFiles <каталог> -Extension <имя>— в XML. С ключом-AllExtensionsвместо-Extensionвыгружаются все расширения, каждое в свою подпапку.
Пример .bat для файловой базы. Он сохраняет расширение в папку с датой в имени файла:
@echo off
set V8="C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe"
set BASE=D:\Bases\Buh
set OUT=D:\Backup\Ext
set D=%date:~6,4%-%date:~3,2%-%date:~0,2%
if not exist %OUT% mkdir %OUT%
%V8% DESIGNER /F "%BASE%" /N "Администратор" /P "пароль" ^
/DumpCfg "%OUT%\MyExt_%D%.cfe" -Extension "МоеРасширение" ^
/Out "%OUT%\dump_%D%.log" /DisableStartupDialogs
Что поправить под себя:
- В
V8укажите путь к установленной версии платформы. Номер папки смотрите вC:\Program Files\1cv8\. - Для серверной базы замените
/F "%BASE%"на/S "сервер\имябазы". - Строка с датой рассчитана на русский формат
ДД.ММ.ГГГГ. 8 октября даст имяMyExt_2026-10-08.cfe. - Пароль в открытом виде храните только в файле, который читает одна служебная учётная запись.
Поставьте скрипт в «Планировщик заданий» Windows на ночь. Утром откройте лог из /Out: при ошибке там будет её текст, при успехе файл пустой или с коротким сообщением о завершении.
Для XML и Git добавьте вторую команду с /DumpConfigToFiles, а затем git add и git commit. Получится история изменений расширения по дням.
Начиная с ветки 8.3.14 рядом с 1cv8.exe есть утилита ibcmd, она работает с базой без запуска Конфигуратора. Её подкоманды для расширений смотрите в справке ibcmd help вашей версии: набор параметров менялся от релиза к релизу.
Как проверить сохранённый файл расширения
Файл, который никто не открывал, — не копия, а надежда. Проверка занимает пять минут.
- Сравните размер. Файл в 0 байт или в пару килобайт для расширения с формами — признак сбоя.
- Загрузите
.cfeв тестовую копию базы :Конфигурация → Расширения конфигурации, кнопка «Добавить», затем «Конфигурация → Загрузить из файла…». - Обновите конфигурацию базы данных и запустите Предприятие. Проверьте одну-две доработки, ради которых расширение делали.
- Для сравнения двух версий откройте дерево расширения и выберите
Конфигурация → Сравнить, объединить с конфигурацией из файла…. Укажите старый.cfe. Отчёт покажет, какие модули и формы различаются.
Ошибки при выгрузке и загрузке расширения
Сама выгрузка ломается редко. Проблемы обычно всплывают позже, когда файл загружают в другую базу.
Удаление расширения из базы стирает данные его собственных справочников, документов и регистров. Перед удалением или заменой расширения с такими объектами сделайте выгрузку базы в .dt, а не только сохранение .cfe.
Если не помогло
Возьмите XML-выгрузку того же расширения и загрузите её в пустую базу с той же типовой конфигурацией и того же релиза. Если там расширение применяется, причина в различиях целевой базы, а не в файле. Сравните релизы типовой и список заимствованных объектов.
Частые вопросы
Сохраняется ли расширение при выгрузке базы в .dt?
.dt содержит всю информационную базу, включая подключённые расширения и их данные. После загрузки .dt расширения появятся вместе с базой.Можно ли открыть файл .cfe без информационной базы?
Почему при сохранении .cf расширения не попадают в файл?
.cf хранит только основную конфигурацию. Расширения — отдельные объекты базы, их сохраняют каждое в свой .cfe.Можно ли сохранить сразу все расширения базы?
/DumpConfigToFiles с ключом -AllExtensions, а для .cfe — цикл по РасширенияКонфигурации.Получить() на встроенном языке.