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

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

Что можно добавлять в расширения 1С

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

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

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

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

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

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

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

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

Заимствование и доработка форм

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

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

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

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

Добавление реквизитов и расширение объектов метаданных

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

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

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

Маршрут решения

Как выбрать подход

Нужно добавить поле к существующему документу или справочникуИспользуйте добавление реквизита через расширение — данные сохранятся при обновлениях
Нужна новая печатная формаДобавьте общий макет и команду в расширении либо используйте механизм дополнительных печатных форм БСП
Нужен новый вид документа или справочникаРасширение не подойдёт — дорабатывайте конфигурацию или используйте внешние обработки и дополнительные сведения
Нужно изменить проведение типового документаЗаимствуйте модуль объекта и используйте аннотации &После или &Вместо для обработчиков

Расширение модулей и программного кода

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

&После("ПриЗаписи")

Процедура Расш1_ПриЗаписи(Отказ)

// Дополнительная логика после типовой записи

КонецПроцедуры

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

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

Роли, права доступа и интерфейс

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

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

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

Отчёты, макеты и печатные формы

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

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

Ограничения и чего расширение делать не умеет

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

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

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

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

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

Расширение применяется без ошибок, заимствованные объекты находятся

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

Ошибки контроля заимствованных объектов, ссылки на удалённые элементы

Работа добавленных реквизитов
Норма

Поля отображаются на формах, данные сохраняются и доступны в отчётах

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

Реквизит есть в конфигураторе, но не виден пользователям или не сохраняется

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

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

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

Типовой код не выполняется (случайный режим «вместо») или доработка не вызывается

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

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

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

Порядок действий
  1. 1
    Создайте копию рабочей базы и разрабатывайте расширение на ней
  2. 2
    Добавьте в расширение нужные объекты: заимствуйте формы, добавьте реквизиты, макеты, общие модули
  3. 3
    Протестируйте доработку под учётной записью с правами реального пользователя
  4. 4
    Выгрузите расширение в файл.cfe и сохраните версию
  5. 5
    Подключите расширение в рабочей базе и проверьте ключевые сценарии
  6. 6
    После каждого обновления конфигурации проверяйте контроль заимствованных объектов
Итог

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

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

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

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

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

Что происходит с расширением при обновлении конфигурации?

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

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

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

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

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

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

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

Работают ли расширения в облачном 1С:Фреш?

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