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