|
v7: SOAP запрос с обработкой, ошибка Плохой тип переменной | ☑ | ||
---|---|---|---|---|
0
abbas
10.02.22
✎
14:12
|
Доброго времени суток.
СервисСОАП = СоздатьОбъект("MSSOAP.SoapClient30"); СервисСОАП.MSSoapInit(URL,Par1,Par2); СервисСОАП.ConnectorProperty("AuthUser",Login); СервисСОАП.ConnectorProperty("AuthPassword",Password); СервисСОАП.ConnectorProperty("WinHTTPAuthScheme",1); Массив= СоздатьОбъект("OLESafeArray"); Массив.Создать(Массив.VarTypes.VT_UINT,2); Массив.УстановитьЗначение(0, 2); Массив.УстановитьЗначение(1, 3); СервисСОАП.AddCommodityToTradeDocument(Массив); Ошибка Плохой тип переменной Подскажите пжста, кто сталкивался, не могу понять, что не так... |
|||
1
abbas
10.02.22
✎
14:29
|
?
|
|||
2
Стальная Крыса
10.02.22
✎
14:45
|
как описан тип параметра в WSDL ?
|
|||
3
abbas
10.02.22
✎
14:48
|
int[]
|
|||
4
Стальная Крыса
10.02.22
✎
14:59
|
сомневаюсь, что это именно так
в определении сервиса нельзя так написать. что написано в "определении" сервиса - web-сервис должен показывать свой WSDL |
|||
5
Стальная Крыса
10.02.22
✎
15:00
|
(4) непосредственно в браузере
|
|||
6
abbas
10.02.22
✎
15:08
|
(5) У данного метода несколько параметров
Но тот который не встает именно этот int[] |
|||
7
abbas
10.02.22
✎
15:09
|
От данного web-сервиса только описание
а в тех поддержке автоответчик - "Смотрите в описание" |
|||
8
abbas
10.02.22
✎
15:11
|
Описание в xml файле такое
<Grup> <arr:int>1</arr:int> <arr:int>3</arr:int> </Grup> |
|||
9
abbas
10.02.22
✎
15:24
|
<xs:element xmlns:q25="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Grup" nillable="true" type="q25:ArrayOfint"/>
|
|||
10
pechkin
10.02.22
✎
15:26
|
что за тип ArrayOfint? таких типов в дефотле нет
|
|||
11
abbas
10.02.22
✎
15:28
|
это из 1С8ки
Массив = СвояФабрикаXDTO.Создать("http://schemas.microsoft.com/2003/10/Serialization/Arrays", "ArrayOfint"); |
|||
12
pechkin
10.02.22
✎
15:29
|
а как ты в 77 создаешь соап объекты?
|
|||
13
abbas
10.02.22
✎
15:30
|
никак, еще до шел до этого
|
|||
14
pechkin
10.02.22
✎
15:32
|
(13) ну собственно он и просит соап объект
|
|||
15
abbas
11.02.22
✎
05:56
|
Как создать переменную с таким типом?
<xs:element xmlns:q25="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Grup" nillable="true" type="q25:ArrayOfint"/> |
|||
16
rphosts
11.02.22
✎
05:58
|
(15) в снеговике для этого придумана прокладка ФабрикаXDTO
|
|||
17
rphosts
11.02.22
✎
05:59
|
через нее загрузив WSDL
|
|||
18
abbas
11.02.22
✎
06:03
|
Есть пример на 7.7?
|
|||
19
abbas
11.02.22
✎
06:40
|
?
|
|||
20
abbas
11.02.22
✎
13:33
|
Как создать переменную с таким типом?
<xs:element xmlns:q25="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Grup" nillable="true" type="q25:ArrayOfint"/> |
|||
21
big
11.02.22
✎
20:13
|
(12) Как правило в клюшках создаётся xml-файл (или xml-строка) и закидывается на целевой сайт через WinHTTP или же curl-ой.
|
|||
22
Serginio1
12.02.22
✎
23:15
|
Я в свое время сделал
Использование классов .Net в 1С для новичков https://infostart.ru/public/238584/ https://infostart.ru/1c/articles/448668/ именно для вэбсервисов не поддерживаемых 1С. Просто генеришь сборку по wsdl и используешь её в 1С. |
|||
23
Злопчинский
13.02.22
✎
00:48
|
(22) и теперь что, можно использовать вебсервисы в 77 волшебным образом?
|
|||
24
Serginio1
13.02.22
✎
19:09
|
(23) Давно уже!
Использование классов .Net в 1С для новичков Вот здесь помогал давно уже API IE из 1с 7.7 |
|||
25
pechkin
13.02.22
✎
19:57
|
(23) Но для каждого сервиса нужно свою сборку генерить
|
|||
26
Serginio1
13.02.22
✎
20:08
|
(25) Да. Но это же недолго
|
|||
27
ДедМорроз
13.02.22
✎
20:15
|
Всегда есть вариант собрать xml-запрос вручную и отправить чнрез XmlHttp.
|
|||
28
Serginio1
13.02.22
✎
20:25
|
В семерке нет типов int, decimal поэтому добавлены методы
public Object ChangeType(string type, object valueOrig) public Object ToDecimal(object valueOrig) public Object ToInt(object valueOrig) Для преобразования типов 1С нужные типы. При этом если тип имеет if ((Тип == typeof(System.Int64) || Тип == typeof(System.UInt32) || Тип == typeof(System.UInt64) || Тип == typeof(System.UInt16) || Тип == typeof(System.SByte))) То результат преобразуется к строке. Так как семерка не понимает их. но всегда можно применить Число() |
|||
29
abbas
16.02.22
✎
15:27
|
(28)
glWrap = СоздатьОбъект("NetObjectToIDispatch45"); ArrayPar = glWrap.СоздатьМассив("System.Int32", 2); // Тип переменой не поддерживается ArrayPar .SetValue(glWrap.ToInt(1)); |
|||
30
abbas
17.02.22
✎
14:15
|
?
|
|||
31
trad
17.02.22
✎
16:10
|
(0) ну раз уже используется oleexsup...
Попробуй так: OleExSup = СоздатьОбъект("OleExSup"); Результат = OleExSup.ВызватьОЛЕМетод(СервисСОАП, "AddCommodityToTradeDocument", Массив); |
|||
32
abbas
17.02.22
✎
16:39
|
Нет, ругается на параметр
|
|||
33
Serginio1
18.02.22
✎
10:57
|
(29) Я же писал про ToInt(object valueOrig)
glWrap.СоздатьМассив("System.Int32", glWrap.ToInt(2)); |
|||
34
Serginio1
18.02.22
✎
10:58
|
В 7ке 2 это double
|
|||
35
Serginio1
18.02.22
✎
13:50
|
Кстати с исходниками идут еще и примеры.
Например ТестNetObjetToIDispatch20.ert Там как раз примеры для работы с вэб сервисом Там есть и счИнт=Врап.ChangeType("System.Int32",сч); Функция Децимал(стр) возврат врап.ToDecimal(Строка(стр)); КонецФункции // Децимал Функция Инт(стр) возврат врап.ToInt(Строка(стр)); КонецФункции // Децимал |
|||
36
Serginio1
18.02.22
✎
13:56
|
Ну и там пример подключения к вэб сервису
ПодключитьсякМорферЧерез45() |
|||
37
Злопчинский
18.02.22
✎
14:06
|
Dispatch20
Морфер - полная японская азбука для меня. |
|||
38
Serginio1
18.02.22
✎
14:13
|
(37) Угу а ёксель не японская азбука?
Есть примеры. NetObjectToIDispatch45 |
|||
39
Serginio1
18.02.22
✎
16:41
|
А кстати, что тут непонятного. В студии создали библиотеку подключились к wsdl создали сборку.
Затем используем эту сборку в 1С Процедура ПодключитьсякМорферЧерез45() врап=СоздатьОбъект("NetObjectToIDispatch45"); врап.УстЭтоСемерка(); //Сборка=врап.загрузитьСборку("d:\MyPrograms\Test\NestNet45\NestNet45\bin\Debug\NestNet45.dll"); // Загружаю сборку содержащую классы и методы доступа в Вэб сервису Сборка=врап.загрузитьСборку(ИмяФайла); true=врап.ChangeType("System.Boolean","true"); //Создаю экземляр NestNet45.ServiceReference1.MorpherSoapClient используя BasicHttpBinding //и remoteAddress типСервера=Сборка.GetType("NestNet45.ServiceReference1.MorpherSoapClient"); типСервера=врап.ПолучитьТип("NestNet45.ServiceReference1.MorpherSoapClient"); remoteAddress =врап.СоздатьОбъект("System.ServiceModel.EndpointAddress", врап.СоздатьОбъект("System.Uri","http://www.morpher.ru/WebServices/Morpher.asmx")); привязка = врап.СоздатьОбъект("System.ServiceModel.BasicHttpBinding"); сервер=врап.СоздатьОбъект(типСервера,привязка,remoteAddress); //сервер=врап.СоздатьОбъект(типСервера); // Вызываю метод и вывожу результат рез = сервер.GetForms("Вася Пупкин"); Для сч=0 по рез.Length-1 Цикл Сообщить(рез.GetValue(Инт(сч))); КонецЦикла; КонецПроцедуры |
|||
40
Злопчинский
18.02.22
✎
16:49
|
жуть какая...
кто разбирается во фвсех этих морферах и соапах и прочей... - эта обертка чисто в помощь, остальным (типа меня тупым) - ничего непонятно... ;-) |
|||
41
Serginio1
18.02.22
✎
18:12
|
Морфер это просто вэб серфис в данном случае http://www.morpher.ru/WebServices/Morpher.asmx уже не работающая
http://razrabotki.corpnova.ru/public/102172/ Сборка=врап.загрузитьСборку(ИмяФайла); //загрузили сборку с классом доступа Тип сервера remoteAddress и привязка это подключение к серверу типСервера=врап.ПолучитьТип("NestNet45.ServiceReference1.MorpherSoapClient"); remoteAddress =врап.СоздатьОбъект("System.ServiceModel.EndpointAddress", врап.СоздатьОбъект("System.Uri","http://www.morpher.ru/WebServices/Morpher.asmx")); привязка = врап.СоздатьОбъект("System.ServiceModel.BasicHttpBinding"); сервер=врап.СоздатьОбъект(типСервера,привязка,remoteAddress); Это некая часть о которой нужно почитать и потратить время на основы. Но затем просто вызываешь метод сервиса рез = сервер.GetForms("Вася Пупкин"); и обрабатываешь результатпросто и все по русски Для сч=0 по рез.Length-1 Цикл Сообщить(рез.GetValue(Инт(сч))); КонецЦикла; Но тебе же понятнее собрать xml-запрос вручную и отправить чнрез XmlHttp, получить ответ и разобрать его |
|||
42
Злопчинский
18.02.22
✎
18:19
|
(41) Мне пофиг. Мне удобно - стукнуться в вебсервис, получить ответ и писать по русски
НоменклатураИД = Ответ.GoodsID; а не вот эту хрень Рез.GetValue(Инт(сч)) - а чтоб нормально Рез.ПолучитьЗначениеИзСтруктуры(сч); |
|||
43
Serginio1
18.02.22
✎
18:52
|
(42) Можно и так сделать. Но для этого нужно еще немного допилить. Исходники то у тебя есть.
Не хочешь не надо. Используй голый XML |
|||
44
Serginio1
18.02.22
✎
18:53
|
Просто семерка не была в приоритете
|
|||
45
big
18.02.22
✎
19:56
|
(43) При использовании голого XML топикстартер уже бы праздновал пятницу с готовой рыбой (зачеркнуто) шаблоном )) Однако он "испорчен" реалиями и ищет, ищет, ищет ))
|
|||
46
Serginio1
18.02.22
✎
20:19
|
(45) Угу я специально эту приблуду сделал ибо в 1С не было поддержки специфичных вэб сервисов. А там сотни классов и методов.
Если один метод то да, но сотни задолбаешься готовить рыбу! |
|||
47
Serginio1
18.02.22
✎
20:21
|
(48) А вручную писать Com обертки над классами еще то удовольствие. Поэтому проще использовать NetObjectToIDispatch45
|
|||
48
Злопчинский
18.02.22
✎
20:23
|
Снова много непонятных слов....
|
|||
49
Злопчинский
18.02.22
✎
20:25
|
иксемель или джсон для обмена если что -0 я и без всяких классом наверное смогу подготовить.
а вот простым типа подключиться к сервису, отправить пакет, получить тут же ответ - тут как раз сложнее |
|||
50
big
18.02.22
✎
20:43
|
(47) Самое плохое - это бросаться из крайности в крайность. Не стоИт задача креативить обёртки и осваивать сотни классов и методов. Закинуть хмл и получить ответ - для это надо как в (39) установить Студио-2ххх, что-то там скомпилить и т.д. Вы это серьезно??
|
|||
51
Serginio1
18.02.22
✎
20:48
|
(49) Удачи. Ты когда на wsdl посмотришь или сваггер и ужаснешься когда это все ручками делать.
Кстати многие предлагают свои библиотеки для запросов. Тот же морфер предлагает https://morpher.ru/dotnet/ либо уже готовый вэб клиент https://www.nuget.org/packages/Morpher.WebService.V3.Client/ бери и пользуйся. Я уже 1С то давно не занимаюсь. Используйте не хотите не надо. |
|||
52
серый КТУЛХУ
18.02.22
✎
20:58
|
(51): "Я уже 1С то давно не занимаюсь. Используйте не хотите не надо."
первое - понятно. второе - содержит ошибку, глагол правильный "не можете". потому что автор - см."первое", но что главнее - ему превать на второе, нате хзчо, не хочете не мучьтесь. (не претензия, западло допиливать до понятного - хсним) |
|||
53
Serginio1
18.02.22
✎
22:41
|
(52) Поверь если бы это было кому то нужно, то обращались бы ко мне. А таких было поверь совсем немного. И я помогал.
Но при этом просмотров Использование сборок .NET в 1С 7. и 8.x. Создание внешних Компонент. https://infostart.ru/public/238584/ Использование классов .Net в 1С для новичков https://infostart.ru/1c/articles/448668/ Но вот товарищам типа Злопчинский это не уперлось ни в каком виде. Ну и семерка уж точно не приоритет. Если бы мне было хсним я бы не писал столько статей https://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802 Но на самом деле это мало кому нужно. И тебе в том числе |
|||
54
ДедМорроз
18.02.22
✎
22:43
|
Что разбираться с классами .Net,что разбираться с xml один хрен не из коробки.
Опять же,созавать всякие типы и т.п. Ну нет в xml типов,только строки,для которых в параметрах указана принадлежность к какому-то типу. |
|||
55
ДедМорроз
18.02.22
✎
22:46
|
И int в 1c есть
Создаем объект msscriptcontrol ставим язык vbscript и пишем cint. Да это тоже обертка,но она встроена в систему,начиная с windowd 2000. |
|||
56
Serginio1
18.02.22
✎
22:48
|
(54) Это называется сериализация десериализация. Сейчас например моден gRPC там уже нет никакого текста.
https://ru.wikipedia.org/wiki/GRPC Но вот с помощью сборок .Net можно прекрасно использовать и через 7 ку. |
|||
57
abbas
19.02.22
✎
15:34
|
(33) тысяча извинений, но ругается на то что System.Int32.ToInt неизвестная команда
Мне немного, не то что немного а все почти не понятно Ваши ссылки я прочитал, несколько раз перечитывал Не получается массив создать |
|||
58
abbas
19.02.22
✎
15:40
|
Сервис = СоздатьОбъект("MSXML2.XMLHTTP");
Сервис.open("POST", "http://хххххххххх:1111/УУУУУ?wsdl", 0, "Login", "Password"); Сервис.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); Сервис.setRequestHeader("SOAPAction", "http://хххххххххх:1111/УУУУУ?wsdl"#NFDService:AddCommodityToTradeDocument"); Сервис.send(ТекстОтправки); Выходит ошибка 400 |
|||
59
abbas
19.02.22
✎
15:41
|
СервисСОАП = СоздатьОбъект("MSSOAP.SoapClient30");
СервисСОАП.MSSoapInit(URL,Par1,Par2); СервисСОАП.ConnectorProperty("AuthUser",Login); СервисСОАП.ConnectorProperty("AuthPassword",Password); СервисСОАП.ConnectorProperty("WinHTTPAuthScheme",1); СервисСОАП.ProverkfSvyasi(); Проверку проходит норм, ответ и запрос отрабатывает |
|||
60
Serginio1
19.02.22
✎
17:22
|
(57) То есть
glWrap=СоздатьОбъект("NetObjectToIDispatch45"); glWrap.СоздатьМассив("System.Int32", glWrap.ToInt(2)); не проходит? Ты сделал сборку для подключения к вэбсервису? |
|||
61
Злопчинский
19.02.22
✎
18:20
|
(53) проблема не в этом. я читал эти статьи. Они страдают тем же чемстрадает от же самый 7.7 СП - это просот изложение несвязанных друг с другом фактов. Как это применить на деле - я хз, пока не уложиться в стройную систему. А так как эта вся NET-система стоит сбоку от технологии 1С - видимо мне не светит.
. например, можно было бы рассмотреть сковзной пример с посянениями с работой с каким-нибудь популярным сервисом, типа egrul.narod.ru или что-то иное похлжее, например тот же самый ЧЗ. . а так - вещь наверное хорошая, но непонятная... |
|||
62
Serginio1
19.02.22
✎
19:22
|
(61) Ты используешь COM напрополую. Com встроен в 1С. Другое дело, что нужно знать какие методы и свойства поддерживает Com объект.
Ну и программист 1С ну должен понимать, что такое классы, ООП, интерфейсы, перегрузку методов итд. Это помогает программировать в 1С. А .Net это те же классы. Просто моя компонента, через COM позволяет использовать эти классы. То есть вся мощь .Net у тебя в 1С! Ты можешь использовать готовые или создавать свои классы. При этом не нужно вручную обертывать в Com совместимые классы. Если бы ты захотел, то разобрался бы. Я попробовал на пальцах объяснить Использование классов .Net в 1С для новичков https://infostart.ru/1c/articles/448668/ Наверное у меня это не вышло |
|||
63
abbas
19.02.22
✎
19:26
|
(60) Подключение к вебсервису есть
не могу в метод передать массив Этот массив имеет <xs:element xmlns:q25="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="Grup" nillable="true" type="q25:ArrayOfint"/> |
|||
64
Serginio1
19.02.22
✎
19:44
|
(63) Ну ты создал сборку https://docs.microsoft.com/ru-ru/dotnet/core/additional-tools/wcf-web-service-reference-guide
Обычно готовая .Net библиотека. То есть должен быть такой код Сборка=врап.загрузитьСборку(ИмяФайла);//загрузили сборку с классом доступа Тип сервера remoteAddress и привязка это подключение к серверу типСервера=врап.ПолучитьТип("NestNet45.ServiceReference1.MorpherSoapClient"); remoteAddress =врап.СоздатьОбъект("System.ServiceModel.EndpointAddress", врап.СоздатьОбъект("System.Uri","http://www.morpher.ru/WebServices/Morpher.asmx")); привязка = врап.СоздатьОбъект("System.ServiceModel.BasicHttpBinding"); сервер=врап.СоздатьОбъект(типСервера,привязка,remoteAddress); Ну и обычно вместо массива используется List<string> Кстати к статье https://infostart.ru/1c/articles/448668/ нашел ответ про семерку Ar = glWrap.СоздатьМассив("System.Int32", 7); // работает без проблем Ar.SetValue(glWrap.ToInt(2), glWrap.ToInt(4)); // выдает ошибку : Не найден метод System.Int32[]SeValue mscorlib Зн1 = Ar.GetValue(glWrap.ToInt(1)); |
|||
65
серый КТУЛХУ
19.02.22
✎
20:53
|
спасибо, нихера не понятно.
|
|||
66
Злопчинский
19.02.22
✎
22:25
|
Надо ещё какие-то сборки где-то вне 1с создавать? На фейхоа?
Почему я не могу в 1с работать через всякие обёртки сразу? |
|||
67
Злопчинский
19.02.22
✎
22:26
|
(65) о, я не один?
|
|||
68
Serginio1
19.02.22
✎
23:30
|
(66) Создавать сборки нужно для упрощения доступа к коду из 1С.
Но можешь и напрямую работать. При этом даже компилировать код. Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция https://infostart.ru/1c/articles/466196/ |
|||
69
Serginio1
19.02.22
✎
23:35
|
(67) Странно. Я вот читаю код шестилетней давности и все понятно. Даже нравится как написал. Молодец!
|
|||
70
серый КТУЛХУ
20.02.22
✎
00:05
|
(67): потому что мы с тобой меркантильные и прагматичные сволочи - и нам нужен инструмент, который делает что надо. а не создание непонятночего, сборок-фигорок, компиляция-херация, всякие другие очень интересные и веселые прибамбасы непонятнодлячего но красивые... нэ?
|
|||
71
серый КТУЛХУ
20.02.22
✎
00:08
|
все должно быть просто как мычание. нао сделать то-то - вот я могу вот инструмент - так, ануракаж - ыот, смотрите, есть такая красивая фингя дот-нет - стоп я не про ето спрашивал - абажжи вот на нем можно сборку сделать - шошошо? я не про это спрашивал! - ну можно и то про что ты спрашивал, вот смотри: ты можешь прям скомпилировать - таблин но мне НЕ ЭТО надо! я спросил ты сказал можно я спросил как а ты что рассказываешь?
|
|||
72
Злопчинский
20.02.22
✎
00:09
|
(70) угу
|
|||
73
Злопчинский
20.02.22
✎
00:15
|
все шо мне надо - чтобы я собрал содержательную часть пакета (например, список товаров), запихнул его в "обертку" - эта обертка сама с этим пакетом делает что надо, отправляет и возвращает мне ответ - ок/неок. всё.
если этой обертке на вход нужна ТЗ с данными - я дам ТЗ (пусть оно там унутре сама в иксемель/прочую хрень преобразует). Все что надо - описание протокола в терминах 1С что я должен подать на вход. Обертка.Адрес = "какойтоадресвебсервисаипрочейхрени"; Обертка.Логин = "klsdfkls"; Обертка.Пароль = "klsdfkls"; Обертка.Токе = "348092375897859"; Обертка.Данные = МояТЗ; Ответ = Обертка.Отправить(); или СтруктураОтвета = Обертка.Получить(); . всё. |
|||
74
abbas
20.02.22
✎
09:10
|
(65) Я тоже ничего не понял
Serginio1 можем общими усилиями проработать данный вопрос? пошагово пжста |
|||
75
Serginio1
20.02.22
✎
11:57
|
Пошагово это надо почитать
https://ru.stackoverflow.com/questions/527763/%d0%9a%d0%b0%d0%ba-%d0%b2%d1%8b%d0%b7%d0%b2%d0%b0%d1%82%d1%8c-%d0%bc%d0%b5%d1%82%d0%be%d0%b4-%d0%b8%d0%b7-c-%d0%b2-1%d0%a1/527802#527802 Потом создать сборку https://docs.microsoft.com/ru-ru/dotnet/core/additional-tools/wcf-web-service-reference-guide Выбрав тип проекта "Библиотека классов (.Net Framework))" Ну и целевая платформа .Net Framework 4.6.1 https://metanit.com/sharp/tutorial/3.46.php К сожалению сейчас сильно занят. Вам нужен в помощь любой программист на C#, что бы разобраться с сгенеренными классами. Но возможно у владельца сервера есть уже готовая библиотека для доступа к сервису на сайте. |
|||
76
ДедМорроз
20.02.22
✎
13:04
|
https://www.codeproject.com/Tips/457410/Xml-WebService-Array-Parameters
Можно это посмотреть,как делается массив - если про классы будет ничего непонятно,то пример значения в виде массива должен помочь собрать вручную. |
|||
77
abbas
22.02.22
✎
10:54
|
нашел ответ про семерку
Ar = glWrap.СоздатьМассив("System.Int32", 7); // работает без проблем Ar.SetValue(glWrap.ToInt(2), glWrap.ToInt(4)); Ar.SetValue(glWrap.ToInt(2), glWrap.ToInt(4)); Неверный параметр, все равно ругается на данный массив Нужен http://schemas.microsoft.com/2003/10/Serialization/Arrays как реализовать? |
|||
78
Serginio1
22.02.22
✎
16:10
|
(77) Ты пробовал создать сборку? Если не хочешь .Net то сделай текст как в 76 и отправляй его постом.
|
|||
79
abbas
22.02.22
✎
16:39
|
(78) Даже не знаю что сказать
Чтобы сделать сборку, мне нужно устанавливать visual stdio, прописывать код и собирать в библиотеку, потом с помощью 1С с ней работать, я правильно понял? |
|||
80
abbas
22.02.22
✎
16:41
|
Пытался делать
Запрос=СоздатьОбъект("MSXML2.DOMDocument"); Запрос.loadXML(ТекстОтправки); об = СоздатьОбъект("MSXML2.XMLHTTP"); об.open("POST", URL, 0, Login, Password); об.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); об.setRequestHeader("SOAPAction",URL#Par1:Par2"); об.send(Запрос); Ошибка 400 и все |
|||
81
abbas
22.02.22
✎
21:12
|
(78) Пытаюсь разобрать, собрать сборку
Но как использовать пространство имен http://schemas.microsoft.com/2003/10/Serialization/Arrays не знаю, уже чайник закипел |
|||
82
big
22.02.22
✎
22:05
|
(81) Плюнь ты на него. Там мозг уже сожран без вариантов.
Я спрошу сугубо для спортивного интереса - ЧТО и КУДА надо послать? Интересует собссно конкретные вещи: ИмяПоля:Значение, КудаСлать:Адрес, СтруктураДанных, ссылки на сайт "принимателя" данных. Потому что в течение всего "диалога" мы так и не увидели требований получателя информации и реальных действий отправителя информации. з.ы. тупо сделать нужный xml-файл это весьма несложно |
|||
83
abbas
23.02.22
✎
06:15
|
(82)
ТекстОтправки = "<taxGroups> |<arr:int>1</arr:int> |<arr:int>3</arr:int> |</taxGroups>"; Запрос=СоздатьОбъект("MSXML2.DOMDocument"); Запрос.loadXML(ТекстОтправки); об = СоздатьОбъект("MSXML2.XMLHTTP"); об.open("POST", "http://localhost:1111/MyService?wsdl", 0, Login, Password); об.setRequestHeader("Content-Type", "text/xml; charset=utf-8"); об.setRequestHeader("SOAPAction","http://localhost:1111/MyService?wsdl#MyServiceSOAP:MyFunction"); Ответ = об.send(Запрос); Ошибка 400 и все Мне кажется я не верно указываю URL |
|||
84
abbas
23.02.22
✎
07:55
|
Пробовал:
Убирал везде ?wsdl Менял в SOAPAction на: MyService:MyFunction MyServiceSOAP:MyFunction MyService#MyServiceSOAP:MyFunction MyService:MyServiceSOAP#MyFunction Что не так |
|||
85
ДедМорроз
23.02.22
✎
08:50
|
Есть вариант microsoft script control и внутрь засунуть текст на vbscript.
Там массив получается через Array |
|||
86
abbas
23.02.22
✎
16:36
|
Кстати, я перехожу на http://schemas.microsoft.com/2003/10/Serialization/Arrays
пишет "Ресурс, который вы ищете, был удален, его имя было изменено или он временно недоступен." |
|||
87
trad
24.02.22
✎
01:29
|
(83) то что ты пытаешься отправить - далеко от soap протокола
Для начала, в корне xml должен быть envelop в правильном пространстве имён и как минимум body и прочие "штуки" по протоколу soap |
|||
88
trad
24.02.22
✎
01:37
|
Что бы всеми этими протокольными обязанностями не парится люди придумали всякие прокси.
Прокси бывают динамические, которые на лету настраиваются по wsdl. Примерами таких являются wsпрокси в снеговике или mssoap. Бывают статические, которые собираются в некий готовый класс один раз по wsdl. В качестве примера разработка предлагаемая Serginio1 |
|||
89
trad
24.02.22
✎
01:42
|
Но тут, конечно, надо поднапрячься и немного прокачать скиллы вне рамок семерки. Иначе будет тыкание наугад как (84)
Ну или переходить на восьмерку. Там это реализовано штатно |
|||
90
abbas
25.02.22
✎
20:33
|
СОС
|
|||
91
ДедМорроз
26.02.22
✎
14:32
|
Soap service на локальной машине - это что?
Можно на него посмотреть? Просто,1с значения преобразует,поэтому могут быть сюрпризы - нужно пихать то,что объект ожидает. |
|||
92
ДедМорроз
26.02.22
✎
14:34
|
Wsdl файл с этого сервиса можно увидеть?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |