Администрирование · 12 мин
Как перенести расширение 1С на другую базу
Как перенести расширение конфигурации 1С на другую базу: сохранение в файл CFE, загрузка через конфигуратор и предприятие, проверка совместимости и типичные ошибки.
Расширение конфигурации в 1С хранится внутри конкретной информационной базы, поэтому при развёртывании новой базы, переезде на сервер или тиражировании доработки расширение нужно переносить отдельно — оно не попадает в выгрузку данных автоматически вместе с типовой конфигурацией. К счастью, платформа предоставляет штатный механизм: расширение сохраняется в файл с расширением .cfe и загружается в другую базу буквально за несколько минут.
Основная сложность переноса — не сама выгрузка, а совместимость. Расширение «привязывается» к объектам основной конфигурации: формам, модулям, реквизитам. Если целевая база работает на другой версии конфигурации или на другой конфигурации вообще, расширение может не загрузиться или загрузиться, но отключиться при первой же проверке применимости. Поэтому перенос всегда стоит начинать со сверки версий.
Ниже разобран полный цикл: подготовка, выгрузка расширения из исходной базы, загрузка в целевую базу через конфигуратор и режим «Предприятие», проверка результата и разбор типичных ошибок. Инструкции актуальны для платформы 8.3, где механизм расширений работает стабильно.
Что проверить перед переносом расширения
Первое условие — совпадение конфигурации. Расширение, написанное для «1С:Бухгалтерии 3.0», нельзя перенести в «Управление торговлей» или «Зарплату и управление персоналом»: заимствованные объекты просто не найдут своих аналогов. Даже внутри одной конфигурации разные релизы могут отличаться: переименованный реквизит или удалённая форма сделают расширение неприменимым.
Второе условие — версия платформы. Если расширение использует возможности, появившиеся в свежих версиях 8.3, а целевая база работает на старой платформе, загрузка завершится ошибкой. Проверить версию платформы можно через «Сервис → О программе» в режиме «Предприятие» или в заголовке окна конфигуратора.
Третий момент — режим совместимости и назначение расширения. Расширения с назначением «Исправление» и «Адаптация» ведут себя по-разному при обновлении конфигурации, а некоторые доработки (например, изменение ролей или критериев отбора) вообще невозможны через расширения. Если расширение содержит собственные объекты (новые справочники, регистры), убедитесь, что в целевой базе нет конфликтов имён.
Достаточно выгрузить .cfe и загрузить в целевую базу
Сверить заимствованные объекты, протестировать на копии
Расширение придётся переписывать под целевую конфигурацию
Обновить платформу или упростить расширение
Как выгрузить расширение из исходной базы
Стандартный способ — через конфигуратор. Откройте исходную базу в конфигураторе под пользователем с правами администратора, перейдите в меню «Конфигурация → Расширения конфигурации». В списке вы увидите все расширения базы с колонками «Активно», «Безопасный режим», «Защита от опасных действий» и назначением. Выделите нужное расширение и нажмите кнопку «Сохранить в файл» (или выберите команду в контекстном меню). Укажите папку и имя файла — получится файл с расширением .cfe.
Если расширений несколько, сохраняйте каждое в отдельный файл и давайте осмысленные имена, включающие версию конфигурации, для которой оно сделано, — например, PechatnayaForma_BP30_105.cfe. Это избавит от путаницы, когда файлов накопится много.
Альтернативный путь — выгрузка через пакетный режим конфигуратора из командной строки, что удобно для автоматизации и резервного копирования расширений по расписанию.
"C:\Program Files\1cv8\8.3.22.1750\bin\1cv8.exe" DESIGNER /F"D:\Bases\Source" /N Администратор /P *** /DumpExtensionToFile "D:\Backup\MyExtension.cfe" -Extension MyExtensionОбратите внимание: если расширение подключено из хранилища расширений или дорабатывается через EDT, корректнее выгружать его из среды разработки, чтобы сохранить историю изменений. Файл .cfe из конфигуратора содержит только текущее состояние.
Как загрузить расширение в другую базу через конфигуратор
Откройте целевую базу в конфигураторе, перейдите в «Конфигурация → Расширения конфигурации» и нажмите «Загрузить из файла». Укажите ранее сохранённый .cfe-файл. Платформа загрузит расширение и покажет его в списке. Если в базе уже есть расширение с таким же именем, будет предложено заменить его.
После загрузки проверьте флажки в списке: расширение должно быть активным, а режим «Безопасный режим» и «Защита от опасных действий» — установлены осознанно. Для расширений, которые обращаются к файловой системе или внешним компонентам, безопасный режим может блокировать работу; снимать его следует только для доверенных доработок.
Завершающий шаг — обновить конфигурацию базы данных (клавиша F7) и перезапустить сеансы пользователей, иначе они продолжат работать без расширения. В клиент-серверном варианте пользователям достаточно перезайти в базу.
- 1Откройте целевую базу в конфигураторе под администратором
- 2Перейдите: Конфигурация → Расширения конфигурации
- 3Нажмите «Загрузить из файла» и выберите .cfe-файл
- 4Проверьте флажки «Активно», «Безопасный режим»
- 5Обновите конфигурацию базы данных (F7)
- 6Перезапустите сеансы пользователей и проверьте работу доработки
Загрузка расширения в режиме «Предприятие»
Если доступа к конфигуратору нет (типичная ситуация для облачных сервисов и фреш-версий), расширение можно подключить прямо в режиме «Предприятие». Путь: «Администрирование → Печатные формы, отчеты и обработки → Расширения» (в некоторых конфигурациях раздел называется «Расширения конфигурации» или находится в «НСИ и администрирование»). Нажмите «Добавить из файла» и выберите .cfe.
Платформа выполнит проверку безопасности: если расширение содержит потенциально опасные операции, появится предупреждение с перечнем действий. Внимательно прочитайте список — расширение из недоверенного источника с доступом к файловой системе или интернету может представлять угрозу.
После добавления расширение появится в списке, но для применения потребуется перезапуск сеанса. В файловых базах достаточно закрыть и открыть программу; в клиент-серверных — сеанс перезапустится автоматически или по требованию.
Проверка результата после переноса
Факт загрузки файла ещё не означает, что расширение работает. Платформа при каждом запуске выполняет проверку применимости: сопоставляет заимствованные объекты расширения с текущей конфигурацией. Если проверка не пройдена, расширение автоматически отключается, а в журнале регистрации появляется событие с описанием причины.
Проверьте три вещи. Во-первых, в списке расширений статус должен быть «Подключено» без восклицательных знаков. Во-вторых, функциональность доработки должна реально работать: откройте изменённую форму, выполните добавленную команду, сформируйте отчёт. В-третьих, посмотрите журнал регистрации (отфильтруйте по событию «Расширение конфигурации») — там видны ошибки применимости и отключения.
Как проверить результат переноса
«Подключено», флажок «Активно» установлен
Статус «Отключено» или предупреждение о применимости
Формы открываются, команды выполняются
Ошибки «Объект не найден» при открытии
Нет ошибок по расширению после перезапуска
События об отключении расширения
Документы проводятся штатно
Ошибки в заимствованных модулях проведения
Типичные ошибки при переносе и их решение
Самая частая проблема — «Расширение отключено, так как не прошло проверку применимости». Причина почти всегда в расхождении версий конфигурации: в целевой базе объект переименован, удалён или изменил тип. Решение — открыть расширение в конфигураторе целевой базы, посмотреть список проблемных объектов (платформа подсвечивает их в дереве) и исправить привязки под текущий релиз.
Вторая типичная ситуация — конфликт имён. Если в целевой базе уже есть расширение с таким же именем или собственные объекты расширения пересекаются с объектами другого расширения, загрузка завершится ошибкой. Переименуйте расширение перед выгрузкой или измените префикс добавляемых объектов.
Третья группа ошибок связана с правами и безопасным режимом. Пользователь без прав администратора не увидит пункт загрузки расширений, а расширение в безопасном режиме не сможет выполнить обращение к файлам или COM-объектам. Также в файловых базах с включённой защитой от опасных действий пользователь при первом обращении к доработке увидит предупреждение — это нормально, но пользователей стоит предупредить заранее.
Особые сценарии переноса
Перенос между файловой и клиент-серверной базой
Формат хранения базы на механизм расширений не влияет: один и тот же .cfe-файл загружается и в файловую, и в серверную базу. Различие только в процедуре: в клиент-серверном варианте после загрузки нужно убедиться, что расширение применилось на сервере, и перезапустить сеансы через консоль кластера или дождаться их завершения.
Перенос вместе с данными расширения
Важное ограничение: файл .cfe содержит только метаданные и код расширения, но не данные. Если расширение добавляет собственные справочники или регистры сведений, в которых уже накоплены записи, их придётся переносить отдельно — через универсальную выгрузку XML, обработку «Выгрузка и загрузка данных XML» или конвертацию данных. Составьте список собственных объектов расширения заранее, чтобы не потерять данные.
Массовый перенос на несколько баз
Если расширение нужно раскатать на десятки однотипных баз (например, в филиалах), используйте пакетный режим конфигуратора с командой загрузки расширения или инструменты центра администрирования в кластере. Обязательное условие — все базы должны быть на одном релизе конфигурации, иначе часть загрузок завершится ошибкой применимости.
FAQ
Можно ли перенести расширение без конфигуратора?
Да, через режим «Предприятие»: «Администрирование → Печатные формы, отчеты и обработки → Расширения → Добавить из файла». Это единственный вариант для облачных сервисов, где доступ к конфигуратору закрыт. Потребуются права администратора в базе.
Перенесутся ли данные, которые хранятся в объектах расширения?
Нет. Файл .cfe содержит только структуру и код. Записи в добавленных расширением справочниках и регистрах переносите отдельно — обработкой выгрузки/загрузки XML или через конвертацию данных.
Почему после загрузки расширение сразу отключилось?
Чаще всего не пройдена проверка применимости: в целевой базе другой релиз конфигурации, и заимствованные объекты не совпадают. Откройте журнал регистрации — там указано, какой именно объект вызвал проблему, затем исправьте расширение под текущий релиз.
Можно ли перенести расширение из Бухгалтерии в Управление торговлей?
Напрямую — нет, это разные конфигурации с разным составом объектов. Теоретически возможно, только если расширение использует исключительно универсальные механизмы. На практике доработку переписывают под целевую конфигурацию, переиспользуя алгоритмы.
Нужно ли монопольный режим для загрузки расширения?
Для загрузки файла в список расширений монопольный режим не требуется. Но для применения расширения пользователям нужно перезапустить сеансы, поэтому операцию удобнее проводить в нерабочее время или после уведомления пользователей.
Как перенести несколько расширений сразу?
Штатной групповой выгрузки в интерактивном режиме нет — каждое расширение сохраняется отдельным .cfe-файлом. Для пакетной работы используйте командную строку конфигуратора с циклом по именам расширений.
Что важно запомнить
Перенос расширения сводится к выгрузке файла .cfe из исходной базы и загрузке в целевую через конфигуратор или режим «Предприятие». Критичные условия успеха — совпадение конфигурации и релиза, совместимая платформа и тест на копии базы. Данные собственных объектов расширения в .cfe не входят и переносятся отдельно. После загрузки обязательно проверьте статус применимости и журнал регистрации.