При использовании синхронизации данных между конфигурациями «Управление торговлей» (УТ 11) и «Бухгалтерия предприятия» (БП 3.0) через универсальный формат (EnterpriseData) специалисты часто сталкиваются с проблемой появления «битых» ссылок. В базе-приемнике вместо наименований контрагентов, номенклатуры или складов отображается надпись «Объект не найден» с длинным идентификатором (GUID). Рассмотрим подробно, почему это происходит и как исправить ситуацию, не прибегая к радикальному пересозданию обмена.
Проанализируем механику процесса. В современных редакциях 1С обмен через универсальный формат работает по принципу регистрации изменений. Если в документе (например, «Реализация товаров и услуг») задействован справочник, система должна передать не только данные самого документа, но и данные всех связанных объектов. Однако в настройках синхронизации часто устанавливается режим «Выгружать справочники по мере необходимости» (или «Только используемые в документах»).
Выясним причину сбоя: если объект справочника (например, «Договор контрагента») уже был когда-то передан в БП, а затем в УТ его изменили или перевыгрузили документ без регистрации самого справочника, БП может получить только ссылку на объект (его УИД), но не его реквизиты. Если в базе-приемнике по какой-то причине запись об этом УИД отсутствует или была удалена, система создаст «пустую» ссылку. Разберем по шагам, как это лечится.
Самый простой, но «тяжелый» для системы способ — это изменение политики выгрузки нормативно-справочной информации (НСИ). В настройках синхронизации данных со стороны УправлениеТорговлей выполним следующие действия:
Важный нюанс: установив этот флаг, мы заставим систему при следующем сеансе обмена проанализировать абсолютно все справочники. Если база большая (сотни тысяч объектов), это может привести к зависанию на этапе «Анализ данных». Поэтому рассмотрим более точечный метод.
Чтобы не перегружать обмен, проанализируем ситуацию и зарегистрируем к выгрузке только те типы объектов, которые отображаются как «Объект не найден». Для этого воспользуемся встроенным инструментом РегистрацияИзмененийДляОбмена.
Рассмотрим алгоритм действий:
При получении полного пакета данных по конкретному УИД, база БухгалтерияПредприятия автоматически «наполнит» пустую ссылку недостающими реквизитами (наименование, ИНН, КПП и т.д.), и надпись «Объект не найден» исчезнет.
Иногда пользователи жалуются, что даже после регистрации объекта ссылка не восстанавливается. Разберем, почему так происходит. В обмене через универсальный формат сопоставление объектов хранится в регистре сведений СоответствияОбъектовИнформационныхБаз. Если в этом регистре возникла коллизия или объект был сопоставлен некорректно, система может игнорировать входящие данные.
Проанализируем также механизм «заглушек». Если в БухгалтерияПредприятия включен фоновый мониторинг или загрузка данных в несколько потоков, объект может быть заблокирован в момент обновления. Убедимся, что в Журнале регистрации отсутствуют ошибки типа «Объект заблокирован» или «Нарушение прав доступа» при загрузке данных в БП.
Если при попытке обмена система «зависает» на этапе анализа, как упоминалось в сообщении №14, это означает, что объем зарегистрированных изменений слишком велик для оперативной памяти сервера или настроек СУБД. Выясним, как ускорить этот процесс:
Автор темы предлагал изменить код узла обмена, чтобы создать синхронизацию «с чистого листа». Категорически не рекомендуем делать это на «живых» базах без предварительной подготовки. Рассмотрим последствия:
Вместо пересоздания лучше воспользоваться стандартной очисткой регистрации:
// Пример программной очистки регистрации (использовать в консоли кода)
ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена, Тип("СправочникСсылка.Номенклатура"));
Подводя итог, можно сказать, что пересоздавать обмен — это крайняя мера, которая принесет больше проблем в виде дублей, чем пользы. Для исправления ситуации «Объект не найден» достаточно:
БухгалтерияПредприятия не стоят фильтры на дату запрета загрузки, которые могут блокировать обновление старых справочников.Такой подход позволит сохранить целостность связей между базами и восстановить корректное отображение данных без риска замусорить справочники дубликатами.