Как настроить обмен и сопоставить новую организацию между УТ 10.3 и БП 3.0 без дублирования данных?

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

Синхронизация данных между конфигурациями разного поколения — классической «Управление торговлей», редакция 10.3 (на обычных формах) и современной «Бухгалтерия предприятия», редакция 3.0 (на управляемых формах и БСП) — часто преподносит сюрпризы администраторам и программистам. Типичная ситуация: в обеих базах успешно велся учет по нескольким организациям, но возникла необходимость добавить новое юридическое лицо. Его создали вручную в обеих системах, начали отражать документы, но при попытке настроить обмен возникли трудности: либо программа не дает изменить настройки обмена, либо документы не переносятся, либо в базе-приемнике создается дубликат организации.

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

Почему возникает блокировка настроек в УТ 10.3 и как ее обойти?

При попытке добавить новую организацию в состав отправляемых данных в настройках обмена со стороны УТ 10.3 пользователи часто сталкиваются с системным предупреждением: «Настройка обмена данными не может быть изменена. Существуют зарегистрированные изменения данных для обмена. Выполните обмен данными два раза и повторите попытку».

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

Рассмотрим надежный ручной способ обхода этой блокировки:

  1. Откроем специализированную обработку РегистрацияИзмененийДляОбменаДанными (в УТ 10.3 она доступна через меню «Сервис» — «Прочие обмены» или может быть запущена как внешняя обработка).
  2. В поле выбора узла укажем наш конкретный узел обмена с БухгалтерияПредприятия30.
  3. Проанализируем дерево зарегистрированных объектов. Если там висят зарегистрированные изменения по документам или справочникам, их необходимо временно очистить. Для этого выделим корневой узел дерева регистрации и выберем команду «Отменить регистрацию всех объектов».
  4. После полной очистки регистрации зайдем в настройки обмена данными в УТ 10.3. Теперь система позволит беспрепятственно изменить настройки фильтрации: мы сможем добавить нашу новую организацию в список выгружаемых.
  5. Сохраним настройки обмена.
  6. Вернемся в обработку регистрации изменений и принудительно зарегистрируем к обмену только те документы по новой организации, которые требуется перенести в БП 3.0 за прошедший период.

Причина появления дублей организаций в БП 3.0

Когда новая организация добавлена в обмен, при первой же синхронизации в БП 3.0 часто создается её дубль, несмотря на то, что карточка организации с точно таким же наименованием и ИНН уже существует в бухгалтерии. Почему так происходит?

По умолчанию типовые правила обмена, разработанные на базе «1С:Конвертация данных 2.1», выполняют поиск предопределенных справочников (к которым относится и СправочникСсылка.Организации) по уникальному идентификатору — GUID (UUID). Поскольку организация в УТ 10.3 и БП 3.0 создавалась вручную, их внутренние идентификаторы в СУБД гарантированно различаются. Система «не понимает», что это один и тот же объект, и создает новую карточку с GUID, пришедшим из УТ 10.3.

Для исправления этой ситуации существует несколько эффективных методик. Рассмотрим их по порядку.

Решение 1. Использование обработки «Поиск и замена дублей» в БП 3.0

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

Разберем этот процесс по шагам:

  1. Выполним выгрузку из УТ 10.3 и загрузку в БП 3.0. В справочнике Организации базы-приемника появится дубль нашей новой организации. Все новые документы из торговли запишутся на этот дубль.
  2. В БП 3.0 перейдем в раздел «Администрирование» — «Обслуживание» — «Корректировка данных» и откроем обработку «Поиск и замена дублей».
  3. В поле «Искать в» выберем Организации.
  4. В качестве критерия сравнения укажем совпадение по ИНН.
  5. В появившемся списке найденных дубликатов система покажет две организации. Нам нужно вручную назначить Оригиналом ту организацию, которая была создана в БП 3.0 изначально (по которой велся учет, закрывались периоды и сдавалась отчетность). Организацию, созданную обменом, пометим как Дубль.
  6. Нажмем кнопку «Заменить дубли».

Важный нюанс: Платформа не просто перепишет ссылки во всех документах и регистрах с дубля на оригинал. Она также автоматически скорректирует записи в служебном регистре сведений РегистрСведений.СоответствияОбъектовИнформационныхБаз. Запись, связывающая GUID организации из УТ 10.3 с организацией в БП 3.0, будет перезаписана на верную ссылку (наш оригинал). При всех последующих обменах документы из торговли будут сразу находить правильную организацию в БП 3.0, а дубли перестанут создаваться.

Решение 2. Настройка поиска по ИНН в правилах обмена

Если по каким-то причинам использование замены дублей нежелательно или требуется превентивно настроить поиск так, чтобы сопоставление сразу шло по реквизитам организации, нам придется скорректировать правила конвертации объектов (ПКО).

