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