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