Проанализируем алгоритм изменения правил обмена в «1С:Конвертация данных 2.1»:

  1. Выгрузим действующие правила обмена из нашей настройки синхронизации. Обычно они встроены в саму конфигурацию, но их можно извлечь через форму настройки синхронизации данных.
  2. Загрузим эти правила в базу Конвертация данных 2.1.
  3. Найдем правило конвертации объектов (ПКО) для справочника Организации.
  4. В настройках ПКО перейдем на вкладку «Настройки поиска». По умолчанию там может стоять только поиск по уникальному идентификатору. Нам необходимо активировать опцию «Продолжить поиск по полям поиска, если поиск по идентификатору не дал результатов».
  5. В списке реквизитов поиска отметим флажками ИНН и КПП (для юридических лиц). Для физических лиц (ИП) достаточно оставить только ИНН. У остальных реквизитов снимем признаки участия в поиске.
  6. Сохраним и выгрузим измененные правила в XML-файл.
  7. Загрузим новые правила в настройки синхронизации в УТ 10.3 и БП 3.0.

Теперь при выгрузке документов система сначала попытается найти организацию по GUID. Если поиск не увенчается успехом (как в случае с ручным созданием), сработает второй этап поиска — по связке ИНН + КПП. Организация сопоставится корректно, и дубль создан не будет.

Решение 3. Интерактивное сопоставление при первом обмене

Современные версии БП 3.0 поддерживают механизм интерактивного сопоставления данных при импорте. Однако пользователи часто жалуются, что при запуске синхронизации они не видят новую организацию в списке сопоставления. Выясним, почему это происходит.

Чтобы объект стал доступен для ручного (интерактивного) сопоставления в БП 3.0, он обязательно должен присутствовать в пришедшем XML-пакете данных из УТ 10.3. Если мы просто добавили организацию в настройки в УТ, но по ней не зарегистрировано ни одного изменения и ни одного документа к отправке, сам справочник Организации в файл выгрузки не попадет. БП 3.0 не сможет сопоставить то, чего физически нет в файле обмена.

Правильный алгоритм действий выглядит так:

  1. В УТ 10.3 через обработку регистрации изменений принудительно зарегистрируем к обмену элемент справочника Организации (нашу новую фирму).
  2. Выполним выгрузку данных из УТ 10.3 в файл (или канал связи).
  3. В БП 3.0 запустим синхронизацию с помощью команды «Синхронизация с дополнительными параметрами».
  4. На этапе анализа данных система обнаружит новые объекты и выведет окно сопоставления. Теперь в списке появится наша организация. Мы сможем вручную указать, какому объекту в БП 3.0 соответствует пришедший объект из УТ 10.3.

Решение 4. Ручная запись в регистр соответствия объектов

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

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

Для гарантированного и безошибочного создания такой связи мы можем воспользоваться обработкой «Групповая обработка справочников и документов» или написать короткий код в консоли кода БП 3.0. Рассмотрим пример программного заполнения связи:


// Определим параметры связи
УзелОбмена = ПланыОбмена.ОбменУправлениеТорговлейБухгалтерияПредприятия30.НайтиПоКоду("УТ");
ОрганизацияБП = Справочники.Организации.НайтиПоРеквизиту("ИНН", "7701020304");
GUID_УТ_Строка = "ab150050-56c0-0008-11e7-f9b1a3da7d94"; // GUID организации из базы УТ 10.3

Если НЕ ОрганизацияБП.Пустая() И НЕ УзелОбмена.Пустая() Тогда
    МенеджерЗаписи = РегистрыSведений.СоответствияОбъектовИнформационныхБаз.СоздатьМенеджерЗаписи();
    МенеджерЗаписи.УзелИнформационнойБазы = УзелОбмена;
    МенеджерЗаписи.СобственныйОбъект = ОрганизацияБП;
    МенеджерЗаписи.УникальныйИдентификаторИсточника = GUID_УТ_Строка;
    МенеджерЗаписи.УникальныйИдентификаторПриемника = Строка(ОрганизацияБП.УникальныйИдентификатор());
    МенеджерЗаписи.ТипИсточника = "СправочникСсылка.Организации";
    МенеджерЗаписи.ТипПриемника = "СправочникСсылка.Организации";
    
    Попытка
        МенеджерЗаписи.Записать();
        Сообщить("Связь успешно установлена!");
    Исключение
        Сообщить("Ошибка записи соответствия: " + ОписаниеОшибки());
    КонецПопытки;
КонецЕсли;

После выполнения этого кода регистр соответствий зафиксирует жесткую связь между объектами. При первой же последующей синхронизации документы по новой организации из УТ 10.3 беспрепятственно загрузятся в БП 3.0 на существующую карточку организации.

Резюме

Мы проанализировали причины сбоев при интеграции новой организации в существующий обмен между УТ 10.3 и БП 3.0 и разобрали 4 практических метода устранения проблемы. Наиболее предпочтительным и безопасным для пользователей является Способ №1 (Поиск и замена дублей), так как он не требует изменения конфигурации и написания кода, выполняя при этом все необходимые системные привязки в автоматическом режиме. Если же требуется системный подход для предотвращения подобных ситуаций в будущем, рекомендуется скорректировать правила конвертации, добавив альтернативный поиск по ИНН и КПП.

← На главную