Объединение двух баз 1С:Предприятие в одну — задача, с которой рано или поздно сталкиваются компании при слиянии подразделений, покупке новых бизнесов или оптимизации учетных процессов. Казалось бы, что может быть проще: взять и перенести данные из одной базы в другую. Но на практике этот процесс чреват потерей данных, дублированием записей и нарушением целостности справочников. Особенно если базы имеют разную структуру, историю изменений или используют разные версии платформы .

В этой статье мы разберем все возможные способы объединения — от ручного переноса до автоматизированных инструментов, расскажем о подводных камнях каждого метода и дадим пошаговые инструкции. Вы узнаете, как избежать типичных ошибок, какие настройки нужно проверить перед слиянием и как проверить результат. А если вы никогда не занимались подобными операциями — не беспокойтесь: мы объясним даже базовые понятия, без которых не обойтись.

Прежде чем приступать к объединению, ответьте себе на три ключевых вопроса:

  1. Какие именно данные нужно перенести (только справочники, документы за определенный период или всю историю)?
  2. Есть ли в базах одинаковые элементы (контрагенты, номенклатура), которые могут дублироваться?
  3. Готовы ли вы к тому, что после слияния потребуется ручная доработка?

Если хотя бы на один из этих вопросов вы ответили "нет" или "не знаю" — этот гайд поможет разобраться во всех нюансах.

1. Подготовка к объединению: что нужно сделать до начала работ

Первый и самый важный этап — аудит обеих баз. Без него вы рискуете перенести устаревшие данные, дубли или даже нарушить логику учета. Начните с сравнения структуры баз: проверьте, совпадают ли планы счетов, справочники (Номенклатура, Контрагенты, Сотрудники) и документы. Обратите внимание на:

  • 🔹 Версии платформы 1С — если они разные, может потребоваться обновление одной из баз.
  • 🔹 Конфигурации — даже если названия совпадают (например, 1С:Бухгалтерия 3.0), могли быть доработки.
  • 🔹 Периоды учета — если в одной базе данные с 2020 года, а в другой с 2023, решите, какой период нужен в итоге.
  • 🔹 Пользовательские права — после слияния может потребоваться перенастройка ролей.

Обязательно создайте полные резервные копии обеих баз перед началом работ. Используйте стандартные средства или сторонние утилиты вроде SQL Backup (для SQL-версий). Если вы работаете с файловой базой, скопируйте файл 1Cv8.1CD в отдельную папку — этого недостаточно для полноценного бэкапа, но хотя бы спасет от случайного удаления.

Также составьте карту соответствий — документ, где укажите, какие данные из базы А должны попасть в базу Б. Например:

Источник (База 1) Назначение (База 2) Примечания
Справочник "Контрагенты" Справочник "Контрагенты" Проверять на дубли по ИНН
Документы "Реализация товаров" за 2023 год Документы "Реализация товаров" Переносить только оплаченные
Справочник "Номенклатура" (группа "Услуги") Справочник "Номенклатура" (группа "Прочие услуги") Изменить наименование группы
⚠️ Внимание: Если в одной из баз использовались нетиповые реквизиты (добавленные вручную поля), их нужно либо перенести в целевую базу заранее, либо исключить из выгрузки. Иначе данные просто не встанут на свои места.

2. Способы объединения баз 1С: какой выбрать?

Существует несколько методов слияния баз, и у каждого есть свои плюсы и минусы. Выбор зависит от объема данных, технических возможностей и бюджета. Рассмотрим основные варианты:

1. Ручной перенос данных — подходит для небольших баз (до 1000 документов) или выборочного переноса справочников. Минусы: высокий риск ошибок и большие затраты времени. Например, можно экспортировать справочник Контрагенты в Excel через Файл → Выгрузить, а затем импортировать в целевую базу.

2. Обмен данными через XML — стандартный механизм , который позволяет выгружать и загружать данные в формате .xml. Подходит для средних объемов (до 50 000 записей). Требует настройки правил обмена, но исключает потерю связей между объектами.

