Расширение из одной базы в другую: выгрузка .cfe, загрузка и проверка
Содержание
Чтобы перенести расширение 1С, выгрузите его из исходной базы в файл .cfe и загрузите этот файл в целевую базу. В Конфигураторе это делается из окна Конфигурация → Расширения конфигурации, в пользовательском режиме — через Все функции → Стандартные → Управление расширениями конфигурации. После загрузки в Конфигураторе обязательно обновите конфигурацию базы данных, а пользователям нужно перезапустить сеанс.
Механизм общий для платформы 8.3 (расширения появились в 8.3.6) и не зависит от конфигурации: так переносят доработки в Бухгалтерии 3.0, ЗУП 3.1, УТ 11 и любых других решениях. Порядок одинаков для файловых и клиент-серверных баз.
Что проверить до переноса расширения
Расширение — это не самостоятельная программа. Оно «заимствует» объекты основной конфигурации и меняет их поведение. Поэтому перенос сработает, только если целевая база похожа на исходную.
Проверьте пять вещей:
- 🧩 Та же конфигурация. Расширение для Бухгалтерии не встанет на ЗУП: заимствованных объектов там просто нет.
- 🔢 Релиз конфигурации. Если в целевой базе релиз старше или новее, часть заимствованных объектов могла быть переименована, удалена или изменена. Сравните номер в окне
О программев обеих базах. - ⚙️ Версия платформы. Номер версии платформы в целевой базе должен быть не ниже, чем у той, где расширение разрабатывали, если в нём используется новый функционал.
- 📐 Режим совместимости расширения. Он задан в свойствах корня расширения и не может требовать большего, чем умеет платформа целевой базы.
- 👤 Права. Загружать и удалять расширения может пользователь с правом администрирования. В пользовательском режиме для этого нужна роль «Полные права» или аналогичная.
Запишите имя расширения дословно, вместе с регистром. По имени платформа отличает «то же самое расширение» от нового: при загрузке под тем же именем оно обновится, под другим — появится второе, и они начнут конфликтовать.
Расширение с данными или без
Посмотрите, добавляет ли расширение собственные справочники, документы, регистры или реквизиты. Если да, у него есть данные в таблицах базы. Эти данные при переносе файла .cfe не переносятся: в целевую базу попадёт только структура.
Удаление расширения с собственными объектами удаляет и их данные. Перед заменой или удалением такого расширения в рабочей базе сделайте резервную копию.
Выгрузка расширения из исходной базы в файл
Есть три способа выгрузить расширение. Выбор зависит от того, куда и как часто вы его переносите.
| Способ | Что получается | Когда подходит |
|---|---|---|
Сохранение в .cfe | Один файл | Обычный перенос в другую базу |
| Выгрузка в XML-файлы | Каталог с файлами объектов | Хранение в Git, сравнение версий, разработка в EDT |
| Через хранилище конфигурации | Версии в хранилище | Команда разработчиков, несколько баз |
Сохранение в файл .cfe в Конфигураторе
- Откройте исходную базу в режиме Конфигуратора.
- Выберите
Конфигурация → Расширения конфигурации. Откроется список всех расширений базы. - Выделите нужное расширение.
- В командной панели окна откройте меню
Конфигурацияи выберите команду сохранения в файл. - Укажите каталог и имя файла. Расширение по умолчанию —
.cfe.
Тот же результат даёт другой путь. Откройте дерево расширения двойным щелчком, и в главном меню Конфигурация появятся команды именно для него, в том числе сохранение в файл.
Если в расширении есть несохранённые изменения, сначала сохраните их. Иначе в файл попадёт версия, которая уже записана в базе, а не та, что открыта в дереве.
Выгрузка в XML-файлы
Для расширения доступна та же команда, что и для основной конфигурации: Конфигурация → Выгрузить конфигурацию в файлы, при открытом дереве расширения. На выходе — каталог с XML-описаниями объектов и модулями.
Этот вариант удобен, если вы ведёте доработки в системе контроля версий. Загружать расширение потом нужно командой загрузки из файлов, а не из .cfe.
Выгрузка из пользовательского режима
Если Конфигуратор недоступен, расширение можно сохранить и в режиме Предприятия. Откройте Все функции → Стандартные → Управление расширениями конфигурации, выделите расширение и выберите команду сохранения. Пункт Все функции должен быть включён в параметрах программы (Сервис и настройки → Параметры, флажок отображения команды «Все функции»).
Загрузка расширения в целевую базу через Конфигуратор
Этот способ даёт больше всего контроля: видно ошибки, можно сразу открыть и проверить расширение.
Новое расширение
- Откройте целевую базу в Конфигураторе.
- Перейдите в
Конфигурация → Расширения конфигурации. - Нажмите
Добавить. В списке появится пустое расширение. - Не закрывая окно, выделите его и в меню
Конфигурацияэтого окна выберите загрузку из файла. - Укажите файл
.cfe. Платформа заменит пустое расширение содержимым файла, включая имя и префикс. - Выполните обновление конфигурации
базы данных (
F7или команда в менюКонфигурацияокна расширений).
Шаг 6 часто забывают. Пока конфигурация базы данных не обновлена, в пользовательском режиме расширение работает в старом виде или не работает вовсе.
Замена уже существующего расширения
Если расширение с таким именем в базе уже есть, пустое создавать не нужно. Выделите его в списке и загрузите поверх файл новой версии. Затем снова обновите конфигурацию базы данных.
Когда в новой версии изменилась структура данных (добавлен реквизит, удалён справочник), платформа покажет окно реорганизации информации со списком изменений. Прочитайте его. Если там написано, что объект будет удалён вместе с данными, остановитесь и проверьте, действительно ли это нужно.
Монопольный доступ к базе нужен не всегда. Он потребуется, если расширение меняет структуру хранения данных: добавляет свои таблицы или реквизиты. Если расширение только меняет модули и формы, обновление обычно проходит при работающих пользователях — изменения применятся при их следующем входе.
Свойства после загрузки
В списке расширений у каждого есть флажки. Проверьте их после переноса — они хранятся в базе и не всегда совпадают с исходной:
- ✅ Активно — расширение подключается при запуске сеанса.
- 🔒 Безопасный режим — ограничивает операции, которые может выполнять код расширения (работа с файлами, внешними компонентами, привилегированный режим).
- 🛡️ Защита от опасных действий — включает предупреждения при выполнении потенциально опасных операций.
Если расширение работало в исходной базе без безопасного режима, а в целевой этот флажок включился, часть функций (например, выгрузка файлов на диск) перестанет работать. Отключать безопасный режим стоит только для расширения из доверенного источника.
Установка и обновление расширения в режиме Предприятия
Это способ для случаев, когда Конфигуратора под рукой нет: облачная база, база у клиента, права только в пользовательском режиме.
Через стандартную обработку платформы
- Откройте
Все функции → Стандартные → Управление расширениями конфигурации. - Нажмите
Добавитьи выберите файл.cfe. - Чтобы обновить расширение , выделите его в списке и выберите команду обновления из файла.
- Проверьте флажки «Активно» и «Безопасный режим».
- Перезапустите программу. Новые и изменённые расширения подключаются при запуске сеанса.
Обновлять конфигурацию базы данных вручную здесь не нужно: платформа делает это сама при загрузке.
Через раздел администрирования типовой конфигурации
В конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11, КА 2, ERP) есть собственный список расширений: Администрирование → Печатные формы, отчеты и обработки → Расширения. В нём те же действия — добавить из файла, обновить, удалить, включить или отключить безопасный режим.
Этот список удобнее стандартного: он показывает версию расширения и предупреждает, если расширение не подходит к текущему релизу.
В облачных сервисах (1С:Фреш и аналогах) загрузка своих расширений может быть ограничена правилами сервиса. Там расширения часто проходят проверку перед подключением к области данных.
Какой путь выбрать
Перенос расширения командной строкой
Когда баз много, переносить вручную долго. Конфигуратор умеет выполнять загрузку и выгрузку в пакетном режиме, без открытия окна. Для расширений к командам добавляют параметр -Extension с именем расширения.
Выгрузка в файл
"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /F "D:\Bases\Source" /N "Администратор" /P "пароль" /DumpCfg "D:\Ext\MyExt.cfe" -Extension MyExt /Out "D:\Ext\dump.log" /DisableStartupDialogs
Загрузка и обновление в целевой базе
"C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe" DESIGNER /S "srv1c\buh_prod" /N "Администратор" /P "пароль" /LoadCfg "D:\Ext\MyExt.cfe" -Extension MyExt /UpdateDBCfg /Out "D:\Ext\load.log" /DisableStartupDialogs
Что здесь важно:
/F— путь к файловой базе,/S— сервер и имя базы в кластере./Nи/P— пользователь базы с административными правами.-Extension MyExt— имя расширения. Без него команда относится к основной конфигурации, поэтому проверяйте его наличие в каждой строке скрипта./UpdateDBCfg— обновление конфигурации базы данных сразу после загрузки./Out— журнал. Без него при ошибке вы не узнаете, что пошло не так: пакетный режим ничего не показывает на экране.- Путь к
1cv8.exeподставьте свой, с вашим номером версии платформы.
Для XML-выгрузки используются /DumpConfigToFiles и /LoadConfigFromFiles с тем же параметром -Extension.
Скрипт для нескольких баз
Простейший вариант — bat-файл, который проходит по списку баз и пишет отдельный журнал на каждую:
@echo off
set EXE="C:\Program Files\1cv8\8.3.24.1342\bin\1cv8.exe"
set CFE=D:\Ext\MyExt.cfe
for %%B in (buh_prod zup_prod ut_prod) do (
%EXE% DESIGNER /S "srv1c\%%B" /N "Администратор" /P "пароль" /LoadCfg "%CFE%" -Extension MyExt /UpdateDBCfg /Out "D:\Ext\%%B.log" /DisableStartupDialogs
echo %%B: код возврата %ERRORLEVEL%
)
Не храните пароль администратора в скрипте на общем диске. Положите bat-файл в каталог с доступом только для служебной учётной записи или передавайте пароль через переменную окружения.
Запускайте такие скрипты вне рабочего времени. Если расширение меняет структуру данных, обновление потребует монопольного доступа и упадёт при открытых сеансах — это будет видно в журнале. Завершать сеансы пользователей принудительно стоит только после предупреждения: несохранённые документы будут потеряны.
Если используется хранилище или EDT
При командной разработке расширение подключают к хранилищу конфигурации. Тогда «перенос» между базами разработки — это подключение каждой базы к тому же хранилищу и получение последней версии. В рабочую базу всё равно переносят готовый .cfe, выгруженный из базы разработчика.
В 1С:EDT расширение — отдельный проект. Его выгружают в .cfe или в XML-файлы и загружают в базу любым из способов выше.
Почему перенесённое расширение не работает
После переноса расширение может загрузиться без ошибок, но не применяться. Сначала откройте список расширений и посмотрите, есть ли у него пометка о проблемах и включён ли флажок «Активно».
Конфликт имён после обновления конфигурации
Отдельная ловушка — совпадение имён. Допустим, в расширении вы создали свой реквизит Комментарий2 у документа, а через полгода разработчики типовой добавили в этот документ реквизит с тем же именем. Расширение перестанет применяться.
Защита — префикс. В свойствах корня расширения есть поле «Префикс имён». Все собственные объекты и реквизиты называйте через него, например мк_Комментарий. Тогда совпадение с типовыми именами практически исключено.
Расширение пропало после загрузки .dt или .cf
Файл .cf содержит только основную конфигурацию — расширений в нём нет. Если вы перенесли базу через сохранение конфигурации в .cf и загрузку в чистую базу, расширения придётся переносить отдельно, каждым файлом .cfe.
Выгрузка информационной базы в .dt содержит и расширения, и их данные. Поэтому при переносе всей базы через .dt отдельно ничего делать не нужно.