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

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

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

В этой статье мы подробно разберем причины возникновения этой ошибки, выясним, почему «Учетная политика» принципиально не может быть перенесена автоматически, а также рассмотрим пошаговые инструкции по предотвращению дублирования и исправлению ситуации, если обмен уже прошел некорректно.

Почему происходит дублирование организации при синхронизации?

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

Давайте проанализируем, почему автоматический поиск по полям ИНН/КПП срабатывает далеко не всегда:

  1. Разница в архитектуре обмена: «Управление торговлей 10.3» построена на обычных формах и использует старый механизм обмена на базе XML-правил конвертации (технология «Конвертация данных 2.0»). В свою очередь, «Бухгалтерия предприятия 3.0» функционирует на управляемых формах и современной Библиотеке стандартных подсистем (БСП), поддерживающей формат EnterpriseData.
  2. Автоматический режим по умолчанию: Если первый запуск синхронизации производится в автоматическом режиме «в один клик», система пропускает этап интерактивного сопоставления. Не найдя точного совпадения по GUID, правила обмена создают новый элемент в справочнике Организации.

В результате создается дубликат организации, к которому привязываются все импортируемые документы. Поскольку у этой новой карточки организации отсутствует привязанная запись в регистре сведений «Учетная политика», документы не могут быть проведены по бухгалтерскому и налоговому учету.

Почему «Учетная политика» не переносится из УТ 10.3?

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

Следовательно, учетная политика всегда должна заполняться строго вручную непосредственно в базе «1С:Бухгалтерия предприятия».

Пошаговая инструкция: как правильно настроить сопоставление при первом обмене

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

Шаг 1. Подготовка данных в базах-источниках
Перед запуском обмена откройте справочник Организации в УТ 10.3 и БП 3.0. Убедитесь, что ключевые реквизиты заполнены абсолютно идентично. Особое внимание уделите следующим полям:

В БП 3.0 для этой организации уже должна быть создана и заполнена актуальная учетная политика.

Шаг 2. Интерактивный запуск обмена в БП 3.0
При выполнении первой синхронизации в интерфейсе БП 3.0 не нажимайте кнопку быстрого обмена. Запустите процесс настройки. На этапе анализа полученных данных программа приостановит автоматическое выполнение и предложит проверить сопоставление объектов.

Шаг 3. Работа с окном «Сопоставление данных»
В открывшемся окне сопоставления найдите строку со справочником «Организации». Вы увидите предупреждение о том, что система планирует создать 1 новый элемент (это и есть дубликат, пришедший из УТ).

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

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

Что делать, если дубликат организации уже создался?

Если обмен уже завершен, документы загружены и привязаны к «неправильной» организации без учетной политики, переделывать базы заново не требуется. Мы можем исправить эту ситуацию с помощью штатных инструментов платформы.

Шаг 1. Поиск и удаление дублей

Воспользуемся встроенной обработкой для слияния элементов справочника:

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

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

Шаг 2. Корректировка регистров сопоставления объектов (Критически важно!)

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

В зависимости от версии правил обмена и используемых механизмов, связь может храниться в двух регистрах. Рассмотрим их детальнее:

  1. Регистр сведений «Соответствия объектов информационных баз»
    Используется в классических обменах. Чтобы открыть его напрямую, перейдите в меню «Функции для технического специалиста» (ранее — «Все функции»), найдите указанный регистр сведений. Отфильтруйте записи по типу объекта «Организация» и вашему узлу обмена. Проверьте, чтобы запись соответствия указывала на GUID правильной (оставшейся в базе) организации. Если запись ссылается на удаленный объект (отображается как «<Объект не найден...>»), ее необходимо вручную отредактировать или удалить, чтобы при следующем обмене сработало интерактивное сопоставление.
  2. Регистр сведений «Публичные идентификаторы синхронизируемых объектов»
    Используется в современных обменах на базе БСП. Здесь хранится жесткая привязка уникальных идентификаторов. Если запись в регистре ссылается на удаленный элемент (битая ссылка), удалите эту строку. При повторной синхронизации программа вновь выдаст интерактивное диалоговое окно сопоставления, где вы сможете связать объекты правильно.

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


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

Применение этого алгоритма позволит гарантированно очистить служебные таблицы от следов некорректно удаленного дубликата организации.

Резюме и рекомендации

Для обеспечения стабильной работы обмена данными между УТ 10.3 и БП 3.0 всегда придерживайтесь следующих правил:

← На главную