Разработка и Конфигурация · 11 мин
Расширения в 1С: как создать и подключить без изменения конфигурации
Как создать расширение конфигурации в 1С без изменения типовой базы: пошаговая инструкция, проверка совместимости, типичные ошибки и ответы на вопросы.
Расширение конфигурации — это механизм платформы 1С:Предприятие, который позволяет добавлять или изменять функциональность типовой конфигурации, не снимая её с поддержки. Все доработки хранятся отдельно от основной базы, поэтому обновление типового релиза проходит штатно, а ваши изменения не теряются. Именно поэтому расширения стали стандартным способом адаптации типовых решений под нужды конкретной организации.
Типичные задачи, которые решают расширениями: добавить печатную форму к документу, изменить расположение реквизитов на форме, дописать проверку при проведении, добавить регистр сведений или отчёт. При этом нельзя через расширение менять состав типовых объектов глубоко — например, добавлять реквизиты к типовым документам можно, а изменять их структуру табличных частей — с ограничениями.
Ниже разобран полный цикл работы: от подготовки конфигуратора до проверки результата в пользовательском режиме, с типичными ошибками и границами применимости механизма.
Когда расширение подходит, а когда нужна доработка конфигурации
Расширение — правильный выбор, если нужно изменить формы, добавить собственные объекты (справочники, документы, регистры, отчёты, обработки), дополнить модули обработчиками «Перед», «После» или «Вместо», добавить печатные формы и роли. Это покрывает большинство задач адаптации типовых решений.
Расширение не подойдёт, если требуется изменить состав измерений типового регистра, поменять тип существующего реквизита, удалить типовой объект или глубоко перестроить логику обмена данными. В таких случаях придётся либо дорабатывать конфигурацию с частичным снятием с поддержки, либо искать обходное решение через собственные объекты расширения.
Сравнение вариантов доработки
Подходит для форм, новых объектов, дополнения модулей. Конфигурация остаётся на полной поддержке, обновления ставятся штатно.
Изменения в типовых объектах с фиксацией поставщика. Обновление усложняется, требуется сравнение и объединение.
Подходят для разовых задач без изменения структуры данных: печатные формы, загрузки, аналитика. Не могут менять формы и модули типовых объектов.
Подготовка: что проверить перед созданием расширения
Перед началом работы убедитесь, что версия платформы поддерживает нужные возможности расширений — механизм активно развивается, и ряд функций (например, расширение табличных частей или ролей) доступен только на актуальных версиях платформы. Точный перечень возможностей для вашей версии стоит уточнить в документации на платформу.
Обязательно сделайте резервную копию информационной базы или хотя бы выгрузку в файл .dt. Хотя расширение не меняет типовую конфигурацию, ошибка в коде расширения способна нарушить работу пользователей, а в отдельных случаях — привести к некорректным данным при проведении документов.
Проверьте также режим совместимости конфигурации и наличие прав: для создания расширения нужны права разработчика в конфигураторе, а для подключения в режиме предприятия — право «Администрирование расширений конфигурации».
Создание расширения в конфигураторе: пошагово
Откройте конфигуратор и перейдите в меню «Конфигурация → Расширения конфигурации». В открывшемся окне нажмите «Создать». Задайте имя расширения латиницей без пробелов (оно будет использоваться в коде), синоним — понятное название для пользователей, и префикс, который будет добавляться к именам новых объектов, чтобы избежать конфликтов с типовыми.
После создания расширение появится в дереве конфигурации как отдельная ветка. Изначально оно пустое — чтобы изменить типовой объект, его нужно заимствовать: найдите объект в основной конфигурации, откройте контекстное меню и выберите «Добавить в расширение». Заимствованный объект появится в расширении, и вы сможете менять его формы и дополнять модуль.
Новые собственные объекты (справочники, документы, регистры сведений, отчёты) создаются прямо в ветке расширения обычным способом, как в обычной конфигурации. К их именам платформа автоматически применит заданный префикс.
- 1Сделайте резервную копию базы или выгрузку .dt
- 2Откройте конфигуратор, меню «Конфигурация → Расширения конфигурации»
- 3Нажмите «Создать», укажите имя, синоним и префикс
- 4Заимствуйте нужные типовые объекты через «Добавить в расширение»
- 5Доработайте формы и модули, добавьте собственные объекты
- 6Обновите конфигурацию базы данных (F7) и протестируйте на копии
- 7Подключите расширение в рабочей базе через «Все функции → Расширения конфигурации» или администрирование
Доработка форм и модулей: заимствование и аннотации
Для изменения типовой формы заимствуйте её в расширение: платформа создаст копию, где можно переставлять элементы, добавлять реквизиты формы и команды. Помните, что при обновлении типового релиза изменения формы поставщика не попадут в вашу заимствованную копию автоматически — форму придётся перепроверять и при необходимости синхронизировать вручную.
Для доработки кода модулей используются аннотации. Процедура с аннотацией «Перед» выполнится до типового обработчика, «После» — после него, «Вместо» — полностью заменит типовой код. Вариант «Вместо» применяйте только когда без него не обойтись: он наиболее чувствителен к обновлениям, так как полностью отключает типовую логику.
Пример дополнения обработчика проведения документа:
&После("ОбработкаПроведения")
Процедура Преф_ОбработкаПроведения(Отказ, РежимПроведения)
// собственная логика: проверки, записи в регистры
КонецПроцедуры
&После("ОбработкаПроведения")
Процедура Преф_ОбработкаПроведения(Отказ, РежимПроведения)
Если Отказ Тогда
Возврат;
КонецЕсли;
// собственная логика
КонецПроцедурыПодключение расширения в режиме предприятия
Расширение можно подключить непосредственно из конфигуратора (оно подключится при обновлении конфигурации базы данных) или через пользовательский режим. В типовых конфигурациях путь обычно такой: «Администрирование → Печатные формы, отчёты и обработки → Расширения» либо через «Все функции → Стандартные → Управление расширениями конфигурации».
При добавлении расширения из файла (.cfe) обратите внимание на флажок «Безопасный режим»: если расширение содержит серверный код, работающий с данными, безопасный режим может ограничить его выполнение. Для доверенных собственных разработок флажок снимают, но только после проверки кода.
После подключения проверьте, что расширение активно, его версия совпадает с отлаженной, а у пользователей есть права на новые объекты — роли расширения назначаются так же, как типовые, через профили групп доступа или индивидуально.
Как проверить результат
Статус «Подключено», версия совпадает с тестовой
Расширение есть в списке, но не активно или версия устарела
Форма открывается, новые элементы видны и функционируют
Ошибка при открытии формы или отсутствуют добавленные элементы
Обновление проходит штатно, расширение остаётся подключённым
Конфликты при обновлении, расширение отключается с ошибками совместимости
Типичные ошибки и ограничения механизма
Самая частая ошибка — попытка заимствовать объект целиком и переписать его логику «с нуля». Такой подход гарантированно сломается при очередном обновлении типового релиза. Правильная стратегия — минимальное вмешательство: дополняйте обработчики через «Перед» и «После», а не заменяйте их.
Вторая группа ошибок связана с правами и безопасным режимом: расширение подключено, но у пользователей нет прав на новые объекты, либо код не выполняется из-за ограничений безопасного режима. Проверяйте журнал регистрации — ошибки расширений фиксируются там с указанием источника.
Третья группа — конфликты имён. Если не задать префикс или выбрать имя, совпадающее с будущим типовым объектом, при обновлении возникнет ошибка совместимости, и расширение отключится. Всегда используйте уникальный префикс организации или проекта.
Обновление конфигурации при подключённых расширениях
Перед обновлением типового релиза выгрузите все расширения в файлы .cfe — это ваша страховка. После обновления платформа автоматически проверит совместимость расширений: если типовой объект, на который опирается расширение, изменился или удалён, расширение будет отключено с диагностикой.
Порядок безопасного обновления: сначала обновите копию базы, проверьте работу всех расширений, исправьте конфликты (обычно это переименованные реквизиты или изменённые формы), затем повторите на рабочей базе. Заимствованные формы после обновления стоит сравнить с типовыми — поставщик мог добавить новые элементы, которых нет в вашей копии.
Частые вопросы о расширениях 1С
Можно ли добавить новый реквизит к типовому документу через расширение?
Да, на актуальных версиях платформы расширения позволяют добавлять собственные реквизиты к типовым объектам. Реквизит хранится вместе с данными объекта, доступен в запросах и на формах. Учтите, что такой реквизит не участвует в типовых обменах данными автоматически — для синхронизации потребуется доработка правил обмена.
Чем расширение отличается от внешней обработки?
Внешняя обработка — это отдельный файл, который запускается вручную или подключается как дополнительный отчёт; она не может изменять формы и модули типовых объектов. Расширение встраивается в конфигурацию: меняет формы, дополняет обработчики событий, добавляет объекты метаданных. Для разовой печатной формы достаточно обработки, для изменения поведения системы нужно расширение.
Почему расширение отключилось после обновления конфигурации?
Платформа проверяет совместимость расширения с обновлённой конфигурацией. Если типовой объект изменился так, что заимствованные данные расширения устарели (удалён реквизит, переименована процедура, изменилась форма), расширение автоматически отключается. Откройте его в конфигураторе, обновите заимствованные объекты и подключите заново.
Можно ли отладить код расширения в отладчике?
Да, отладка работает в полном объёме: точки останова ставятся в модулях расширения так же, как в основной конфигурации. Убедитесь, что расширение подключено в отлаживаемой базе, а в настройках конфигуратора включён нужный режим отладки (файловый или серверный, в зависимости от режима работы базы).
Сколько расширений можно подключить к одной базе?
Жёсткого практического лимита для типовых сценариев нет, но каждое расширение увеличивает время запуска сеанса и усложняет диагностику. Разумная практика — объединять связанные доработки в одно расширение и не размножать их без необходимости. Следите, чтобы расширения не конфликтовали за одни и те же обработчики.
Переживёт ли расширение переход на новую версию платформы?
В большинстве случаев да: расширения обратно совместимы при обновлении платформы. Риски возникают, если использовались возможности, поведение которых изменилось, или режим совместимости конфигурации был поднят. После смены версии платформы протестируйте ключевые сценарии работы расширения на копии базы.
Что важно запомнить
Расширение создаётся через «Конфигурация → Расширения конфигурации», не снимает типовую конфигурацию с поддержки и переживает штатные обновления. Дополняйте обработчики через «Перед» и «После», используйте уникальный префикс, тестируйте на копии базы и выгружайте расширения в файлы перед каждым обновлением релиза.