Разработка и Конфигурация · 10 мин
Что такое CFE в 1С и как работать с расширениями конфигурации
CFE в 1С — это файл расширения конфигурации. Разбираем, чем CFE отличается от CF, как создать, подключить и обновить расширение без снятия конфигурации с поддержки.
CFE в 1С — это формат файла расширения конфигурации (Configuration Extension). Расширение — это механизм платформы «1С:Предприятие», который позволяет добавлять и изменять функциональность типовой конфигурации без изменения самой конфигурации поставщика. Файл с расширением .cfe сохраняется из конфигуратора и содержит только те объекты и доработки, которые отличаются от основной конфигурации.
Практический смысл механизма прост: типовая конфигурация остаётся на полной поддержке поставщика, а все специфические доработки — отчёты, обработки, дополнительные реквизиты, изменённые формы и процедуры — выносятся в расширение. При обновлении типовой конфигурации на новый релиз доработки в расширении не затираются, что существенно снижает трудоёмкость сопровождения.
Механизм расширений доступен в платформе «1С:Предприятие 8.3» начиная с версии 8.3.6, однако полноценные возможности (изменение ролей, собственные подсистемы, расширение запросов и т.д.) добавлялись постепенно в более поздних релизах. Чем новее платформа, тем больше объектов можно изменять через расширение.
Чем CFE отличается от CF и почему это важно
Файл CF — это полная поставка конфигурации: вся структура метаданных, модули, формы, макеты. Установка CF заменяет конфигурацию целиком. Файл CFE содержит только «дельту» — заимствованные и изменённые объекты плюс собственные новые объекты расширения. Применить CFE можно только поверх уже существующей конфигурации.
Ключевое отличие проявляется при обновлении. Если доработки внесены напрямую в конфигурацию (файл CF, режим изменения), при установке нового релиза их нужно вручную сопоставлять и переносить через механизм сравнения и объединения. Расширение же подключается поверх обновлённой конфигурации, и в большинстве случаев продолжает работать без доработки.
CF или CFE — что выбрать
Подходит для полностью самописных решений и поставки нового продукта. Требует ручного переноса доработок при обновлении типовой базы
Подходит для точечных доработок типовой конфигурации. Сохраняет поддержку поставщика и упрощает обновление, но имеет ограничения по изменяемым объектам
Что можно и чего нельзя сделать через расширение
Через расширение можно добавлять собственные отчёты, обработки, подсистемы, общие модули, роли и печатные формы. Можно заимствовать объекты типовой конфигурации и изменять их: добавлять реквизиты в справочники и документы, изменять формы и их обработчики, дополнять процедуры и функции модулей аннотациями «Вместо», «Перед», «После», «ИзменениеИКонтроль».
Ограничения тоже существенны. Расширение не может изменить состав движений документа по регистрам, удалить объекты типовой конфигурации, изменить тип существующего реквизита или обязательность его заполнения. Планы обмена, критерии отбора и некоторые другие классы объектов расширяются с ограничениями или не расширяются вовсе — набор возможностей зависит от версии платформы.
Отдельного внимания заслуживают изменения структуры данных. Добавление реквизита через расширение физически изменяет таблицы базы данных при реструктуризации. Это безопасно в работающей системе, но требует монопольного доступа к базе при обновлении, как и обычное изменение конфигурации.
Как создать расширение и сохранить его в файл CFE
Создание расширения выполняется в конфигураторе. Откройте меню «Конфигурация» → «Расширения конфигурации», в появившемся списке нажмите «Создать». Задайте имя (латиницей, без пробелов), синоним и префикс — префикс будет добавляться к именам новых объектов расширения, что предотвращает конфликты имён с типовой конфигурацией.
Далее заимствуйте нужные объекты: в дереве конфигурации через контекстное меню «Добавить в расширение» или в самом расширении через «Заимствовать». Внесите изменения — добавьте реквизиты, измените форму, дополните модуль. После этого обновите конфигурацию базы данных (F7), иначе расширение не применится.
Чтобы получить файл CFE, откройте список расширений, выделите нужное и выполните «Конфигурация» → «Сохранить в файл» (или соответствующую кнопку в окне расширений). Укажите путь — файл получит расширение .cfe. Этот файл можно переносить между базами, хранить в системе контроля версий и подключать на других развёртываниях той же конфигурации.
- 1Откройте конфигуратор и меню «Конфигурация» → «Расширения конфигурации»
- 2Создайте расширение, задайте имя и префикс
- 3Заимствуйте нужные объекты и внесите доработки
- 4Обновите конфигурацию базы данных (F7) и проверьте работу в режиме Предприятия
- 5Сохраните расширение в файл .cfe через кнопку сохранения в окне расширений
Как подключить CFE к базе
Подключение готового файла CFE выполняется либо в конфигураторе (список расширений → «Загрузить из файла»), либо в режиме Предприятия через типовую обработку управления расширениями. В конфигурациях на базе Библиотеки стандартных подсистем она находится в разделе «Администрирование» → «Печатные формы, отчеты и обработки» → «Расширения» (точный путь зависит от конфигурации).
После загрузки файла обратите внимание на флажки в списке расширений: «Активно», «Безопасный режим», «Защита от опасных действий», «Использовать в основных ролях». Для рабочего применения расширение должно быть активным. Безопасный режим отключайте только для проверенных расширений — в нём запрещены операции с файловой системой и внешними компонентами.
Обновление типовой конфигурации с подключённым расширением
Перед обновлением типовой конфигурации сохраните расширение в файл CFE — это страховка на случай конфликтов. Затем выполните стандартное обновление конфигурации поставщика. После обновления откройте список расширений и проверьте их применимость: если в новом релизе изменён заимствованный объект (например, переименована процедура, которую вы дополняли), расширение может отключиться с ошибкой.
Конфликтные ситуации диагностируются при проверке применимости расширения в конфигураторе. Типичные причины: удалённый или переименованный заимствованный объект, изменённая сигнатура метода, конфликт имён новых типовых объектов с объектами расширения. Исправляется это перезаимствованием объекта и корректировкой кода расширения под новый релиз.
Как проверить результат после обновления
Расширение активно, ошибок применимости нет
Расширение отключено или помечено ошибкой
Доработанные формы открываются, новые реквизиты доступны
Ошибка при открытии формы или отсутствие изменений
Проверка завершается без сообщений о конфликтах
Сообщения об отсутствующих заимствованных объектах
Типичные ошибки при работе с CFE
Самая частая ошибка — попытка загрузить CFE в базу с другой конфигурацией или другой версией. Расширение жёстко привязано к объектам основной конфигурации: если заимствованного объекта нет, загрузка или применение завершится ошибкой. Всегда проверяйте соответствие конфигурации и релиза.
Вторая группа ошибок связана с безопасным режимом и профилями безопасности в клиент-серверном варианте. Расширение, работающее в файловой базе, может не запуститься на сервере из-за ограничений профиля безопасности кластера. Третья типичная проблема — забытый префикс: объекты расширения без префикса конфликтуют с новыми объектами типовых релизов.
Когда расширение не подходит: альтернативы
Если задача — просто добавить печатную форму или отчёт, расширение может быть избыточным. Механизм дополнительных отчётов и обработок БСП позволяет подключать внешние EPF/ERL-файлы без конфигуратора и без обновления конфигурации базы данных. Это быстрее и безопаснее для простых задач.
Если же доработка затрагивает ограниченные механизмом области — движения документов, типы реквизитов, планы обмена — остаётся только прямое изменение конфигурации с частичным или полным снятием с поддержки. Это осознанное архитектурное решение: вы получаете полную свободу, но берёте на себя стоимость сопровождения при каждом обновлении.
Как выбрать способ доработки
Что важно запомнить
CFE — файл расширения конфигурации 1С, содержащий доработки поверх типовой конфигурации. Расширения сохраняют поддержку поставщика и упрощают обновления, но имеют ограничения по изменяемым объектам. Всегда сохраняйте CFE перед обновлением и проверяйте применимость после него.
Частые вопросы о CFE в 1С
Можно ли открыть файл CFE без 1С?
Нет, содержимое CFE просматривается только через конфигуратор «1С:Предприятие». Файл имеет внутренний бинарный формат платформы. Чтобы увидеть код и объекты, загрузите расширение в тестовую базу с соответствующей конфигурацией.
Сколько расширений можно подключить к одной базе?
Жёсткого практического лимита для обычных сценариев нет — можно подключать несколько расширений одновременно. Однако каждое расширение увеличивает время запуска сеанса и риск взаимных конфликтов, если несколько расширений изменяют один и тот же объект. Разумный подход — консолидировать доработки в одно-два расширения.
Почему расширение отключилось после обновления конфигурации?
Чаще всего потому, что в новом релизе изменился заимствованный объект: переименована процедура, удалён реквизит, изменена форма. Откройте конфигуратор, выполните проверку применимости расширения — она покажет конкретные конфликты, которые нужно исправить перезаимствованием и правкой кода.
Чем CFE отличается от внешней обработки EPF?
EPF — это отдельная внешняя обработка или отчёт, не меняющая конфигурацию. CFE — расширение, которое встраивается в конфигурацию и может изменять типовые формы, модули и структуру данных. Внешняя обработка проще и безопаснее, расширение — мощнее.
Нужно ли монопольное подключение для загрузки CFE?
Если расширение не меняет структуру данных (только формы и модули), его можно подключать и обновлять без монопольного доступа. Если добавлены реквизиты или объекты, влияющие на структуру базы, потребуется обновление конфигурации базы данных с монопольным режимом.
Можно ли перенести CFE с файловой базы на клиент-серверную?
Да, файл CFE переносится между любыми базами с совместимой конфигурацией независимо от варианта работы. Учтите только, что на сервере могут действовать профили безопасности кластера, ограничивающие операции расширения, — проверьте работу в тестовом контуре.