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

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

Как редактировать расширение конфигурации 1С

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

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

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

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

Подготовка: копия базы и сохранение расширения

Прежде чем что-либо менять, создайте резервную копию информационной базы через конфигуратор: Администрирование → Выгрузить информационную базу. Для файловой базы достаточно скопировать файл 1Cv8.1CD. Для клиент-серверной базы используйте выгрузку в .dt или штатные средства СУБД.

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

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

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

Запустите конфигуратор и откройте основную конфигурацию (Конфигурация → Открыть конфигурацию), если она ещё не открыта. Затем перейдите в меню Конфигурация → Расширения конфигурации. Откроется окно со списком всех расширений, подключённых к базе, с признаками активности и безопасного режима.

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

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

Порядок открытия расширения
  1. 1
    Откройте конфигуратор и основную конфигурацию
  2. 2
    Перейдите: Конфигурация → Расширения конфигурации
  3. 3
    Сохраните расширение в файл .cfe
  4. 4
    Дважды кликните по расширению — откроется окно его конфигурации
  5. 5
    Внесите правки и сохраните (Ctrl+S)
  6. 6
    Обновите конфигурацию базы данных (F7)

Что можно менять: заимствованные и собственные объекты

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

Чтобы заимствовать объект, найдите его в дереве основной конфигурации, вызовите контекстное меню и выберите «Добавить в расширение» — либо перетащите объект в окно расширения. После этого объект появится в дереве расширения, и его можно дорабатывать: менять форму, добавлять код в обработчики событий через аннотации &ИзменениеИКонтроль, &Вместо, &Перед, &После.

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

Изменение форм и программного кода

Правка формы объекта

Заимствованная форма открывается в расширении в обычном редакторе форм. Можно добавлять элементы, менять видимость, добавлять команды и обработчики. Удалять типовые элементы формы нельзя — можно только скрывать их через свойства или код. Это ограничение защищает расширение от конфликтов при обновлении основной конфигурации.

Для добавления логики в модуль формы используйте перехват обработчиков. Например, чтобы дополнить типовой обработчик ПриОткрытии, создайте в модуле формы расширения процедуру с аннотацией &После("ПриОткрытии"). Так типовой код продолжит работать, а ваш добавится следом.

Перехват процедур и функций модулей

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

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

Проверка совместимости и применение изменений

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

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

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

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

Статус расширения в списке
Норма

Флаг «Используется» установлен, ошибок нет

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

Расширение отключено или помечено как несовместимое

Работа изменённой формы
Норма

Форма открывается, новые элементы видны, типовые функции работают

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

Ошибка при открытии формы или пропали типовые кнопки

Перехваченные обработчики
Норма

Дополнительная логика срабатывает, типовая не сломана

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

Код выполняется дважды или типовая логика не вызывается

Поведение после обновления конфигурации
Норма

Расширение применяется, контроль &ИзменениеИКонтроль без предупреждений

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

Платформа сообщает о расхождении заимствованных методов

Обновление расширения в рабочей базе и откат

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

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

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

Когда расширение не подходит: альтернативы

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

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

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

Внешняя обработка (.epf)

Подходит для разовых операций и дополнительных печатных форм; не меняет конфигурацию, но не может перехватывать типовые события

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

Основной способ постоянных доработок: формы, обработчики, новые объекты; сохраняет простое обновление типовой конфигурации

Изменение основной конфигурации

Даёт полный доступ к типовому коду, но усложняет обновления; оправдано только когда расширение технически не справляется

Часто задаваемые вопросы

Почему расширение отключилось после обновления конфигурации?

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

Можно ли редактировать расширение без конфигуратора?

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

Что делать, если после правки расширения база не запускается?

Зайдите в конфигуратор — он открывается независимо от ошибок кода расширения. В списке расширений снимите флаг «Используется» с проблемного расширения или загрузите ранее сохранённый файл .cfe, затем обновите конфигурацию базы данных. База вернётся к типовому поведению.

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

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

Можно ли перенести расширение между разными конфигурациями?

Только если конфигурации содержат одинаковые заимствованные объекты с теми же именами. Расширение, написанное под «Бухгалтерию предприятия», не заработает в «Управлении торговлей», если опирается на объекты, которых там нет. При загрузке платформа сообщит о несовместимости.

Влияет ли расширение на скорость работы базы?

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

Итог

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

Расширение редактируется в конфигураторе через список расширений конфигурации. Перед правкой — копия базы и сохранённый файл .cfe, после — проверка статуса и обновление конфигурации базы данных. Для перехвата типового кода предпочитайте &ИзменениеИКонтроль и &После, а не &Вместо: это сохранит работоспособность доработки при обновлениях.