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