Имя: Пароль:
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
так я тоже пробовал..не получилось..проблема была решена после того как переименовал имя пользователя на транслит.)))спасибо большое за инфу про русские буквы)))