К статье
Практический материал

Разработка и Конфигурация · 11 мин

1С: как работать с расширением конфигурации

Как работать с расширением в 1С: подключение, доработка форм и кода без изменения конфигурации, безопасный режим, отладка, типичные ошибки и проверка результата.

Расширение конфигурации в 1С — это механизм, который позволяет добавлять или изменять функциональность типовой программы, не снимая её с поддержки и не редактируя саму конфигурацию поставщика. Доработки хранятся отдельным объектом, подключаются к информационной базе и при обновлении типового релиза не затираются, как это происходит при прямом изменении конфигурации.

Типичные задачи, которые решают через расширение: добавить кнопку или колонку на форму документа, изменить логику проведения через обработчики «Вместо», «Перед», «После», создать дополнительный отчёт или печатную форму, добавить реквизит в справочник. Всё это делается без снятия конфигурации с замка, что сохраняет возможность автоматического обновления.

Работа с расширениями доступна в конфигурациях на управляемых формах (режим совместимости «Версия 8.3.6» и выше для базовых возможностей; чем новее платформа, тем шире набор заимствуемых объектов). Если конфигурация старая или работает в обычном приложении, расширения либо недоступны, либо сильно ограничены.

Когда расширение подходит, а когда лучше изменить конфигурацию

Расширение — правильный выбор, если доработка точечная: изменить форму, добавить реквизит, переопределить обработчик события, подключить внешнюю печатную форму как штатную. Чем меньше затронуто объектов и чем меньше логики завязано на глубокое изменение структуры данных, тем удобнее расширение.

Ограничения у механизма есть. В расширениях нельзя изменять состав типов существующих реквизитов, менять роли и права на уровне конфигурации, изменять регламентные задания поставщика, дорабатывать планы обмена в полном объёме. Часть возможностей зависит от версии платформы: например, изменение ролей и некоторых видов объектов появилось только в поздних версиях 8.3.

Если требуется новый подсистемный блок учёта, глубокая переработка документооборота или изменение типовых движений по множеству регистров, расширение превращается в источник проблем: после каждого обновления придётся проверять совместимость. В таких случаях честнее изменить конфигурацию напрямую с грамотной организацией поддержки или вынести логику во внешние обработки.

Сравнение вариантов доработки

Расширение конфигурации

Подходит для точечных доработок форм, реквизитов, обработчиков. Не требует снятия с поддержки. Ограничение: не все объекты и свойства можно заимствовать.

Внешняя обработка или отчёт

Подходит для печатных форм, отчётов, разовых операций без изменения интерфейса. Ограничение: нельзя менять типовые формы и модули.

Прямое изменение конфигурации

Подходит для глубокой переработки учёта. Ограничение: сложнее обновления, нужна дисциплина хранения истории изменений.

Как подключить готовое расширение в пользовательском режиме

Если расширение получено в виде файла с расширением .cfe (например, от стороннего разработчика или из другой базы), его можно подключить без конфигуратора. В типовых конфигурациях откройте «Администрирование» → «Печатные формы, отчёты и обработки» → «Расширения». Если пункта нет, включите флаг использования расширений в том же разделе или проверьте права — действие доступно пользователю с правами администратора.

В открывшемся списке нажмите «Добавить из файла» и выберите файл .cfe. Перед загрузкой программа может предупредить о безопасном режиме: расширения из недоверенных источников загружаются с включённым профилем безопасности, который ограничивает доступ к файловой системе и внешним компонентам. Не отключайте безопасный режим для расширений, происхождение которых вы не проверили.

После добавления расширение появится в списке. Снимите и снова установите флаг активности либо просто перезапустите сеанс — многие доработки форм применяются только после перезапуска программы. Проверить результат можно, открыв доработанный объект: новая кнопка, реквизит или изменённое поведение должны быть видны сразу.

Подключение расширения из файла
  1. 1
    Откройте «Администрирование — Печатные формы, отчёты и обработки — Расширения».
  2. 2
    Нажмите «Добавить из файла» и укажите файл .cfe.
  3. 3
    Подтвердите загрузку, не отключая безопасный режим без необходимости.
  4. 4
    Перезапустите сеанс 1С.
  5. 5
    Откройте доработанный объект и убедитесь, что изменения применились.

Как создать и доработать расширение в конфигураторе

Разработка ведётся в конфигураторе. Откройте меню «Конфигурация» → «Расширения конфигурации», создайте новое расширение и задайте имя, префикс и синоним. Префикс важен: он добавляется к именам всех новых объектов расширения и предотвращает конфликты с типовыми объектами и другими расширениями. Используйте короткий осмысленный префикс, например «Расш1_» или префикс подразделения.

Чтобы доработать типовой объект, его нужно заимствовать: в дереве конфигурации найдите объект (форму, справочник, модуль), вызовите контекстное меню и выберите «Добавить в расширение». После этого объект появится в дереве расширения, и вы сможете менять его в рамках разрешённых правил: добавлять элементы формы, свои процедуры и функции, переопределять обработчики событий.

Для переопределения типовых процедур модуля используются аннотации &Вместо, &Перед, &После. Предпочитайте &Перед и &После: они не подменяют типовой код и устойчивее к обновлениям. Аннотацию &Вместо применяйте только когда без неё нельзя, и внутри обязательно вызывайте типовой метод, если часть его логики нужна.

bsl
&После("ПриЗаписи")
Процедура Расш1_ПриЗаписи(Отказ)
	// Дополнительная проверка после типовой логики
	Если Не ЗначениеЗаполнено(Комментарий) Тогда
		Комментарий = "Заполнено расширением";
	КонецЕсли;
КонецПроцедуры

