Имя: Пароль:
1C
 
WEB-сервисы 8.1
0 Abbat
 
13.07.07
12:17
ПРивет всем. Хотел бы поинтересоваться на тему Веб-сервисов. 1С 8.1 создает вебсервис и публикует его на сервере в виде файла  имя_файла.1cws. В качестчве сервиса сделал функцию которая принимает значение и умножает его на 2 и возвращает новое значение. При просмотре созданного файла нет никакого намека на wsdl - только мало вразумительные ссылки, с которыми непонятно как работать. Пожалуйста, если кто делал доступ из веб приложения к веб-сервису 1С 8.1 подскажите как быть.
1 уродина
 
13.07.07
12:28
мой совет следующий -
вначале попробуйте подцепить этот сервис в самой 8.1 . это у вас получается?
2 Abbat
 
13.07.07
12:32
Щас попробую,но хотелось бы сразу понять в чем наколка.Файл который создает 8.1 такой
<?xml version="1.0" encoding="UTF-8" ?>
 <service namespace="http://www.w3.org/2001/XMLSchema" name="Test" connectString="File="D:\Мои документы\Работа\Веб-Сервис";" />

Как с этим работать. Тут только пространство имен, имя сервиса и строка с путем до базы..Ни нотации wsdl, ни каких то методов..
3 Abbat
 
13.07.07
13:01
А вот вопрос, что в 1С подразумевается под URI-пространством имен? Скажем у меня сервис лежит на http:\\localhost Это и будет его пространство имен?
4 Abbat
 
13.07.07
16:16
Сделал WS-ссылку, она запросила линк на сервис. Я его прописал. Но в итоге как я и предополагал, содержимого wsdl-test.1csw который я сделал и опубликовал, не оказалось.Соответственно к методам, обратиться не могу. Вот такая хрень. Что делать?
5 Legj
 
13.07.07
16:22
Рекомендую для начала взять и привести в работоспособность материалы с ИТС (Демонстрационная конфигурация Веб-сервисы 8.1) - очень компактно и доступно написано всё.
6 Abbat
 
13.07.07
16:31
Там все понятно относительно. Там она работает с wsdl файлом на сайте 1С, который как раз написан нормально, и через ссылку в 1csw он все методы то и получает. Мне же надо сделать сервис средствами 1С 8.1 так чтобы обращаться только к нему через SOAP и работать по человечески с его методами, он же генерит какую то хрень. Я посмотрел уже в на ИТС и в демонстрационной конфигурации и в инете все облазил. Инфы, где бы показыывалось как подрубиться к сервису и можно ли это вообще сделать, нет нигде.

Помогите плиз.
7 DK_L
 
13.07.07
16:35
это мой *.wsdl который получается при открытии ссылки на вэб-сервис
<?xml version="1.0" encoding="UTF-8" ?>
- <definitions xmlns:tns="http://serverfullname/ws/userdata" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="http://serverfullname/ws/userdata" xmlns="http://schemas.xmlsoap.org/wsdl/" name="ДанныеПользователи" targetNamespace="http://serverfullname/ws/userdata">
- <types>
- <xsd:schema xmlns:xs1="http://serverfullname/ws/userdata" attributeFormDefault="unqualified" elementFormDefault="qualified" targetNamespace="http://serverfullname/ws/userdata">
- <xsd:complexType name="СписокПользователей">
- <xsd:sequence>
 <xsd:element maxOccurs="unbounded" minOccurs="0" name="Состав" type="tns:ЭлементПользователь" />
 <xsd:element name="Количество" type="xsd:int" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:complexType name="ЭлементДатаПоследнегоВхода">
- <xsd:sequence>
 <xsd:element name="Наименование" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:complexType name="ЭлементКомпьютер">
- <xsd:sequence>
 <xsd:element name="Наименование" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:complexType name="ЭлементПлощадка">
- <xsd:sequence>
 <xsd:element name="Наименование" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:complexType name="ЭлементПользователь">
