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

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

Как создать расширение конфигурации в 1С

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

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

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

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

Что такое расширение конфигурации и когда его применять

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

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

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

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

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

Проверьте режим совместимости конфигурации: свойства конфигурации → «Режим совместимости». Если режим ниже версии платформы, часть возможностей расширений будет недоступна. Также убедитесь, что у пользователя есть права на администрирование и изменение конфигурации, а база не находится в режиме, блокирующем обновление (например, активные сеансы при обновлении конфигурации БД в клиент-серверном варианте).

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

Создание расширения в конфигураторе: пошаговый порядок

Откройте конфигуратор и перейдите в меню «Конфигурация → Расширения конфигурации». В открывшемся списке нажмите «Создать». Появится окно свойств нового расширения: задайте имя (латиницей, без пробелов — оно используется как идентификатор), синоним для отображения пользователям и префикс, который будет добавляться к именам собственных объектов расширения.

Обратите внимание на свойство «Безопасный режим». По умолчанию расширение работает в безопасном режиме: запрещены операции с файловой системой, COM-объектами и внешними компонентами. Если доработке это не требуется — оставьте флажок включённым. Также доступно свойство «Защита от опасных действий» и область действия расширения.

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

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

Изменение форм и модулей через расширение

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

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

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

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

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

Подписки на события и дополнительные отчёты

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

bsl
&После("ОбработкаПроведения")
Процедура Расш1_ОбработкаПроведения(Отказ, РежимПроведения)
	Если СуммаДокумента > 100000 Тогда
		Сообщить("Крупный документ: требуется согласование");
	КонецЕсли;
КонецПроцедуры

Проверка, применение и перенос расширения в рабочую базу

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

Готовое расширение сохраняется в файл через «Конфигурация → Расширения конфигурации → Сохранить в файл» (формат .cfe). В рабочей базе файл загружается через «Загрузить из файла». В режиме предприятия расширениями можно управлять через раздел «Администрирование → Печатные формы, отчеты и обработки → Расширения» (в конфигурациях на БСП) — там же расширение можно временно отключить без удаления.

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

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

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

Статус расширения в списке
Норма

Применяется, ошибок применимости нет

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

Статус «не применено» или сообщения об ошибках сопоставления

Работа изменённой формы
Норма

Форма открывается, новые элементы и логика работают

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

Ошибка при открытии формы или типовая логика исчезла

Проведение документов
Норма

Документы проводятся, доработанные проверки срабатывают

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

Ошибки при проведении, блокировка записи

Поведение после обновления типовой
Норма

Расширение осталось применимым

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

Расширение отключено, требуется актуализация

Типичные ошибки и ограничения механизма

Самая частая ошибка — злоупотребление аннотацией «Вместо». Разработчик копирует типовой обработчик целиком, меняет пару строк и забывает, что при обновлении релиза типовая процедура изменится, а расширение продолжит выполнять старую копию. Итог — потерянные исправления ошибок вендора и трудно диагностируемые сбои.

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

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

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

Расширение или снятие с поддержки: как выбрать подход

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

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

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

Сравнение вариантов

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

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

Снятие с поддержки

Полная свобода изменений, но каждое обновление требует ручного объединения доработок с новым релизом

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

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

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

Как выбрать действие

Нужно добавить проверку, колонку или печатную формуСоздайте расширение или дополнительную обработку БСП
Нужно изменить типовой обработчик событияЗаимствуйте модуль в расширение и используйте «После» или «Перед»
Требуется изменить состав плана обмена или удалить типовые объектыРасширение не поможет — рассмотрите снятие с поддержки
Конфигурация работает в облачном сервисе 1СДоступны только расширения — прямая доработка запрещена

Часто задаваемые вопросы

Можно ли создать расширение в режиме предприятия без конфигуратора?

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

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

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

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

Жёсткого практического лимита нет, можно подключать несколько расширений одновременно. Учтите, что при пересечении доработок (два расширения меняют один обработчик) порядок их применения влияет на результат — порядок можно менять в списке расширений.

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

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

Можно ли отладить код расширения?

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

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

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

Итог

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

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