3. Использование обработок — есть готовые решения вроде "Универсальный обмен данными" или "Конвертация данных" (входит в состав 1С:Предприятие). Эти инструменты автоматизируют процесс, но могут потребовать доработки под специфику ваших баз.

4. Программное слияние (1C:EDT или внешние скрипты) — для опытных пользователей или программистов. Позволяет гибко настраивать логику переноса, но требует знания языка и структуры метаданных.

5. Специализированные сервисы — например, 1С:Консолидация или РИБ (Распределенная Информационная База). Оптимальны для крупных проектов с регулярным обменом данными между филиалами.

Какой способ выбрать? Ответьте на вопросы из опроса ниже, и вы поймете, какой метод подходит именно вам.

📊 Какой объем данных вам нужно перенести?
До 1000 документов
1000–50 000 документов
Более 50 000 документов
Не знаю, нужно оценить

3. Пошаговая инструкция: объединение через XML-обмен

Это самый универсальный способ, который подходит для большинства задач. Рассмотрим процесс на примере переноса справочника Номенклатура и документов Поступление товаров из базы Источник в базу Приемник.

Шаг 1. Настройка правил обмена

  1. В базе-приемнике откройте Администрирование → Обмен данными → Настройка обмена данными.
  2. Создайте новое правило обмена, укажите тип XML и выберите объекты для переноса (справочники, документы).
  3. В разделе Сопоставление объектов укажите, как элементы из источника будут соответствовать элементам в приемнике. Например, справочник НоменклатураНоменклатура.

Шаг 2. Выгрузка данных из источника

  1. В базе-источнике перейдите в Файл → Выгрузить данные (или используйте обработку ВыгрузкаЗначений).
  2. Выберите созданное правило обмена и укажите путь для сохранения файла (например, C:\Exchange\nomenklatura.xml).
  3. Запустите выгрузку. В зависимости от объема данных процесс может занять от нескольких минут до часов.

Шаг 3. Загрузка данных в приемник

  1. В базе-приемнике откройте Файл → Загрузить данные.
  2. Укажите файл выгрузки и правило обмена.
  3. Перед загрузкой покажет отчет о возможных конфликтах (дубли, отсутствующие справочники). Внимательно проверьте его!
  4. Подтвердите загрузку. После завершения система сформирует протокол с результатами.

Проверьте наличие свободного места на диске (нужно не менее 2x от размера выгрузки)

Закройте все сеансы 1С в базе-приемнике

Создайте резервную копию базы-приемника

Отключите регламентные задания на время загрузки-->

Если в процессе загрузки возникли ошибки типа "Объект не найден: Справочник.Контрагенты.Иванов", это значит, что в базе-приемнике отсутствует справочник или элемент, на который ссылается документ. В таком случае нужно либо создать недостающие элементы вручную, либо повторить выгрузку с включением зависимых объектов.

⚠️ Внимание: При загрузке документов может автоматически перепровести их, что приведет к изменению проводок. Если вам важна точность исторических данных, отключите перепроверку в настройках обмена или переносите документы как "Помеченные на удаление", а затем восстанавливайте их.

4. Автоматизированные инструменты: обработки и конфигурации

Если ручной обмен через XML кажется слишком трудоемким, можно воспользоваться готовыми решениями. Рассмотрим самые популярные:

1. "Универсальный обмен данными" (УОД)

Эта обработка входит в стандартную поставку 1С:Предприятие и позволяет настраивать гибкие правила переноса. Преимущества:

  • 🔧 Поддерживает любые конфигурации (Бухгалтерия, УТ, ЗУП и др.).
  • 🔄 Может работать как в файловом, так и в клиент-серверном режиме.
  • 📊 Формирует подробные протоколы обмена с указанием ошибок.

Недостаток: требует ручной настройки сопоставления объектов. Например, если в базе-источнике есть справочник "НашиФирмы", а в приемнике — "Организации", придется вручную указать это соответствие.

