Вызов WS на 1С 8.3 падает, а в SoapUI работает. Как обойти?

26.08.24

Интеграция - WEB-интеграция

Иногда при интеграции с веб-сервисом 1С может вернуть ошибку проверки данных XDTO: Структура объекта не соответствует типу. При этом это не ваша XDTO, и Вы не хотите или не можете поправить его. Что же делать? Решение есть!

Делаю заметку для себя и для всех, кому может быть полезно. Если Ваша 1С не может собрать XDTO и падает с ошибкой, а SoapUI отрабатывает без ошибок.

Ошибка для примера:

Ошибка проверки данных XDTO:
Структура объекта не соответствует типу:
Проверка свойства 'id':
                форма: Элемент
                имя: id
                тип: {http://www.w3.org/2001/XMLSchema}integer
Отсутствует обязательное свойство

При этом это не ваша XDTO, и Вы не хотите или не можете поправить его.

Конкретно в моем случае есть схема, у которой некий атрибут может быть не заполненным, тип его не примитивный, и один из подчиненных ему атрибутов примитивного типа обязательно должен быть заполнен. И когда сторонняя система нам возвращает такую схему и включает в нее первый атрибут и при этом не заполняет подчиненный ему атрибут, то 1С встает в позу и падает с ошибкой.

Интересный момент: формально 1С права, но если выполнить вызов такого метода при помощи SoapUI, он отработает без ошибок.    

И тут Вы зададитесь вопросом: что же делать?

Я Вам отвечу: Решение есть! Это HTTP-запрос.

Ну что же, погнали:


лСоединение = Новый HTTPСоединение(СерверХТТП);
лЗапрос = Новый HTTPЗапрос(АдресРесурсаХТТП);
лЗапрос.Заголовки.Вставить("Content-Type", ЗаголовокХТТП);
лсТелоКакСтрока = "<soap:Envelope xmlns:soap=""http://www.w3.org/2003/05/soap-envelope"">
|   <soap:Header/>
|   <soap:Body>
|      <ws:getContr>
|         <request>
|            <employeeSmpId>%1</employeeSmpId>
|            <contractualDocumentId>%2</contractualDocumentId>
|         </request>
|      </ws:getContr>
|   </soap:Body>
|</soap:Envelope>";
лсТелоКакСтрока = СтрШаблон(лсТелоКакСтрока, Параметр1, Параметр2);
лЗапрос.УстановитьТелоИзСтроки(лсТелоКакСтрока);
лРезультат = лСоединение.ОтправитьДляОбработки(лЗапрос);
лсТелоКакСтрокаОтвет = лРезультат.ПолучитьТелоКакСтроку();
Чтение = Новый ЧтениеXML;
Чтение.УстановитьСтроку(лсТелоКакСтрокаОтвет);
лОтвет = ФабрикаXDTO.ПрочитатьXML(Чтение);
  • http://***Имя Сервера***/***Имя WS***?WSDL - так у вас выглядит ссылка на wsdl
  • СерверХТТП = ***Имя Сервера***
  • АдресРесурсаХТТП = /***Имя WS***
  • ЗаголовокХТТП - это мы берем SoapUI с закладки Raw (сверху под кнопкой пуска есть переключатель закладок  XML/Raw)

  • лсТелоКакСтрока - сюда мы помещаем весь запрос XML, как он выведен в SoapUI на закладке XML

Вызов WS на 1с падает а в SoapUI работает. Ошибка проверки данных XDTO: Структура объекта не соответствует типу:

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17886    19    22    

17

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

7200 руб.

04.05.2021    20017    13    17    

17

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    14492    42    8    

18

WEB-интеграция Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки.

24000 руб.

27.09.2024    1523    1    0    

3
Оставьте свое сообщение