- <xsd:sequence>
 <xsd:element name="ЦБО" type="tns:ЭлементЦБО" />
 <xsd:element name="Площадка" type="tns:ЭлементПлощадка" />
 <xsd:element name="Компьютер" type="tns:ЭлементКомпьютер" />
 <xsd:element name="Программа" type="tns:ЭлементПрограмма" />
 <xsd:element name="ДатаПоследнегоВхода" type="tns:ЭлементДатаПоследнегоВхода" />
 <xsd:element name="Роль" type="tns:ЭлементРоль" />
 <xsd:element name="Наименование" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:complexType name="ЭлементПрограмма">
- <xsd:sequence>
 <xsd:element name="Наименование" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:complexType name="ЭлементРоль">
- <xsd:sequence>
 <xsd:element name="Наименование" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:complexType name="ЭлементЦБО">
- <xsd:sequence>
 <xsd:element name="Наименование" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
- <xsd:element name="Получить">
- <xsd:complexType>
- <xsd:sequence>
 <xsd:element name="ПостфиксПакетовXDTO" type="xsd:string" />
 <xsd:element name="URL_ВэбСервиса_БезРасширения" type="xsd:string" />
 </xsd:sequence>
 </xsd:complexType>
 </xsd:element>
- <xsd:element name="ПолучитьResponse">
- <xsd:complexType>
- <xsd:sequence>
 <xsd:element name="return" nillable="true" type="tns:СписокПользователей" />
 </xsd:sequence>
 </xsd:complexType>
 </xsd:element>
 </xsd:schema>
 </types>
- <message name="ПолучитьRequestMessage">
 <part name="parameters" element="tns:Получить" />
 </message>
- <message name="ПолучитьResponseMessage">
 <part name="parameters" element="tns:ПолучитьResponse" />
 </message>
- <portType name="ДанныеПользователиPortType">
- <operation name="Получить">
 <input message="tns:ПолучитьRequestMessage" />
 <output message="tns:ПолучитьResponseMessage" />
 </operation>
 </portType>
- <binding name="ДанныеПользователиSoapBinding" type="tns:ДанныеПользователиPortType">
 <soapbind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="Получить">
 <soapbind:operation style="document" />
- <input>
 <soapbind:body use="literal" />
 </input>
- <output>
 <soapbind:body use="literal" />
 </output>
 </operation>
 </binding>
- <binding name="ДанныеПользователиSoap12Binding" type="tns:ДанныеПользователиPortType">
 <soap12bind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
- <operation name="Получить">
 <soap12bind:operation style="document" />
- <input>
 <soap12bind:body use="literal" />
 </input>
- <output>
 <soap12bind:body use="literal" />
 </output>
 </operation>
 </binding>
- <service name="ДанныеПользователи">
- <port name="ДанныеПользователиSoap" binding="tns:ДанныеПользователиSoapBinding">
- <documentation>
 <wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/" conformsTo="http://ws-i.org/profiles/basic/1.1" />
 </documentation>
 <soapbind:address location="http://gudok.corp.intra/ws/userdata.1cws" />
 </port>
- <port name="ДанныеПользователиSoap12" binding="tns:ДанныеПользователиSoap12Binding">
 <soap12bind:address location="http://serverfullname/ws/userdata.1cws" />
 </port>
 </service>
 </definitions>
8 DK_L
 
13.07.07
16:37
(6) (5) прочти внимательно и в этой конфе на закладке установка все есть + в конфе код посмотри
9 DK_L
 
13.07.07
16:42
+(8)устанавливаешь 2 конфы "Клиент" "Поставщик" демо, загружаешь справочник по вэб-сервисам 1С типовым, далее настраиваешь IIS так как указано на закладке "Установка" обработки-помощника, далее размещаешь вэб-сервис shipment у себя на сервере, хочешь на локалхосте, далее проводишь документ расходная накладная в конфе "Поставщик"
в модуле формы "Приходная накладная" у ИБ "Клиент" есть обработчик получения данных из конфы "Поставщик"
10 DK_L
 
13.07.07
16:43
+(9)загружаешь справочник "Номенклатура" по вэб-сервисам 1С типовым
11 DK_L
 
13.07.07
16:47
соответсвенно перед размещением(публикацией ) вэб-сервиса нужно изменить конфы в части переопределения URI-пространства имен нашего вэб-сервиса, грубо говоря вэб-сервис - это механизм подключения к базе с заранее определенными методами получения из нее данных
12 Legj
 
13.07.07
17:01
(6) вы демо-конфу или не смотрели, или совсем подиагонали - там есть и пример ображения к веб-сервису (веб-ссылка), и пример веб-сервиса.
и при запуске в предприятии выскакивает мануал, где на апельсинах разжевано как сделать этот самый веб-сервис.
13 Abbat
 
13.07.07
17:15
Простите за мое невеждество, расскажу как я делал.
1. Настроил Апачи, как говорилось, в инструкции типовой конфы.
2. Создал объект WEB-сервис, со следующими настройками:
  Имя:  Test
  Операции: Sum c параметром param
            Функция Sum(param)
               param=param+666;
               return param;
            КонецФункции
  Подсистемы: не иземнял
  Прочее:  URI пространства имен:  Http:\\localhost
  Имя файла публикации: test.1cws

3. Иду в пункт Администрирование\Публикация веб-сервисов
4. Выбираю там путь: некий путь до серверной папки
6. Перечисленные внизу файлы описания веб-сервисов публикую.
7. Захожу в папку смотрю - есть они все ок.
8. Обращаюсь по адресу - http:\\localhost\test.1cws?wsdl и он выдает такую весч
  <?xml version="1.0" encoding="UTF-8" ?>
<service namespace="Http:\\localhost" name="Test" connectString="File="D:\Мои документы\Работа\Веб-Сервис";" />


работать с ws+ссылками не предполагается, предполагаеться дальше делать интерфейс и юзать этот сервис. Но как его юзать если то что получается - не wsdl. Как получить такую красоту как у вас? Что я не так сделал или не доделал?
14 Legj
 
13.07.07
17:19
(13) Версия Апач?  У меня на 2.2 не взлетало, на 2.0 - без проблем.
Как обращаетесь к веб-сервису? Интерактивно через IE тоже самое получается?
15 ASV
 
13.07.07
17:25
(13) апач не настроен
(14) для 2.2 другая длл
16 ASV
 
13.07.07
17:26
17 ASV
 
13.07.07
17:28
(13) URI пространство не обязано совпадать с домен на котором находидся test.1cws, вот на регистр символов стоит обратить внимание
18 Abbat
 
13.07.07
17:38
Версия апача 2.0
Апач настроен. Обращаюсь просто по ссылке http://localhost/test.1cws?wsdl через IE.
С веб сервисами я работал уже, знаю как, но в каждом из случаев я работал с уже нормальным wsdl а тут такого нету. Вопрос как раз в том, как в 1С 8.1 сделать правильно сервис этот долбаный, чтобы он соответствовал wsdl или он может делать только эти убогие 1cws не доделанные?
19 ASV
 
13.07.07
17:42
(18) ладно, настроен некорректно :)
20 ASV
 
13.07.07
17:43
+19 читай (16) внизу ссылки и инструкцию
21 Abbat
 
13.07.07
17:45
как по инструкции написано, так и настроил. Патч этот 1Совский оповестил, что настройка завершена успешно.
22 ASV
 
13.07.07
17:47
(21) права на чтение на каталог bin и на запись на каталог базы
23 ASV
 
13.07.07
17:48
(21) патч не проверяет корректность установки
24 Abbat
 
13.07.07
17:55
Господи, ну почему эта 1С все делает так неудобно и при таком минимуме справочной информации
25 Abbat
 
13.07.07
18:57
ASV можно тебе будет в аську вопросы задавать если что?