Имя: Пароль:
1C
1С v8
Web-сервис, что дальше?
, , , , ,
0 Zixxx
 
01.08.11
10:49
Опубликовал web-сервис, получился файл vrd следующего содержания.

<?xml version="1.0" encoding="UTF-8"?>
<point xmlns="http://v8.1c.ru/8.2/virtual-resource-system";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
base="/base"
ib="Srvr=&quot;188.40.48.171&quot;;Ref=&quot;gt_trade&quot;;">
<ws enable="false">
<point name="Files" alias="ws1.1cws"/>
</ws>
</point>

В конфигураторе создал web-сервис "ОбменССайтом" URI пространства имен у него "http://188.40.48.171:81/base", имя файла публикации "ws1.1cws", в модуле функция "Возврат 123;"

http://188.40.48.171:81/base/ws1.1cws?wsdl - пишет файл не обнаружен
Как проверить работает или нет?
1 Zixxx
 
01.08.11
10:58
fg
2 SeraFim
 
01.08.11
10:58
почему enable="false"?

Версия платформы? в 8.2 для веб-сервисов нужно еще дополнительно /ws подписать. то есть http://188.40.48.171:81/base/ws/ws1.1cws?wsdl
не знаю почему, но я нигде в книжках про это не нашел. сделать сделали, а продокументировать забыли
3 Zixxx
 
01.08.11
11:13
(2) Исправил, теперь по этому пути http://188.40.48.171:81/base/ws/ws1.1cws?wsdl выдает какую-то xml-ку
4 Zixxx
 
01.08.11
11:13
(2) версия 82
5 Zixxx
 
01.08.11
11:54
Насколько я понял сервис работает, какими методами теперь можно протестировать его работу на получение?
6 Zixxx
 
01.08.11
12:12
ап
7 SeraFim
 
01.08.11
12:29
(3) все верно
что делать дальше - зависит от целей и желания)
работу можно проверить и на самой 1Ске - в книжках хорошо расписано.
судя по названию "ОбменССайтом" - тебя их интересует использование в php. Кури SoapClient.
8 Zixxx
 
01.08.11
12:35
(7) Пока нужно проверить у себя на самой 1Ске, все что нарыл в инете и в примерах это

Определения = Новый WSОпределения("http://188.40.48.171:81/base/ws/ws1.1cws?wsdl");
Прокси = Новый WSПрокси(Определения, "http://188.40.48.171:81/base", "ОбменССайтом", "ОбменССайтомSoap");
Возврат Прокси.Получить();

Но выдает ошибку метод объекта "Получить" не определен :(
9 Scooter
 
01.08.11
12:36
(8)а какой метод у тебя определен?
10 Zixxx
 
01.08.11
12:41
(9) Есть web-сервис
"ОбменССайтом"
  "Тест" - операция - имя метода "Тест" (Возврат 123)
     "Получить" - параметр
     "Передать" - параметр
11 SeraFim
 
01.08.11
13:05
ну так и вызывай этот метод с этими параметрами ;)
12 Адинэснег
 
01.08.11
13:05
(0)8.2 или 8.1?
13 pavig
 
01.08.11
13:21
(8) Юзай статическую WSСсылку
создаешь ее, потом жмешь "Импорт", проходишь ауентификацию базы-источника веб-сервиса, и у тебя появляется в объекте все описание опубликованного веб-сервиа.

далее выполняешь что-то типа такого:

   Сервис = WSСсылки.WSСсылка_Тест.СоздатьWSПрокси("test_uri", "web_service", "web_serviceSoap");
   Сервис.Пользователь = "admin";
   Сервис.Пароль = "qwerty";
   СервисБонус.test_operation(Парам1, Выход1);

вот и все
14 pavig
 
01.08.11
13:22
(13) фикс:

   Сервис = WSСсылки.WSСсылка_Тест.СоздатьWSПрокси("test_uri", "web_service", "web_serviceSoap");
   Сервис.Пользователь = "admin";
   Сервис.Пароль = "qwerty";
   Сервис.test_operation(Парам1, Выход1);
15 pavig
 
01.08.11
13:25
(2) подскажи плиз какие книжки читал?
я вот докуемнтацию толковую вообще найти не могу
16 Zixxx
 
01.08.11
13:25
Что означает "Направление передачи" в параметрах: Входной, Выходной, Входной - Выходной?
17 pavig
 
01.08.11
13:34
(16) Входной -- значит параметр на вход в алгоритм
выходной -- значит то, что ты хочешь вернуть после выполнения алгоритма
кхм...
18 Zixxx
 
01.08.11
13:37
Добавил в базу пользователя с полными правами, аутентификация не отрабатывает, стоит Apache 2.2
19 pavig
 
01.08.11
14:14
не может быть
20 pavig
 
01.08.11
14:15
пользователь и пароль верно написал?
21 SeraFim
 
01.08.11
15:23
(18) при аутентификации непосредственно в 1С, кириллица не работает, создавай логин/пароль на латинице.
в php с кириллицей проблем нет.
(15) из книжек - только руководство красно-желтое) остальное сам, либо на куче разных форумов
22 Zixxx
 
