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