Синхронизация данных между старыми редакциями конфигураций (например, Управление торговлей 11.2) и современными версиями Бухгалтерии предприятия 3.0 часто сопряжена с техническими трудностями. Основная причина кроется в эволюции формата EnterpriseData. УТ 11.2 использует формат версии 1.2, в то время как новые релизы БП ориентированы на версии 1.5 и выше. В результате возникают ошибки проверки структуры XML-пакета (XDTO), так как новые схемы требуют наличия реквизитов, которых просто не существовало в старых версиях программы.
В данной статье мы разберем наиболее часто встречающиеся ошибки, проанализируем их причины и найдем способы решения, основываясь на практическом опыте специалистов.
Разберем ситуацию, когда при попытке синхронизации через файл система выдает ошибку вида: Ошибка проверки данных XDTO: Структура объекта '/Договор' не соответствует типу... Не установлено значение одного из следующих свойств: ВидДоговора. Проанализируем, почему это происходит.
Проблема заключается в том, что в новых схемах обмена EnterpriseData некоторые поля стали обязательными. В УТ 11.2 справочник ДоговорыКонтрагентов имеет иную структуру, и при выгрузке модуль менеджера обмена не находит нужных данных для заполнения обязательных свойств XDTO-объекта. Аналогичная ситуация возникает с реквизитом НДСПоСтавкам2и4, который был добавлен в документы учета НДС позже выпуска версии 11.2.
Рассмотрим по шагам основные ошибки и методы их исправления:
Эта ошибка возникает в объектах типа КлючевыеСвойстваДоговор. Выясним причину: в старых документах или при некорректном заполнении справочника "Договоры" или "Соглашения" данные не соответствуют требованиям новой схемы БП.
ТипДоговора (в УТ 11.3+ это перечисление, в 11.2 может быть строкой или иметь ограниченный набор значений).Проанализируем ситуацию: в модуле МенеджерОбменаЧерезУниверсальныйФормат при выгрузке Поступления товаров и услуг система пытается проверить флаг НДС, которого нет в метаданных УТ 11.2.
Если вы не планируете обновлять конфигурацию до УТ 11.4, необходимо внести изменения в код общего модуля МенеджерОбменаЧерезУниверсальныйФормат. Найдем обработчик ПриОтправкеДанных для соответствующего документа и принудительно инициализируем свойство:
// В процедуре ПКО_Документ_ПоступлениеТоваровУслуг_Отправка_ПриОтправкеДанных
ДанныеИБ.Вставить("НДСПоСтавкам2и4", Ложь);
Это позволит XDTO-пакету пройти валидацию, так как обязательное свойство будет заполнено значением по умолчанию.
При загрузке данных из БП в УТ 11.2 может возникнуть ошибка: Структура объекта не соответствует типу: {http://www.1c.ru/SSL/Exchange/Message}Header. Это означает конфликт версий Библиотеки стандартных подсистем (БСП).
Для стабильной работы обмена между сильно различающимися версиями конфигураций рекомендуем придерживаться следующего алгоритма:
Во-первых, всегда используйте обмен через файлы на этапе отладки. Обмен через прямое подключение (COM) при возникновении XDTO-ошибок часто просто аварийно завершает работу 1С без вывода информативного сообщения. Файловый обмен позволит вам увидеть детальный лог ошибки в журнале регистрации.
Во-вторых, проанализируем дату начала выгрузки. Если ошибки возникают в документах годичной давности, которые вам не нужно переносить, просто сдвиньте дату начала синхронизации на актуальный период (например, текущий месяц). Это самый быстрый способ "починить" обмен, если ошибки вызваны историческими данными с нарушенной структурой.
В-третьих, если вы решили дорабатывать правила обмена, обратите внимание на общий модуль ОбменДаннымиXDTOСервер. В нем находится вызов метода ОбъектXDTO.Проверить(). Рассмотрим пример того, как можно временно локализовать проблему для поиска конкретного поля:
Попытка
ОбъектXDTO.Проверить();
Исключение
ТекстОшибки = ОписаниеОшибки();
// Здесь можно поставить точку останова и изучить структуру ОбъектXDTO
ЗаписьЖурналаРегистрации("ОбменДанными", УровеньЖурналаРегистрации.Ошибка, , , ТекстОшибки);
ВызватьИсключение ТекстОшибки;
КонецПопытки;
И наконец, наиболее радикальным и правильным решением будет обновление Управления торговлей до версии 11.4. В этой редакции механизмы EnterpriseData и КД 3.0 значительно переработаны, добавлены все необходимые реквизиты для синхронизации с современными версиями Бухгалтерии предприятия, что исключает большинство ошибок валидации XDTO "из коробки".