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