Проблема с web-сервисом. Ошибка при вызове метода контекста. Недопустимое значение аргумента функции

1. Drivingblind 228 11.04.19 07:46 Сейчас в теме
Здравствуйте. Возникла необходимость интеграции 1с и СКУД Болид Орион Про. Для интеграции планируется использовать SOAP web-сервисы: https://bolid.ru/production/orion/po-orion/po-integration/mod_integr_orion_pro.html
При попытке обращения к сервису, начали выпадать ошибки со следующим текстом:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(27)}: Ошибка при вызове метода контекста (GetPersons)
РезультатФункции = Прокси.GetPersons(Истина,Истина,Ложь,0,0,Filter,"");
по причине:
При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {http://tempuri.org/}:IOrionProservice:GetPersons()
по причине:
При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Недопустимое значение аргумента функции
[xdto - d:\jenkins\ci_builder\windowsbuild2\platform\src\xdto\src\xdtofactoryimpl.cpp (450)]
по причине:
Недопустимое значение аргумента функции
[xdto - d:\jenkins\ci_builder\windowsbuild2\platform\src\xdto\src\xdtofactoryimpl.cpp (450)]


Подобные ошибки выпадают при обращении практически ко всем методам. Хотя есть методы, отрабатывающие нормально. Документация на официальном сайте Болид устарела. Обращался в службу поддержки, мне там ответили:
В обоих случаях ошибку выдает SOAP клиент в Вашем ПО.<...> Ваш SOAP клиент выполнил запрос, в ответ на который модуль интеграции вернул список сотрудников (это видно по логам), но Ваш SOAP клиент не смог его распарсить


Пример обращения к методу GetPersons(boolean WithoutPhoto, boolean IsEmployees, boolean IsVisitors, int Offset, int Count, TStrings Filter, string Token):
Определения = Новый WSОпределения(РасположениеWSDL);
Прокси = Новый WSПрокси(Определения,"http://tempuri.org/","IOrionProservice","IOrionProPort");
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("urn:OrionProIntf").Получить("TStrings");
Filter = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
Прокси.GetPersons(Истина,Истина,Ложь,0,0,Filter,"");

Подскажите, пожалуйста, в чем может быть проблема? Раньше уже был опыт работы в web и http сервисами. Подобных проблем не было.
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DigitalMan 7 11.04.19 10:22 Сейчас в теме
Ответ должен прийти именно того типа, что описан в схеме, т.к. любое отклонение от схемы - вываливаться в ошибку, у 1С с этим строго.

Для теста советую использовать "SoapUI" - очень удобная вещь для поиска таких проблем.
3. user820495 11.04.19 14:16 Сейчас в теме
"Недопустимое значение аргумента функции "
я бы начал с проверки передаваемых типов!

кстати, после чего ошибка НАЧАЛА появляться? до этого норм было?
4. LookingFor 04.07.19 10:39 Сейчас в теме
Добрый день!

У Вас как-нибудь получилось решить данную проблему?
5. Drivingblind 228 17.10.19 09:12 Сейчас в теме +0.1 $m
(4) Нет, не получилось. Полностью отказались от идеи синхронизировать 1С и Болид напрямую, т.к. 1С слишком привередлива к типам возвращаемых данных. Служба поддержки Болид пойти навстречу в решении проблемы не захотела.
6. LookingFor 19.10.19 12:53 Сейчас в теме
(5) Добрый день!

Все дело в небольших отличиях SOAP - пакетов, которые платформа 1С считает "некорректными". Что cделали в нашей компании - написали обработчик для парсинга SOAP - пакетов напрямую, через HTTP - запрос. Для синхронизации Болид и 1С также есть библиотека Orion1C.dll - правда она довольно специфическая.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот