Имя: Пароль:
1C
 
Веб-сервис и авторизация
, ,
0 pessok
 
30.09.15
15:18
Коллеги, привет! Проштудировал темы с этой же ошибкой, решения из них не помогли.

Итак: создан простейший веб-сервис для теста. Возвращает наименование номенклатуры и код.

Хочу посмотреть, что на выходе, подключаюсь через SoapUI, ввожу адрес веб-сервиса. Он просит ввести данные авторизации, ввожу (parser, 1), все логинится. Можно посмотреть схему етц. Если ввести некорректные данные, то сразу вываливает ошибку и не дает ничего посмотреть.
Когда начинаю выполнять сам запрос, то ругается на авторизацию вот так :)

<html>
   <head>
      <title>A server error occurred.</title>
   </head>
   <h1>Аутентификация пользователя не выполнена.</h1>
   <hr/>
   An error occurred processing this request.
</html>

Из того, что прочитал в других темах на мисте: у пользователя parser полные права, права на использование WS есть. Пользователь обозван латиницей, авторизация идет средствами 1С.

Отсюда вопрос, ЧЯДНТ?
1 pessok
 
30.09.15
15:19
код ВС:

Функция Upload()
    
    ТипВыборка = ФабрикаXDTO.Тип("ПакетДанныхДляПарсера", "Выборка");
    ТипРезультат = ФабрикаXDTO.Тип("ПакетДанныхДляПарсера", "Результат");
    
    РезультатВыгрузки = ФабрикаXDTO.Создать(ТипРезультат);
    
    Выборка = Справочники.Номенклатура.Выбрать();
    
    Пока Выборка.Следующий() Цикл
        
        Данные = ФабрикаXDTO.Создать(ТипВыборка);
        ЗаполнитьЗначенияСвойств(Данные, Выборка);
        
        РезультатВыгрузки.Товар.Добавить(Данные);
        
    КонецЦикла;
    
    Возврат РезультатВыгрузки;
    
КонецФункции
2 pessok
 
30.09.15
15:21
сорри, 8.3.5.1119
УТ 10.3.29.1
3 Serginio1
 
30.09.15
15:24
Ты покажи как авторизацию выполняешь
4 pessok
 
30.09.15
15:26
(3) да просто в SoapUI ввожу адрес веб-сервиса, жмакаю ОК, он спрашивает логин и пароль. Ввожу: parser, 1. Открывается объект. Если ввести другой пароль, то объект не открывается, вываливает ошибку
WSDLException (at /html): faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'.
5 Serginio1
 
30.09.15
15:44
А зачем SOAPUI если можешь тестировать из 1С, а трафик смотреть Fiddler ом
Другой пароль это другой пользователь?
6 pessok
 
30.09.15
15:49
(5) я, откровенно говоря, полный профан в этом вопросе. Как было написано на ИС, так и делал. Другой пароль - это или другой пароль этого пользователя, или другой пользователь (написанный кириллицей)
7 Serginio1
 
30.09.15
15:54
А разве у пользователя может быть несколько паролей?
8 pessok
 
30.09.15
15:58
(7) блин. я имел ввиду, если ввести заведомо ложный пароль, то авторизация не проходит сразу. Т.е. дело не в том, что пароль введен неверно :)
9 pessok
 
30.09.15
16:00
+(8) сейчас попробовал сделать просто из 1С создание WSОпределения под администратором, платформа ругнулась
{Форма.Форма.Форма(3)}: Ошибка при вызове конструктора (WSОпределения)
    Определение = Новый WSОпределения("localhost/parser/wsВыгрузкаДляПарсера?wsdl");    
по причине:
При создании описания сервиса произошла ошибка. localhost/parser/wsВыгрузкаДляПарсера?wsdl

При переходе в пофигуратор говорит модально - "Недостаточно прав доступа"...
Что-то я совсем ничего не понимаю
10 kiruha
 
30.09.15
16:01
В Soap в запросе есть закладка свойства запроса.
Там указать способ авторизации, пользователь и пароль

ЧЯДН - не видишь ничего и не смотришь
11 kiruha
 
30.09.15
16:04
Reqest Propety левый нижний угол
12 Serginio1
 
30.09.15
16:05
localhost/parser/ws/ВыгрузкаДляПарсера?wsdl
13 kiruha
 
30.09.15
16:05
Request Property
14 pessok
 
30.09.15
16:08
(12) да я просто полный путь удалял. Да и переназвал ВС по-английски, на всякий случай
(13) вот, спасибо, заработало. Век живи, век учись. Мануал молчит, а ничего толкового сам не нашел.
15 Serginio1
 
30.09.15
16:14
(14) В определении добавь
Новый WSОпределения("localhost/parser/ws/ВыгрузкаДляПарсера?wsdl",ИмяПользователя,Пароль);
16 pessok
 
30.09.15
16:17
(15) спасибо! так работает
17 Serginio1
 
30.09.15
16:19
Определение=Новый WSОпределения("localhost/parser/ws/ВыгрузкаДляПарсера?wsdl",ИмяПользователя,Пароль);
    WSСервис=Определение.Сервисы[0];
    прокси=Новый WSПрокси(Определение, WSСервис.URIПространстваИмен, WSСервис.Имя, WSСервис.ТочкиПодключения[0].Имя);

Прокси.Пользователь = ИмяПользователя;
    Прокси.Пароль = Пароль;

рез=Прокси.Upload()
18 pessok
 
30.09.15
16:24
Спасибо, друзья!
Буду теперь расширять свои знания на эту тему.
Очень помогли, от души!