Как объединить три базы «1С:Розница 2.3» в одну без вреда для синхронизации с «1С:Бухгалтерия 3.0»?

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

Ситуация, когда несколько торговых точек работали в разных базах «1С:Розница», а затем объединились в один физический магазин, встречается довольно часто. Основная сложность здесь заключается не столько в техническом переносе данных, сколько в сохранении корректной синхронизации с «1С:Бухгалтерия 3.0» (БП). Если просто «слить» данные, мы рискуем получить гору дублей справочников и сломать уже настроенные обмены. Разберем детально, как выполнить эту процедуру правильно.

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

Проанализируем техническую сторону вопроса. Каждая база 1С имеет свои уникальные идентификаторы объектов — GUID (Global Unique Identifier). Даже если в двух разных базах у вас создана организация «Альфа» с одинаковым ИНН, их внутренние ссылки (GUID) будут разными. При обычном использовании обработки Выгрузка и загрузка данных XML объекты переносятся «как есть», что неизбежно приводит к затроению предопределенных элементов, складов, единиц измерения и касс ККМ в объединенной базе.

Для «1С:Бухгалтерии» эта проблема критична. Синхронизация между Розницей и БП опирается на Регистр сведений — Соответствия объектов информационных баз. Если в новой базе Розницы идентификатор товара или склада изменится, БП создаст новый объект или выдаст ошибку сопоставления, что приведет к хаосу в бухгалтерском учете.

Шаг 1: Подготовительный этап и выбор «Золотого образа»

Прежде чем приступать к объединению, выберем одну базу в качестве основной (примем ее за «Золотой образ»). Логичнее всего выбрать ту базу, где:

  1. Самый большой объем справочников (номенклатура, контрагенты).
  2. Наиболее актуально настроена синхронизация с «1С:Бухгалтерией».
  3. Меньше всего ошибок в учете.

Важно: Перед любыми манипуляциями обязательно создаем полные архивные копии всех трех баз Розницы и базы Бухгалтерии!

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

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

Посмотрим на использование обработки Универсальный обмен данными в формате XML. Вместо того чтобы переносить всё подряд, лучше написать простые правила в конфигурации Конвертация данных 2.1. В правилах обмена (ПКО) для номенклатуры и контрагентов следует установить поиск не по внутреннему идентификатору, а по ключевым полям: Артикул или Код для товаров, ИНН/КПП для организаций и контрагентов.

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

Шаг 3: Технология переноса остатков

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

Способ А: Использование документа «Оприходование товаров».
В базах-донорах мы проводим инвентаризацию и свертку. Полученные остатки выгружаем в основную базу документом Оприходование товаров. Плюс: Это стандартный документ, который корректно заполнит регистры накопления по остаткам и ценам. Минус: Этот документ по умолчанию захочет выгрузиться в «1С:Бухгалтерию» при синхронизации. Поскольку в БП эти товары уже числятся (они попали туда ранее через отчеты о продажах или поступления), повторное оприходование создаст «виртуальные» излишки и завысит налог.

Как избежать дублей в БП: Перед проведением документов оприходования в Рознице необходимо временно зайти в Настройки синхронизации данных -> Состав отправляемых данных и вручную отменить регистрацию этих документов для обмена. Тогда остатки в Рознице появятся, а в Бухгалтерию не уйдут.

Способ Б: Корректировка записей регистров.
Этот метод более «чистый» с точки зрения программиста. Мы переносим остатки напрямую в регистры (Товары на складах, Товары организаций, Продажи) через документ Корректировка записей регистров.


// Пример логики для переноса остатка программно (упрощенно)
НаборЗаписей = РегистрыНакопления.ТоварыНаСкладах.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(ДокументСсылка);
НоваяЗапись = НаборЗаписей.Добавить();
НоваяЗапись.Номенклатура = СсылкаНаТовар;
НоваяЗапись.Склад = СсылкаНаСклад;
НоваяЗапись.Количество = ОстатокИзБазыДонора;
НаборЗаписей.Записать();

Преимущество этого метода в том, что Корректировка записей регистров обычно не выгружается в БП при типовом обмене, что избавляет нас от лишних телодвижений по блокировке синхронизации.

Шаг 4: Настройка синхронизации и сопоставление объектов

После того как все данные собраны в одной базе Розницы, нам нужно «подружить» ее с существующей базой БП. Рассмотрим, как не допустить появления новых объектов в бухгалтерии:

  1. В «1С:Бухгалтерии» открываем Параметры синхронизации данных.
  2. Находим Регистр сведений — Соответствия объектов информационных баз.
  3. Нам нужно убедиться, что для новых складов и новых касс ККМ, пришедших из баз-доноров, созданы записи сопоставления.
  4. Если в БП учет ведется «сводно по номенклатуре», то в настройках обмена со стороны Розницы проверьте, что флаг Выгружать аналитику по номенклатуре снят или настроен согласно текущим требованиям.

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

Шаг 5: Проверка после объединения

Проанализируем ситуацию после завершения всех работ. Что нужно проверить обязательно:

Использование свертки базы (этап создания начальных остатков узла), как упоминалось в дискуссии, — это интересный лайфхак. Свертка автоматически создает документы ввода остатков, которые можно выгрузить через XML. Однако помните, что записи регистров накопления через Выгрузка и загрузка данных XML переносятся только вместе с документами-регистраторами. Поэтому сначала переносим справочники, «лечим» дубли, и только потом переносим документы ввода остатков.

Таким образом, объединение баз — это процесс, требующий внимательности к деталям идентификации объектов. Главный секрет успеха: сначала сопоставить справочники, затем перенести остатки и только в последнюю очередь запускать синхронизацию с бухгалтерской базой, предварительно проверив регистрацию документов к обмену.

← На главную