Две базы 1С в одну: какой способ выбрать и как перенести данные без дублей
Содержание
Два файла выгрузки 1С (.dt) склеить нельзя: загрузка .dt полностью заменяет содержимое информационной базы. Объединяют не файлы, а данные. Одну базу берут за основную, из второй выгружают нужные объекты в XML и загружают в основную. Если конфигурации одинаковые, хватит обработки «Выгрузка и загрузка данных XML». Если разные, понадобятся правила обмена из «Конвертации данных».
Второй случай, который тоже называют «объединить файлы 1С», — слияние конфигураций (.cf) в Конфигураторе. Он касается не данных, а программы: доработок, форм, отчётов. Ниже разобраны оба, но основное внимание — переносу данных, потому что именно там теряют документы и плодят дубли.
Что проверить до объединения баз 1С
Сначала определите, что именно вы объединяете. От этого зависит весь дальнейший путь.
| Ситуация | Что объединяем | Инструмент |
|---|---|---|
| Две базы одной конфигурации и одного релиза (например, две БП 3.0 разных фирм) | Данные | Обработка «Выгрузка и загрузка данных XML» |
| Базы разных конфигураций или сильно разных релизов | Данные | «Конвертация данных» 2.0 или 3.0 + правила обмена |
| Доработанная конфигурация и новая версия поставщика | Программу | Конфигурация → Сравнить, объединить с конфигурацией из файла... |
Несколько файлов .dt | Ничего напрямую | Развернуть каждый в отдельную базу, затем перенос XML |
Дальше — подготовка. Пропуск любого пункта обычно заканчивается повторной загрузкой.
- 💾 Сделайте резервные копии обеих баз: в Конфигураторе
Администрирование → Выгрузить информационную базу.... Для файловой базы можно дополнительно скопировать каталог целиком. - 🔢 Сверьте версии. Откройте каждую базу в режиме 1С:Предприятие и посмотрите «О программе» (значок «?» в правом верхнем углу). Номер конфигурации и релиз должны совпадать до последней цифры. Если не совпадают — обновите отстающую базу до релиза основной.
- 🖥 Платформа на компьютере, где идёт перенос, должна иметь номер не ниже того, что требует релиз конфигурации.
- 👥 Договоритесь о «тихом окне». Пока идёт перенос, в базу-приёмник никто не вводит документы.
- 🧪 Первый прогон делайте не в рабочей базе, а в её копии. Разверните
.dtв новую пустую базу и тренируйтесь там.
Загрузка .dt стирает всё, что было в базе-приёмнике. Загружайте выгрузку только в новую пустую базу или в копию, но не в рабочую.
Объединение баз через выгрузку и загрузку XML
Это основной способ, когда конфигурации совпадают. Обработка «Выгрузка и загрузка данных XML» — внешний файл .epf. Он распространяется через информационно-технологическое сопровождение (ИТС) и есть у обслуживающего вас партнёра. Для 8.3 файл обычно называется ВыгрузкаЗагрузкаДанныхXML83.epf.
Шаг 1. Выгрузка из базы-источника
- Запустите базу-источник в режиме 1С:Предприятие под пользователем с полными правами.
- Откройте обработку: главное меню (значок с тремя полосками) →
Файл → Открыть...→ выберите.epf. - На вкладке выгрузки отметьте объекты. Справочники и константы обычно берут целиком, документы — с отбором по периоду.
- Укажите имя файла, например
D:\perenos\firma2.xml, и нажмите «Выгрузить данные».
Обработка сама добавит в выгрузку объекты, на которые ссылаются выбранные документы. Выбрали реализации — в файл попадут нужные контрагенты, номенклатура, договоры.
Шаг 2. Загрузка в базу-приёмник
- Откройте ту же обработку в основной базе.
- Перейдите на вкладку загрузки, укажите XML-файл.
- Включите флажок загрузки в режиме обмена данными, если он есть в вашей версии обработки. В этом режиме не срабатывают проверки при записи, и объекты со ссылками друг на друга загружаются без ошибок порядка.
- Нажмите «Загрузить данные» и дождитесь окончания.
Как обработка сопоставляет объекты
Это главное, что надо понимать про XML-перенос. Объекты сопоставляются по внутреннему идентификатору (ссылке), а не по коду, наименованию или ИНН.
- 🔁 Если объект с такой ссылкой в приёмнике уже есть — он будет перезаписан данными из файла.
- ➕ Если нет — создаётся новый объект.
- ⚠️ Контрагент «ООО Ромашка», заведённый в двух базах независимо, получит две разные ссылки. После загрузки в приёмнике будет два «ООО Ромашка».
Поэтому обработка хорошо подходит для переноса из базы, которая когда-то была копией приёмника, и хуже — для слияния двух независимо созданных баз. Во втором случае дубли неизбежны, и их чистят после загрузки (раздел ниже).
Документы после загрузки
Документы загружаются с движениями, которые были в источнике. Если у вас приходный учёт по партиям или есть последовательности, перепроведите загруженный период: в БП 3.0 это Операции → Закрытие периода → Групповое перепроведение документов. Перепроведение делайте вне рабочего времени, на большом периоде оно идёт долго.
Большую базу выгружайте частями: сначала справочники, потом документы по месяцам. Файл на несколько гигабайт может не загрузиться из-за нехватки памяти, а маленькие порции легко перезапустить.
«Конвертация данных» 2.0 и 3.0: когда конфигурации разные
Если в одной базе БП 3.0, а в другой УТ 11 или самописная конфигурация, XML-обработка не поможет. Структура объектов разная, и её надо сопоставить правилами.
Сначала проверьте типовую синхронизацию. Многие пары типовых конфигураций уже умеют обмениваться: в БП 3.0 это Администрирование → Синхронизация данных. Если нужная программа есть в списке, правила писать не надо.
Если готового обмена нет, используют отдельную конфигурацию «Конвертация данных ».
| Конвертация данных 2.0 | Конвертация данных 3.0 | |
|---|---|---|
| Результат | Файл правил обмена .xml | Модуль менеджера обмена (код), встраиваемый в конфигурацию |
| Как применяют | Внешняя обработка «Универсальный обмен данными в формате XML» загружает правила и переносит данные | Обмен через формат EnterpriseData, нужна конфигурация на БСП |
| Когда удобнее | Разовый перенос, старые или нетиповые базы | Регулярный обмен между современными типовыми конфигурациями |
| Порог входа | Ниже: визуальное сопоставление объектов и свойств | Выше: нужно программировать на встроенном языке |
Порядок работы в «Конвертации данных» 2.0
- Разверните «Конвертацию данных» отдельной базой.
- Из базы-источника и базы-приёмника выгрузите описание структуры метаданных. Для этого в комплекте «Конвертации» есть обработка, которую открывают в каждой базе.
- Загрузите обе структуры в «Конвертацию» и создайте правила: какому справочнику источника соответствует справочник приёмника, какие реквизиты куда идут.
- Для справочников задайте поиск по полям: контрагентов — по ИНН и КПП, номенклатуру — по артикулу или наименованию, банковские счета — по номеру счёта. Это и есть защита от дублей.
- Сохраните правила в файл, загрузите их в «Универсальный обмен данными в формате XML» в базе-источнике, выгрузите данные. Затем той же обработкой загрузите файл в приёмник.
Главное преимущество перед простым XML-переносом — поиск по полям. Правила находят существующего «ООО Ромашка» по ИНН и не создают второго.
Можно ли объединить два файла .dt
Напрямую — нет. Файл .dt — это снимок всей информационной базы вместе с конфигурацией. Платформа умеет только выгрузить его целиком и целиком загрузить, заменив всё, что было.
Рабочая схема для администратора выглядит так:
- Создайте две новые пустые файловые базы.
- В каждую загрузите свой
.dt: Конфигуратор →Администрирование → Загрузить информационную базу.... - Приведите обе к одному релизу конфигурации.
- Перенесите данные XML-обработкой или по правилам «Конвертации».
- Выгрузите результат в новый
.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: Администрирование → Обслуживание → Корректировка данных → Поиск и удаление дублей.
- Выберите справочник, например «Контрагенты».
- Задайте правило сравнения: совпадение ИНН или похожее наименование.
- Просмотрите найденные группы и отметьте в каждой элемент, который остаётся оригиналом.
- Запустите замену. Ссылки во всех документах переключатся на оригинал, а дубли будут помечены на удаление.
Задвоенные предопределённые элементы
Частая проблема 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 — это вся база целиком. Скопировав его поверх другой базы, вы её замените, а не дополните.