Сравнение конфигураций 1С 8.3: инструменты и порядок действий

· 9 мин

Содержание

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

Разберём, какие режимы сравнения есть у платформы 8.3, когда хватает встроенных средств, а когда удобнее выгрузить метаданные в XML и смотреть различия через git diff. Пути и названия даны для интерфейса «Такси» на актуальных версиях платформы 8.3.

Когда возникает задача сравнить конфигурации

Чаще всего сравнение нужно в этих ситуациях:

  • 🔄 После обновления — понять, что именно изменил поставщик в новом релизе и не затронуло ли это ваши доработки.
  • 🧩 Перенос доработок — найти объекты, которые вы меняли в старой базе, чтобы повторить изменения в новой.
  • 🗃️ Две базы одной конфигурации — выяснить, почему в одной копии функция работает, а в другой нет (разные релизы или ручные правки).
  • 📦 Проверка файла поставки — сверить присланный .cf с тем, что реально стоит в базе.
  • 🔍 Аудит изменений — зафиксировать, насколько конфигурация отклонилась от типовой перед принятием её на сопровождение.

Во всех случаях задача сводится к одному: получить список отличающихся объектов и увидеть различия построчно внутри модулей и форм.

Какие режимы сравнения есть в Конфигураторе

Платформа умеет сравнивать четыре пары, и важно не путать, что с чем вы сопоставляете.

Что сравниваемГде запускаетсяЗачем
Основная ↔ конфигурация БДКонфигурация → Конфигурация базы данных → Сравнить/объединитьУвидеть несохранённые изменения перед обновлением БД
Основная ↔ конфигурация поставщикаКонфигурация → Поддержка → Настройка поддержкиПонять, что отклонилось от типовой
Основная ↔ файл .cfКонфигурация → Сравнить, объединить с конфигурацией из файлаСверить с присланной поставкой или копией
Две произвольные конфигурацииКонфигурация → Сравнить конфигурацииСопоставить любые две загруженные конфигурации

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

Что именно вы хотите сверить?

Как устроено окно сравнения

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

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

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

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

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

Пошагово: сравниваем конфигурацию с файлом поставки

Самый частый случай — сверить базу с присланным файлом .cf. Порядок такой:

  1. Откройте базу в Конфигураторе. Делайте это на копии базы, а не на рабочей, если планируете что-то объединять.
  2. Меню Конфигурация → Открыть конфигурацию (если дерево конфигурации ещё не открыто).
  3. Выберите Конфигурация → Сравнить, объединить с конфигурацией из файла.
  4. Укажите путь к файлу .cf. Платформа загрузит его во временную область и откроет окно сравнения.
  5. В окне сравнения переключите фильтр на показ только различий — дерево сократится до изменённых объектов.
  6. Разворачивайте объекты и смотрите различия. Для модулей — двойной клик по строке модуля открывает построчное сравнение.
  7. Если нужен документ — сформируйте отчёт о сравнении и сохраните его.
  8. Если это объединение (перенос изменений) — снимите или поставьте флажки у объектов, которые нужно перенести, настройте режим для каждого и выполните объединение. Перед объединением на рабочей базе обязательно сделайте резервную копию: откат объединения вручную — это часы работы.

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

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

Когда база снята с полной поддержки или в неё внесены правки, интересует не абстрактное сравнение, а отклонение от конфигурации поставщика. Его показывает окно Конфигурация → Поддержка → Настройка поддержки.

В этом окне каждый объект имеет признак поддержки:

  • 🔒 На поддержке, не редактируется — объект типовой, менять нельзя без изменения правил поддержки.
  • 🖊️ Редактируется с сохранением поддержки — объект можно дорабатывать, при обновлении платформа предложит объединить ваши правки с новыми от поставщика.
  • 🚫 Снят с поддержки — объект больше не обновляется поставщиком автоматически.

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

Отдельно про расширения конфигурации (.cfe). Расширения появились в платформе 8.3.6 и часто используются именно для того, чтобы не трогать типовую конфигурацию . Расширение сравнивается как самостоятельная конфигурация: загрузите .cfe и сопоставьте с другим расширением или с предыдущей его версией. Само расширение при этом не меняет признак поддержки основной конфигурации — это его главное преимущество.

Сравнение основной конфигурации и конфигурации из расширения напрямую не делается: расширение живёт в своём пространстве имён. Сравнивайте расширение с расширением, а основную — с основной.

