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