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

Разработка и Конфигурация · 9 мин

Как работает расширение в 1С: механизм, установка и обновление

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

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

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

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

Как устроен механизм расширений изнутри

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

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

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

Чем расширение отличается от доработки конфигурации

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

КритерийРасширениеДоработка конфигурации
Поддержка поставщикаСохраняется полностьюЧастично или полностью теряется
Обновление релизаШтатное, расширение может потребовать адаптацииРучное сопоставление изменённых объектов
Состав измененийОграничен: формы, модули, роли, часть объектовЛюбые объекты и свойства
Откат измененийОтключение расширения в спискеЗагрузка конфигурации или восстановление из копии
Изменение структуры данныхТолько новые объекты и реквизитыЛюбые изменения схемы

Что выбрать

Расширение

Подходит для доработки форм, печатных макетов, проверок при записи, дополнительных отчётов. Ограничение — нельзя менять состав типовых измерений, ряд свойств объектов и критичную бизнес-логику проведения «в лоб».

Доработка конфигурации

Оправдана, когда нужно менять структуру типовых объектов или глубоко перестраивать механизмы. Плата — дорогое обновление и риск ошибок при сопоставлении.

Как установить и подключить расширение

Установка выполняется через конфигуратор: меню «Конфигурация» → «Расширения конфигурации» → «Добавить» → «Загрузить из файла». Файл расширения имеет расширение .cfe. После загрузки расширение появляется в списке и становится активным, если снят флаг «Безопасный режим» не требуется для его работы.

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

Порядок установки расширения
  1. 1
    Сделайте резервную копию базы или убедитесь, что есть актуальный бэкап
  2. 2
    Откройте конфигуратор: Конфигурация → Расширения конфигурации
  3. 3
    Нажмите «Добавить» и загрузите файл .cfe
  4. 4
    Проверьте флажки «Активно» и «Использовать в основных ролях» при необходимости
  5. 5
    Запустите сеанс пользователя и проверьте, что изменённый функционал работает
  6. 6
    Проверьте журнал регистрации на предмет ошибок применения расширения

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

Обновление типовой конфигурации при наличии расширений

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

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

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

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

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

Активно, применено без ошибок

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

Статус «Не применено» или предупреждения контроля

Формы, изменённые расширением
Норма

Открываются, все добавленные элементы на месте

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

Ошибка открытия формы или пропавшие элементы

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

Нет ошибок применения расширения

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

Ошибки вида «метод не обнаружен» или «объект не найден»

Ограничения и типичные ошибки

Расширение не может изменить состав измерений и ресурсов типового регистра, тип реквизита, ряд свойств объектов, а также некоторые механизмы, жёстко зашитые в типовую логику. Если требуемая доработка упирается в такое ограничение, придётся либо искать обходной путь (свой регистр, подписка на событие), либо дорабатывать конфигурацию напрямую.

Ещё одно ограничение — безопасный режим. Расширения по умолчанию работают в безопасном режиме, где запрещены операции с файловой системой и COM-объектами. Для снятия ограничения нужны административные права и осознанное решение, поскольку это снижает защиту базы.

Типичные ошибки при работе с расширениями
01
Установка расширения сразу в рабочую базу без теста — ошибка в расширении ломает формы у всех пользователей
02
Игнорирование статуса «Не применено» после обновления — доработки молча перестают работать
03
Несколько расширений, переопределяющих один и тот же метод «Вместо» — конфликт и непредсказуемое поведение
04
Снятие безопасного режима без анализа кода расширения — риск выполнения вредоносного кода
05
Хранение единственной копии расширения только в базе — при удалении теряется разработка, выгружайте .cfe в хранилище

Управление несколькими расширениями и отладка

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

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

Именуйте расширения по схеме «подсистема_задача», например Продажи_КонтрольСкидок. Когда в базе накапливается несколько расширений, осмысленные имена и короткое описание в свойствах экономят часы при поиске того, какое из них влияет на конкретную форму.
ПЗ
Практическое замечание

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

Удалятся ли данные при отключении расширения?

Нет, при простом отключении (снятии флага «Активно») данные объектов расширения остаются в базе и снова станут доступны после включения. Удаление самого расширения из списка может потребовать удаления его данных — платформа предупредит об этом при реструктуризации.

Можно ли подключить расширение только одному пользователю?

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

Почему расширение не применяется после обновления конфигурации?

Чаще всего типовой объект, заимствованный расширением, изменился: переименована процедура, удалён реквизит, изменены параметры метода. Откройте расширение в конфигураторе, выполните проверку применимости и исправьте ссылки на изменённые объекты.

Сколько расширений можно подключить к одной базе?

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

Можно ли написать расширение без программиста?

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

Итог

Что важно запомнить

Расширение — слой изменений поверх типовой конфигурации: она остаётся на поддержке и обновляется штатно. Устанавливайте расширения через конфигуратор, тестируйте на копии, после каждого обновления проверяйте статус применения и не снимайте безопасный режим без анализа кода.