Имя: Пароль:
1C
1С v8
Правильное написание адресной строки для запуска Web сервиса
0 ares
 
07.08.12
14:37
Погуглил инет, прочитал ИТС, кстати хорошая статья раздела 17.
Использую IIS 7.5

Написал веб сервис, возвращающий таблицу с 2 колонками (обе стринг).
Опубликовал, все нормально.
ВНИМАНИЕ : Если публикую еще и тонкий клиент и веб клиент, то по указанному пути в браузере запускает приложение. Т.е. все находит и ключи и базу.
Однако не могу правильно написать путь для использования веб сервиса.

Если для запуска веб клиента проходит адрес 1c.mycompany.ru/portal, но мне нужно запустить сам веб сервис.

Исходные данные метаданного Web-сервисы:
Имя - WebPortal
URI пространство имен - 1c.mycompany.ru/portal/shipment
Имя файла публикации - shipment.1cws

К нему привязана функция :
Имя - GetTabNumber
Имя метода - GetTabNumber

Я уже по всякому пробовал
1c.mycompany.ru/portal/shipment
1c.mycompany.ru/portal/shipment.1cws
1c.mycompany.ru/portal/GetTabNumber

Пишет 1C:Enterprise 8 application error: HTTP: Not found Ошибка при работе с ресурсом /portal/shipment.1cws
1 rool
 
07.08.12
14:41
1c.mycompany.ru/portal/shipment.1cws?wsdl так попробуй
2 Deryni
 
07.08.12
14:46
Я делал у меня есть и веб-сервис и веб-клиент
предположим я создал публикацию с именем gal
каталог D:\WS\
имя веб-сервиса внутри 1С - WebXChange адрес при публикации - rest.1cws

для веб-сервиса например строка такая:
//localhost/gal/ws/rest.1cws
Ну и соответственно вместо localhost пишем адрес сервера или его URL
А веб-клиент выглядит так:
//localhost/gal

В твоём случае по идее должно быть так:
//1c.mycompany.ru/WebPortal/имя папки где веб-сервис/shipment.1cws
3 ares
 
07.08.12
14:55
(1)НЕ вышло
(2)Попробовал http://1c.mycompany.ru/portal/ws/shipment.1cws Запросил имя пользователя и пароль, уже кое что
по конечному твоему не совсем понял, если у  меня публикация :
Имя - portal
Каталог - c:\inetpub\wwwroot\portal
Табличная часть 1 строка :
Имя - WebPortal
Адрес - shipment.1cws
4 ares
 
07.08.12
15:00
(3)+а какой пароль нужно водить ? чет ввожу админский от БД не хочет, просит
"Для доступа на сервер 1c.mycompany.ru:80 требуется указать имя пользователя и пароль"
5 Balonbl4
 
07.08.12
15:03
(3) ты каким клиентом подцепиться пытаешься? Если 1Ской то давай код в студию
(4) Логин пароль пользователя базы у которого есть разрешение на внешние соединения
6 ares
 
07.08.12
15:06
(5) Клиент интернет браузер Google Chrom, я первый раз вед сервисы публикую, но думаю он должен мне табличку выдать в каком то виде

Функция GetTabNumber()
   
   // Получить типы объектов XDTO
   ВыборкаТип = ФабрикаXDTO.Тип("http://1c.myconpany.ru/shipment", "SampleRequest1");
   СтрокаВыборкиТип = ФабрикаXDTO.Тип("http://1c.myconpany.ru/shipment", "StringRequest1");

   // Создать объект XDTO выборки
   SampleRequest1 = ФабрикаXDTO.Создать(ВыборкаТип);    
   
   Запрос1 = Новый Запрос;
   Запрос1.Текст =
   "ВЫБРАТЬ
   |    СотрудникиОрганизаций.Код КАК TabNumber,
   |    СотрудникиОрганизаций.Физлицо.Наименование КАК FullName
   |ИЗ
   |    Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
   |ГДЕ
   |    СотрудникиОрганизаций.ЭтоГруппа = ЛОЖЬ
   |
   |УПОРЯДОЧИТЬ ПО
   |    TabNumber";
   Выборка1 = Запрос1.Выполнить().Выбрать();
   Пока Выборка1.Следующий() Цикл
       // Создать объекты XDTO строки выборки
       StringRequest1 = ФабрикаXDTO.Создать(СтрокаВыборкиТип);
       
       // Заполнить свойства строки выборки
       StringRequest1.TabNumber = Выборка1.TabNumber;
       StringRequest1.FullName = Выборка1.FullName;
       
       // Добавить строку в выборку
       SampleRequest1.Structure.Добавить(StringRequest1);
   КонецЦикла;    
   
   Возврат SampleRequest1;
   
КонецФункции
7 lEvGl
 
гуру
07.08.12
15:08
8 Balonbl4
 
07.08.12
15:09
(6) Клиентом должен быть другой сервис, другая база 1С например. В браузере ты ничего не увидишь
9 Balonbl4
 
07.08.12
15:11
(0) Гончаров, Хрусталева "Технология интеграции "Предприятия 8.2" - в этой книжке и примеры есть.
10 ares
 
