|
WS ссылка: ошибка проверки данных XDTO (Несоответствие фасету) | ☑ | ||
---|---|---|---|---|
0
alf2006x
31.05.18
✎
16:21
|
Всем хорошего дня.
Столкнулся с проблемой. Поставщик дал мне ссылку на wsdl: https://app-dev.mostaxi.ru/external-ws/adler/wsdl Я загружаю её в WS-ссылки (объект добавился и появился в конфигураторе: 8.3.9.1818), но при попытке открыть WS-ссылку 1С выдаёт сообщение об ошибке: по причине: Ошибка проверки данных XDTO: Значение: '(0?[1-9]|1[0-2])\/[0-9]{2}' не соответствует простому типу: {http://www.haulmont.com/sherlock/adler}monthYear Несоответствие фасету Pattern = '(0?[1-9]|1[0-2])\/[0-9]{2}' по причине: failed to compile: xmlFAParseRegExp: extra characters Поставщик утверждает что проблема на стороне 1С. Аргументирует тем, что ссылка загружается в SOAP UI без ошибок (подтверждаю!). Тупик. Что делать дальше - не знаю, но настроить взаимодействие необходимо. Подскажите куда искать? |
|||
1
тарам пам пам
31.05.18
✎
17:07
|
Если \/ заменить на просто /, то нормально грузится. Зачем вообще косую черту экранировали? "/" вроде не является служебным символом в регулярках.
|
|||
2
alf2006x
14.11.18
✎
10:13
|
День добрый.
В продолжение темы WS ссылок. Очень нужна помощь, т.к. пока совсем не наблюдаю перспектив решения своего вопроса. Проблема в следующем. Имеем: wsdl: https://195.201.135.150/v2.1.0/api.php?wsdl endpoint: https://195.201.135.150/v2.1.0/api.php clientKey: zdcobyklj280bkj37sz3u5p29p59 login: test_test_api password: 0Vqmm1q Через SOAPUI все замечательно отрабатывает (возвращает какой-то уникальный traceid и мой отправленный произвольный текст). Но из 1С я почему-то не могу сделать то же самое. Код: БроневикАПИ = WSСсылки.Bronevik.СоздатьWSПрокси("soap.bronevik", "Bronevik", "ProductionSOAP",,,Новый ЗащищенноеСоединениеOpenSSL); // ТипWSПараметра_PingRequest = БроневикАПИ.ФабрикаXDTO.Пакеты.Получить("soap.bronevik").Получить("PingRequest"); // ТипWSПараметра_Credentials = БроневикАПИ.ФабрикаXDTO.Пакеты.Получить("soap.bronevik").Получить("Credentials"); //Создаем параметр на основе типа и заполняем значение параметра On_Date. WSПараметр_PingRequest = БроневикАПИ.ФабрикаXDTO.Создать(ТипWSПараметра_PingRequest); WSПараметр_Credentials = БроневикАПИ.ФабрикаXDTO.Создать(ТипWSПараметра_Credentials); WSПараметр_Credentials.clientKey = "zdcobyklj280bkj37sz3u5p29p59"; WSПараметр_Credentials.login = "test_test_api"; WSПараметр_Credentials.password = "0Vqmm1q"; WSПараметр_PingRequest.credentials = WSПараметр_Credentials; WSПараметр_PingRequest.data = "TestPing"; WSПараметр_PingRequest.language = "ru"; ОтветСервераБроневик = БроневикАПИ.ping(WSПараметр_PingRequest); При выполнении команды ping вылезает вот что: Ошибка при вызове метода контекста (ping) ОтветСервераБроневик = БроневикАПИ.ping(WSПараметр_PingRequest); по причине: При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {soap.bronevik}:Bronevik:ping() по причине: При вызове веб-сервиса произошла ошибка. Ошибка SOAP сервера: Неверные данные авторизации Код ошибки: Server Техническая информация: <detail xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="soap.bronevik"> <ns1:Fault/> </detail> Предъявить что-то поставщику WS ссылки я не могу, так как через SOAPUI всё пингуется нормально. Подскажите, пожалуйста, на чьей стороне ошибка, что мне сделать в обработке или что сказать поставщику, чтобы он поправил? |
|||
3
Cyberhawk
14.11.18
✎
10:19
|
Морально готовься в 1С вместо WS-соединения использовать ХТТП-соединение и формирование текста запросов вручную (подсматривая в свой СоапУИ). Это геморный вариант, но с гарантированным успехом.
|
|||
4
Cyberhawk
14.11.18
✎
10:20
|
Ну а так-то у тебя ссылка хттпс, но соединение не защищенное
|
|||
5
Cyberhawk
14.11.18
✎
10:21
|
А ты конструктору ВС-прокси суешь использование ССЛ
|
|||
6
alf2006x
14.11.18
✎
11:08
|
Ну вроде сую (Новый ЗащищенноеСоединениеOpenSSL)
БроневикАПИ = WSСсылки.Bronevik.СоздатьWSПрокси("soap.bronevik", "Bronevik", "ProductionSOAP",,,Новый ЗащищенноеСоединениеOpenSSL) Конечно, возможно это не то, что надо туда сувать. Ну или сувать надо как-то по-другому? |
|||
7
Cyberhawk
14.11.18
✎
11:58
|
Браузер ругается на сертификат безопасности - надо с этим разобраться, думаю
|
|||
8
alf2006x
15.11.18
✎
10:08
|
У меня даже нет представления с чего начать :(
Рискну предположить что я должен использовать в своём соединении какой-то ССЛ сертификат, который мне надо запросить у поставщика, и этот сертификат нужно каким-то образом скормить функции СоздатьWSПрокси, верно? |
|||
9
Cyberhawk
15.11.18
✎
10:13
|
(8) Открой уже, епта, в ФФ всдл-описание веб-сервиса и посмотри, в чем косяк сертификата сайта:
195.201.135.150 использует недействительный сертификат безопасности. Сертификат действителен только для следующих имён: *.bronevik.com, bronevik.com |
|||
10
Cyberhawk
15.11.18
✎
10:13
|
Владелец 195.201.135.150 неправильно настроил свой веб-сайт. Чтобы защитить вашу информацию от кражи, Firefox не соединился с этим веб-сайтом.
|
|||
11
Cyberhawk
15.11.18
✎
10:14
|
Так что пока веб-админ не замутит правильный ХТТПС, из 1С не мечтай воспользоваться этим добром
|
|||
12
alf2006x
15.11.18
✎
14:27
|
Веб-админ замутил условно правильный хттп:
http://195.201.135.150/v2.1.0/api.php?wsdl Но он всё равно отказывается работать из 1С (ССЛ из подключения выкинул) В СОАП по-прежнему всё хорошо... Правда в 1С теперь новая ошибка: Ошибка при вызове метода контекста (ping) ОтветСервераБроневик = БроневикАПИ.ping(WSПараметр_PingRequest); по причине: При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: {soap.bronevik}:Bronevik:ping() по причине: При вызове веб-сервиса произошла ошибка. Неизвестная ошибка. Ошибка работы с Интернет: Не могу установить соединение по причине: Ошибка работы с Интернет: Не могу установить соединение Сплошная печаль какая-то |
|||
13
Cyberhawk
15.11.18
✎
21:14
|
Ну, теперь ВСДЛ правильный. А у тебя нет доступа до этого хоста просто там, где выполняется код
|
|||
14
alf2006x
16.11.18
✎
09:34
|
СОАПУИ находится там же, где 1С
В нём все отправляется и ответ возвращается (значит доступ до хоста видимо всё-таки есть) А в 1С выдаёт ошибку. Почему? Значит всё-таки в подключении из 1С что-то сделано не так? |
|||
15
Cyberhawk
16.11.18
✎
09:48
|
Хз зачем ты это пишешь. Вроде выше Я предельно понятно написал причину.
|
|||
16
alf2006x
16.11.18
✎
17:50
|
Ну не догоняю я...
Что значит "нет доступа до этого хоста там где выполняется код?" Код вместе с 1С находится на сервере. На этом же сервере установлен SOAPUI. Из SOAPUI запрос обрабатывается нормально, без каких-либо ошибок. Из 1С выдаёт соответствующую ошибку (которую я описал последней). Как мне в 1С (для 1С) настроить доступ до этого хоста? Меня хватило только на то, чтобы сделать текст, который в (2) |
|||
17
alf2006x
16.11.18
✎
17:51
|
Или тут дело не в коде который я написал, а в каких-то настройках?
|
|||
18
Вафель
16.11.18
✎
17:52
|
так ты передаешь где-то строку, которая не проходит по регекспу.
сама схема тут не причем |
|||
19
Вафель
16.11.18
✎
17:54
|
||||
20
alf2006x
19.11.18
✎
10:31
|
(18) Я дико извиняюсь, это ответ на (2)?
Если да - то я совсем не понимаю. Схема про регэксп красивая, но как приобщить её к моему случаю я не знаю. Можете просто пальцем тыкнуть, что в такой-то строке надо написать то-то и тогда всё заработает? Или тут совсем всё плохо и надо уже плюнуть и воспользоваться советом из (3) ? |
|||
21
Cyberhawk
19.11.18
✎
11:23
|
Сколько платят за решение вопроса?
|
|||
22
alf2006x
19.11.18
✎
11:32
|
Так всё серьёзно?
Я думал тут где-то точки с запятой не хватает )) Я только хотел чтобы работа с WS была красиво оформлена. Но раз проблема это решается только за деньги - то пойду рисовать хттп запрос. Когда-нибудь найду красивое решение. PS. А почем обычно решают такой вопрос? |
|||
23
alf2006x
22.11.18
✎
22:25
|
Ммм...дяа... ((
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |