Имя: Пароль:
1C
1С v8
что-то не получается вызвать веб сервис
,
0 ИсчадиеADO
 
02.01.14
18:57
"аутентификация пользователя не выполнена"

<code>
WSСсылка = Справочники.ДинамическиеWSСсылки.GetWorkTimeForBore;
Пользователь = "Разработчик";
Пароль = "1";
Определение = новый WSОпределения(СокрЛП(WSСсылка.Наименование), Пользователь, Пароль);
ИмяВэбСервиса = "ПолучитьВыполненныеРаботы";
ИмяТочкиПодключения=ИмяВэбСервиса+"Soap";
Прокси = новый WSПрокси(Определение, СокрЛП(Справочники.ДинамическиеWSСсылки.GetWorkTimeForBore.База), "ПолучениеВыполненныеРаботыПоСкважине", ИмяТочкиПодключения);
Прокси.Пользователь = Пользователь;
Прокси.Пароль = Пароль;
    
ДанныеОДвижениях = Прокси.ПолучитьВыполненныеРаботы(Скважина.Наименование);
Сообщить("ура!");
Сообщить(ТипЗнч(ДанныеОДвижениях));

</code>


Пользователь есть, пароль правильный
скрин привести не могу - проверяю на планшете
между http:// и моим ip пишет какие-то символы, типа как в вики %D0%A0%.....

кто сталкивался?
1 ИсчадиеADO
 
02.01.14
19:07
Аутентификация пользователя не выполнена. http://
%D0%A0%D0%B0%......................%BA:[email protected]/ISG/ws/GetWorkTimeForBore.1cws?wsdl
2 ИсчадиеADO
 
02.01.14
19:09
хотя
WSСсылка.Наименование = "http://212.ip.ip.ip/ISG/ws/GetWorkTimeForBore.1cws?wsdl";;

WSСсылка.База = "http://212.ip.ip.ip/ISG";;
3 kokamoonga
 
02.01.14
19:15
(1) http://
%D0%A0%D0%B0%......................%BA:[email protected]/ISG/ws/GetWorkTimeForBore.1cws?wsdl

здесь написано всего лишь

http://Разработчик:[email protected]/ISG/ws/GetWorkTimeForBore.1cws?wsdl
4 kokamoonga
 
02.01.14
19:49
(0) Попробуй задать пользователя латиницей.
5 ИсчадиеADO
 
02.01.14
19:51
(4) попробовал. admin. Не взлетело. разве что вместо %D0%A0%D0%B0%......................%BA:xxxxxxx пишет admin:xxxxx
6 ИсчадиеADO
 
02.01.14
19:53
(4) у меня тут роутер дебильный стоит, потому и с планшета пробую, но вообще-то в базу по веб захожу нормально
7 ИсчадиеADO
 
02.01.14
19:54
(4) а есть апач развернутый под рукой, я б тебе базу бы отослал (она тестовая, в ней ничего секретного)?
8 kokamoonga
 
02.01.14
19:55
(7) есть апач, но нет 1с рядом с ним:)
9 ИсчадиеADO
 
03.01.14
12:57
апну, может у кого стоит апач/иис, попробует опубликовать мою базенку и попробовать из базы достучаться к этой же базе по веб сервису? Она немного весит
10 zulu_mix
 
03.01.14
12:59
аутентификация на иис отключена?
11 ИсчадиеADO
 
03.01.14
13:01
у меня апач, на нем аутентификации не стоит
12 zulu_mix
 
03.01.14
13:04
всдл определение из браузера открывает?
13 ИсчадиеADO
 
03.01.14
13:07
(12) ща попробую
14 zulu_mix
 
03.01.14
13:10
только пробуй без админ:хххх@
просто открой ссылку http://212.ip.ip.ip/ISG/ws/GetWorkTimeForBore.1cws?wsdl
15 ИсчадиеADO
 
03.01.14
13:14
не открывается. Жду - ниче не происходит
16 ИсчадиеADO
 
03.01.14
13:21
ребутнул апач
http://212.ip.ip.ip/ISG/ws/GetWorkTimeForBore.1cws?wsdl - открылся xml (или xdto) файл
17 ИсчадиеADO
 
03.01.14
13:21
:)
18 zulu_mix
 
03.01.14
13:21
проверяй публикацию
19 ИсчадиеADO
 
03.01.14
13:21
именно под admin - ws
20 zulu_mix
 
03.01.14
13:21
логин-пароль спрашивал?
21 ИсчадиеADO
 
03.01.14
13:24
(20) когда напрямую из браузера - спрашивал. Под (19) все проканало
22 ИсчадиеADO
 
03.01.14
13:24
<code>

