При выполнении типовой синхронизации между конфигурациями «1С:Управление торговлей» и «1С:Бухгалтерия предприятия» через механизм универсального формата (EnterpriseData) пользователи и администраторы нередко сталкиваются с прерыванием процесса загрузки. В окне помощника интерактивного обмена или журнале регистрации появляется общее сообщение об ошибке сопоставления, которое не содержит конкретной информации о сбойном объекте.
Разберем детально, как выявить истинную причину сбоя с помощью встроенных средств отладки 1С, расшифровать стек вызовов и исправить данные в базах.
При попытке загрузки данных в принимающую базу возникает исключение следующего вида:
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(58)}: Не удалось загрузить данные из "Бухгалтерия предприятия, редакция 3.0" (этап автоматического сопоставления данных).
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
При этом стандартное тестирование и исправление информационных баз или пересоздание настроек синхронизации не дают результата. Связано это с тем, что ошибка происходит в момент десериализации XDTO-пакета конкретного справочника (чаще всего Организации или Контрагенты), когда типовой механизм Библиотеки стандартных подсистем (БСП) не может разобрать структуру контактной информации.
Выделим основные причины возникновения подобного сбоя:
ЗначенияПолей табличной части КонтактнаяИнформация хранит сериализованный XML-документ адреса или телефона. Если структура содержит невалидные символы или устаревший формат КЛАДР/ФИАС, процедура КонтактнаяИнформацияИзXML вызывает исключение.Виды контактной информации (например, включенный флаг «Только российский адрес» при наличии адреса в свободной форме).Поскольку интерактивный обмен данными запускает сопоставление через механизм длительных операций в фоновом задании, обычная точка останова не позволяет перехватить ошибку. Проанализируем процесс локализации сбоя по шагам.
РежимОтладки. Данный параметр отключает асинхронное выполнение через подсистему ДлительныеОперации и заставляет код выполняться в основном пользовательском потоке.F5 и инициируем синхронизацию данных в интерактивном режиме.ОбщийМодуль.УправлениеКонтактнойИнформациейСлужебный со следующим текстом:
{ОбщийМодуль.УправлениеКонтактнойИнформациейСлужебный.Модуль(1930)}: Некорректный формат XML контактной информации, значения полей были очищены.
ВызватьИсключение ТекстОшибки;
ПриКонвертацииДанныхXDTO модуля ОбменДаннымиXDTOСервер, смотрим значения локальных переменных:
ПолученныеДанные или параметрах обработчика ПКО_Справочник_Организации_Получение находим наименование, ИНН или ссылку на конкретный объект, вызвавший ошибку.Текст процедуры КонтактнаяИнформацияИзXML просматриваем проблемное XML-содержимое адреса.После того как проблемный объект (организация, партнер или контрагент) и конкретное поле контактной информации определены, применяем комплекс мер по исправлению данных.
Рассмотрим порядок действий для восстановления валидности контактной информации:
ЗначенияПолей корректной структурой XML, соответствующей текущей версии БСП.Если в очереди обмена накопились ошибочные пакеты, выполняем перенастройку механизма передачи данных:
После нормализации адресных сведений и очистки некорректного XML этап автоматического сопоставления объектов завершается успешно без прерывания обмена.