Выгрузка в XML и сравнение через git diff

Встроенного окна хватает для разового просмотра, но оно неудобно для командной работы и истории изменений. Для этого конфигурацию выгружают в набор XML-файлов и сравнивают их обычными инструментами diff.

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

Дальше два таких каталога (например, до и после обновления) сравниваются любым визуальным diff-инструментом или через git:

# сравнить две выгрузки по месту
git diff --no-index old_xml/ new_xml/

# или положить выгрузку в репозиторий и смотреть историю
git add . && git commit -m "БП 3.0, релиз до обновления"
# ...обновились, выгрузили заново в тот же каталог...
git status
git diff

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

Пакетный режим и автоматизация сравнения

Выгрузку в XML можно запускать без открытия Конфигуратора — через пакетный режим. Это и есть основа автоматизации: по расписанию выгружать конфигурацию и фиксировать изменения.

"C:\Program Files\1cv8\<версия>\bin\1cv8.exe" DESIGNER ^
  /F "C:\base" /N "Администратор" /P "пароль" ^
  /DumpConfigToFiles "C:\dump\base_xml" ^
  /Out "C:\dump\log.txt"

Ключевые параметры командной строки Конфигуратора:

Для файловой базы путь к ней задаётся ключом /F, для серверной — /S сервер\база. Полный список ключей смотрите в документации по пакетному запуску; выдумывать параметры не стоит — несуществующий ключ просто завершит запуск с ошибкой.

На этой же выгрузке в XML строятся связки с системами контроля версий (gitsync, precommit1c и подобные из сообщества). Идея одна: конфигурация 1С превращается в текст, а дальше работают стандартные инструменты diff, merge и code review.

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

Практический кейс: что сравнить после обновления 1С:Бухгалтерии

Типовой сценарий — обновили БП 3.0 и хотите убедиться, что доработки на месте, а новое из релиза приехало. Порядок на копии базы:

  1. Перед обновлением выгрузите конфигурацию в XML в отдельный каталог — это «снимок до».
  2. Выполните обновление (через Конфигурация → Поддержка → Обновить конфигурацию или загрузкой нового .cf поставщика).
  3. После обновления выгрузите конфигурацию в XML ещё раз — «снимок после».
  4. Сравните два каталога через git diff --no-index — получите полный список изменённых объектов релиза.
  5. Отдельно проверьте свои доработки: Конфигурация → Поддержка → Настройка поддержки покажет объекты, изменённые с сохранением поддержки. Если по такому объекту поставщик тоже внёс правки, платформа при обновлении предложит их объединить — проверьте, что объединение прошло так, как вы ждали.

Так вы разделяете два потока изменений — поставщика и свои — и не теряете доработки при обновлении.

Типичные ошибки при сравнении

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

Частые вопросы

Можно ли сравнить конфигурации в режиме 1С:Предприятие, без Конфигуратора?
Полноценное сравнение метаданных — только в Конфигураторе. В режиме Предприятия нет доступа к структуре конфигурации. Исключение — внешние обработки сообщества, но они всё равно читают выгруженные метаданные.
Как сравнить два файла `.cf` между собой, не загружая их в базу?
Откройте любую базу, через Конфигурация → Сравнить, объединить с конфигурацией из файла укажите первый файл, затем повторите со вторым, либо используйте пункт Сравнить конфигурации, предварительно загрузив оба файла. Прямого сравнения двух файлов «снаружи» штатными средствами нет.
Почему сравнение показывает различия, хотя обе базы одного релиза?
Скорее всего, в одной из баз конфигурация базы данных не совпадает с основной: кто-то внёс правки в основную, но не обновил конфигурацию БД. Сначала сравните внутри базы основную с конфигурацией БД.
Сколько времени занимает выгрузка типовой конфигурации в XML?
Для крупной конфигурации вроде БП или ЗУП — от нескольких минут до десятков минут, в зависимости от диска и версии платформы. На SSD заметно быстрее. Это разовая операция, дальше git работает с готовыми файлами мгновенно.
Можно ли по отчёту о сравнении понять, что менял конкретный доработчик?
Отчёт показывает, какие объекты и как отличаются, но не автора правок. Авторство фиксирует только хранилище конфигурации — там у каждой версии есть пользователь и комментарий.