WSСсылка = Справочники.ДинамическиеWSСсылки.GetWorkTimeForBore;
Пользователь = "admin";
Пароль = "ws";
//WSСсылочка получается слиянием моего ип адреса, имени базы и имени файла публикации + ?wsdl
WSСсылочка = "http://212.164.232.125/ISG/ws/GetWorkTimeForBore.1cws?wsdl";;
Определение = новый WSОпределения(WSСсылочка, Пользователь, Пароль);
ИмяВебСервиса = "ПолучениеВыполненныеРаботыПоСкважине"; //так называется веб сервис в конфигураторе
ИмяТочкиПодключения = "" + ИмяВебСервиса + "Soap";
Прокси = новый WSПрокси(Определение, "http://myeadressname.ru/ISG";, ИмяВебСервиса, ИмяТочкиПодключения);
//http://myeadressname.ru/ISG - URI пространство имени веб сервиса
Прокси.Пользователь = Пользователь;
Прокси.Пароль = Пароль;
    
ДанныеОДвижениях = Прокси.ПолучитьВыполненныеРаботы(Скважина.Наименование);
//ПолучитьВыполненныеРаботы - имя метода в веб сервисе, с 1 параметром
Сообщить("ура!");
Сообщить(ТипЗнч(ДанныеОДвижениях));

</code>
23 ИсчадиеADO
 
03.01.14
13:27
блин адреса некорректно отображаются тут :(
24 zulu_mix
 
03.01.14
13:28
а у юзера "Разработчик" есть права на веб-сервис?
25 ИсчадиеADO
 
03.01.14
13:29
есть. И у admin. У обоих - полные права
26 zulu_mix
 
03.01.14
13:31
повангую что апач настроен на кодовую страницу 1251 а 1с работает с утф8, по этой причине русскоязычный "Разраб" транслируется в нечитаемое жпо. по этой причине лучше использовать имена пользователей и пароли на латинице.
27 ИсчадиеADO
 
03.01.14
13:32
дык запускаю под admin - ws
28 ИсчадиеADO
 
03.01.14
13:33
Все названия, включая имя веб сервиса в пофигураторе написать латиницей?
29 ИсчадиеADO
 
03.01.14
13:33
Ща попробую
30 ИсчадиеADO
 
03.01.14
13:49
переписал все на английский. Имя веб сервиса, имя метода, имя параметра... пользователя, пароль.

Та же фигня с авторизацией

<code>

Пользователь = "admin";
    Пароль = "ws";
    //WSСсылочка получается слиянием моего ип адреса, имени базы и имени файла публикации + ?wsdl
    WSСсылочка = "http://212.164.232.125/ISG/ws/GetWorkTimeForBore.1cws?wsdl";;
    Определение = новый WSОпределения(WSСсылочка, Пользователь, Пароль);
    ИмяВебСервиса = "GetWorkTimeForBore"; //так называется веб сервис в конфигураторе
    ИмяТочкиПодключения = "" + ИмяВебСервиса + "Soap";
    Прокси = новый WSПрокси(Определение, "http://myeadressname.ru/ISG";, ИмяВебСервиса, ИмяТочкиПодключения);
    //http://myeadressname.ru/ISG - URI пространство имени веб сервиса
    Прокси.Пользователь = Пользователь;
    Прокси.Пароль = Пароль;
    
    ДанныеОДвижениях = Прокси.GetWorkTimeForBore(Скважина.Наименование);

</code>
31 zulu_mix
 
03.01.14
13:55
чето криво ты инициализируешь. завтра на работе гляну как я делал и скину код
32 ИсчадиеADO
 
03.01.14
13:57
(31) ок, сенк
33 zulu_mix
 
04.01.14
09:46
значит так.
1. импортируй себе в конфу wsdl в объект WSСсылка. назови ее WS_GetWorkTimeForBore например
2. используй этот код:

Прокси = WSСсылки.WS_GetWorkTimeForBore.СоздатьWSПрокси("http://myeadressname.ru/ISG";, "GetWorkTimeForBore","GetWorkTimeForBoreSoap");
Прокси.Пользователь = "admin";
Прокси.Пароль = "ws";
ТипWSПараметра = Прокси.ФабрикаXDTO.Пакеты.Получить("http://myeadressname.ru/ISG").Получить("GetWorkTimeForBore";);
WSПараметр                  = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра);
ДанныеWS = Прокси.GetWorkTimeForBore(Скважина.Наименование);
34 ИсчадиеADO
 
04.01.14
10:10
(33) я не могу статической ws ссылкой пользоваться, т.к. у меня роутер из внутренней сети не пропускает до апача, а перенаправляет на страничку надстроек самого роутера. Это поведение нельзя изменить- модель такая. Поэтому динамическая ссылка, и проверяю с планшета

а вот про параметр - интересно, но он в данном случае строка
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.