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

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

Расширения конфигурации 1С: как использовать на практике

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

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

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

Механизм доступен на платформе 8.3.11 и новее (в ранних версиях с заметными ограничениями) и поддерживается всеми современными типовыми решениями: Бухгалтерией предприятия, Управлением торговлей, ERP, Зарплатой и управлением персоналом. Ниже разобрано, когда расширение уместно, как его создать, подключить, обновить и каких ошибок избегать.

Когда расширение подходит, а когда нужна доработка конфигурации

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

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

Практическое правило: если задача сводится к «добавить поверх» — используйте расширение. Если нужно «переделать внутри» (изменить логику проведения типового документа радикально, поменять состав движений) — расширение либо не справится, либо решение будет хрупким, и стоит оценивать прямую доработку с пониманием стоимости будущих обновлений.

Сравнение подходов к доработке

Расширение конфигурации

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

Прямое изменение конфигурации

Позволяет любые изменения, но снимает объекты с полной поддержки и усложняет каждое обновление. Оправдано при глубокой переработке бизнес-процессов.

Внешние отчёты и обработки

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

Как создать расширение в конфигураторе

Создание выполняется в конфигураторе. Откройте меню «Конфигурация» → «Расширения конфигурации», в появившемся окне нажмите «Создать». Задайте имя (латиницей, без пробелов — оно станет идентификатором), синоним и префикс, который будет добавляться к именам новых объектов расширения. Префикс важен: он предотвращает конфликты имён с будущими объектами поставщика.

После создания расширение появится в дереве конфигурации как отдельная ветка. Чтобы доработать типовой объект, его нужно сначала добавить в расширение: правый клик по объекту в основной конфигурации → «Добавить в расширение» (или аналогичное действие из расширения). Затем в расширении изменяются формы, макеты, модули — при этом в модулях доступны аннотации &ИзменениеИКонтроль, &Вместо, &Перед, &После для перехвата типовых процедур.

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

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

Подключение расширения к базе и режимы безопасности

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

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

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

Проверка результата после подключения

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

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

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

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

Форма объекта
Норма

Открывается с добавленными элементами, изменения видны сразу после перезапуска сеанса

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

Форма типовая — расширение не применено, отключено или конфликтует с другим расширением

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

Нет ошибок при вызове перехваченных процедур

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

Ошибки «Метод не обнаружен» — типовой метод изменён поставщиком, перехват устарел

Отключение расширения
Норма

База открывается и работает в типовом режиме

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

Ошибки при отключении — доработка затронула данные, от которых зависят другие механизмы

Права пользователей
Норма

Новые объекты доступны под рабочими ролями

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

Объекты видны только под полными правами — не настроены роли расширения

Обновление типового релиза при наличии расширений

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

Наиболее частая причина несовместимости — изменение типовых процедур, перехваченных через &Вместо или &ИзменениеИКонтроль: поставщик переименовал метод, изменил параметры или состав кода. Второй источник проблем — удалённые или переименованные объекты и реквизиты, добавленные в расширение по ссылке.

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

Типичные ошибки и ограничения механизма

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

Вторая группа ошибок связана с перехватом кода: злоупотребление &Вместо вместо &Перед/&После, вызов типового метода через ПродолжитьВызов() без необходимости, изменение параметров перехваченного метода. Каждый такой приём увеличивает вероятность поломки при очередном релизе.

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

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

FAQ: частые вопросы о расширениях конфигурации

Можно ли использовать расширения в файловой базе?

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

Чем расширение отличается от внешней обработки?

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

Что произойдёт с расширением при обновлении конфигурации?

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

Можно ли перенести расширение в другую базу?

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

Почему расширение подключено, но изменения не видны?

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

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

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

Итог

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

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