Выгрузка расширения конфигурации: от Конфигуратора до ночного скрипта

· 9 мин

Содержание

Чтобы сохранить расширение 1С в файл, откройте Конфигуратор, выберите Конфигурация → Расширения конфигурации, выделите нужное расширение и в меню окна «Конфигурация» выполните «Сохранить в файл…». Получится один файл с расширением .cfe. Его можно загрузить в другую базу или положить в архив.

Есть и другие способы, и выбирают их по задаче. Файл .cfe удобен для переноса и резервной копии. Выгрузка в XML нужна, если расширение хранят в Git. Без Конфигуратора расширение сохраняют в режиме Предприятия, а для ночных копий ставят пакетный запуск 1cv8.exe. Всё сказанное ниже относится к платформе 8.3 и не зависит от конфигурации: Бухгалтерия, ЗУП и УТ хранят расширения одинаково.

Какой формат выбрать перед сохранением расширения

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

ФорматЧто внутриКогда выбирать
.cfeОдин файл с полным расширениемПеренос в другую базу, архив, передача разработчику
XML-файлыКаталог с описанием каждого объекта и модулями в текстеGit, сравнение версий построчно, работа в EDT
.dtВся база целиком, включая все расширенияПолная резервная копия перед обновлением

Что нужно знать до выгрузки:

  • 📦 Файл .cf основной конфигурации расширений не содержит. Сохранили только .cf — расширения потеряны.
  • 🗃️ Данные, которые расширение хранит в своих справочниках и регистрах, в .cfe не попадают. Там только метаданные, модули, формы и макеты.
  • ⚙️ Признаки «Активно» и «Безопасный режим» задаются в базе при подключении расширения. В другой базе их выставляют заново.
  • 🔑 Для выгрузки нужны права администратора базы или право на администрирование расширений.

Если расширений несколько, сохраните каждое отдельным файлом и назовите файл так же, как расширение в списке. Через полгода вы скажете себе спасибо.

Сохранение расширения в файл .cfe через Конфигуратор

Это основной путь. Он работает и в файловой, и в клиент-серверной базе.

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

Если дерево расширения уже открыто

Можно не возвращаться в список. Сделайте активным окно дерева расширения, а не основной конфигурации, и вызовите в главном меню Конфигурация → Сохранить конфигурацию в файл…. Команда сработает для того дерева, которое сейчас в фокусе. Если в диалоге предлагается тип .cf, значит, активно окно основной конфигурации: закройте диалог и щёлкните по дереву расширения.

Расширение подключено к хранилищу

Сохранение в файл не зависит от хранилища и захвата объектов. Но в файл уйдёт ваша локальная версия. Нужна версия из хранилища? Сначала обновите расширение из хранилища, потом сохраняйте.

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

Выгрузка расширения в XML-файлы для Git и переноса

.cfe — двоичный файл. Глазами в нём ничего не найти, а система контроля версий видит только «файл изменился». Для командной разработки расширение выгружают в XML.

  1. Откройте дерево расширения в Конфигураторе.
  2. Сделайте его окно активным и выберите в главном меню Конфигурация → Выгрузить конфигурацию в файлы….
  3. Укажите пустой каталог, например D:\Git\MyExt\src.
  4. Выберите иерархический формат, если дальше будете работать в EDT или в Git.
  5. Для повторных выгрузок включите выгрузку только изменённых объектов. Платформа сравнит текущее состояние со служебным файлом 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

Что поправить под себя:

  1. В V8 укажите путь к установленной версии платформы. Номер папки смотрите в C:\Program Files\1cv8\.
  2. Для серверной базы замените /F "%BASE%" на /S "сервер\имябазы".
  3. Строка с датой рассчитана на русский формат ДД.ММ.ГГГГ. 8 октября даст имя MyExt_2026-10-08.cfe.
  4. Пароль в открытом виде храните только в файле, который читает одна служебная учётная запись.

Поставьте скрипт в «Планировщик заданий» Windows на ночь. Утром откройте лог из /Out: при ошибке там будет её текст, при успехе файл пустой или с коротким сообщением о завершении.

Для XML и Git добавьте вторую команду с /DumpConfigToFiles, а затем git add и git commit. Получится история изменений расширения по дням.

Начиная с ветки 8.3.14 рядом с 1cv8.exe есть утилита ibcmd, она работает с базой без запуска Конфигуратора. Её подкоманды для расширений смотрите в справке ibcmd help вашей версии: набор параметров менялся от релиза к релизу.

Как проверить сохранённый файл расширения

Файл, который никто не открывал, — не копия, а надежда. Проверка занимает пять минут.

  1. Сравните размер. Файл в 0 байт или в пару килобайт для расширения с формами — признак сбоя.
  2. Загрузите .cfe в тестовую копию базы : Конфигурация → Расширения конфигурации, кнопка «Добавить», затем «Конфигурация → Загрузить из файла…».
  3. Обновите конфигурацию базы данных и запустите Предприятие. Проверьте одну-две доработки, ради которых расширение делали.
  4. Для сравнения двух версий откройте дерево расширения и выберите Конфигурация → Сравнить, объединить с конфигурацией из файла…. Укажите старый .cfe. Отчёт покажет, какие модули и формы различаются.
Перед тем как считать копию готовой
Выполнено: 0 / 5

Ошибки при выгрузке и загрузке расширения

Сама выгрузка ломается редко. Проблемы обычно всплывают позже, когда файл загружают в другую базу.

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

Удаление расширения из базы стирает данные его собственных справочников, документов и регистров. Перед удалением или заменой расширения с такими объектами сделайте выгрузку базы в .dt, а не только сохранение .cfe.

Если не помогло

Возьмите XML-выгрузку того же расширения и загрузите её в пустую базу с той же типовой конфигурацией и того же релиза. Если там расширение применяется, причина в различиях целевой базы, а не в файле. Сравните релизы типовой и список заимствованных объектов.

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

Сохраняется ли расширение при выгрузке базы в .dt?
Да. Файл .dt содержит всю информационную базу, включая подключённые расширения и их данные. После загрузки .dt расширения появятся вместе с базой.
Можно ли открыть файл .cfe без информационной базы?
Нет. Файл открывают, только загрузив его в базу как расширение. Для просмотра удобна пустая база с той же типовой конфигурацией.
Почему при сохранении .cf расширения не попадают в файл?
Файл .cf хранит только основную конфигурацию. Расширения — отдельные объекты базы, их сохраняют каждое в свой .cfe.
Можно ли сохранить сразу все расширения базы?
Да. В пакетном режиме используйте /DumpConfigToFiles с ключом -AllExtensions, а для .cfe — цикл по РасширенияКонфигурации.Получить() на встроенном языке.
Нужно ли выгонять пользователей, чтобы сохранить расширение?
Нет. Сохранение в файл работает при открытых сеансах. Пользователей просят выйти только при обновлении конфигурации базы данных, когда меняется структура хранения.