Расширение конфигурации 1С — это механизм платформы, который позволяет дорабатывать типовую конфигурацию, не изменяя её саму и не снимая с поддержки. Новые объекты, реквизиты, формы и код хранятся в отдельном расширении поверх основной конфигурации. Типовая конфигурация обновляется в штатном режиме, а расширение подключается в базе через «Управление расширениями конфигурации» или загружается из файла .cfe без конфигуратора.
Ниже — как выбрать назначение расширения, создать его в конфигураторе, добавить новый справочник и реквизит к типовому объекту, вывести его на форму двумя способами и передать заказчику. Пример — на базе ЗУП 3.1, но порядок действий одинаков для любой типовой конфигурации.
Зачем нужны расширения
До появления расширений доработка типовой означала снятие объектов с поддержки или полное снятие конфигурации с поддержки. Каждое обновление превращалось в сравнение-объединение с ручным разбором конфликтов. Расширения меняют модель:
| Правка основной конфигурации | Расширение | |
|---|---|---|
| Поддержка поставщика | Объекты снимаются с поддержки | Конфигурация остаётся на поддержке |
| Обновление | Сравнение-объединение, ручной разбор | Штатное обновление, затем проверка расширения |
| Перенос между базами | Через файл конфигурации | Файл .cfe, подключается в пользовательском режиме |
| Откат | Восстановление конфигурации | Отключить расширение |
На проектах я делаю так: всё, что можно сделать расширением, делается расширением. Основную конфигурацию трогаю, только когда без этого никак, и фиксирую такие места отдельно.
При этом нужно помнить две вещи: в базе может работать несколько расширений одновременно, а основная конфигурация может измениться при любом обновлении — и автор расширения на это не влияет. Расширение нужно проверять после каждого обновления типовой.
Назначение расширения
При создании расширения выбирается назначение. Оно влияет на порядок применения и подсказывает, как расширение будет жить.
- Исправление — оперативное исправление ошибок типового решения. Часто использует аннотацию
&Вместоили&ИзменениеИКонтроль. Привязано к конкретному релизу: при выходе следующей версии нужно проверить, не исправила ли ошибку фирма «1С», и отключить ставшее ненужным исправление. - Адаптация — доработки под конкретного заказчика. Таких расширений в базе должно быть немного; если изменений много, их разбивают по крупным блокам (например, «Склад», «Зарплата»), а не по задачам.
- Дополнение — новая функциональность, слабо связанная с версией типовой: набор отчётов, интеграция, отдельный модуль. Таких расширений может быть сколько угодно.

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