После внесения изменений сохраните расширение и обновите конфигурацию базы данных (F7), если добавлялись реквизиты или объекты, влияющие на структуру данных. Изменения только в модулях и формах обычно применяются без реструктуризации, но сеанс всё равно потребуется перезапустить.

Безопасный режим, права и подключение в серверной базе

В клиент-серверном варианте расширения хранятся в информационной базе и применяются для всех пользователей после перезапуска их сеансов. Подключение и отключение расширений требует права «Администрирование расширений конфигурации» — обычному пользователю эти операции недоступны.

Безопасный режим ограничивает расширение: запрещены операции с файловой системой сервера, запуск внешних приложений, загрузка внешних компонент. Если расширение использует такие возможности легитимно (например, обмен файлами с каталогом), безопасный режим для него отключают осознанно и только после проверки кода. Привилегированный режим и отключение защиты от опасных действий — инструменты, которые при ошибке открывают доступ к данным сервера.

Как проверить работу расширения и отладить код

Отладка кода расширения ничем не отличается от отладки конфигурации: в конфигураторе включите отладку, поставьте точку останова в модуле расширения и выполните действие в пользовательском режиме. Если точка останова не срабатывает, проверьте, что расширение активно, сеанс перезапущен, а процедура действительно вызывается — например, обработчик относится к нужному событию и объекту.

Типовой признак неприменённого расширения — форма выглядит как раньше, хотя изменения сохранены. Причины: сеанс не перезапущен, расширение отключено флагом в списке, конфликт с другим расширением, которое дорабатывает ту же форму и подключается позже. Порядок применения расширений влияет на результат: при конфликте «побеждает» то, что подключено последним.

Контрольные точки

Как проверить результат

Расширение в списке
Норма

Флаг активности установлен, ошибок в колонке состояния нет

Тревожный признак

Флаг снят или отображается сообщение о конфликте

Форма в пользовательском режиме
Норма

Новые элементы и кнопки видны, обработчики срабатывают

Тревожный признак

Форма типовая — сеанс не перезапущен или расширение не применилось

Журнал регистрации
Норма

Нет ошибок подключения расширений

Тревожный признак

Есть записи об ошибках совместимости после обновления релиза

Обновление типовой конфигурации при наличии расширений

Главное преимущество расширений проявляется при обновлении: типовая конфигурация обновляется штатно, расширение не стирается. Но это не значит, что контроль не нужен. Если в новом релизе поставщик переименовал процедуру, которую вы переопределили через &Вместо, или изменил состав параметров события, расширение перестанет работать корректно.

Правильный порядок: перед обновлением рабочей базы обновите копию, откройте расширение в конфигураторе и выполните проверку конфигурации с включённой проверкой расширений. Конфигуратор покажет ссылки на несуществующие объекты и методы. Исправьте расхождения, протестируйте ключевые сценарии на копии и только потом обновляйте рабочую базу.

Полезная практика — хранить исходники расширений в файлах .cfe или в хранилище с указанием версии релиза, под которую они проверены. Тогда при сбое вы быстро откатитесь к рабочей версии, не разбираясь, что именно менялось.

Типичные ошибки
01
Переопределение через &Вместо без вызова типового метода — после обновления теряется новая логика поставщика.
02
Добавление объектов без префикса — конфликт имён с типовой конфигурацией или другим расширением.
03
Проверка только на своём сеансе — у пользователей с другими правами доработка не работает.
04
Отключение безопасного режима для непроверенного файла .cfe — риск выполнения вредоносного кода.
05
Отсутствие копии расширения в файле — при повреждении базы доработку приходится писать заново.

Частые вопросы о работе с расширениями 1С

Можно ли добавить новый документ или справочник через расширение?

Да, расширения позволяют создавать собственные объекты метаданных: справочники, документы, регистры, отчёты. Такие объекты полностью принадлежат расширению и удаляются вместе с ним вместе с данными, поэтому перед отключением расширения с собственными объектами убедитесь, что данные не нужны.

Что произойдёт с данными, если удалить расширение?

Данные типовых объектов не пострадают — удалится только доработка. Но значения реквизитов, добавленных расширением, и данные собственных объектов расширения будут потеряны при удалении. Перед удалением выгрузите нужные данные или сначала просто отключите расширение флагом.

Почему расширение не подключается с ошибкой совместимости?

Чаще всего расширение разработано под другую версию конфигурации или платформы и ссылается на объекты, которых нет в вашей базе. Откройте его в конфигураторе, выполните проверку — конфигуратор укажет конкретные неразрешённые ссылки. Исправить может только разработчик расширения.

Можно ли использовать несколько расширений одновременно?

Да, к одной базе можно подключить несколько расширений. Учитывайте, что если два расширения дорабатывают одну форму или один метод, применяется порядок подключения, и результат может отличаться от ожидаемого. Тестируйте такие комбинации на копии базы.

Как выгрузить расширение в файл для переноса в другую базу?

В конфигураторе откройте список расширений («Конфигурация — Расширения конфигурации»), выделите нужное и используйте команду сохранения в файл — получится файл .cfe. Его можно загрузить в другую базу с той же конфигурацией через пользовательский режим или конфигуратор.

Расширение или внешняя обработка — что выбрать для печатной формы?

Для отдельной печатной формы или отчёта проще внешняя обработка: её подключают через «Дополнительные отчёты и обработки» без прав администратора конфигурации. Расширение оправдано, если печатная форма должна быть встроена в типовую команду печати или требуется доработать саму форму документа.

Итог

Что важно запомнить

Расширение — способ доработать типовую 1С без снятия с поддержки. Подключайте файлы .cfe только из проверенных источников и не отключайте безопасный режим без необходимости. Разработку ведите с префиксом, предпочитайте аннотации &Перед и &После, а перед каждым обновлением релиза проверяйте расширение на копии базы.