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

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

Как увеличить расширение в 1С: пошаговое руководство

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

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

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

Что можно добавить в расширение и какие есть ограничения

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

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

Подготовка: проверка режима совместимости и резервная копия

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

Обязательно сделайте резервную копию базы перед подключением изменённого расширения. Хотя расширение не трогает типовые метаданные, ошибка в коде расширения способна повредить данные: например, некорректный обработчик проведения документа или фоновое задание, изменяющее регистры. Для файловой базы достаточно выгрузки в dt, для клиент-серверной — штатной копии средствами СУБД.

Как добавить новые объекты в существующее расширение

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

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

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

Как расширить изменение типовых объектов

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

Добавление реквизитов и табличных частей

В заимствованном объекте добавьте реквизит с префиксом, например Расш1_КомментарийКЗаказу. Префикс защищает от конфликтов при обновлении типовой конфигурации: если в новом релизе появится реквизит с таким же именем, без префикса возникнет коллизия и расширение перестанет применяться. Новые реквизиты физически хранятся в таблицах расширения, но для пользователя выглядят как часть объекта.

Переопределение обработчиков и кода

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

bsl
&ИзменениеИКонтроль("ПриЗаписи")
Процедура Расш1_ПриЗаписи(Отказ)
	// Вызов типовой логики
	#Вставка
	ПродолжитьВызов(Отказ);
	#КонецВставки
	// Собственная логика расширения
	ЗаписатьДополнительныеДанные(Ссылка);
КонецПроцедуры

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

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

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

Способы доработки: что выбрать

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

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

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

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

Доработка основной конфигурации

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

Проверка результата и поведение после обновления типовой

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

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

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

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

Применимость расширения
Норма

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

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

Предупреждения о несоответствии заимствованных объектов типовым

Права доступа
Норма

Новые объекты видны и доступны пользователю с целевой ролью

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

Объект есть у администратора, но невидим для пользователя

Переопределённые обработчики
Норма

Выполняется и типовая, и добавленная логика

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

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

Типичные ошибки при увеличении расширения

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

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

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

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

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

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

Можно ли в расширении изменить тип существующего реквизита типового объекта?

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

Что произойдёт с данными, если отключить расширение с собственными таблицами?

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

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

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

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

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

Нужно ли снимать конфигурацию с поддержки для работы расширений?

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

Как ограничить действие расширения для части пользователей?

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