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

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

Как объединить конфигурации в 1С: подробная инструкция

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

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

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

Главный риск объединения — потеря доработок или порча структуры данных. Поэтому перед любыми действиями обязательно делается выгрузка информационной базы (файл .dt) и сохранение текущей конфигурации в файл .cf. Без резервной копии откатить неудачное объединение будет невозможно.

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

Когда нужно объединять конфигурации, а когда достаточно обновления

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

Типичные сценарии, где нужно именно объединение:

  • перенос собственных доработок (документов, отчётов, обработок, ролей) из старой версии в новую типовую конфигурацию;
  • слияние доработок двух программистов, которые работали в разных копиях базы без хранилища;
  • перенос функциональности из одной самописной конфигурации в другую;
  • восстановление отдельных объектов из архивной копии конфигурации.

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

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

Обновление через поддержку

Подходит для типовых конфигураций без доработок; платформа сама сопоставляет версии, но перезаписывает изменённые объекты

Объединение с файлом .cf

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

Сравнение с конфигурацией БД

Подходит для анализа расхождений и переноса изменений между конфигурацией разработчика и рабочей базой

Хранилище конфигурации

Подходит для командной работы; объединение выполняется при помещении изменений, конфликты решаются по объектам

Подготовка: резервные копии и анализ различий

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

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

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

Запуск режима сравнения и объединения

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

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

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

Порядок действий
  1. 1
    Сделайте выгрузку базы (.dt) и сохраните текущую конфигурацию в файл .cf
  2. 2
    Откройте конфигуратор и меню «Конфигурация — Сравнить, объединить с конфигурацией из файла»
  3. 3
    Укажите файл конфигурации-источника и дождитесь построения дерева сравнения
  4. 4
    Включите фильтр «Показывать только различающиеся» и изучите список изменений
  5. 5
    Отметьте флажками объекты для переноса, задайте приоритеты и режимы объединения
  6. 6
    Нажмите «Выполнить», затем обновите конфигурацию базы данных (F7)
  7. 7
    Проверьте работоспособность ключевых механизмов и перенесённых доработок

Настройка правил: приоритеты и режимы объединения

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

Через кнопку «Действия — Установить режим для всех объектов» можно массово задать правила: объединять только новые объекты, не трогать изменённые и так далее. Для переноса собственных доработок удобен подход: отметить вручную только свои объекты (обычно они имеют собственный префикс в имени) и установить для них приоритет «Взять из файла».

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

Объединение модулей и текстов кода

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

Роли и права доступа

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

Типичные ошибки
01
Объединение без копии .dt — при ошибке откатить изменения невозможно, данные удалённых реквизитов теряются
02
Флажки на удаление объектов, отсутствующих в файле — платформа удаляет объекты текущей конфигурации вместе с данными
03
Перенос модуля целиком вместо точечного копирования — затираются доработки второй стороны
04
Забытые роли и подсистемы — новые объекты не видны пользователям и не попадают в интерфейс
05
Обновление конфигурации БД с реструктуризацией без анализа — удаление реквизитов приводит к потере данных в таблицах

Завершение: обновление конфигурации базы данных

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

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

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

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

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

Конфигурация и конфигурация БД
Норма

В окне «О конфигурации» версии совпадают, признака «!» у конфигурации БД нет

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

Конфигурация БД отличается от конфигурации разработчика — обновление не выполнено

Перенесённые объекты
Норма

Новые документы, отчёты и обработки открываются и работают

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

Объекты есть в дереве, но не видны в интерфейсе — не настроены роли или подсистемы

Доработанные модули
Норма

Ключевые процедуры обеих сторон присутствуют и выполняются

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

Часть кода исчезла — модуль был заменён целиком при объединении

Данные
Норма

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

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

Ошибки при открытии форм или пустые реквизиты — признак потери данных при реструктуризации

Объединение через хранилище и внешние инструменты

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

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

Команды, использующие EDT и Git, работают по другой модели: конфигурация хранится в виде файлов проекта, а слияние выполняется средствами системы контроля версий. Это даёт построчное слияние кода, но требует перехода всей команды на EDT и не подходит для классического конфигуратора.

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

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

Нужно перенести несколько своих объектов в новую типовую версиюОбъединение с файлом .cf, ручная отметка объектов с префиксом доработок
Конфигурация типовая, доработок нетШтатное обновление через поддержку, объединение не требуется
Над одной базой работают несколько разработчиковНастройте хранилище конфигурации вместо обмена файлами
Модули изменены с обеих сторонОбъедините метаданные, а код перенесите вручную через сравнение текстов модулей
Результат объединения непредсказуем, база рабочаяВыполните всё на копии базы и только после проверки повторите на рабочей

Типичные проблемы после объединения и их решение

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

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

Третья проблема — дубли объектов при повторном объединении. Если доработки переносятся регулярно, присваивайте всем собственным объектам уникальный префикс (например, «ПР_») и не переименовывайте их между переносами. Объекты сопоставляются по именам и внутренним идентификаторам; переименование в одной из конфигураций превращает объект в «новый», и при объединении появляются дубли.

FAQ: частые вопросы об объединении конфигураций

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

Нет, штатный механизм сравнения и объединения доступен только в конфигураторе. В режиме «Предприятие» объединение метаданных невозможно. Альтернатива — 1C:EDT, где слияние выполняется через Git, но это отдельная среда разработки со своей моделью хранения проекта.

Что делать, если при объединении платформа требует постановку на поддержку?

При объединении с файлом поставщика платформа предлагает постановку на поддержку. Если вы переносите доработки из стороннего файла, ответьте «Нет» — настройки поддержки текущей конфигурации не изменятся. Постановка на поддержку нужна только при переходе на официальное обновление от поставщика.

Удалятся ли данные при объединении конфигураций?

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

Как перенести только один отчёт или обработку?

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

Почему после объединения пользователи не видят новые объекты?

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

Как отменить выполненное объединение?

Если конфигурация БД ещё не обновлялась, закройте конфигуратор без сохранения или вернитесь к конфигурации БД («Конфигурация — Вернуться к конфигурации БД»). Если обновление выполнено, восстановить можно только из резервной копии: разверните выгрузку .dt или загрузите сохранённый ранее файл .cf.

Итог

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

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