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