Сохранение расширения в файл .cfe: Конфигуратор, режим Предприятия, пакетный запуск

· 10 мин

Содержание

Выгрузить расширение конфигурации в файл в 1С 8.3 проще всего из Конфигуратора: Конфигурация → Расширения конфигурации, выделить нужное расширение и в меню окна выбрать команду сохранения в файл. На выходе получится один файл с расширением .cfe. Его можно передать коллеге, загрузить в другую базу или положить в архив.

Есть ещё три способа. Если Конфигуратор недоступен, расширение сохраняют прямо из пользовательского режима, через список расширений. Для регулярных выгрузок используют пакетный запуск 1cv8.exe с ключом -Extension. А если расширение подключено к хранилищу, файл можно взять из любой его версии. Способ выбирают по задаче: разово передать доработку, сделать резервную копию по расписанию или достать старую версию.

Что проверить перед выгрузкой расширения

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

📌 Что проверить:

  • ✅ Точное имя расширения. У расширения есть имя (латиница или кириллица без пробелов) и синоним, который видит пользователь. Для командной строки нужно именно имя. Его видно в колонке «Имя» списка расширений или в свойствах корня дерева расширения.
  • ✅ Несохранённые правки. Если расширение открыто в Конфигураторе и в нём есть изменения, сначала сохраните их. В заголовке дерева несохранённое состояние отмечено звёздочкой.
  • ✅ Версия расширения. Посмотрите свойство «Версия» в корне дерева. Если вы её ведёте, проставьте новое значение до выгрузки. Потом по файлу будет понятно, какая это сборка.
  • ✅ Права. Для работы с расширениями в режиме Предприятия нужна роль администратора. В Конфигураторе — пользователь с административными правами.
  • ✅ Режим совместимости. Свойство «Режим совместимости» расширения не должно быть выше, чем у основной конфигурации в той базе, куда файл потом загрузят.

Если расширение создавали в режиме Предприятия через «Добавить из файла», в Конфигураторе оно тоже видно. Отдельно его «переносить» в Конфигуратор не нужно.

Выгрузка расширения в файл через Конфигуратор

Это основной способ. Подходит для файловой и клиент-серверной базы.

Сохранение в .cfe

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

Файл расширения обычно небольшой: от десятков килобайт до нескольких мегабайт. Если там много макетов или картинок, размер растёт.

Выгрузка в XML-файлы

В том же меню окна расширений есть команда выгрузки в файлы. Она сохраняет расширение не одним файлом, а деревом каталогов: каждый объект в своём XML, модули — в текстовых .bsl.

Этот формат нужен, когда:

  • 🔹 расширение хранят в Git и сравнивают изменения построчно;
  • 🔹 доработку переносят в 1С:EDT;
  • 🔹 нужно найти, в каком модуле поменялась одна строка.

Для обычной передачи коллеге или резервной копии XML избыточен. Хватает одного .cfe.

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

Как сохранить расширение без Конфигуратора

Бывает, что Конфигуратор не установлен на рабочем месте или у пользователя нет к нему доступа. Тогда расширение выгружают в режиме 1С:Предприятие.

Через список расширений в типовой конфигурации

В Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и других конфигурациях на БСП путь такой: Администрирование → Печатные формы, отчеты и обработки → Расширения.

  1. Откройте список расширений по этому пути.
  2. Выделите нужную строку.
  3. В меню «Ещё» выберите команду сохранения — она называется «Сохранить как…».
  4. Укажите место и имя файла .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 — это копия базы целиком, для переноса одной доработки он не годится.

Какой формат выгрузки вам нужен?

Расширение в хранилище конфигурации: как получить файл

Расширение подключается к своему отдельному хранилищу. Хранилище основной конфигурации к нему отношения не имеет: у каждого расширения свой адрес и своя история версий.

Текущая версия из базы

Если расширение уже подключено к хранилищу в вашей базе, выгружайте его обычным способом из окна расширений. Учтите, что в файл попадёт состояние из вашей базы, а не из хранилища.

Перед выгрузкой:

  1. Откройте расширение из окна Конфигурация → Расширения конфигурации.
  2. Если ваши объекты захвачены, поместите изменения в хранилище.
  3. Получите из хранилища последние изменения коллег.
  4. Только после этого сохраните расширение в файл.

Иначе в .cfe уйдёт ваша локальная сборка без чужих правок, а то и с недописанным кодом.

Нужная версия из истории

Чтобы достать прошлую версию, не откатывая базу:

  1. Откройте расширение и в меню работы с хранилищем вызовите историю хранилища.
  2. Найдите нужную версию по номеру, дате или комментарию.
  3. Через контекстное меню строки сохраните эту версию в файл.

Получится .cfe именно той версии. Рабочая база при этом не меняется.

Выгрузка из хранилища скриптом

Для автоматической сборки из хранилища есть ключ /ConfigurationRepositoryDumpCfg с параметром -Extension. Подключение к хранилищу задают ключами /ConfigurationRepositoryF (адрес), /ConfigurationRepositoryN и /ConfigurationRepositoryP (пользователь и пароль хранилища). Номер версии указывают параметром -v; без него выгрузится последняя.

Пользователь хранилища и пользователь базы — разные учётные записи. В скрипте нужны обе пары логин-пароль: одна для входа в базу, другая для хранилища.

Как проверить выгруженный файл

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

  1. Создайте пустую файловую базу или возьмите тестовую копию рабочей.
  2. Загрузите в неё ту же основную конфигурацию, что и в рабочей базе.
  3. В Конфигураторе откройте Конфигурация → Расширения конфигурации, добавьте расширение и загрузите в него ваш .cfe командой загрузки из файла.
  4. Выполните обновление конфигурации базы данных.
  5. Откройте базу в режиме Предприятия и убедитесь, что доработка работает.

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

Не проверяйте файл на рабочей базе. Если в загружаемом файле окажется другая версия, вы перезапишете действующее расширение.

Частые проблемы при выгрузке и как их снять

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

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

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