2. "Конвертация данных" (КД 2.0/3.0)

Более мощный инструмент, который позволяет переносить данные между разными конфигурациями (например, из 1С:УТ 10.3 в 1С:ERP 2.4). Особенности:

  • 🛠️ Требует установки дополнительного расширения (1С:Конвертация данных).
  • 📋 Поддерживает преобразование структуры (например, можно разделить один справочник на два).
  • ⚡ Работает быстрее, чем XML-обмен, за счет оптимизированных алгоритмов.

Пример использования: если в базе-источнике документы "Заказ клиента" хранятся в одном справочнике, а в базе-приемнике их нужно разделить на "Заказы" и "Договоры", КД справится с этой задачей.

3. Специализированные решения (1С:Консолидация, РИБ)

Эти инструменты предназначены для регулярного обмена данными между филиалами или дочерними компаниями. Например, 1С:Консолидация позволяет:

  • 🏢 Объединять данные из нескольких баз в одну центральную.
  • 🔄 Настраивать периодический обмен (ежедневно, еженедельно).
  • 📈 Формировать консолидированную отчетность по группе компаний.

Минус: высокая стоимость лицензии и сложность настройки. Подходит только для крупных холдингов.

Если вы не уверены, какой инструмент выбрать, воспользуйтесь советом ниже.

💡

Перед покупкой специализированных решений (например, 1С:Консолидация) запросите демо-версию у партнера . Многие инструменты имеют ограниченные по времени триал-версии, которые позволят оценить функционал без покупки.

5. Типичные ошибки и как их избежать

Даже опытные администраторы сталкиваются с проблемами при объединении баз. Вот самые распространенные ошибки и способы их предотвращения:

1. Дублирование данных

Чаще всего дубли появляются в справочниках Контрагенты, Номенклатура или Сотрудники. Например, в базе-источнике есть контрагент "ООО Ромашка" с ИНН 1234567890, а в базе-приемнике — "ООО Ромашка-Торг" с тем же ИНН. При слиянии получится два элемента, что исказит отчетность.

Как избежать:

  • 🔍 Перед обменом сравните справочники по ключевым реквизитам (ИНН, артикул, табельный номер).
  • 📋 Используйте обработку "Поиск и удаление дублей" (есть в стандартных поставках ).
  • 🔄 Настройте в правилах обмена параметр "Обновлять существующие" вместо "Создавать новые".

2. Нарушение ссылочной целостности

Это происходит, когда документ ссылается на справочник, которого нет в базе-приемнике. Например, в документе "Реализация" указан контрагент "ООО Весна", но этот контрагент не был перенесен. В результате документ не проведется или проведется с ошибками.

Как избежать:

  • 📌 Переносите данные в правильном порядке: сначала справочники, затем документы.
  • 🔗 В настройках обмена включите опцию "Контролировать ссылки".
  • 🛠️ Если ошибка уже возникла, воспользуйтесь обработкой "Поиск битых ссылок".

3. Потеря истории изменений

При переносе документов иногда теряются данные о том, кто и когда их создавал или изменял. Это важно для аудита и отчетности.

Как избежать:

  • 🕒 В правилах обмена включите перенос служебных полей: Дата создания, Пользователь, Комментарий.
  • 📄 Если история критична, экспортируйте ее отдельно через Журнал регистрации.
⚠️ Внимание: Если вы переносите данные между базами с разными валютами учета (например, в одной базе курс доллара фиксированный, а в другой — плавающий), после слияния может потребоваться перерасчет валютных операций. Проверьте это в отчете "Валютные разницы".

6. Проверка результатов и постобработка

