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