Как исправить ошибки «Объект не найден» при обмене УТ 11 и БП 3.0 через универсальный формат?

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

При использовании синхронизации данных между конфигурациями «Управление торговлей» (УТ 11) и «Бухгалтерия предприятия» (БП 3.0) через универсальный формат (EnterpriseData) специалисты часто сталкиваются с проблемой появления «битых» ссылок. В базе-приемнике вместо наименований контрагентов, номенклатуры или складов отображается надпись «Объект не найден» с длинным идентификатором (GUID). Рассмотрим подробно, почему это происходит и как исправить ситуацию, не прибегая к радикальному пересозданию обмена.

Почему возникают битые ссылки в EnterpriseData

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

Выясним причину сбоя: если объект справочника (например, «Договор контрагента») уже был когда-то передан в БП, а затем в УТ его изменили или перевыгрузили документ без регистрации самого справочника, БП может получить только ссылку на объект (его УИД), но не его реквизиты. Если в базе-приемнике по какой-то причине запись об этом УИД отсутствует или была удалена, система создаст «пустую» ссылку. Разберем по шагам, как это лечится.

Способ 1. Изменение настроек состава выгрузки НСИ

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

  1. Перейдем в раздел Администрирование — Синхронизация данных — Настройки синхронизации.
  2. Откроем параметры нашего обмена и найдем пункт «Правила отправки данных».
  3. Изменим значение в поле «НСИ» (Справочники) с «Выгружать по мере необходимости» на «Выгружать всю нормативно-справочную информацию».

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

Способ 2. Ручная регистрация справочников через обработку

Чтобы не перегружать обмен, проанализируем ситуацию и зарегистрируем к выгрузке только те типы объектов, которые отображаются как «Объект не найден». Для этого воспользуемся встроенным инструментом РегистрацияИзмененийДляОбмена.

Рассмотрим алгоритм действий:

  1. Нажмем на кнопку «Состав отправляемых данных» (иконка с монитором в окне синхронизации).
  2. В открывшемся дереве объектов найдем справочники, в которых есть битые ссылки (например, «Контрагенты», «Номенклатура»).
  3. Нажмем правой кнопкой мыши на нужном справочнике и выберем «Зарегистрировать все объекты выбранного типа».
  4. Выполним синхронизацию.

При получении полного пакета данных по конкретному УИД, база БухгалтерияПредприятия автоматически «наполнит» пустую ссылку недостающими реквизитами (наименование, ИНН, КПП и т.д.), и надпись «Объект не найден» исчезнет.

Почему повторная выгрузка может не помогать (Особенности EnterpriseData)

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

Проанализируем также механизм «заглушек». Если в БухгалтерияПредприятия включен фоновый мониторинг или загрузка данных в несколько потоков, объект может быть заблокирован в момент обновления. Убедимся, что в Журнале регистрации отсутствуют ошибки типа «Объект заблокирован» или «Нарушение прав доступа» при загрузке данных в БП.

Проблема длительного анализа данных (зависание на 10 часов)

Если при попытке обмена система «зависает» на этапе анализа, как упоминалось в сообщении №14, это означает, что объем зарегистрированных изменений слишком велик для оперативной памяти сервера или настроек СУБД. Выясним, как ускорить этот процесс:

  1. Порционная выгрузка: вместо регистрации всех 144 000 объектов, зарегистрируем сначала одну группу справочников (например, только «Склады» и «Физические лица»). После успешного обмена очистим регистрацию и перейдем к «Номенклатуре».
  2. Отключение автоматического сопоставления: если объектов много, 1С пытается сопоставить их по полям «Наименование» или «Артикул», что требует огромного количества запросов. Если вы уверены, что УИДы объектов совпадают (или сопоставление уже настроено), можно попробовать выполнить выгрузку без интерактивного помощника сопоставления.

Чем чревато изменение кода плана обмена

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

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


// Пример программной очистки регистрации (использовать в консоли кода)
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, Тип("СправочникСсылка.Номенклатура"));

Итоги и рекомендации

Подводя итог, можно сказать, что пересоздавать обмен — это крайняя мера, которая принесет больше проблем в виде дублей, чем пользы. Для исправления ситуации «Объект не найден» достаточно:

  1. Проверить настройки правил отправки (режим выгрузки справочников).
  2. Разово зарегистрировать проблемные справочники через «Состав отправляемых данных».
  3. Если объем данных огромен — выполнять выгрузку частями, контролируя Журнал регистрации в базе-приемнике.
  4. Убедиться, что в БухгалтерияПредприятия не стоят фильтры на дату запрета загрузки, которые могут блокировать обновление старых справочников.

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

← На главную