|
SOAP и 1С | ☑ | ||
---|---|---|---|---|
0
Валидатор
03.12.12
✎
16:50
|
Встал такой вопрос: нужно через 1ску подключится к сайту, на сайте в коде есть функция, getCatalog например, она принимает массив, вот я хочу в этот гет каталог передать массив из 1ски( заранее созданный). Думаю делать ввиде обработки, по другому ни как) вот в чем вопрос собсна: как подключиться к сайту, чтобы потом передавать в него нужные мне данные? wsdl файл есть
|
|||
1
бомболюк
03.12.12
✎
16:51
|
Создаешь WS ссылка. Потом создаешь WS Proxy и вперед.
|
|||
2
Валидатор
03.12.12
✎
17:03
|
WSlink = Новый WSОпределения("ссылка на wsdlфайл");
Прокси = Новый WSПрокси (Wslink, настройки , прокси); что нить аткое? |
|||
3
Валидатор
03.12.12
✎
17:35
|
точнее получил вс ссылку, создал прокси,а что дальше?
|
|||
4
Asmody
03.12.12
✎
17:39
|
(3) дальше через ws-прокси можешь вызывать методы веб-сервиса. только прихвати бубен (а лучше два) и запасись вазелином и новопасситом.
|
|||
5
Валидатор
03.12.12
✎
17:42
|
(4) допустим метод называется getStart, и если я подключаюсь через прокси, то вызывать я его буду примерно след образом:
Прокси.getStart ? |
|||
6
Asmody
03.12.12
✎
17:45
|
||||
7
Адимр
03.12.12
✎
17:53
|
Я так вызывал Прокси.getStart("1");
|
|||
8
Адимр
03.12.12
✎
17:55
|
Статья в тему http://infostart.ru/public/16001/
|
|||
9
Валидатор
04.12.12
✎
10:49
|
при создании WS ссылки пишет неверный формат(
|
|||
10
Адимр
04.12.12
✎
10:56
|
(9) Значит там soap 1c не совместимый.
|
|||
11
Валидатор
04.12.12
✎
10:59
|
(10) там ссылка в виде http://ssv.ru/main.wsdl к примеру, полазил в инете, ws ссылки пишут обычно так: http://demo.magentocommerce.com/api/soap?wsdl, может из за того, что мне дали ссылку ( в первой строке которая) поэтому ругается?
|
|||
12
Адимр
04.12.12
✎
11:14
|
При открытии сссылки у тебя дожна страничка с стрктурой xml открыться а тут лажа какая то.
|
|||
13
Валидатор
04.12.12
✎
11:20
|
(12) http://www.sever-parts.ru/main2.wsdl, все открывается, но 1ска ругается
|
|||
14
Адимр
04.12.12
✎
11:28
|
а что пишет? У меня Couldn't connect to server но это потомучто прокси.
|
|||
15
Валидатор
04.12.12
✎
11:34
|
(14) там ссылка не та, попросил переделать, параллельно возникает вопрос, если я создаю WS ссылку в дереве объектов конфигурации, потом выбираю ее, открывается модель данных и веб сервисы, выбираю нужный мне, потом ищу нужный мне метод, а как потом в этот метод передать например массив?
|
|||
16
Валидатор
04.12.12
✎
11:36
|
или чтобы передавать данные нужно создавать новую обработку, в которой программно создавать ws ссылку, прокси, фабрику, и потом передавать значения?
|
|||
17
Валидатор
04.12.12
✎
11:40
|
все, вопросов пока нет, нашел где прочитать)
|
|||
18
Адимр
04.12.12
✎
11:41
|
Почитай вот эту статью не торопясь и вдумчиво
http://infostart.ru/public/98019/ |
|||
19
Валидатор
04.12.12
✎
11:48
|
http://ws.sever-parts.ru/soap?wsdl
все равно неверный формат пишет( че за бред( |
|||
20
Адимр
04.12.12
✎
11:52
|
Заголовок отличается может это существенно
вот у 1с веб сервера заголовок <?xml version="1.0" encoding="UTF-8" ?> - <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap12bind="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="TestWS" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsd1="TestWS" name="TestWS" targetNamespace="TestWS"> - <types> - <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xs1="TestWS" targetNamespace="TestWS" elementFormDefault="qualified"> - <xs:element name="Получить"> |
|||
21
Адимр
04.12.12
✎
11:56
|
||||
22
Валидатор
04.12.12
✎
11:59
|
(21) кэширование wdsl отключается со стороны php ведь? в 1с мы его ен можем отключить так?
|
|||
23
Адимр
04.12.12
✎
12:02
|
(22) Судя по сообщениям в (21) так.
|
|||
24
Адимр
04.12.12
✎
12:04
|
(22) Но все таки посмотри в сторону заголовка что он не такой как у веб сервиса 1с.
Есть еще утилита SOAP UI для тестирования веб сервисов попробуй с помощью неё подрубится к веб сервису. |
|||
25
Валидатор
04.12.12
✎
12:05
|
(24) а откуда ты брал кусок этого заголовка? это стандартный просто или как?
|
|||
26
Адимр
04.12.12
✎
12:09
|
(25) Это мой тестовый веб сервис созданный в 1С.
|
|||
27
Адимр
04.12.12
✎
12:17
|
Даже вот посмотри как распознается твой веб сервис (вверху) и мой (внизу) в браузере гугл хром.
http://www.bild.me/bild.php?file=11461991.png |
|||
28
Адимр
04.12.12
✎
12:18
|
Явно в проблема в том что у твоего веб сервиса структура некорректная.
|
|||
29
Валидатор
04.12.12
✎
12:27
|
взял другой файл, допустим курс цб:
http://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx?WSDL видел сегодня пример на загрузку данных с этого файла, но не могу найти) никто не видел такого?) |
|||
30
Адимр
04.12.12
✎
12:33
|
||||
31
Валидатор
04.12.12
✎
12:34
|
(30 спасибо. И еще вопрос: существенно ли отличается скорость при передачи данных С сайта( как в примере выше, с получением курса валют) и передача данных НА сайт, то есть из 1ски мы к примеру передаем данные?
|
|||
32
Адимр
04.12.12
✎
12:37
|
(31) Не тестил, думаю вряд ли сильно отличается.
|
|||
33
Валидатор
04.12.12
✎
12:51
|
есть ли в 1с стандартные методы для расчета времени работы программы? не охото писать в начале обработки типа сообщить(дата и время) и в конце
|
|||
34
Валидатор
04.12.12
✎
12:54
|
ТекущаяДата()
можно в принципе) |
|||
35
Адимр
04.12.12
✎
12:57
|
Думаю что если в документообороте используется внешняя компонента для этой цели "ОбщийМакет.ОценкаПроизводительностиВнешнийКомпонент" но там точность важна типа меннее секунды, то кроме текущее время ничего нет.
Попробуй старт = текущеевремя(); финиш = текущеевремя(); Рез = финиш-старт; для длит операций пойдет. |
|||
36
Адимр
04.12.12
✎
13:11
|
*ТекущаяДата()
|
|||
37
Валидатор
04.12.12
✎
14:06
|
и еще вопрос:
в http://habrahabr.ru/post/148658/ Для Каждого Элемент Из КурсыВалют.GetCursOnDateResult.diffgram.ValuteData.ValuteCursOnDate Цикл вот что тут такое GetCursOnDateResult.diffgram.ValuteData.ValuteCursOnDate ну точнее даже с момента: diffgram.ValuteData.ValuteCursOnDate не совсем понятно, как туда мы обратились |
|||
38
Валидатор
04.12.12
✎
14:11
|
откуда мы взяли этот diffgram.Valutedata.ValuteCursOndate
|
|||
39
Адимр
04.12.12
✎
14:19
|
(38) наверное КурсыВалют = Прокси.GetCursOnDate(WSПараметр);
Возвращает xdto пакет с кучей своих объектов и значений к которым можно через точку обращаться. Попробуй в 1с в xdto пакет засосать xml схему (если она есть) этого веб сервиса. |
|||
40
Валидатор
04.12.12
✎
15:02
|
(39) то что возвращается пакет это я понял теперь) как только дальше через точку обращаться к значениям переданного пакета? не совсем понятно
Попробуй в 1с в xdto пакет засосать xml схему (если она есть) этого веб сервиса. (с) как?) |
|||
41
Валидатор
04.12.12
✎
15:27
|
снят вопрос
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |