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

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

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

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

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

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

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

Что такое расширение и когда его применять

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

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

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

Расширение

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

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

Нужно при глубокой переработке учёта. Даёт полный доступ, но усложняет обновления и требует сопоставления изменений вручную.

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

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

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

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

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

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

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

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

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

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

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

bsl
&После("ПриСозданииНаСервере")
Процедура Доп_ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	// собственный код инициализации формы
КонецПроцедуры

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

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

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

Типичные проблемы и их диагностика

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

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

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

Безопасность и управление расширениями в базе

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

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

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

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

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

Статус «Подключено», ошибок применения нет

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

Отключено автоматически, есть сообщение об ошибке

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

Нет ошибок по событию применения расширения

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

Ошибки несовместимости или контроля

Работа функции у обычного пользователя
Норма

Функция доступна и работает под типовыми правами

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

Ошибки доступа или функция не видна

Поведение после обновления
Норма

Расширение применяется без переработки

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

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

Частые вопросы

Чем расширение отличается от внешней обработки?

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

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

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

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

Если расширение только изменяло код и формы — ничего, данные останутся нетронутыми. Если расширение добавляло собственные объекты с данными (справочники, регистры, реквизиты), при удалении эти данные будут потеряны. Перед удалением проверьте состав расширения в конфигураторе.

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

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

Можно ли писать расширения для базовых версий 1С?

Нет, базовые версии платформы не поддерживают изменение конфигурации, включая расширения. Для доработок нужна версия ПРОФ или КОРП. Это одно из ключевых ограничений базовых поставок.

Как перенести расширение в другую базу?

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

Итог

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

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