01.08.11
18:56
Все элементрано

Определения = Новый WSОпределения("http://188.40.48.171:81/base/ws/ws1.1cws?wsdl");
Прокси = Новый WSПрокси(Определения, "http://188.40.48.171:81/base", "ОбменССайтом", "ОбменССайтомSoap");
Прокси.Пользователь = "webservice";
Прокси.Пароль = "123";
   
Значение = Прокси.Тест();

Про аутентификацию с Apache я слышал что работать не будет, в общем сейчас с учетов вышенаписанного кода аутентификация не проходит.
23 SeraFim
 
02.08.11
02:28
(22) что-то в коде не так, сам веб сервис работает. (попробуй подключиться к нему через браузер - увидишь)
по логике - при "Прокси = Новый WSПрокси(...)" будет произведено подключение к вебсервису и ты хапнешь всю его xml-структуру. однако, чтобы подключиться к нему, нужно задать логин/пароль. здесь же, они указываются после подключения.
учись курить справку:
Из WSDL файла
Синтаксис:

Новый WSОпределения(<МестоположениеWSDL>, <ИмяПользователя>, <Пароль>)
24 Zixxx
 
02.08.11
06:02
(23) Спасибо, переделал, ошибка изменилась...

Ошибка вызова операции сервиса:  {http://188.40.48.171:81/base}:ОбменССайтом:Тест()
по причине:
Аутентификация пользователя не выполнена.  <html>
<head><title> A server error occurred. </title></head>
<h1> User authentication failed.   </h1>
<hr/>
An error occurred processing this request.</html>
25 SeraFim
 
02.08.11
06:17
(24) я не телепат)
26 Zixxx
 
02.08.11
06:37
(25) Если зайти по этой ссылке...
http://188.40.48.171:81/base/ws/ws1.1cws?wsdl
можно авторизоваться используя следующие данные:
user: webservice
password: 123

но если я делаю в 1с так:

Определения = Новый WSОпределения("http://188.40.48.171:81/base/ws/ws1.1cws?wsdl", "webservice", "123");
Прокси = Новый WSПрокси(Определения, "http://188.40.48.171:81/base", "ОбменССайтом", "ОбменССайтомSoap");

то вываливаеться ошибка авторизации
27 SeraFim
 
02.08.11
06:50
хм.. признаюсь честно - с авторизацией в веб-сервисах в 1Ске не разбирался. Проверил, на php с этим проблем не должно быть:
$webService = "http://188.40.48.171:81/base/ws/ws1.1cws?wsdl";
$client = new SoapClient($webService,    array("login" => "webservice", "password" => "123"));
28 Plastilin
 
17.08.11
17:38
Скажите,так все таки у кого нибудь получилось с авторизацией?
29 Serginio1
 
17.08.11
17:43
После получения прокси    
Прокси.Пользователь = "webservice";
   Прокси.Пароль = "123";
30 Plastilin
 
17.08.11
17:48
у меня еще до получения прокси на wsопределении выдает ошибку.так понимаю надо прокси получить раньше..но тогда что указать в первом параметре,где должно быть wsопределение??
31 Serginio1
 
17.08.11
18:00
(30) А вручную по ссылке заходишь?
32 Plastilin
 
17.08.11
18:02
да.захожу..и авторизацию проходит нормально..
33 Plastilin
 
17.08.11
18:04
хотя вот такой еще момент.с гугл хрома все нормально заходит и авторизацию проходит,а если через эксплорер или мазилу то выскакивает окошко с логином\паролем, но когда я их туда ввожу, то к на сервис не заходит,а окошко опять выскакивает с запросом логина и пароля
34 Serginio1
 
17.08.11
18:07
Через эксплорер проблемы с русскими буквами
35 Serginio1
 
17.08.11
18:11
v8: web сервис авторизация 8.2
Попробуй прописать пароль и логин в default.vrd
36 Plastilin
 
17.08.11
18:13
а без этого ни как??(не охота привязывать к одному пользователю авторизацию
37 Serginio1
 
17.08.11
18:22
Не знаю у меня проблем с логином и паролем нет. А какую ошибку выдает?
38 Plastilin
 
17.08.11
18:31
{ОбщийМодуль.ПолучитьДанныеОтгрузкиУдаленно.Модуль(2)}: Ошибка при вызове конструктора (WSОпределения)
   Определения = Новый WSОпределения("http://admin:123@localhost/ws/shipment.1cws?wsdl");
по причине:
Аутентификация пользователя не выполнена.
39 Serginio1
 
17.08.11
18:35
А почеловечески
Новый WSОпределения("http://localhost/ws/shipment.1cws?wsdl",admin,123);
Смотри (22)
40 Plastilin
 
17.08.11
18:39
так я тоже пробовал..не получилось..проблема была решена после того как переименовал имя пользователя на транслит.)))спасибо большое за инфу про русские буквы)))
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn