Имя: Пароль:
1C
1С v8
Доступ к свойству WS-Ссылки
0 Tahallus
 
06.12.13
11:33
Добрый день.
Есть сервис с которым пытаюсь сделать интеграцию
https://www.cargoonline.ru/integration/integration.wsdl

Пишу код:
    АдресСервиса = "http://www.cargoonline.ru/integration/";;    
    
    Логин = "[email protected]";
    Пароль = "123456";
    Токен = "0";
    
    Карго = WSСсылки.Cargo.СоздатьWSПрокси(АдресСервиса
        , "cargoOnlineIntegration"
        , "cargoSoap"
        ,
        , 600
        );
        
    TypeCredentials = Карго.ФабрикаXDTO.Тип(АдресСервиса, "Credentials");
       Credentials = Карго.ФабрикаXDTO.Создать(TypeCredentials);
    Credentials.username = Логин;
    Credentials.password = Пароль;
    
    TypeAnchor = Карго.ФабрикаXDTO.Тип(АдресСервиса, "Anchor");
       Anchor = Карго.ФабрикаXDTO.Создать(TypeAnchor);
    Anchor.token = Токен;
    
    SyncMessage = Неопределено;
    
    Карго.get(Credentials, Anchor, SyncMessage);

get процедура и если происходит какая-либо ошибка то 1С выдает ошибку
    Ошибка при вызове метода контекста (get)
        Карго.get(Credentials, Anchor, SyncMessage);
по причине:
Ошибка вызова операции сервиса:  {http://www.cargoonline.ru/integration/}:cargoOnlineIntegration:get()
по причине:
Ошибка SOAP сервера:  Fault occurred while processing.

Если сделать запрос другой программой то ответ:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">;
   <soap:Body>
      <soap:Fault>
         <faultcode>soap:Server</faultcode>
         <faultstring>Fault occurred while processing.</faultstring>
         <detail>
            <SyncFault xmlns="http://www.cargoonline.ru/integration/">authentication failed for user [[email protected]]</SyncFault>
         </detail>
      </soap:Fault>
   </soap:Body>
</soap:Envelope>

Как получить в 1С значения faultcode faultstring и SyncFault ?
или хотя бы SyncFault.
1 Tahallus
 
06.12.13
11:54
никто не знает
2 Balonbl4
 
06.12.13
12:02
Можно вызывать веб-сервис не методами WSссылки, а с помощью post-запроса(HTTPСоединение.ОтправитьДляОбработки()) тогда появится возможность анализировать файл ответа.
В случае же с WSссылкой возврат от сервера статуса, отличного от 200 "ОК", вызывает исключительную ситуацию, описание которой(не полное) можно получить с помощью функции ОписаниеОшибки()
3 regniws
 
06.12.13
12:10
Вроде ж ясно написано:
<SyncFault xmlns="http://www.cargoonline.ru/integration/">authentication"; target="_blank" rel="nofollow" class="extralink">http://www.cargoonline.ru/integration/">authentication failed for user [[email protected]]</SyncFault>
4 regniws
 
06.12.13
12:17
(3) все не читаем, сразу пишем, мндэ.. в(2) верно ответили, писать самому руками тогда.
5 Tahallus
 
06.12.13
12:30
(3) ясно написано если через другие программу, а как это дело в 1с получить через ссылки непонятно
6 Tahallus
 
06.12.13
12:31
(2) тогда получает весь файл запроса надо кодом формировать
7 Tahallus
 
06.12.13
12:35
в ws-ссылке есть свойство "SyncFault", можно ли как-то к нему обратиться напрямую чтобы считать данные с него?
8 Tahallus
 
06.12.13
12:36
может можно как-то обрабатывать инструкции wsdl:fault в 1с