Разработка и Конфигурация · 11 мин
Как сравнивать конфигурации 1С
Как сравнивать конфигурации 1С: встроенный механизм сравнения и объединения, выгрузка в файлы конфигурации, сторонние инструменты, типичные ошибки и проверка результата.
Сравнение конфигураций 1С — стандартная задача при обновлении типовых решений, переносе доработок между базами, аудите изменений подрядчика и объединении веток разработки. Платформа 1С:Предприятие включает встроенный механизм сравнения и объединения, который покрывает большинство сценариев, но для глубокого анализа кода и работы с большими проектами часто применяют выгрузку в файлы и внешние инструменты.
Главный риск при сравнении — не сама процедура, а последующее объединение: неправильно выбранные приоритеты и снятые флажки могут затереть доработки или, наоборот, оставить старые объекты, которые конфликтуют с новой версией. Поэтому сравнение всегда выполняют на копии базы, а результат проверяют перед загрузкой в рабочую среду.
Ниже разобраны способы сравнения: через конфигуратор, через файлы выгрузки, через хранилище и сторонние средства, а также правила безопасного объединения и контроля результата.
Когда требуется сравнение конфигураций
Чаще всего сравнение нужно при обновлении типовой конфигурации, которая была доработана: механизм показывает, какие объекты изменил поставщик, а какие — ваши разработчики, и позволяет аккуратно совместить обе версии. Без сравнения обновление доработанной базы превращается в лотерею.
Вторая типовая ситуация — перенос доработок между базами. Например, изменения сделаны в тестовой или копии рабочей базы, и их нужно перенести в продуктив. Сравнение показывает полный список отличий и помогает не забыть связанные объекты: новый реквизит документа, его представление в форме и права доступа к нему.
Третий сценарий — аудит. Когда над базой работал внешний подрядчик или несколько разработчиков, сравнение текущей конфигурации с эталонной копией показывает, что именно было изменено. Это полезно и при приёмке работ, и при разборе инцидентов, когда после обновления «что-то сломалось».
Сравнение через конфигуратор: базовый способ
Встроенный механизм запускается из меню «Конфигурация». Доступны варианты: сравнить основную конфигурацию с конфигурацией базы данных, с конфигурацией поставщика, с конфигурацией из файла или с другой базой через файл выгрузки. Для сравнения двух независимых баз сначала выгружают одну из них в файл .cf («Конфигурация → Сохранить конфигурацию в файл»), затем во второй базе выбирают «Сравнить и объединить с конфигурацией из файла».
Результат отображается в виде дерева метаданных с отметками об отличиях. Двойной щелчок по объекту открывает детальное сравнение: для модулей — построчное сравнение кода, для форм — различия в структуре элементов, для макетов — различия областей. В окне сравнения видно, какие объекты добавлены, удалены или изменены в каждой из версий.
- 1Сделайте резервные копии обеих баз через выгрузку .dt или средствами СУБД
- 2В первой базе выполните «Конфигурация → Сохранить конфигурацию в файл» и сохраните .cf
- 3Во второй базе откройте «Конфигурация → Сравнить и объединить с конфигурацией из файла» и укажите сохранённый .cf
- 4Дождитесь построения дерева отличий и пройдите по изменённым объектам, открывая детальное сравнение
- 5Если цель — только анализ, закройте окно без нажатия «Выполнить»; изменения применятся только после явного объединения
Важно понимать: окно сравнения по умолчанию предполагает объединение. Флажки в дереве определяют, какие изменения будут перенесены. Если задача — только посмотреть отличия, не нажимайте кнопку «Выполнить» и не обновляйте конфигурацию базы данных после этого.
Настройка правил объединения и приоритетов
При объединении платформа предлагает выбрать режим: «Взять из файла», «Объединить с приоритетом основной конфигурации» или «Объединить с приоритетом конфигурации из файла». От этого выбора зависит, чьи изменения победят в конфликтных объектах, где правки сделаны с обеих сторон.
Для отдельных объектов приоритет можно переопределить вручную, сняв или установив флажки в дереве. Типичная практика при обновлении доработанной типовой конфигурации: объекты поставщика, которые не дорабатывались, берутся из новой версии целиком, а доработанные объекты проходят ручной разбор — какие правки свои, какие поставщика, и как их совместить.
Особого внимания требуют модули. Построчное сравнение показывает изменённые процедуры, и для каждого блока можно выбрать версию. Механическое «взять всё новое» в доработанном модуле почти гарантированно уничтожит свои изменения.
Сравнение через выгрузку в файлы конфигурации
Команда «Конфигурация → Выгрузить конфигурацию в файлы» сохраняет всю конфигурацию в виде дерева XML-файлов: отдельный файл для каждого объекта, модуля, формы. Если выгрузить так две версии в разные каталоги, их можно сравнить любым инструментом сравнения каталогов — от встроенных средств ОС до специализированных программ сравнения файлов.
Этот способ удобен для аудита и поиска: можно быстро найти все места, где встречается определённый фрагмент кода, сравнить модули целиком, сохранить снимок версии в системе контроля версий. Ограничение — XML-представление избыточно, и различия в служебных атрибутах могут создавать шум, не отражая реальных изменений логики.
Для управляемых форм выгрузка в файлы особенно полезна: в конфигураторе сравнение форм менее наглядно, чем сравнение их XML-представления, где видны изменения элементов, привязок данных и обработчиков.
Сравнение через хранилище конфигурации
Если разработка ведётся через хранилище конфигурации, сравнение встроено в рабочий процесс. Команда «Сравнить и объединить с конфигурацией из хранилища» показывает отличия локальной версии от выбранной версии в хранилище. История версий позволяет увидеть, кто и когда менял конкретный объект, и сравнить любые две версии между собой.
Хранилище снимает часть проблем параллельной разработки: объекты захватываются для редактирования, и конфликты видны заранее. Однако хранилище фиксирует изменения на уровне объектов целиком, а не строк кода, поэтому при одновременной правке одного модуля разными разработчиками всё равно требуется ручное слияние.
Сторонние инструменты и подходы
Для больших проектов применяют выгрузку в файлы формата EDT или XML с последующим хранением в Git. Тогда сравнение версий выполняется штатными средствами Git: diff, blame, просмотр истории по строкам. Это даёт полноценный код-ревью и ветвление, чего штатное хранилище не обеспечивает.
Также существуют специализированные обработки и расширения для анализа конфигураций: поиск изменённых объектов, сравнение прав ролей, отчёты по отличиям метаданных. Их используют, когда штатного дерева сравнения недостаточно — например, нужно сравнить только роли или только интерфейсные элементы по множеству объектов сразу.
Способы сравнения конфигураций
Подходит для обновлений и переноса доработок. Ограничение: ориентирован на объединение, а не на чистый анализ.
Подходит для аудита, поиска по коду и интеграции с Git. Ограничение: шум от служебных XML-атрибутов.
Подходит для командной разработки и истории версий. Ограничение: сравнение на уровне объектов, а не строк.
Подходит для больших проектов с код-ревью и ветками. Ограничение: требует перестройки процесса разработки.
Проверка результата после объединения
После объединения обязательно выполните «Конфигурация → Проверка конфигурации» с включённой проверкой логической целостности и, при необходимости, модулей. Ошибки компиляции модулей покажут потерянные процедуры и переменные — типичное последствие неаккуратного слияния кода.
Затем обновите конфигурацию базы данных на тестовой копии и проследите за реструктуризацией: добавление реквизитов, изменение типов, удаление объектов. Проверьте ключевые сценарии работы: проведение основных документов, формирование регламентированных отчётов, обмены с другими системами.
Как проверить результат объединения
Нет ошибок компиляции модулей и битых ссылок на объекты
Ошибки в модулях, ссылки на удалённые объекты
Завершилась без ошибок, данные на месте
Ошибки преобразования типов, потеря данных в изменённых реквизитах
Свои изменения сохранены и работают вместе с новыми механизмами поставщика
Доработки затёрты или конфликтуют с обновлённой логикой
Пользователи видят нужные объекты, роли работают
Пропали права на новые объекты, ошибки доступа
Типичные ошибки при сравнении и объединении
Отдельная ошибка — сравнивать конфигурацию с устаревшей конфигурацией поставщика. Если база обновлялась нештатно, сведения о версии поставщика могут не соответствовать реальности, и сравнение покажет ложные «доработки». Перед обновлением полезно убедиться, что поддержка настроена корректно и версия поставщика актуальна.
Перед большим объединением полезно выгрузить обе конфигурации в файлы и сохранить каталоги как архив. Если после слияния что-то пойдёт не так, по этим снимкам легко восстановить, какой была каждая версия, и повторить разбор только проблемных объектов, а не всей конфигурации.
Частые вопросы
Можно ли сравнить конфигурации без объединения?
Да. Окно сравнения само по себе ничего не меняет: изменения применяются только после нажатия кнопки «Выполнить» и последующего обновления конфигурации базы данных. Для чистого анализа удобнее выгрузка в файлы и внешнее сравнение каталогов.
Чем сравнить модули построчно?
В окне сравнения конфигураций двойной щелчок по модулю открывает встроенное построчное сравнение с выбором версии для каждого блока. Альтернатива — выгрузить конфигурации в файлы и сравнить файлы модулей любым внешним инструментом diff.
Как сравнить рабочую базу с типовой конфигурацией поставщика?
Используйте «Конфигурация → Поддержка → Настройка поддержки» и сравнение с конфигурацией поставщика. Если у вас есть файл новой версии от поставщика (.cf или .cfu), сравнивайте через «Сравнить и объединить с конфигурацией из файла».
Что делать, если объекты изменены с обеих сторон?
Такие объекты требуют ручного разбора. Откройте детальное сравнение, определите, какие правки ваши, а какие поставщика, и в модулях выберите нужные блоки построчно. Для форм и метаданных иногда проще взять новую версию и повторно внести свои доработки.
Можно ли сравнить только роли или только права?
Штатное дерево сравнения позволяет отфильтровать объекты по виду, включая роли. Для детального анализа прав по объектам используют выгрузку в файлы — права хранятся в XML-представлении ролей и сравниваются как текст.
Безопасно ли сравнение для данных в базе?
Само сравнение данных не трогает — это работа только с метаданными. Риск появляется на этапе объединения и обновления конфигурации базы данных, когда меняется структура таблиц. Поэтому объединение всегда выполняют на копии с актуальной резервной копией рабочей базы.
Что важно запомнить
Сравнение конфигураций 1С выполняется через «Сравнить и объединить» в конфигураторе, через выгрузку в файлы для внешнего анализа или через хранилище и Git в командной разработке. Работайте только на копиях, выбирайте приоритеты осознанно, после объединения проверяйте конфигурацию и ключевые сценарии работы.