Как объединить две базы 1С:Бухгалтерия 3.0 в одну: пошаговое руководство

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

На практике программистам и системным администраторам нередко поступает задача: слить две типовые базы 1С:Бухгалтерия 3.0 в одну. Например, есть два разных ООО с одинаковой системой налогообложения, которые исторически велись в разных информационных базах, а теперь руководство хочет вести учет в одной базе с двумя организациями. Главная сложность в таком процессе — пересекающиеся справочники (контрагенты, номенклатура, статьи затрат). Перенос "в лоб" по внутренним идентификаторам (GUID) неминуемо приведет к задвоению нормативно-справочной информации.

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

Шаг 1. Подготовка баз и свертка исторических данных

Часто возникает вопрос: переносить всю историю документов за прошлые годы или только остатки? Переносить обороты со слиянием аналитики за 5–7 лет — задача бессмысленная и беспощадная. Это многократно увеличивает время загрузки, раздувает объем итоговой базы и повышает риск возникновения битых ссылок.

Разберем оптимальный алгоритм подготовки:

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

Шаг 2. Выбор инструмента для переноса данных

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

Вариант 1: Конвертация данных 2.0 (КД 2)

Это классический и самый гибкий путь для программиста. Так как конфигурации баз идентичны, правила обмена (ПКО и ПВД) создаются в Конвертация Данных 2 автоматически. Нам останется лишь подправить алгоритмы поиска.

Что нужно сделать в КД 2:

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

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


// Обработчик "После загрузки объекта" в КД 2
Если ЗначениеЗаполнено(Объект.Номер) Тогда
    // Допустим, старый префикс "БП", меняем на "ФЛ"
    ТекущийНомер = Объект.Номер;
    Объект.Номер = "ФЛ" + Сред(ТекущийНомер, 3);
КонецЕсли;

Вариант 2: Доработанная выгрузка-загрузка XML

Типовая обработка ВыгрузкаЗагрузкаДанныхXML8х.epf переносит данные строго по внутренним идентификаторам. Это нам не подходит. Однако в сообществе 1С существует множество доработанных версий этой обработки с режимом "Поиск по реквизитам (без учета УИД)". Этот вариант позволяет выполнить слияние без написания правил обмена вообще, объекты корректно схлопнутся по кодам и наименованиям.

Вариант 3: Универсальный формат обмена (EnterpriseData)

Стандартная синхронизация через "Другую программу". Несмотря на мифы о том, что она ищет только по GUID, при первой синхронизации (когда объекты еще не сопоставлены в регистрах) поиск идет по ключевым полям, зашитым в модуле менеджера обмена (например, контрагенты отлично сопоставляются по ИНН). Но использовать этот метод для разового масштабного слияния исторических баз сложно из-за недостатка контроля над правилами.

Шаг 3. Перенос независимых регистров сведений и настроек

При переносе документов их движения (подчиненные регистры) перенесутся автоматически. Но в 1С:Бухгалтерии есть критически важные независимые регистры сведений, которые не тянутся по ссылкам. Их необходимо перенести отдельно (написав правила в КД 2 или выгрузив обработкой XML).

Рассмотрим список регистров, о которых нельзя забывать:

  1. Кадровые и физические лица: ФИОФизическихЛиц, ГражданствоФизическихЛиц, ДокументыФизическихЛиц, ФизическиеЛицаДокументов, ТекущиеКадровыеДанныеСотрудников.
  2. Учетная политика и налоги: УчетнаяПолитика, УчетнаяПолитикаПоНДФЛ, НастройкиУчетаНалогаНаПрибыль, НастройкиУчетаНДС, НастройкиУчетаСтраховыхВзносов, НастройкиУчетаЗарплаты, НастройкиСистемыНалогообложения.
  3. Файлы и статусы: СведенияОФайлах, ДвоичныеДанныеФайлов, СтатусыДокументов.
  4. Регистрации: ИсторияРегистрацийВНалоговомОргане, ИсторияРегистрацийВОрганеПФР.
  5. Дополнительно: ОтветственныеЛицаОрганизаций, ПараметрыНДСПоДоговорам, СпособыОтраженияРасходовПоАмортизации.

Важное предупреждение: настройки 1С-ЭДО, ДиректБанка (обмен с банками), а также справочник Пользователи переносить автоматически крайне не рекомендуется! Привязки сертификатов жестко зависят от идентификаторов информационной базы. Безопаснее перенастроить маршруты ЭДО и профили пользователей в объединенной базе вручную.

Шаг 4. Постобработка: поиск и удаление дублей

Даже при самых идеальных правилах конвертации после слияния могут образоваться задвоенные элементы (например, контрагент был заведен с опечаткой в ИНН или без него). Многие опасаются ручного "обезьяньего труда", но в современных релизах платформы этот процесс отлично автоматизирован.

Используем встроенный типовой инструмент платформы:

  1. Перейдем в раздел Администрирование -> Обслуживание.
  2. Откроем пункт Корректировка данных и выберем Поиск и удаление дублей.
  3. Выберем нужный справочник (например, Контрагенты) и зададим правило поиска (например, совпадение по ИНН или похожему наименованию).
  4. Система найдет все дубликаты. Выделяем правильный элемент как "Оригинал".
  5. Нажимаем кнопку замены. Программа автоматически заменит ссылки на дубли во всех документах и регистрах базы на оригинал, а копии пометит на удаление.

Подводя итоги, выясним, что слияние баз — это комплексная задача, успех которой на 80% зависит от подготовки. Выполните предварительную свертку, корректно настройте поля поиска в Конвертации Данных (или используйте выгрузку XML по реквизитам), не забудьте про независимые настройки учетной политики и используйте типовой поиск дублей для финальной "уборки". При таком подходе процесс пройдет с минимальными трудозатратами.

← На главную