Администрирование · 9 мин
Как перенести расширение 1С в другую базу
Как перенести расширение 1С между базами: выгрузка в файл CFE, загрузка через конфигуратор, проверка совместимости, типичные ошибки и способы их решения.
Расширение конфигурации в 1С — это отдельный слой доработок, который не меняет типовую конфигурацию и хранится в информационной базе. Когда нужно перенести такую доработку из тестовой базы в рабочую или развернуть её на другом сервере, достаточно выгрузить расширение в файл и загрузить его в целевую базу. Процедура занимает несколько минут, но требует проверки совместимости версий платформы и конфигурации.
Перенос выполняется стандартными средствами конфигуратора или режима «Предприятие», без сторонних утилит. Основной формат переноса — файл с расширением .cfe, который содержит все объекты расширения: формы, роли, процедуры, макеты. Ниже разобраны оба способа, условия успешного переноса и типичные ошибки, из-за которых расширение не загружается или не работает после загрузки.
Что именно переносится и в каком виде
Расширение хранится внутри информационной базы, а не в файле конфигурации (.cf) и не в каталоге шаблонов. Поэтому простое копирование файла базы или выгрузка .dt не являются «переносом расширения» как отдельной операции — хотя при переносе всей базы расширения переезжают вместе с ней. Речь дальше идёт о ситуации, когда нужно перенести только само расширение между разными базами.
Единый контейнер для переноса — файл с расширением .cfe. В него упаковываются все заимствованные и добавленные объекты, код модулей, роли, картинки и макеты. Пароль, если он установлен на расширение, также сохраняется: при загрузке в другую базу его нужно будет ввести повторно.
Как выгрузить расширение из исходной базы
Основной способ — через конфигуратор. Откройте исходную базу в конфигураторе, перейдите в меню Конфигурация → Расширения конфигурации. В открывшемся списке выделите нужное расширение и нажмите кнопку «Выгрузить в файл» (или пункт контекстного меню). Укажите путь и имя файла, дождитесь окончания выгрузки.
Если расширений несколько и переносить нужно все, выгружайте каждое в отдельный файл — платформа не поддерживает выгрузку нескольких расширений в один CFE. Удобно давать файлам говорящие имена с версией, например DopOtchet_v1.2.cfe, чтобы потом не перепутать.
Альтернатива для пользовательских доработок — выгрузка из режима «Предприятие». В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) откройте Администрирование → Печатные формы, отчеты и обработки → Расширения, выделите строку и выберите «Сохранить в файл». Этот путь подходит, если нет доступа к конфигуратору, но работает не во всех конфигурациях и не для всех расширений.
- 1Откройте базу в конфигураторе под пользователем с правами администратора
- 2Перейдите: Конфигурация → Расширения конфигурации
- 3Выделите нужное расширение и нажмите «Выгрузить в файл»
- 4Укажите имя и папку для файла .cfe
- 5Проверьте, что файл создан и имеет ненулевой размер
Как загрузить расширение в целевую базу
В целевой базе откройте конфигуратор и тот же раздел Конфигурация → Расширения конфигурации. Нажмите «Загрузить из файла», выберите подготовленный CFE-файл. Если расширение защищено паролем, платформа запросит его до начала загрузки.
После загрузки расширение появится в списке, но флажок «Активно» может быть снят — включите его вручную. Для применения изменений обычно требуется перезапуск сеансов пользователей: в клиент-серверном варианте платформа сама предложит перезапустить сеанс, в файловом — попросите пользователей выйти и зайти заново.
В режиме «Предприятие» загрузка выполняется через тот же раздел «Расширения»: кнопка «Добавить из файла», выбор CFE, подтверждение предупреждения о безопасности. После добавления проверьте, что расширение подключено и не помечено как неработоспособное.
Совместимость: что проверить до переноса
Главная причина неудачного переноса — несовпадение версий. Расширение привязано к структуре основной конфигурации: если в целевой базе конфигурация другой версии, заимствованные объекты могут не найтись, и расширение будет отключено с ошибкой «Объект не обнаружен» или «Контролируемый объект не найден».
Второе условие — версия платформы. Расширение, созданное на более новой платформе, может использовать механизмы, которых нет в старой. Обратная ситуация обычно безопаснее, но тоже не гарантирует работоспособность. Проверьте версии в обеих базах: Сервис → О программе в режиме «Предприятие».
Третий момент — режим совместимости расширения. В свойствах расширения есть параметр «Режим совместимости расширения»; если целевая база работает на платформе старше указанного режима, загрузка будет отклонена. При необходимости режим можно понизить в исходной базе и выгрузить файл заново.
Как проверить результат переноса
Расширение активно, нет пометок об ошибках
Снят флажок «Активно», сообщение о несовместимости
Добавленные кнопки, отчёты и обработчики доступны пользователям
Функции не появились или выдают ошибки при вызове
Нет ошибок при подключении расширения
Ошибки вида «Объект не обнаружен» при старте сеанса
Типичные ошибки при переносе и их решение
Ошибка «Расширение не может быть применено» после загрузки чаще всего означает, что в целевой конфигурации отсутствует заимствованный объект — например, расширение меняет форму документа, которого нет в этой конфигурации. Решение: переносить расширение только между одинаковыми конфигурациями или доработать его под целевую.
Если расширение загрузилось, но не работает у части пользователей, проверьте назначение ролей расширения и настройку «Безопасный режим». Также в типовых конфигурациях расширения могут не действовать для пользователей без права «Администрирование расширений конфигурации», если профили безопасности настроены строго.
Отдельный случай — расширения, исправляющие ошибки (патчи), которые приходят через интернет-поддержку. Их не нужно переносить вручную: они устанавливаются автоматически через сервис обновления. Ручной перенос таких патчей может привести к конфликту версий.
Альтернативные способы переноса
Если базы находятся в одной инфраструктуре и расширение нужно регулярно синхронизировать, удобнее хранить CFE-файл в общем сетевом каталоге или системе контроля версий и загружать его по мере обновления. Для автоматизации на сервере можно использовать пакетный режим конфигуратора с параметрами загрузки расширения.
Для разработчиков, ведущих проект в EDT или хранящих исходники расширения в Git, правильный путь — не перенос CFE, а сборка расширения из исходников и загрузка через скрипты. Это исключает ситуацию, когда «боевой» CFE расходится с репозиторием.
Наконец, если целевая база — полная копия исходной (например, развёрнута из .dt), расширения уже внутри и переносить их отдельно не нужно. Это стоит учитывать, чтобы не проделывать двойную работу.
Способы переноса расширения
Универсальный способ, подходит всегда; требует доступа к конфигуратору обеих баз
Удобно без конфигуратора, но работает только в типовых с разделом «Расширения» и не для всех случаев
Расширения переезжают автоматически; подходит только когда нужна полная копия базы
Правильный вариант для командной разработки; требует настроенного процесса сборки
Частые вопросы
Можно ли перенести расширение между разными конфигурациями, например из Бухгалтерии в ERP?
Технически файл загрузится, но расширение, заимствующее объекты конкретной конфигурации, будет отключено как несовместимое. Переносить имеет смысл только расширения, которые не зависят от объектов основной конфигурации, — и таких меньшинство.
Что делать, если при загрузке запрашивается пароль, а он утерян?
Без пароля загрузить или изменить защищённое расширение нельзя. Если пароль утерян, потребуется исходный код расширения от разработчика либо создание доработки заново. Храните пароли от расширений вместе с документацией на доработки.
Нужно ли отключать пользователей при загрузке расширения?
Для самой загрузки — нет, платформа выполняет её в фоне. Но для применения изменений сеансы должны быть перезапущены. В клиент-серверном варианте можно принудительно завершить сеансы через консоль кластера после загрузки.
Почему расширение активно, но его функции не видны пользователям?
Чаще всего дело в правах: роли, добавленные расширением, не назначены пользователям, либо профили групп доступа их не включают. Также проверьте, не работает ли база в безопасном режиме, блокирующем выполнение кода расширения.
Можно ли перенести несколько расширений одним файлом?
Нет, один файл CFE содержит одно расширение. Выгружайте и загружайте каждое отдельно, соблюдая порядок, если расширения зависят друг от друга.
Как откатить перенос, если расширение сломало работу базы?
Откройте список расширений в конфигураторе и снимите флажок «Активно» или удалите расширение — структура основной конфигурации при этом не пострадает. Если расширение успело изменить данные, восстановите их из резервной копии, сделанной до загрузки.