При настройке или использовании стандартного обмена данными между конфигурациями 1С:Бухгалтерия предприятия (БП) и 1С:Управление торговлей (УТ) пользователи часто сталкиваются с техническими сбоями. Одной из наиболее специфичных и труднодиагностируемых ошибок является ошибка проверки данных XDTO, возникающая при выгрузке документов, в частности СчетФактураВыданный. Система выдает сообщение о том, что структура объекта /Руководитель не соответствует типу, и указывает на отсутствие значения одного из свойств, например, ФИО или ДатаРождения.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем внутренние механизмы работы платформы с форматом EnterpriseData и предложим пошаговый алгоритм решения ситуации.
Ошибка ОбъектXDTO.Проверить в общем модуле ОбменДаннымиXDTOСервер означает, что сформированный XML-пакет не прошел валидацию на соответствие схеме (XSD), которая заложена в конфигурации. В нашем случае валидатор сообщает: Не установлено значение одного из следующих свойств: ФИО внутри узла Руководитель.
Важно понимать, что тип Руководитель в схеме EnterpriseData — это сложный объект. Даже если вам кажется, что в карточке руководителя всё заполнено, для системы «заполнено» означает наличие записей в конкретных полях базы данных, которые сопоставляются со свойствами XDTO. Рассмотрим основные причины, по которым эти данные могут «потеряться» при выгрузке.
Это самая распространенная причина. В программах 1С данные о ФИО физического лица хранятся в двух местах: строковое представление в самой карточке справочника Физические лица и детализированная информация в периодическом регистре сведений ФамилияИмяОтчествоФизЛиц.
Проанализируем ситуацию: при выгрузке через XDTO система не просто берет строку из карточки, она пытается разобрать ФИО на составляющие (Фамилия, Имя, Отчество) через запрос к регистру. Если запись в регистре отсутствует или дата записи позже даты документа, валидатор выдает ошибку структуры.
Что нужно сделать:
Физические лица.Счет-фактура выданный.Иногда ошибка в блоке /Руководитель возникает не из-за того, что в карточке физлица пусто, а из-за того, что система «подтягивает» не того человека или вообще не находит ответственного на нужную дату.
Выясним причину через проверку настроек организации:
Организации.В старых базах или после некорректного импорта данных ФИО может быть записано в карточку одной строкой, без разбиения на отдельные поля Фамилия, Имя, Отчество. Для печатных форм это может быть не критично, но для обмена в формате EnterpriseData — это фатальная ошибка.
Рассмотрим подробнее: схема XDTO требует, чтобы объект содержал обязательные элементы. Если алгоритм разбора строки не смог выделить «Имя», свойство остается неопределенным, и мы получаем ошибку Не установлено значение одного из следующих свойств: ФИО.
Рекомендация: Откройте карточку физлица и нажмите на кнопку редактирования ФИО (обычно это поле с лупой или отдельное окно). Убедитесь, что фамилия и имя находятся в своих соответствующих полях.
Если вы недавно обновляли 1С:Бухгалтерию, но не обновляли 1С:Управление торговлей (или наоборот), версии формата обмена могут конфликтовать. В новых версиях формата (например, 1.13) требования к обязательности полей могут быть жестче, чем в старых (например, 1.5).
Проанализируем настройки синхронизации:
Как отмечалось в сообщениях на форуме, иногда ошибка исчезает, если удалить объект из регистрации и добавить его снова. Это свидетельствует о возможной проблеме в кэше метаданных или «залипших» правилах конвертации.
Выполним следующие шаги:
Счет-фактура выданный, который выдает ошибку.Если вышеперечисленные методы не помогли, необходимо прибегнуть к отладке на стороне сервера. Проанализируем код в месте возникновения ошибки.
Найдите в конфигураторе общий модуль ОбменДаннымиXDTOСервер, процедуру ПроверитьОбъектXDTOПоСхеме. Поставьте точку останова на строке:
ОбъектXDTO.Проверить();
Когда программа остановится, в окне «Вычислить выражение» посмотрите содержимое переменной ОбъектXDTO. Вы сможете увидеть, какой именно узел (например, Руководитель или ГлавныйБухгалтер) заполнен не полностью. В свойстве ФИО вы увидите пустые значения Имя или Фамилия, что и является причиной остановки обмена.
Ошибка «Структура объекта /Руководитель не соответствует типу» — это всегда следствие отсутствия детальных данных о физическом лице в регистрах сведений или несоответствия этих данных дате документа. Систематическая проверка истории ФИО и записей об ответственных лицах организации решает эту проблему в 99% случаев.