Зачем нужны расширения конфигурации и как ими пользоваться без снятия с поддержки
Содержание
Расширение 1С — это отдельная «надстройка» над типовой конфигурацией: в ней лежат ваши доработки (новые реквизиты, печатные формы, отчёты, исправления кода), а сама типовая остаётся на поддержке и обновляется штатно. Механизм появился в платформе 8.3.6, хранится в базе отдельно от основной конфигурации и переносится файлом с расширением .cfe.
Проще говоря, расширение позволяет доработать 1С, не трогая её «внутренности». Обновили Бухгалтерию до нового релиза — доработки остались на месте, их не нужно заново переносить вручную.
Что такое расширение конфигурации простыми словами
Представьте типовую конфигурацию как книгу издательства, а расширение — как прозрачную плёнку поверх страниц. Вы пишете на плёнке свои пометки, дорисовываете поля, закрываете неудачный абзац. Книга при этом цела, и когда выходит новое издание, плёнку можно положить уже на него.
Технически это выглядит так:
- 📦 расширение — самостоятельная мини-конфигурация, которая подключается к основной;
- 🔗 в него «заимствуются» объекты типовой (документ, справочник, форма, общий модуль), чтобы их изменить;
- ➕ в нём можно создавать и свои объекты: отчёты, обработки, роли, общие модули, а в современных версиях 8.3 — и собственные справочники, документы, регистры;
- 🔄 при запуске сеанса платформа «накладывает» расширение на основную конфигурацию, и пользователь видит уже итоговый результат.
У каждого расширения есть префикс — например, Расш1_. Он подставляется к именам новых объектов и процедур, чтобы они не пересеклись с типовыми.
Назначение расширения
В свойствах расширения задаётся «Назначение». От него зависит, в каком порядке платформа применяет несколько расширений сразу:
| Назначение | Для чего | Пример |
|---|---|---|
| Исправление | Срочно поправить ошибку в типовой до выхода релиза | Неверный расчёт в общем модуле |
| Адаптация | Подогнать типовую под отраслевые или региональные правила | Свои правила заполнения документов |
| Дополнение | Добавить новую функциональность | Отчёт, печатная форма, интеграция |
Сначала применяются исправления, затем адаптации, затем дополнения.
Чем расширение отличается от конфигурации и внешней обработки
Три способа доработки часто путают, потому что все они «меняют 1С». На деле разница принципиальная.
Редактирование конфигурации. Программист включает возможность изменения и правит объекты типовой напрямую. Изменения встраиваются в основную конфигурацию. При каждом обновлении приходится сравнивать и объединять свою версию с новым релизом поставщика. Чем больше правок, тем дороже обновление.
Внешняя обработка или отчёт (.epf, .erf). Это отдельный файл, который открывается из меню или подключается в список дополнительных обработок. Он умеет читать и записывать данные, формировать печатные формы, заполнять табличные части. Но изменить поведение типового документа, добавить реквизит
или поправить код проведения он не может.
Расширение (.cfe). Встаёт посередине. Может менять формы, модули, состав реквизитов и прав, как прямая правка. При этом хранится отдельно и не ломает поддержку, как внешняя обработка.
💡 Главное преимущество расширения перед прямой правкой: типовая конфигурация остаётся «на замке», а значит, её обновляет любой пользователь штатным способом, без программиста.
Как создать расширение 1С: пошаговая инструкция
Создают расширение в Конфигураторе. Понадобятся права администратора в базе.
Расширения в рабочей базе меняют поведение программы для всех пользователей. Первое расширение отлаживайте на копии базы.
1. Добавьте новое расширение
- Откройте базу в режиме Конфигуратор.
- Выберите в меню
Конфигурация → Расширения конфигурации. - В открывшемся списке нажмите Добавить.
- Задайте имя (латиницей или кириллицей без пробелов), синоним, префикс и назначение.
- Нажмите ОК — появится пустое дерево расширения, похожее на дерево обычной конфигурации.
2. Заимствуйте объект, который нужно изменить
Допустим, нужно добавить в документ «Реализация (акты, накладные, УПД)» реквизит «Номер доверенности водителя».
- Откройте дерево основной конфигурации.
- Найдите документ, щёлкните по нему правой кнопкой и выберите Добавить в расширение.
- Документ появится в дереве расширения с пометкой заимствованного объекта.
- В расширении добавьте ему новый реквизит.
- Заимствуйте форму документа и выведите на неё новое поле.
3. Измените код через аннотации
Код типовых процедур в расширении не правят «по месту». Вместо этого пишут свою процедуру и помечают, как она связана с типовой:
&Перед("ИмяПроцедуры")— ваш код выполнится до типового;&После("ИмяПроцедуры")— после типового;&Вместо("ИмяПроцедуры")— вместо типового (внутри можно вызвать оригинал черезПродолжитьВызов());&ИзменениеИКонтроль("ИмяПроцедуры")— копия типовой процедуры, где правки отмечены вставками и удалениями. Если поставщик в новом релизе изменит эту процедуру, расширение не применится и вы сразу узнаете о конфликте.
Пример: после создания формы выставить значение по умолчанию.
&НаСервере
&После("ПриСозданииНаСервере")
Процедура Расш1_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Объект.Ссылка.Пустая() Тогда
Объект.Расш1_НомерДоверенности = "б/н";
КонецЕсли;
КонецПроцедуры
4. Примените расширение к базе
- Сохраните изменения в окне расширения.
- Выполните Обновить конфигурацию базы данных (F7) — это отдельный шаг, без него база изменений не увидит.
- Запустите 1С:Предприятие и проверьте документ.
5. Сохраните расширение в файл
Через меню Конфигурация окна расширения сохраните его в файл .cfe. Этот файл — ваша страховка и средство переноса в другие базы.
Совместимость расширений с версиями платформы и конфигурации
С совместимостью расширений две независимые истории: платформа и релиз типовой.
Платформа. Расширения работают только в 8.3, начиная с 8.3.6. В 8.2 и 7.7 механизма нет вообще. Возможности росли от версии к версии: в ранних 8.3 можно было менять в основном формы, команды и роли, позже добавили собственные объекты данных, аннотацию &ИзменениеИКонтроль и другое. Если расширение создано в базе на новой платформе с её возможностями, в базу на платформе с номером ниже оно может не загрузиться.
В свойствах расширения есть режим совместимости. Он должен соответствовать режиму совместимости основной конфигурации, иначе платформа выдаст предупреждение при применении.
Релиз конфигурации. Расширение ссылается на объекты типовой по именам и свойствам. Когда выходит новый релиз:
- ✅ если заимствованные объекты не изменились — всё работает как раньше;
- ⚠️ если поставщик переименовал реквизит, удалил процедуру или поменял её код (для
&ИзменениеИКонтроль) — расширение не применится, и платформа сообщит, в каком объекте конфликт.
💡 Чем меньше заимствованных объектов и чем чаще вы используете &После вместо &Вместо, тем спокойнее проходят обновления.
Примеры использования расширений на практике
Где расширения реально выручают в бухгалтерии и учёте:
- 🖨 Своя печатная форма или правка макета. Добавить в счёт на оплату логотип, QR-код для оплаты, подпись по факсимиле. Макет заимствуется и меняется, а при обновлении печатная форма не слетает.
- 📝 Дополнительные поля в документах. Номер договора с госзаказчиком, ИГК, ответственный менеджер — с выводом в журнал и отчёты. Простые поля можно сделать и через «Дополнительные реквизиты» без программирования, но если поле должно участвовать в расчётах или проверках, нужно расширение.
- 🛠 Срочное исправление ошибки. Поставщик подтвердил ошибку, исправление обещают через релиз, а отчётность сдавать сейчас. Расширение с назначением «Исправление» закрывает проблему, потом его отключают.
- 🔌 Интеграция с сайтом, складской системой, банком. HTTP-сервисы, регламентные задания и общие модули обмена удобно держать в отдельном расширении.
- 🔒 Ограничение прав. Дополнительная роль, запрещающая, например, менять проведённые документы закрытого периода для конкретной группы пользователей.
- 📊 Свой отчёт со специфичной группировкой, который нужен в меню раздела, а не в списке внешних отчётов.
Как подключить, обновить и удалить расширение
Управлять расширениями можно двумя путями — через Конфигуратор и прямо из пользовательского режима.
Через пользовательский режим
В типовых конфигурациях на БСП (Бухгалтерия 3.0, ЗУП 3.1, УТ 11) есть отдельный список: Администрирование → Печатные формы, отчеты и обработки → Расширения. Чтобы раздел был виден, у пользователя должны быть права администратора.
Что здесь можно сделать:
- Подключить — кнопка добавления из файла, выбрать
.cfe. - Обновить — выделить расширение и загрузить новую версию из файла поверх старой.
- Отключить — снять флажок использования. Расширение остаётся в базе, но не применяется.
- Удалить — убрать расширение из базы полностью.
- Сохранить в файл — выгрузить текущую версию.
Если в конфигурации такого раздела нет, платформа даёт стандартный режим: Все функции → Стандартные → Управление расширениями конфигурации. Меню «Все функции» включается в параметрах (значок шестерёнки → «Отображать команду Все функции»).
Изменения вступают в силу после перезапуска сеанса — пользователям нужно закрыть и снова открыть 1С.
Через Конфигуратор
В окне Конфигурация → Расширения конфигурации выделите расширение и откройте его меню Конфигурация. Там есть загрузка из файла, сохранение в файл и сравнение. После загрузки снова выполните «Обновить конфигурацию базы данных».
Флаги в свойствах расширения
| Свойство | Что даёт |
|---|---|
| Активно | Расширение применяется к базе |
| Безопасный режим | Код расширения не может работать с файлами, COM и внешними компонентами |
| Защита от опасных действий | Платформа предупреждает пользователя перед потенциально опасными операциями кода расширения |
| Область действия | Вся информационная база или только текущая область данных |
Удаление расширения со своими справочниками или документами удаляет и данные в них. Перед удалением сохраните расширение в файл и сделайте резервную копию базы.
Расширение, внешняя обработка или правка конфигурации: что выбрать
Сводная таблица для выбора:
| Задача | Внешняя обработка | Расширение | Правка конфигурации |
|---|---|---|---|
| Печатная форма к типовому документу | ✅ подходит | ✅ подходит | ⚠️ избыточно |
| Новый реквизит в документе | ❌ нельзя | ✅ подходит | ✅ подходит |
| Изменить код проведения | ❌ нельзя | ✅ подходит | ✅ подходит |
| Разовая загрузка или групповая обработка данных | ✅ лучший вариант | ⚠️ избыточно | ❌ не нужно |
| Масштабная переработка учёта | ❌ | ⚠️ сложно сопровождать | ✅ оправдано |
| Обновление без программиста | ✅ | ✅ обычно | ❌ требуется объединение |
| Работа в облаке 1С:Фреш | ✅ через доп. обработки | ✅ с ограничениями сервиса | ❌ невозможно |
Короткое правило:
- нужно что-то «сделать с данными» — внешняя обработка;
- нужно «изменить поведение программы» — расширение;
- нужна глубокая переделка, где заимствуется больше половины объектов — проще честно вести свою конфигурацию и обновлять её объединением.
Частые ошибки при работе с расширениями
Загрузили .cfe, но изменений нет. В Конфигураторе забыли «Обновить конфигурацию базы данных», а в пользовательском режиме — перезапустить сеанс. Либо расширение не помечено как активное.
После обновления типовой расширение «не применяется». Конфликт с новым релизом: заимствованный объект изменился. Откройте расширение в Конфигураторе — проверка покажет проблемный объект. Исправьте заимствование и сохраните новую версию.
Расширение есть в одной базе, а в копии его нет. При выгрузке .dt расширения переносятся вместе с базой. А вот при переносе только конфигурации через .cf — нет: их нужно загрузить отдельно файлом .cfe.
Конфликт двух расширений. Два расширения с &Вместо на одну процедуру работают непредсказуемо. Держите одну процедуру — одну точку перехвата, остальное через &Перед/&После.
Код не может записать файл. Включён безопасный режим. Если расширению действительно нужен доступ к файлам или внешним ресурсам, снимите флаг осознанно — только для проверенного расширения от известного разработчика.
Расширение от стороннего подрядчика без исходников. Если .cfe присылают «закрытым» и без документации, после ухода подрядчика его никто не поддержит. Требуйте исходный файл и описание изменённых объектов.
Частые вопросы о расширениях 1С
Снимается ли типовая конфигурация с поддержки при установке расширения?
Переносится ли расширение в распределённую базу и на узлы обмена?
Нужно ли переустанавливать расширение после каждого обновления релиза?
Сколько расширений можно подключить к одной базе?
Можно ли открыть и посмотреть код чужого расширения?
Конфигурация → Расширения конфигурации и дерево нужного расширения. Так стоит проверять любые расширения из непроверенных источников.