После объединения баз работу нельзя считать завершенной. Необходимо проверить:

  1. Целостность данных — убедитесь, что все справочники и документы перенесены без ошибок. Для этого сформируйте отчет "Анализ данных" или "Проверка логической целостности" (доступен в Администрирование → Тестирование и исправление).
  2. Корректность проводок — запустите "Проверку учета" (в бухгалтерских конфигурациях) или сравните оборотно-сальдовые ведомости до и после слияния.
  3. Производительность — после объединения база может работать медленнее. Проверьте время выполнения типичных операций (например, открытие отчета "Обороты по счетам"). Если тормоза заметны, выполните реиндексацию или тестирование и исправление.

Типичные проблемы после слияния и их решения:

Проблема Возможная причина Решение
Документы не проводятся Отсутствуют справочники или нарушены права Проверьте наличие всех зависимых объектов и права пользователя
Медленная работа отчетов Увеличился объем данных, нет индексов Выполните реиндексацию или оптимизируйте запросы
Дубли в справочниках Не было сопоставления по ключевым полям Используйте обработку "Поиск и удаление дублей"
Ошибки в регистрах Конфликт движений при переносе документов Перепроведите документы или восстановите последовательность

Если вы обнаружили ошибки, не паникуйте. В большинстве случаев их можно исправить:

  • 🔄 Для дублей используйте обработку "Объединение дублей" (доступна в 1С:ИТС).
  • 🔧 Для битых ссылок воспользуйтесь скриптом:
    Процедура ИсправитьБитыеСсылки()
    

    Запрос = Новый Запрос;

    Запрос.Текст = "ВЫБРАТЬ ССЫЛКУ КАК Объект ИЗ РегистрСведений.БитыеСсылки";

    Результат = Запрос.Выполнить();

    Пока Результат.Следующий() Цикл

    Попытка

    Объект = Результат.Объект.Получить();

    Исключение

    Сообщить("Битая ссылка: " + Результат.Объект);

    КонецПопытки;

    КонецЦикла;

    КонецПроцедуры

  • 📊 Для некорректных проводок перепроведите документы с ошибками или восстановите последовательность операций через Администрирование → Поддержка и обслуживание → Восстановление последовательности.
💡

После объединения баз обязательно сделайте полный бэкап новой базы и сохраните протоколы обмена. Это поможет откатиться к рабочей версии, если через неделю-две обнаружатся скрытые ошибки.

7. Альтернативные подходы: когда стандартные методы не работают

Иногда объединение баз через стандартные механизмы невозможно. Например:

  • 🔹 Базы имеют радикально разные конфигурации (например, 1С:УПП и 1С:ERP).
  • 🔹 Нужно перенести только часть данных (например, только документы за последний год).
  • 🔹 Объем данных превышает 1 млн документов, и XML-обмен работает слишком долго.

В таких случаях прибегают к альтернативным методам.

1. Прямой доступ к SQL-базе

Если обе базы работают на MS SQL Server или PostgreSQL, можно перенести данные на уровне таблиц. Этот метод требует знания SQL и структуры базы , но позволяет гибко управлять процессом.

Пример запроса для переноса справочника Контрагенты:

INSERT INTO [DestinationDB].[dbo].[_Reference83] -- Справочник.Контрагенты

SELECT * FROM [SourceDB].[dbo].[_Reference83]

WHERE NOT EXISTS (

SELECT 1 FROM [DestinationDB].[dbo].[_Reference83] AS dest

WHERE dest._IDRRef = [SourceDB].[dbo].[_Reference83]._IDRRef

)

⚠️ Опасность метода: при прямом копировании таблиц можно нарушить целостность данных, если не учесть связи между объектами. Рекомендуется использовать только для переноса справочников без ссылок на другие объекты.

2. Использование внешних ETL-инструментов

Программы вроде SQL Server Integration Services (SSIS), Talend или Pentaho позволяют настраивать сложные сценарии переноса данных. Преимущества:

  • 🔧 Гибкая настройка преобразований (например, можно изменить формат даты или склеить два поля в одно).
  • 📈 Поддержка больших объемов данных (миллионы записей).
  • 🔄 Возможность автоматизации (например, еженедельное обновление данных).

