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

Администрирование · 8 мин

Как сравнить базы 1С: практическое руководство

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

Сравнение баз 1С — типовая задача при обновлении конфигурации, переносе доработок между рабочей и тестовой средой, а также при проверке, что изменилось после обновления поставщика. В зависимости от цели сравнивают либо структуру метаданных (конфигурацию), либо сами данные — справочники, документы, регистры. Это разные задачи, и инструменты для них тоже разные.

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

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

Определите, что именно нужно сравнить

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

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

Разные версии конфигурацииНужно сравнение метаданных

Сравнить конфигурации в конфигураторе

Одинаковая конфигурация, разные остаткиНужно сравнение данных

Сверить регистры и документы за период

Перенос между базамиНужна проверка полноты

Сравнить количество и контрольные суммы объектов

Сравнение конфигураций в конфигураторе

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

Для просмотра различий в текстах модулей дважды щёлкните по объекту — откроется построчное сравнение с подсветкой изменённых строк. Это удобно при анализе чужих доработок или при проверке, что именно изменилось после обновления поставщика.

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

Порядок сравнения конфигураций
  1. 1
    Сделайте резервные копии обеих баз (выгрузка .dt или средствами СУБД)
  2. 2
    Во второй базе сохраните конфигурацию в файл .cf
  3. 3
    В первой базе откройте «Конфигурация → Сравнить, объединить с конфигурацией из файла» и укажите .cf
  4. 4
    Изучите дерево различий, откройте построчное сравнение изменённых модулей
  5. 5
    Сохраните отчёт о различиях; объединение выполняйте только после анализа

Сравнение данных через выгрузку и обработки

Для сравнения данных используют выгрузку в XML или универсальные обработки сравнения. Штатная обработка «Выгрузка и загрузка данных XML» (поставляется с конфигурациями и на диске ИТС) позволяет выгрузить выбранные объекты из обеих баз и сравнить файлы любым инструментом сравнения текста — так видно, какие элементы различаются и чем именно.

Для массовой сверки удобнее внешние обработки сравнения данных (доступны на портале 1С и в открытых источниках): они подключаются к обеим базам через COM или веб-сервис и показывают различия по справочникам и документам в табличном виде. Перед использованием сторонней обработки проверяйте её на копии базы.

Для точечной проверки достаточно отчётов: сформируйте в обеих базах одинаковый отчёт (оборотно-сальдовую ведомость, остатки товаров) за один период и сравните итоги. Расхождение итогов — сигнал искать различающиеся документы.

Сравнение на уровне СУБД и через запросы

Для клиент-серверных баз (MS SQL, PostgreSQL) опытные администраторы сравнивают таблицы напрямую запросами: подсчёт количества записей, хеш-суммы по ключевым полям, поиск ссылок, присутствующих в одной базе и отсутствующих в другой. Это быстро на больших объёмах, но требует понимания структуры хранения 1С: имена таблиц формируются по внутренним правилам, а ссылки хранятся в двоичном виде.

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

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

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

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

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

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

Итоги ОСВ / остатков в обеих базах
Норма

Суммы совпадают за одинаковый период

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

Расхождения — искать различающиеся документы

Количество документов по видам
Норма

Количество совпадает

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

Разница без объяснимой причины

Тестирование после объединения конфигураций
Норма

Нет ошибок, ключевые операции работают

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

Ошибки ссылочной целостности, падение отчётов

Типичные ошибки и ограничения

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

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

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

Типичные ошибки
01
Объединение конфигураций без резервной копии — потеря доработок без возможности отката
02
Сравнение данных при разных версиях конфигурации — ложные расхождения
03
Прямые UPDATE в таблицах SQL — разрушение целостности базы
04
Сравнение файлов .dt побайтово — бессмысленный результат

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

Можно ли сравнить две базы 1С без конфигуратора?

Да, для данных: через выгрузку в XML, внешние обработки сравнения или запросы к СУБД. Для сравнения конфигураций без конфигуратора подойдёт выгрузка конфигурации в файлы XML (через конфигуратор или EDT) и сравнение каталогов любым diff-инструментом.

Как сравнить базы с разными конфигурациями?

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

Как быстро проверить, идентичны ли две базы?

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

Чем сравнить тексты модулей двух конфигураций?

В конфигураторе при сравнении конфигураций двойной щелчок по объекту открывает построчное сравнение модулей. Альтернатива — выгрузить конфигурации в файлы и сравнить каталоги, например, встроенным сравнением в VS Code или WinMerge.

Безопасно ли сравнение на рабочей базе?

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

Как сравнить большие базы с миллионами записей?

Используйте сравнение на уровне СУБД: подсчёт записей и хеш-суммы по ключевым таблицам выполняются значительно быстрее, чем обработки через платформу. Работы проводите в период минимальной нагрузки.

Итог

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

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