07.08.12
15:11
Как я понял http://1c.mycompany.ru/portal/ws/shipment.1cws?wsdl
(8)А как мне отладить ?
11 rool
 
07.08.12
15:12
(8) Сфига ли? в браузере он увидит xml сервиса
12 lEvGl
 
гуру
07.08.12
15:12
в (1) пропущено WS;
из браузера табличку не получишь, только описание сервиса; что бы получить результат функции сервиса надо программно писать (из чего угодно: 1с, C#, Delphi etc) Табличка = Сервис.ИмяФункции(ПараметрПРинимаемыйФункциейСервиса1, ПараметрПРинимаемыйФункциейСервиса2)
(8) увидит описание сервиса
13 Balonbl4
 
07.08.12
15:14
Создаешь пустую конфу, в ней обработку, в обработке что-то типа


Определения = Новый WSОпределения("http://localhost/fkuztest/ws/fkuz.1cws?wsdl","login","pass");
   Прокси = Новый WSПрокси(Определения, "http://localhost/fkuztest", "WebFkuz", "WebFkuzSoap");
   
   Прокси.Пароль        = "pass#";
   Прокси.Пользователь = "login";

   ПредоплатаПолучена = Прокси.SendNoticeOfPayment(ИдДелегации,ИдМероприятия);
14 ares
 
07.08.12
15:16
Ок сейчас буду пробовать, книжку уже качаю.
Всем спасибо, о результатах доложу!
15 rool
 
07.08.12
15:20
проверь настроен ли iis на анонимный доступ

для для теста: для того что-бы пароль не запрашивало создай в 1С юзера без пароля с авторизацией через системную учетную запись IUSR_имя_твоего_компьютера
16 rool
 
07.08.12
15:21
(15) с правом на внешнее соединение
17 lEvGl
 
гуру
07.08.12
15:52
(10) описание сервиса в браузере увидел? если увидел, то все ок, пробуй программно получить таблицу
18 ares
 
07.08.12
16:32
Аунтификация не работает, вот что нарыл пока (у меня сквозная стоит, и при публикации я установил сквозную)
ЧТо накопал
v8: v8: 8.1. Доменная аутентификация WS, ошибка авторизации
http://forum.sysadmins.su/index.php?s=fc1a1b304098d11d8f082f2edb06752b&showtopic=9345&pid=189104&mode=threaded&start=#entry189104
19 Deryni
 
07.08.12
16:51
(3) всё правильно написал. Попробуй для IIS создать в базе 1С пользователя с английским именем и паролем цифрами или на английском и аутентификацией через 1С. По-моему у меня с русскими именами как раз была проблема. Оно его и спрашивает.
20 Deryni
 
07.08.12
16:52
Вообще если спрашивает имя пользователя и пароль то всё ок. Потом правда может уже выдать ошибку, если у тебя в коде она есть. А если всё в порядке, то выводит xml описание объявленных тобой процедур
21 lEvGl
 
гуру
07.08.12
16:53
попробуй на ИИСе для виртуального приложения (+ можно проверить для сервера в целом и для узла) поставить проверку подлинности в анонимную, тогда надо будет вводить логин пароль базы 1с; либо на ИИСе "проверка подлинности виндовс" и в базе создать пользователя с виндовс аутентификацией(доменная учетка, из под которой работаешь).
22 Deryni
 
07.08.12
16:54
(21) Да он имя пользователя базы 1С спрашивает.

Я пробовал и с Апачей и с ИИС. С Апачей проблем в настройке меньше было. А ИИС 64-битный там не хочет подгружать модули, но где-то здесь я нарыл инструкцию как это сделать.
23 lEvGl
 
гуру
07.08.12
16:58
(22) че вдруг? может его ИИС не пропускает - зависит от настроек
24 lEvGl
 
гуру
07.08.12
17:01
а если вводить доменную учетку (в случае доменной ситуации) и при этом в базе нет пользака с виндовой аутентификацией, то будешь вводить до потери отпечатков пальцев
25 ares
 
07.08.12
17:04
До чего дошли, он мепинг не реализует, то на пользователя домена ругается, то на пользователя БД 1С

Если оставляем только аунтификацию БД 1С, то XML появляется.
26 lEvGl
 
гуру
07.08.12
17:06
и не жалеть кнопки перезапуска ииса; многие настройки требуют перезапуска, как и все виндовое )
27 ares
 
07.08.12
17:12
Глупый вопрос : если при публикации я оставил галку "Публиковать Web-сервисы" и не поставил "Публиковать тонкий клиент и веб-клиент", то базу вытащить через доступ будет нельзя ? Просто давным давно был на курсах по Web приложениям, когда они только появились, говорили что если все по умолчанию делать, можно через путь подключения вытянуть всю БД.
28 lEvGl
 
гуру
07.08.12
17:23
хм... а что значит вытянуть бд?
кстати насчет галочек при публикации - есть там "использовать виндовс аутентификацию при публикации"
29 ares
 
07.08.12
17:28
(28) Галка "использовать виндовс аутентификацию при публикации" установлена