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

· 10 мин

Содержание

Два файла выгрузки 1С (.dt) склеить нельзя: загрузка .dt полностью заменяет содержимое информационной базы. Объединяют не файлы, а данные. Одну базу берут за основную, из второй выгружают нужные объекты в XML и загружают в основную. Если конфигурации одинаковые, хватит обработки «Выгрузка и загрузка данных XML». Если разные, понадобятся правила обмена из «Конвертации данных».

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

Что проверить до объединения баз 1С

Сначала определите, что именно вы объединяете. От этого зависит весь дальнейший путь.

СитуацияЧто объединяемИнструмент
Две базы одной конфигурации и одного релиза (например, две БП 3.0 разных фирм)ДанныеОбработка «Выгрузка и загрузка данных XML»
Базы разных конфигураций или сильно разных релизовДанные«Конвертация данных» 2.0 или 3.0 + правила обмена
Доработанная конфигурация и новая версия поставщикаПрограммуКонфигурация → Сравнить, объединить с конфигурацией из файла...
Несколько файлов .dtНичего напрямуюРазвернуть каждый в отдельную базу, затем перенос XML

Дальше — подготовка. Пропуск любого пункта обычно заканчивается повторной загрузкой.

  1. 💾 Сделайте резервные копии обеих баз: в Конфигураторе Администрирование → Выгрузить информационную базу.... Для файловой базы можно дополнительно скопировать каталог целиком.
  2. 🔢 Сверьте версии. Откройте каждую базу в режиме 1С:Предприятие и посмотрите «О программе» (значок «?» в правом верхнем углу). Номер конфигурации и релиз должны совпадать до последней цифры. Если не совпадают — обновите отстающую базу до релиза основной.
  3. 🖥 Платформа на компьютере, где идёт перенос, должна иметь номер не ниже того, что требует релиз конфигурации.
  4. 👥 Договоритесь о «тихом окне». Пока идёт перенос, в базу-приёмник никто не вводит документы.
  5. 🧪 Первый прогон делайте не в рабочей базе, а в её копии. Разверните .dt в новую пустую базу и тренируйтесь там.

Загрузка .dt стирает всё, что было в базе-приёмнике. Загружайте выгрузку только в новую пустую базу или в копию, но не в рабочую.

Какой у вас случай?

Объединение баз через выгрузку и загрузку XML

Это основной способ, когда конфигурации совпадают. Обработка «Выгрузка и загрузка данных XML» — внешний файл .epf. Он распространяется через информационно-технологическое сопровождение (ИТС) и есть у обслуживающего вас партнёра. Для 8.3 файл обычно называется ВыгрузкаЗагрузкаДанныхXML83.epf.

Шаг 1. Выгрузка из базы-источника

  1. Запустите базу-источник в режиме 1С:Предприятие под пользователем с полными правами.
  2. Откройте обработку: главное меню (значок с тремя полосками) → Файл → Открыть... → выберите .epf.
  3. На вкладке выгрузки отметьте объекты. Справочники и константы обычно берут целиком, документы — с отбором по периоду.
  4. Укажите имя файла, например D:\perenos\firma2.xml, и нажмите «Выгрузить данные».

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

Шаг 2. Загрузка в базу-приёмник

  1. Откройте ту же обработку в основной базе.
  2. Перейдите на вкладку загрузки, укажите XML-файл.
  3. Включите флажок загрузки в режиме обмена данными, если он есть в вашей версии обработки. В этом режиме не срабатывают проверки при записи, и объекты со ссылками друг на друга загружаются без ошибок порядка.
  4. Нажмите «Загрузить данные» и дождитесь окончания.

Как обработка сопоставляет объекты

Это главное, что надо понимать про XML-перенос. Объекты сопоставляются по внутреннему идентификатору (ссылке), а не по коду, наименованию или ИНН.

  • 🔁 Если объект с такой ссылкой в приёмнике уже есть — он будет перезаписан данными из файла.
  • ➕ Если нет — создаётся новый объект.
  • ⚠️ Контрагент «ООО Ромашка», заведённый в двух базах независимо, получит две разные ссылки. После загрузки в приёмнике будет два «ООО Ромашка».

Поэтому обработка хорошо подходит для переноса из базы, которая когда-то была копией приёмника, и хуже — для слияния двух независимо созданных баз. Во втором случае дубли неизбежны, и их чистят после загрузки (раздел ниже).

Документы после загрузки

Документы загружаются с движениями, которые были в источнике. Если у вас приходный учёт по партиям или есть последовательности, перепроведите загруженный период: в БП 3.0 это Операции → Закрытие периода → Групповое перепроведение документов. Перепроведение делайте вне рабочего времени, на большом периоде оно идёт долго.

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

«Конвертация данных» 2.0 и 3.0: когда конфигурации разные

Если в одной базе БП 3.0, а в другой УТ 11 или самописная конфигурация, XML-обработка не поможет. Структура объектов разная, и её надо сопоставить правилами.

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

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

Конвертация данных 2.0Конвертация данных 3.0
РезультатФайл правил обмена .xmlМодуль менеджера обмена (код), встраиваемый в конфигурацию
Как применяютВнешняя обработка «Универсальный обмен данными в формате XML» загружает правила и переносит данныеОбмен через формат EnterpriseData, нужна конфигурация на БСП
Когда удобнееРазовый перенос, старые или нетиповые базыРегулярный обмен между современными типовыми конфигурациями
Порог входаНиже: визуальное сопоставление объектов и свойствВыше: нужно программировать на встроенном языке

Порядок работы в «Конвертации данных» 2.0

  1. Разверните «Конвертацию данных» отдельной базой.
  2. Из базы-источника и базы-приёмника выгрузите описание структуры метаданных. Для этого в комплекте «Конвертации» есть обработка, которую открывают в каждой базе.
  3. Загрузите обе структуры в «Конвертацию» и создайте правила: какому справочнику источника соответствует справочник приёмника, какие реквизиты куда идут.
  4. Для справочников задайте поиск по полям: контрагентов — по ИНН и КПП, номенклатуру — по артикулу или наименованию, банковские счета — по номеру счёта. Это и есть защита от дублей.
  5. Сохраните правила в файл, загрузите их в «Универсальный обмен данными в формате XML» в базе-источнике, выгрузите данные. Затем той же обработкой загрузите файл в приёмник.

Главное преимущество перед простым XML-переносом — поиск по полям. Правила находят существующего «ООО Ромашка» по ИНН и не создают второго.

Сопоставление полей
Контрагенты: ИНН + КПП→Справочник «Контрагенты», поиск по ИНН и КПП
Номенклатура: Артикул→Справочник «Номенклатура», поиск по артикулу
Банковские счета: Номер счёта→Справочник «Банковские счета», поиск по номеру
Документы реализации: Номер + Дата→Документ «Реализация (акты, накладные, УПД)»

Можно ли объединить два файла .dt

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

Рабочая схема для администратора выглядит так:

  1. Создайте две новые пустые файловые базы.
  2. В каждую загрузите свой .dt: Конфигуратор → Администрирование → Загрузить информационную базу....
  3. Приведите обе к одному релизу конфигурации.
  4. Перенесите данные XML-обработкой или по правилам «Конвертации».
  5. Выгрузите результат в новый .dt и разверните его на рабочем месте.

Загрузку и выгрузку .dt можно запускать из командной строки — это удобно, если баз много:

"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\bases\firma1" /N "Администратор" /P "" /DumpIB "D:\backup\firma1.dt"
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" DESIGNER /F "D:\bases\svodnaya" /N "Администратор" /P "" /RestoreIB "D:\backup\firma1.dt"

Подставьте свой номер платформы в путь и свои имена пользователей. Для серверной базы вместо /F используют /S "сервер\имя_базы".

Загрузка .dt требует монопольного доступа: все пользователи должны выйти из базы. Сеансы, которые не закрыты, загрузке помешают — предупредите людей заранее.

Слияние конфигураций (.cf)

Если «объединить файлы» означает соединить доработки программиста с новой типовой версией, работают в Конфигураторе. Конфигурация → Сравнить, объединить с конфигурацией из файла... показывает дерево различий. Для каждого объекта вы выбираете, чья версия остаётся, или объединяете модули построчно. После этого нажимают «Обновить конфигурацию базы данных» (F7). Данные при этом не переносятся — меняется только программа.

Дубли и ссылочная целостность после объединения

Даже при аккуратном переносе в базе появятся задвоения. Их ищут и сливают сразу, пока на дубли не начали ссылаться новые документы.

