В практике работы разработчиков и администраторов 1С часто возникает задача объединения учета нескольких организаций из разных информационных баз в единую общую базу 1С:Бухгалтерия 3.0. Это позволяет бухгалтерии вести учет в одном окне, сдавать консолидированную отчетность и не переключаться между базами. Посмотрим, какие способы решения существуют, с какими подводными камнями придется столкнуться и как предотвратить задвоение справочников и документов.
Предварительные проверки и подготовка баз к слиянию
Прежде чем приступать к переносу, выполним обязательный комплекс подготовительных работ. Слияние двух баз — это операция высокой степени риска, поэтому крайне важно соблюсти следующие условия:
Проверка версий и релизов конфигураций: обе базы данных должны быть обновлены до одного и того же релиза. Различия в структуре метаданных приведут к ошибкам при загрузке.
Оценка платформенных ограничений: если исходные базы велись в базовых версиях конфигурации, необходимо выполнить их переход на версию ПРОФ или КОРП, так как базовые версии не поддерживают ведение учета по нескольким организациям в одной базе.
Проверка плана счетов и настроек учета: разберем настройки учета в обеих базах. Если в одной базе включен раздельный учет НДС или субконто на счетах учета отличаются, это повлияет на корректность сформированных проводках после переноса.
Включение и настройка префиксов: разберем вопрос уникальности номеров документов. Как только в базе появляется вторая организация, для разделения нумерации обязательно должны быть заданы префиксы организаций. Если документов с одинаковыми номерами избежать не удастся, система заблокирует запись или перепутает нумерацию.
Вариант 1. Использование универсальной выгрузки и загрузки данных XML с последующей обработкой дублей
Рассмотрим самый популярный метод объединения идентичных конфигураций — выгрузку объектов через универсальную обработку Выгрузка и загрузка данных XML.
Этот способ подходит, когда нужно быстро перенести всю историю документов и справочники из приемника в источник без написания конвертаций.
Выполняем выгрузку данных из второй базы с помощью обработки Выгрузка и загрузка данных XML.
Загружаем полученный XML-файл в главную базу данных.
Так как элементы справочников в разных базах создавались независимо и имеют разные уникальные идентификаторы (GUID), после загрузки возникнут дубликаты справочников (Контрагенты, Номенклатура, Физические лица).
Запускаем штатный механизм Поиск и удаление дублей (находится в разделе Администрирование — Обслуживание — Корректировка данных) и объединяем совпадающие позиции по ключевым реквизитам (ИНН/КПП, Наименование, Артикул).
Вариант 2. Создание правил обмена в Конвертации Данных (КД 2.0)
Проанализируем более точный способ переноса — написание правил выгрузки в конфигурации Конвертация Данных 2.0. В отличие от простой XML-загрузки, этот подход позволяет заранее настроить поля поиска и избежать массивного появления дублей.
При составлении правил конвертации объектов (ПКО) обратите внимание на следующие нюансы:
Поля поиска: для справочника Контрагенты установите галочки поиска по ИНН и КПП. Для справочника Номенклатура — по Артикулу или Наименованию.
Перенос документов с движениями: если в базе-источнике присутствуют ручные корректировки проводок, рекомендуется выгружать документы вместе с движениями по регистрам накопления и бухгалтерии. В противном случае после перепроведения документов в новой базе результаты могут измениться.
Дополнительные свойства объектов: при программной загрузке документов 1С:Бухгалтерия 3.0 может потребоваться принудительное заполнение счетов учета. Для этого перед записью загружаемого объекта можно устанавливать свойство в алгоритмах выгрузки/загрузки:
Вариант 3. Объединение баз через механизмы РИБ (Распределенной Информационной Базы)
Интересный альтернативный подход — временно объединить базы через механизм РИБ по организациям или полному обмену. Рассмотрим последовательность действий:
Создаем в будущей центральной базе узлы плана обмена.
Выполняем первичную инициализацию периферийной базы из центральной или связываем действующие базы через узлы обмена.
Выполняем полную регистрацию объектов и производим синхронизацию данных.
Отключаем распределенную информационную базу командой ЦентральныйУзел = Неопределено в режиме 1С:Предприятие или через конфигуратор.
Выполняем поиск и замену дублирующихся элементов справочников.
Главный плюс данного метода — сохранение ссылочной целостности и отсутствие необходимости повторного формирования и закрытия периодов, если структура баз была строго идентичной.
Оптимизация переноса при использовании внешнего программного кода
При написании собственных обработок переноса через COM/OLE соединение для сопоставления объектов одной конфигурации часто требуется быстро определять типы метаданных. Рассчитаем скорость: обращение к метаданным через OLE может сильно замедлять процесс. Проанализируем способ ускорения работы с типами через XMLТипЗнч:
Использование этого метода позволяет ускорить определение типа загружаемого объекта в несколько раз по сравнению со стандартным обращением к ТекЭлементУдал.Метаданные().Имя.
Сравнительный анализ способов объединения
Разберем основные достоинства и недостатки каждого подхода:
Перенос остатков на начало года (Ввод начальных остатков): Самый чистый вариант. Позволяет не тащить старый мусор и ошибки прошлых лет. Минус — теряется детализированная история первичных документов за прошлые периоды.
Загрузка XML + Замена дублей: Быстро в реализации, но требует длительного времени на техническую замену дублей и проверку закрытия месяца.
Правила КД 2.0: Трудоемкий процесс настройки правил (занимает от нескольких часов до пары дней), но дает наилучший результат и минимум ручной работы по разгребанию дублей post-factum.