Недостаток: высокая сложность настройки и необходимость привлечения специалиста по ETL.

3. Разработка индивидуального решения на 1C:EDT

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

Пример кода для выборочного переноса документов:

Процедура ПеренестиДокументы()

// Устанавливаем соединение с базой-источником

Источник = Новые COMОбъект("V83.COMConnector").Connect("File=C:\Base1");

Приемник = Новые COMОбъект("V83.COMConnector").Connect("File=C:\Base2");

// Выгружаем документы "Поступление товаров" за 2023 год

Запрос = Новый Запрос;

Запрос.Текст = "ВЫБРАТЬ ССЫЛКУ КАК Документ

ИЗ Документ.ПоступлениеТоваров

ГДЕ Документ.Дата МЕЖДУ &НачалоИ &Конец";

Запрос.УстановитьПараметр("Начало", '20230101');

Запрос.УстановитьПараметр("Конец", '20231231');

Результат = Источник.ВыполнитьЗапрос(Запрос.Текст);

// Переносим документы в базу-приемник

Пока Результат.Следующий() Цикл

Документ = Результат.Документ.ПолучитьОбъект();

НовыйДокумент = Приемник.СоздатьДокумент("ПоступлениеТоваров");

НовыйДокумент.Заполнить(Документ);

НовыйДокумент.Записать();

КонецЦикла;

КонецПроцедуры

⚠️ Внимание: При использовании COM-соединения или прямого доступа к SQL есть риск нарушить лицензионное соглашение . Перед применением таких методов уточните их допустимость у вашего партнера или в лицензионном договоре.

8. Часто задаваемые вопросы (FAQ)

Можно ли объединить базы разных версий 1С (например, 8.3.12 и 8.3.18)?

Да, но перед обменом нужно обновить более старую базу до актуальной версии платформы. Для этого:

  1. Сделайте резервную копию старой базы.
  2. Установите новую версию платформы 1С:Предприятие.
  3. Обновите конфигурацию через Конфигуратор → Администрирование → Обновление конфигурации.
  4. После обновления проверьте работоспособность базы и только затем приступайте к обмену.

Если обновление невозможно (например, из-за несовместимости конфигураций), используйте промежуточный формат выгрузки, например, Excel или JSON.

Что делать, если после объединения базы стали работать очень медленно?

Это типичная проблема при значительном увеличении объема данных. Попробуйте следующие шаги:

  • 🔹 Выполните Тестирование и исправление базы через конфигуратор (Администрирование → Тестирование и исправление).
  • 🔹 Пересчитайте индексы таблиц (для SQL-версий).
  • 🔹 Оптимизируйте запросы в отчетах — добавьте индексы на часто используемые поля.
  • 🔹 Если база файловая, разбейте ее на части или перейдите на клиент-серверный вариант.

Если тормоза критичные, рассмотрите вариант архивирования старых данных (перенос документов старше 3–5 лет в отдельную базу).

Как перенести только остатки, а не всю историю?

Для этого используйте механизм начальных остатков:

  1. В базе-источнике сформируйте отчет "Оборотно-сальдовая ведомость" на дату, с которой хотите начать ведение учета в новой базе.
  2. Экспортируйте остатки в Excel или XML.
  3. В базе-приемнике создайте документ "Ввод начальных остатков" и загрузите данные.

Важно: после ввода остатков проверьте их корректность через отчет "Анализ счетов".

Можно ли объединить базы 1С:Бухгалтерия и 1С:Управление торговлей?

Да, но это сложная задача из-за разной структуры конфигураций. Варианты решения:

  • 🔹 Используйте "Конвертацию данных" с предварительной настройкой правил соответствия объектов.
  • 🔹 Переносите данные выборочно: например, из УТ берите документы "Реализация" и "Поступление", а из Бухгалтерии — план счетов и проводки.
  • 🔹 Настройте регулярный обмен между базами (через РИБ или КД 3.0