Поиск и удаление дублей

В конфигурациях на БСП (БП 3.0, ЗУП 3.1, УТ 11) есть встроенная обработка «Поиск и удаление дублей». В БП 3.0: Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей.

  1. Выберите справочник, например «Контрагенты».
  2. Задайте правило сравнения: совпадение ИНН или похожее наименование.
  3. Просмотрите найденные группы и отметьте в каждой элемент, который остаётся оригиналом.
  4. Запустите замену. Ссылки во всех документах переключатся на оригинал, а дубли будут помечены на удаление.

Задвоенные предопределённые элементы

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

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

Тестирование и исправление

После загрузки и чистки дублей прогоните проверку. В Конфигураторе: Администрирование → Тестирование и исправление..., флажки «Проверка логической целостности информационной базы» и «Проверка ссылочной целостности информационной базы».

  • 🔗 Битые ссылки (объекты не найдены) лучше не удалять, а создавать объекты: так вы увидите, на что ссылаются документы, и сможете их заполнить.
  • 🗑 Удаление битых ссылок оставит в документах пустые поля, и восстановить их будет не из чего.

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

Автоматизация, если базы нужно сводить регулярно

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

  • 🔄 Типовая синхронизация. В Администрирование → Синхронизация данных настраивают обмен и расписание. Программа сама выгружает и загружает изменения.
  • 🌳 Распределённая информационная база (РИБ). Филиалы работают в узлах одной конфигурации, изменения уходят в центральную базу. Подходит, когда конфигурация везде одна.
  • ⏱ Командная строка + планировщик. Внешнюю обработку можно запускать по расписанию Windows с параметром /Execute, а резервную копию — через /DumpIB. Так делают ночной перенос по правилам «Конвертации».
"C:\Program Files\1cv8\8.3.24.1548\bin\1cv8.exe" ENTERPRISE /F "D:\bases\filial" /N "Обмен" /P "пароль" /Execute "D:\obmen\vygruzka.epf"

Для регламентного обмена заведите отдельного пользователя, например «Обмен». По нему легче искать записи в журнале регистрации, и обмен не будет висеть на чьём-то личном пароле.

Сама внешняя обработка при /Execute должна выполнить перенос без участия человека. Типовой «Универсальный обмен данными в формате XML» рассчитан на ручной запуск, поэтому для расписания программист обычно делает обёртку.

Частые ошибки при объединении данных 1С

  • ❌ Загрузили .dt в рабочую базу «чтобы добавить данные». Все прежние данные заменены. Спасает только резервная копия.
  • ❌ Перенесли между разными релизами. Реквизиты, которых нет в приёмнике, пропадут молча, а часть объектов не загрузится.
  • ❌ Не отключили проведение и проверки. Без режима обмена загрузка падает на первом документе, который ссылается на ещё не загруженный объект.
  • ❌ Не разделили организации. Если сливаете базы двух фирм, убедитесь, что в приёмнике включён учёт по нескольким организациям, и обе организации заведены. Иначе отчёты по фирмам смешаются.
  • ❌ Чистили дубли через месяц. К этому времени на дубли ссылаются новые документы, и групп для слияния становится в разы больше.

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

Можно ли объединить две файловые базы, просто скопировав файл 1Cv8.1CD?
Нет. Файл 1Cv8.1CD — это вся база целиком. Скопировав его поверх другой базы, вы её замените, а не дополните.
Сохранятся ли номера документов при переносе?
Да, обработка переносит номера как есть. Если в приёмнике уже есть документ того же вида с тем же номером в том же периоде и организации, при записи возможна ошибка уникальности. Номер правят вручную или задают префикс второй организации.
Переносятся ли пользователи и их права?
Нет. Пользователи информационной базы при XML-переносе не переносятся. Их заводят в приёмнике заново и назначают группы доступа.
Что делать, если загрузка XML прервалась на середине?
Восстановите базу-приёмник из копии и повторите загрузку. Частично загруженные данные чистить вручную дольше, чем начать заново.
Как перенести не всю базу, а только остатки?
Выгрузите справочники, а остатки введите в приёмнике документами ввода начальных остатков на дату объединения. Обороты за прошлые периоды при этом останутся только в базе-источнике — сохраните её копию для отчётов.