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