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