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