{ВнешняяОбработка.ВнешняяОбработка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 сервисами. Подобных проблем не было.
5.
Drivingblind
22817.10.19 09:12 Сейчас в теме+0.1 $m
(4) Нет, не получилось. Полностью отказались от идеи синхронизировать 1С и Болид напрямую, т.к. 1С слишком привередлива к типам возвращаемых данных. Служба поддержки Болид пойти навстречу в решении проблемы не захотела.
Все дело в небольших отличиях SOAP - пакетов, которые платформа 1С считает "некорректными". Что cделали в нашей компании - написали обработчик для парсинга SOAP - пакетов напрямую, через HTTP - запрос. Для синхронизации Болид и 1С также есть библиотека Orion1C.dll - правда она довольно специфическая.