К статье
Практический материал

Администрирование · 9 мин

Как перенести расширение 1С в другую базу

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

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

Перенос выполняется стандартными средствами конфигуратора или режима «Предприятие», без сторонних утилит. Основной формат переноса — файл с расширением .cfe, который содержит все объекты расширения: формы, роли, процедуры, макеты. Ниже разобраны оба способа, условия успешного переноса и типичные ошибки, из-за которых расширение не загружается или не работает после загрузки.

Что именно переносится и в каком виде

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

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

Как выгрузить расширение из исходной базы

Основной способ — через конфигуратор. Откройте исходную базу в конфигураторе, перейдите в меню Конфигурация → Расширения конфигурации. В открывшемся списке выделите нужное расширение и нажмите кнопку «Выгрузить в файл» (или пункт контекстного меню). Укажите путь и имя файла, дождитесь окончания выгрузки.

Если расширений несколько и переносить нужно все, выгружайте каждое в отдельный файл — платформа не поддерживает выгрузку нескольких расширений в один CFE. Удобно давать файлам говорящие имена с версией, например DopOtchet_v1.2.cfe, чтобы потом не перепутать.

Альтернатива для пользовательских доработок — выгрузка из режима «Предприятие». В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) откройте Администрирование → Печатные формы, отчеты и обработки → Расширения, выделите строку и выберите «Сохранить в файл». Этот путь подходит, если нет доступа к конфигуратору, но работает не во всех конфигурациях и не для всех расширений.

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

Как загрузить расширение в целевую базу

В целевой базе откройте конфигуратор и тот же раздел Конфигурация → Расширения конфигурации. Нажмите «Загрузить из файла», выберите подготовленный CFE-файл. Если расширение защищено паролем, платформа запросит его до начала загрузки.

После загрузки расширение появится в списке, но флажок «Активно» может быть снят — включите его вручную. Для применения изменений обычно требуется перезапуск сеансов пользователей: в клиент-серверном варианте платформа сама предложит перезапустить сеанс, в файловом — попросите пользователей выйти и зайти заново.

В режиме «Предприятие» загрузка выполняется через тот же раздел «Расширения»: кнопка «Добавить из файла», выбор CFE, подтверждение предупреждения о безопасности. После добавления проверьте, что расширение подключено и не помечено как неработоспособное.

Совместимость: что проверить до переноса

Главная причина неудачного переноса — несовпадение версий. Расширение привязано к структуре основной конфигурации: если в целевой базе конфигурация другой версии, заимствованные объекты могут не найтись, и расширение будет отключено с ошибкой «Объект не обнаружен» или «Контролируемый объект не найден».

Второе условие — версия платформы. Расширение, созданное на более новой платформе, может использовать механизмы, которых нет в старой. Обратная ситуация обычно безопаснее, но тоже не гарантирует работоспособность. Проверьте версии в обеих базах: Сервис → О программе в режиме «Предприятие».

Третий момент — режим совместимости расширения. В свойствах расширения есть параметр «Режим совместимости расширения»; если целевая база работает на платформе старше указанного режима, загрузка будет отклонена. При необходимости режим можно понизить в исходной базе и выгрузить файл заново.

Контрольные точки

Как проверить результат переноса

Статус в списке расширений
Норма

Расширение активно, нет пометок об ошибках

Тревожный признак

Снят флажок «Активно», сообщение о несовместимости

Работа функционала
Норма

Добавленные кнопки, отчёты и обработчики доступны пользователям

Тревожный признак

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

Журнал регистрации
Норма

Нет ошибок при подключении расширения

Тревожный признак

Ошибки вида «Объект не обнаружен» при старте сеанса

Типичные ошибки при переносе и их решение

Ошибка «Расширение не может быть применено» после загрузки чаще всего означает, что в целевой конфигурации отсутствует заимствованный объект — например, расширение меняет форму документа, которого нет в этой конфигурации. Решение: переносить расширение только между одинаковыми конфигурациями или доработать его под целевую.

Если расширение загрузилось, но не работает у части пользователей, проверьте назначение ролей расширения и настройку «Безопасный режим». Также в типовых конфигурациях расширения могут не действовать для пользователей без права «Администрирование расширений конфигурации», если профили безопасности настроены строго.

Отдельный случай — расширения, исправляющие ошибки (патчи), которые приходят через интернет-поддержку. Их не нужно переносить вручную: они устанавливаются автоматически через сервис обновления. Ручной перенос таких патчей может привести к конфликту версий.

Типичные ошибки
01
Перенос между разными версиями конфигурации — расширение отключается из-за отсутствия заимствованных объектов
02
Загрузка в рабочую базу без копии — при ошибке в коде расширения пользователи не смогут войти
03
Забытый пароль на расширение — файл невозможно загрузить или изменить без исходного кода
04
Попытка перенести расширение через выгрузку конфигурации .cf — расширения в этот файл не входят

Альтернативные способы переноса

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

Для разработчиков, ведущих проект в EDT или хранящих исходники расширения в Git, правильный путь — не перенос CFE, а сборка расширения из исходников и загрузка через скрипты. Это исключает ситуацию, когда «боевой» CFE расходится с репозиторием.

Наконец, если целевая база — полная копия исходной (например, развёрнута из .dt), расширения уже внутри и переносить их отдельно не нужно. Это стоит учитывать, чтобы не проделывать двойную работу.

Способы переноса расширения

Через конфигуратор (CFE)

Универсальный способ, подходит всегда; требует доступа к конфигуратору обеих баз

Через режим Предприятие

Удобно без конфигуратора, но работает только в типовых с разделом «Расширения» и не для всех случаев

Перенос всей базы (.dt)

Расширения переезжают автоматически; подходит только когда нужна полная копия базы

Сборка из исходников (Git/EDT)

Правильный вариант для командной разработки; требует настроенного процесса сборки

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

Можно ли перенести расширение между разными конфигурациями, например из Бухгалтерии в ERP?

Технически файл загрузится, но расширение, заимствующее объекты конкретной конфигурации, будет отключено как несовместимое. Переносить имеет смысл только расширения, которые не зависят от объектов основной конфигурации, — и таких меньшинство.

Что делать, если при загрузке запрашивается пароль, а он утерян?

Без пароля загрузить или изменить защищённое расширение нельзя. Если пароль утерян, потребуется исходный код расширения от разработчика либо создание доработки заново. Храните пароли от расширений вместе с документацией на доработки.

Нужно ли отключать пользователей при загрузке расширения?

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

Почему расширение активно, но его функции не видны пользователям?

Чаще всего дело в правах: роли, добавленные расширением, не назначены пользователям, либо профили групп доступа их не включают. Также проверьте, не работает ли база в безопасном режиме, блокирующем выполнение кода расширения.

Можно ли перенести несколько расширений одним файлом?

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

Как откатить перенос, если расширение сломало работу базы?

Откройте список расширений в конфигураторе и снимите флажок «Активно» или удалите расширение — структура основной конфигурации при этом не пострадает. Если расширение успело изменить данные, восстановите их из резервной копии, сделанной до загрузки.