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

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

Как объединить расширение 1С с конфигурацией

Пошаговая инструкция по переносу доработок из расширения 1С в основную конфигурацию: сравнение, объединение, контроль ссылок и проверка результата.

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

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

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

Когда переносить расширение в конфигурацию, а когда оставить

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

Расширение или перенос в конфигурацию

Оставить расширение

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

Перенести в конфигурацию

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

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

Подготовка: копия базы и инвентаризация доработок

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

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

Выгрузка расширения в файлы конфигурации

Механизм сравнения и объединения в конфигураторе работает с файлами конфигураций, поэтому расширение нужно превратить в такой файл. Откройте конфигуратор, перейдите в список расширений («Конфигурация → Расширения конфигурации»), выделите нужное расширение и используйте команду сохранения в файл. Для объединения удобнее формат выгрузки в файлы конфигурации (каталог с XML-файлами), чем бинарный .cfe.

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

Сравнение и объединение с основной конфигурацией

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

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

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

Разрешение конфликтов в заимствованных объектах

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

Для модулей откройте текст модуля из расширения и перенесите свои процедуры и функции в соответствующий модуль основной конфигурации, заменяя вызовы-обёртки прямым кодом. Аннотации расширений (&ИзменениеИКонтроль, &После, &Вместо) в основной конфигурации не работают — вместо них код встраивается напрямую в типовые процедуры.

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

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

Проверка результата и удаление расширения

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

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

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

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

Проверка конфигурации в конфигураторе
Норма

Нет ошибок компиляции модулей и битых ссылок на объекты

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

Ошибки вида «Процедура или функция не обнаружена» — перенесены не все модули

Изменённые формы в пользовательском режиме
Норма

Все добавленные элементы и команды на месте, обработчики срабатывают

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

Форма открывается без доработанных элементов или падает с ошибкой

Права доступа
Норма

Пользователи видят новые объекты и работают без ошибок доступа

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

«Нарушение прав доступа» — не перенесены роли расширения

Только после успешной проверки отключите расширение в базе и удалите его. Сначала снимите флаг активности и перезапустите сеанс — убедитесь, что поведение системы не изменилось. Если после отключения расширения что-то перестало работать, значит, часть доработок не перенесена: включите расширение обратно и найдите пропущенный объект.

Итог

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

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

Частые вопросы по объединению расширения с конфигурацией

Можно ли объединить расширение с конфигурацией одной кнопкой?

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

Что делать с обработчиками &Вместо и &После при переносе?

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

Снимется ли конфигурация с поддержки после переноса?

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

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

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

Что делать, если после удаления расширения часть функций пропала?

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

Нужно ли переносить данные, связанные с расширением?

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