При настройке синхронизации данных между конфигурацией 1С:Зарплата и Управление Персоналом КОРП и корпоративным порталом (например, Битрикс24 или внутренним веб-ресурсом) разработчики часто сталкиваются с критической ошибкой платформы: Ошибка проверки модели XDTO: xdto-objectType-3.1.2 тип: TaxAmountType пакет: Дублирование имени свойства 'Type'. Эта ошибка полностью блокирует выгрузку кадровых данных и может повторяться даже на актуальных релизах устаревших редакций конфигурации.
В этой статье мы подробно разберем, почему возникает данный сбой, проанализируем его первопричины и рассмотрим эффективные практические способы его устранения.
Для того чтобы успешно решить проблему, выясним причину её появления. Ошибка кроется в механизме динамического построения фабрики XDTO в 1С и специфике используемых стандартов обмена:
TaxAmountType присутствует объявление элементов и атрибутов, которые с точки зрения платформы 1С дублируют друг друга (например, атрибут и дочерний элемент имеют одинаковое имя Type / type).Если вам не требуется мгновенная синхронизация «на лету» через веб-сервисы, самым простым и надежным решением будет обход динамической валидации схем. Мы можем перевести интеграцию в файловый режим:
Если веб-сервер вашего корпоративного портала самостоятельно генерирует и отдает XSD-схемы для валидации пакетов, мы можем вручную устранить конфликт имен на стороне сервера:
TaxAmountType.type или Type.type_attribute или type_attr).Разработчики фирмы 1С постоянно совершенствуют механизмы импорта внешних схем данных. В современных версиях технологической платформы 1С реализовано автоматическое разрешение конфликтов имен при построении фабрики XDTO. Если система обнаруживает одноименные элементы и атрибуты в одной схеме, она автоматически добавляет к именам свойств числовые суффиксы (например, изменяет дубль на Type_1), предотвращая аварийное завершение работы.
Рекомендуется обновить технологическую платформу до актуального стабильного релиза и проверить работоспособность интеграции.
Довольно часто ошибка возникает из-за банальной опечатки в адресе подключения, когда веб-сервер вместо XML-схемы возвращает HTML-страницу «404 Not Found». Выполним диагностику:
Типовой встроенный обмен в старых редакциях ЗУП (особенно в ЗУП 2.5 КОРП) давно морально устарел. Вместо доработки и исправления стандартного механизма целесообразно использовать готовые внешние модули интеграции, которые предоставляют разработчики современных порталов (например, официальный модуль интеграции с Битрикс24).
Такие модули регулярно обновляются, оптимизированы под современные редакции конфигураций (включая 1С:ЗУП 3.1 КОРП) и используют собственные бесконфликтные схемы передачи данных, полностью заменяя проблемный стандарт HR-XML.
Если вам требуется жестко контролировать структуру выгружаемых данных и полностью исключить влияние платформенной валидации, мы можем отказаться от использования механизмов XDTO в коде обмена. Формирование файлов выгрузки можно реализовать вручную с помощью встроенных объектов ЗаписьXML или ДокументDOM.
Рассмотрим пример создания XML-документа вручную:
// Создаем объект для записи XML-данных
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл("C:\Exchange\ExportData.xml", "UTF-8");
// Записываем стандартный заголовок документа
ЗаписьXML.ЗаписатьОбъявлениеXML();
// Формируем структуру тегов вручную
ЗаписьXML.ЗаписатьНачалоЭлемента("StaffExchange");
ЗаписьXML.ЗаписатьАтрибут("Version", "1.0");
ЗаписьXML.ЗаписатьНачалоЭлемента("Employee");
ЗаписьXML.ЗаписатьЭлемент("ID", "000000001");
ЗаписьXML.ЗаписатьЭлемент("Name", "Иванов Иван Иванович");
// Пример записи сложного свойства с атрибутом
ЗаписьXML.ЗаписатьНачалоЭлемента("TaxAmount");
ЗаписьXML.ЗаписатьАтрибут("Type", "Federal"); // Атрибут
ЗаписьXML.ЗаписатьТекст("1500"); // Значение элемента
ЗаписьXML.ЗаписатьКонецЭлемента(); // TaxAmount
ЗаписьXML.ЗаписатьКонецЭлемента(); // Employee
ЗаписьXML.ЗаписатьКонецЭлемента(); // StaffExchange
// Закрываем файл после завершения записи
ЗаписьXML.Закрыть();
Этот подход гарантирует, что файл будет сформирован в строгом соответствии с требованиями принимающей стороны, а платформа 1С не прервет выполнение операции из-за внутренних конфликтов схемы XSD.
Наиболее современным подходом является интеграция систем через HTTP-сервисы и REST API с передачей данных в формате JSON. JSON-формат не имеет жестких схем валидации типа XSD, что делает обмен намного более гибким, легким в отладке и производительным.
Для отправки данных на стороне 1С мы можем использовать стандартные объекты HTTPСоединение и HTTPЗапрос, отправляя сериализованные JSON-структуры напрямую в API вашего корпоративного портала.