Имя: Пароль:
1C
1С v8
Заполнение массива XDTO
0 kimba
 
08.05.13
17:20
Есть веб сервис у которого есть объект, у которого базовый тип Array (http://schemas.xmlsoap.org/soap/encoding/).

Не могу понять как его заполнить.
Создать его не проблема, создаю его так

ТипTTaskMarkList = Сериализатор.Фабрика.Тип("urn:uIfaWebServiceClasses", "TTaskMarkList");
TaskMarkList = Сериализатор.Фабрика.Создать(ТипTTaskMarkList);

В отладчике объект выглядит так:

http://i47.fastpic.ru/big/2013/0508/ad/14bb4864d6feec9a480f58d0e67d78ad.png

Что с ним нужно сделать чтобы добавить туда элементы не понятно.
2 kimba
 
08.05.13
17:27
(1) Тогда как это не по простому сделать?
3 acsent
 
08.05.13
17:30
нужно создать какойнибудь тип у которого будет реквизит список
4 kimba
 
13.05.13
10:25
(3) Поподробнее можно? Имеется ввиду другой тип, не "TTaskMarkList"? Тогда какой?
5 Cube
 
13.05.13
10:26
Может поможет: v8: Помогите с пакетом XDTO
6 alexei366
 
13.05.13
10:27
Выстави мин макс количество свойства подчиненного (как понимаю arrayType)
7 kimba
 
13.05.13
10:49
(6) arrayType = Неопределено, так что свойств у него нету
8 Serginio1
 
13.05.13
11:33
Попробуй
TaskMarkList .Последовательность()
9 alexei366
 
13.05.13
11:41
(7) arrayType и есть свойство, у него параметры менять
10 kimba
 
13.05.13
12:00
(9) С тем что arrayType есть свойство TaskMarkList я согласен.
Как менять у него параметры если он = Неопределено? (см. скриншот в (0))
11 Serginio1
 
13.05.13
12:06
12 alexei366
 
13.05.13
12:42
(10) TaskMarkList.arrayType = Сериализатор.Фабрика.Создать("http://schemas.xmlsoap.org/soap/encoding/", "Array");

Попробуй так, потом посмотри в отладчике чо получилось
13 kimba
 
13.05.13
12:55
Вот эта конструкция
Сериализатор.Фабрика.Создать("http://schemas.xmlsoap.org/soap/encoding/", "Array")

Возвращает ОбектXDTO такойже как в (0)
14 Serginio1
 
13.05.13
12:57
(0) А что с 8,11?
15 kimba
 
13.05.13
13:06
(14) Смотрю, эксперементирую, пока не выходит, пример в (11) работает т.к. объявление списка происходит прямо в данном пакете XDTO. У меня же объявление массива происходит в http://schemas.xmlsoap.org/soap/encoding/. Думаю в этом проблема.
16 kimba
 
13.05.13
13:13
Кому интересно поэксперементировать вот wsdl
http://webfile.ru/6516563
Задача создать и заполнить объект типа TBuildPlateIfaMethod
17 alexei366
 
13.05.13
13:46
(16) А ты можешь схему экспортнуть только а не всю портянку, я конешно лишнее отрезал (вроде то что надо), но у типа TTaskMarkList чот не вижу твоих свойств, да и у Array свойство где указан тип arrayType не имеет имени, а сам тип arrayType объявлен в этом же пакете, но его чот и нету здесь.
Мож ты не полностью экспортнул?
18 kimba
 
13.05.13
13:50
(17) Я полностью wsdl выгрузил, ты возьми не обрезая портани его в веб ссылку. Я свойства в дереве тоже не вижу, но при программном создании они появляются.
19 alexei366
 
13.05.13
13:53
(18) Да уж портанул пакета http://schemas.xmlsoap.org/soap/encoding/ почемуто нет в ws-ссылке
20 kimba
 
13.05.13
14:00
(19) Странно у меня в директивах импорта есть, щас проверю
21 alexei366
 
13.05.13
14:02
У меня в отладчике  тип {http://www.w3.org/2001/XMLSchema}string для свойства arrayType объекта TTaskMarkList
22 kimba
 
13.05.13
14:02
У меня тоже
23 alexei366
 
13.05.13
14:02
(20) я не про дерективы импорта, я думал что пакет отображаться рядом должен был
24 kimba
 
13.05.13
14:04
Вообще тип Array = any type. Делаю вывод что элементы любого типа могут быть. Как то странно все.
25 Serginio1
 
13.05.13
14:19
Попробуй

TaskMarkList.Добавить(ФормаXML.Атрибут, "http://schemas.xmlsoap.org/wsdl/", "Array", СтрокаXDTO);

Где СтрокаXDTO тип от TTaskMark
26 Serginio1
 
13.05.13
14:20
27 kimba
 
13.05.13
14:37
(25) Элемент добавился, только надо вот так:

TaskMarkList.Добавить(ФормаXML.Элемент, "http://schemas.xmlsoap.org/wsdl/", "Array", СтрокаXDTO);
28 Serginio1
 
13.05.13
14:39
Я помню мучился с Этим Array затем плюнул и написал на C# обертку. Но теперь буду знать как с этим Array бороться.
29 kimba
 
13.05.13
15:08
Возможно это еще не все, вечером допишу отправку сообщения, возможно сам веб сервис не примет такой вариант.
30 acsent
 
13.05.13
15:10
(29) удалось создать список???
31 kimba
 
13.05.13
15:30
да, если один раз добавляешь TaskMarkList.Добавить(ФормаXML.Элемент, "http://schemas.xmlsoap.org/wsdl/", "Array", СтрокаXDTO);
то появляется свойство Array.
Если эту строку несколько раз выполняешь то Array становится Списком XDTO
32 Serginio1
 
13.05.13
15:33
(31) значит min=1
33 Pooh_I
 
12.06.13
15:48
Помогите с вебсервисом плз.
http://www.stol-i-stul.com.ua/api/soap/?wsdl
задача, вроде, похожая...
Операция Call() args - ассоциированный массив
никак не пойму как с ним работать
   ТекущийМассивТип = WebСервис.ФабрикаXDTO.Тип("urn:Magento", "FixedArray");
   ТекущийМассив = WebСервис.ФабрикаXDTO.Создать(ТекущийМассивТип);

подскажите как значение добавить
   //ТекущийМассив.Добавить(ФормаXML.Элемент, "urn:Magento", "Array",?????????????????);
что в вашем примере СтрокаXDTO?
34 Serginio1
 
13.06.13
10:19
(33) У его массива типом строк является TTaskMark. Я так понимаю <complexType name="FixedArray"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/></restriction></complexContent></complexType>

Является anyType
То добавляй любой тип. Например
СтрокаXDTO=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента")

СтрокаXDTO=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "decimal"), 3.14)
35 Pooh_I
 
13.06.13
13:32
ЗначениеАтрибута=ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "159753");
ТекущийМассив.Добавить(ФормаXML.Элемент, "urn:Magento", "csu",ЗначениеАтрибута);

Ругается...:((
Несоответствие типов XDTO:
Тип '{urn:Magento}FixedArray' не найден
Тип объекта не является открытым
36 Serginio1
 
13.06.13
14:21
Прошу прощения
Фабрика=WebСервис.ФабрикаXDTO;
ЗначениеАтрибута=Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "string"), "159753");

ТекущийМассив.Добавить(ФормаXML.Элемент, "urn:Magento", "csu",ЗначениеАтрибута);
37 Pooh_I
 
13.06.13
14:32
:((
результат тот же...
может с уважаемым Serginio1 можно пообщаться за пределами форума?
38 Serginio1
 
13.06.13
14:54
Он у тебя ругается на
ТекущийМассивТип = WebСервис.ФабрикаXDTO.Тип("urn:Magento", "FixedArray");
   ТекущийМассив = WebСервис.ФабрикаXDTO.Создать(ТекущийМассивТип);

?
У меня сейчас времени нет. Посмотри в отладчике какие пакеты и какие типы и пространства имен видит 1С твоего сервиса.
39 Pooh_I
 
13.06.13
15:34
еще http://www.w3.org/2001/XMLSchema
только из него нельзя получить тип МАССИВ
40 Pooh_I
 
13.06.13
15:35
может описание сервиса что-то прояснит

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
<complexType name="FixedArray">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/>
</restriction>
</complexContent>
</complexType>
</schema>
</types>
41 Serginio1
 
13.06.13
15:46
Ты в отладчике посмотри какие пакеты и типы у
WebСервис.ФабрикаXDTO
42 Pooh_I
 
13.06.13
15:48
2 пакета
http://www.w3.org/2001/XMLSchema
urn:Magento
43 Serginio1
 
13.06.13
16:06
А в urn:Magento есть тип FixedArray?

И такой код
ТекущийМассивТип = WebСервис.ФабрикаXDTO.Тип("urn:Magento", "FixedArray");
   ТекущийМассив = WebСервис.ФабрикаXDTO.Создать(ТекущийМассивТип);

не проходит?
44 Pooh_I
 
13.06.13
16:49
есть
только записать в него ничего нельзя
Тип объекта не является открытым
45 Pooh_I
 
13.06.13
16:50
нужно как-то Тип Array получить и в него значения добавлять
46 Pooh_I
 
13.06.13
16:54
тут пример на РНР есть что должно получиться

http://www.magentocommerce.com/wiki/doc/webservices-api/api/catalog_product
47 Serginio1
 
13.06.13
17:02
Попробуй через AnyType
Объект = Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "anyType"));
      ЗначениеАтрибута=Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение атрибута");

   Объект.Добавить(ФормаXML.Атрибут, "http://www.w3.org/2001/XMLSchema", "atr",ЗначениеАтрибута);


   Объект.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "elem",Фабрика.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента"));
   Объект.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "elem",Фабрика.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента"));
48 Serginio1
 
13.06.13
17:10
Вернее там atr не нужен. А если добавить только один elem не будет виден как массив.
В твоем случае можно

Объект.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "Array",Фабрика.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента"));

   Объект.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "Array",Фабрика.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента"));
49 Pooh_I
 
13.06.13
17:12
Фабрика -- что?
50 Pooh_I
 
13.06.13
17:13
увидел
51 Serginio1
 
13.06.13
17:15
Кстати описание массива по текущей ветке


     <xs:complexType name="TBuildPlateIfaMethodList">
       <xs:complexContent>
         <xs:restriction base="soapenc:Array">
           <xs:sequence/>
           <xs:attribute ref="soapenc:arrayType" n1:arrayType="ns1:TBuildPlateIfaMethod[]" xmlns:n1="http://schemas.xmlsoap.org/wsdl/"/>
         </xs:restriction>
       </xs:complexContent>
     </xs:complexType>
52 Pooh_I
 
13.06.13
17:25
:))
сори
думал, мы мой сервис обсуждаем
http://www.stol-i-stul.com.ua/api/soap/?wsdl
53 Pooh_I
 
13.06.13
17:36
но все равно Serginio1 подскажи плз как побороть этот webсервис
54 Serginio1
 
13.06.13
17:51
У меня был опыт создания клиента на C# и его использование в 1С v8: Вопрос по NetObjectToIDispatch
v8: поддержка Cookie при работе с веб-службой в 1C
55 Serginio1
 
13.06.13
17:56
То есть нужно сделать COM прослойку от 1С к серверу. Хотя можно и через MSSOAP.SoapClient30;
v8: поддержка Cookie при работе с веб-службой в 1C

Там можно просто текст отправлять и принимать и использовать Фабрику для чтения записи из в текст


ФайлыXSD = Новый Массив();
ФайлыXSD.Добавить(ФайлСПрайсом);
Фабрика = СоздатьФабрикуXDTO(ФайлыXSD);

Или
Фабрика=Прокси.ФабрикаXDTO;

ТвойОбъект=Фабрика.ПрочитатьXML(ЧтениеXML,ФабрикаВыгрузки.Тип(ЧтениеXML.URIПространстваИмен,ЧтениеXML.Имя));

где   Чтение= новый ЧтениеXML;
   Чтение.УстановитьСтроку(Строка);
56 Pooh_I
 
14.06.13
12:50
а как в 1с добавить пространство имен?
http://schemas.xmlsoap.org/soap/encoding/
57 Serginio1
 
14.06.13
12:58
Общие-ПакетыXDTO импорт.
Либо
ФайлыXSD = Новый Массив();
ФайлыXSD.Добавить(ФайлСПрайсом);
Фабрика = СоздатьФабрикуXDTO(ФайлыXSD);
58 Pooh_I
 
14.06.13
13:18
так получу пакет xdto, но пространство имен не добавляется
59 Serginio1
 
14.06.13
13:56
(58) Куда тебе нужно пространство имен? Он будет в пакетеXDTO и будет доступен в фабрике. Тебе все равно работать с фабрикой вэб сервиса. Но можно попробовать такой выкрут
Создать ОбъектXDTO  используя экспортированый паект

и преобразовать её через строку

ЗаписьХМЛ= новый ЗаписьXML;
   ЗаписьХМЛ.УстановитьСтроку();
   ФабрикаXDTO.записатьXML(ЗаписьХМЛ,Объект);
   стр=ЗаписьХМЛ.Закрыть();

Чтение= новый ЧтениеXML;
Чтение.УстановитьСтроку(Строка);

ТвойОбъект=WebСервис.ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,WebСервис.ФабрикаXDTO.Тип(ЧтениеXML.URIПространстваИмен,ЧтениеXML.Имя));
60 Pooh_I
 
14.06.13
15:17
спасибо
получилось как 57
только не помогло;((
61 Serginio1
 
14.06.13
15:41
(59) Попробуй как в 59. Это пространство имен должно быть в вэб сервисе. Я кстати импортировал и в 1С (правда у меня 8.3). Array там открытый и последовательный.
Кстати а ты импортировал WS ссылку? И какая версия 1С у тебя стоит?
62 Pooh_I
 
14.06.13
18:26
сохранил http://schemas.xmlsoap.org/soap/encoding/ в файл    
ФайлыXSD = Новый Массив();
ФайлыXSD.Добавить(":\profiles\ign\Desktop\encoding.xml");
НоваяФабрика = СоздатьФабрикуXDTO(ФайлыXSD);
ТекущийМассивТип = НоваяФабрика.Тип("http://schemas.xmlsoap.org/soap/encoding/", "Array");
ТекущийМассив = НоваяФабрика.Создать(ТекущийМассивТип);

и что только дальше не делал, никак не работает
ув.Serginio1 посмотри сервиз плз может подскажешь как его побороть
http://www.stol-i-stul.com.ua/api/soap/?wsdl

1С:Предприятие 8.1 (8.1.11.67)
63 Pooh_I
 
14.06.13
18:44
64 Pooh_I
 
14.06.13
18:47
demo 123456
65 Pooh_I
 
14.06.13
18:48
66 Serginio1
 
17.06.13
11:51
Можешь добавить описание
<complexType name="FixedArray">
<complexContent>
<restriction base="soapenc:Array">
<attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/>
</restriction>
</complexContent>
</complexType>

в файл скопированный из  http://schemas.xmlsoap.org/soap/encoding/
Не видит 1С описание. Поэтому FixedArray закрытый.

Или попробуй сформировать XML строку с нужным пространством имен и создать объект из Строки
67 Pooh_I
 
17.06.13
14:13
не пойму, что это даст
функция сall сервиса на FixedArray никак не завязана...
68 Serginio1
 
17.06.13
14:29
A что у тебя с call? там кстати anyType.
Попробуй через AnyType
Объект = ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "anyType"));

   Объект.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "elem",ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента"));
   Объект.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "elem",ФабрикаXDTO.Создать(ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента"));
69 Serginio1
 
17.06.13
14:32
В твоем случае

Замени ФабрикаXDTO на
Фабрика где
Фабрика=WebСервис.ФабрикаXDTO;
70 Pooh_I
 
17.06.13
15:37
спасибо Serginio1
делал я так
не работает :((
71 Pooh_I
 
17.06.13
15:39
soapUI такой запрос генерирует

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento">
  <soapenv:Header/>
  <soapenv:Body>
     <urn:call soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        <sessionId xsi:type="xsd:string">b108f802cb2156ca4ef69e79cccc92ea</sessionId>
        <resourcePath xsi:type="xsd:string">product.info</resourcePath>
        <args xsi:type="xsd:anyType">00000</args>
     </urn:call>
  </soapenv:Body>
</soapenv:Envelope>

может такой запрос можно как-то по другому получить?
72 Pooh_I
 
17.06.13
15:56
<args xsi:type="xsd:anyType">????????</args>
args - anyType
как сюда ???????? значения подставлять хз...
73 Serginio1
 
17.06.13
16:16
Расскоментируй
<xs:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>

в файле wxdl.
Функция ПолучитьПроксиМагнето()

ИмяВэбСервиса="MagentoService";
   ИмяТочкиПодключения="Mage_Api_Model_Server_HandlerPort";
   АдресВэбСервиса="http://demos1.softaculous.com/Magento/api/soap";
       Определения=новый WSОпределения(ПутьКСохраненному файлу wxdl);

   URiПространстваИмен="urn:Magento";
   Прокси= Новый WSПрокси(Определения,URiПространстваИмен,ИмяВэбСервиса,ИмяТочкиПодключения);
возврат Прокси    

КонецФункции // ПолучитьПроксиМагнето()


Тогда ты получишь доступ к http://schemas.xmlsoap.org/soap/encoding/

args = Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "string"), "Значение Элемента");
74 Serginio1
 
17.06.13
16:17
args = Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "string"), "00000");
75 Pooh_I
 
17.06.13
17:29
раскоментировать не могу -- чужой хостинг
хочу пробнуть через MSSOAP
только установить не могу на windows 7
76 Serginio1
 
17.06.13
17:31
Ты зайди по ссылке http://demos1.softaculous.com/Magento/api/soap/?wsdl
Сохрани файл и расскоментируй.
А вот в Определения=новый WSОпределения(ПутьКСохраненному файлуwxdl);
77 Serginio1
 
17.06.13
17:34
MSSOAP там только простые типы
Так же ты можешь этот файл подключить и к WS ссылкам. Это файл определения типов и методов.
78 Pooh_I
 
17.06.13
17:52
стукни в аську плз 286495757
79 Serginio1
 
17.06.13
18:04
У меня нет аськи
80 Pooh_I
 
18.06.13
10:09
skype, @mail?;))
не импортируется;((
Ошибка разбора XML:  - [2,1]
Фатальная ошибка:
Expected comment or processing instruction SystemId: http://schemas.xmlsoap.org/soap/encoding
81 Serginio1
 
18.06.13
10:13
Вот начало файла

<?xml version="1.0" encoding="UTF-8"?>
-<definitions targetNamespace="urn:Magento" name="Magento" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:typens="urn:Magento">-<types>-<schema targetNamespace="urn:Magento" xmlns="http://www.w3.org/2001/XMLSchema"><import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>-<complexType name="FixedArray">-<complexContent>-<restriction base="soapenc:Array"><attribute wsdl:arrayType="xsd:anyType[]" ref="soapenc:arrayType"/></restriction></complexContent></complexType></schema></types>
82 Serginio1
 
18.06.13
10:16
Короче сохранил http://demos1.softaculous.com/Magento/api/soap/?wsdl
убрал комментарий
<xs:import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>

<?xml version="1.0" encoding="UTF-8"?>
<definitions xmlns:typens="urn:Magento" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
   xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/"
   name="Magento" targetNamespace="urn:Magento">
   <types>
       <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Magento">
         <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
          <complexType name="FixedArray">
               <complexContent>
                   <restriction base="soapenc:Array">
                       <attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]" />
                   </restriction>
               </complexContent>
           </complexType>
       </schema>
   </types>
83 Pooh_I
 
18.06.13
10:39
извини Serginio1, туплю :(
Определения=новый WSОпределения(ПутьКСохраненному файлу wxdl);
куда теперь адрес сайта притулить?
АдресВэбСервиса="http://demos1.softaculous.com/Magento/api/soap";
84 Pooh_I
 
18.06.13
10:42
понял:))
85 Serginio1
 
18.06.13
12:04
Если ты откроешь файл с описанием wsdl
то там есть

<service name="MagentoService">
       <port name="Mage_Api_Model_Server_HandlerPort" binding="typens:Mage_Api_Model_Server_HandlerBinding">
           <soap:address location="http://demos1.softaculous.com/Magento/index.php/api/soap/index/" />
       </port>
   </service>
86 Pooh_I
 
19.06.13
12:11
ТекущийМассивТип = WebСервис.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema", "anyType");
   ТекущийМассив = WebСервис.ФабрикаXDTO.Создать(ТекущийМассивТип);
1c формирует запрос
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body> <m:call xmlns:m="urn:Magento"
 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xmlns:xsd="http://www.w3.org/2001/XMLSchema"
 xmlns:xsd1="urn:Magento"
 xmlns:xsd2="http://schemas.xmlsoap.org/soap/encoding/"
 xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
 soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<sessionId xsi:type="xsd:string">1a4ecc36ce560e6770b8a7a137549df5</sessionId>
<resourcePath xsi:type="xsd:string">product.info</resourcePath>
<args xsi:type="xsd:anyType"/>
</m:call></soap:Body>
</soap:Envelope>

как ТекущийМассив присвоить значение чтобы получить
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Magento">
  <soapenv:Header/>
  <soapenv:Body>
     <urn:call soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
        <sessionId xsi:type="xsd:string">2efd47ae057f40fff97a6df42fb6807f</sessionId>
        <resourcePath xsi:type="xsd:string">product.info</resourcePath>
        <args xsi:type="xsd:anyType">00000</args>
     </urn:call>
  </soapenv:Body>
</soapenv:Envelope>
87 Pooh_I
 
19.06.13
12:27
если ТекущийМассив.Добавить(ФормаXML.Элемент, "http://www.w3.org/2001/XMLSchema", "atr",Артикул);
получаю
<args xsi:type="xsd:anyType">
 <atr xsi:type="xsd:string">000000</atr>
</args>
88 Pooh_I
 
19.06.13
12:29
если ТекущийМассив.Добавить(ФормаXML.Атрибут, "http://www.w3.org/2001/XMLSchema", "atr",Артикул);
<args xsi:type="xsd:anyType">
 <atr xsi:type="xsd:anySimpleType">000000</atr>
</args>
89 Pooh_I
 
19.06.13
12:33
ТипСтрока=WebСервис.ФабрикаXDTO.Тип("http://www.w3.org/2001/XMLSchema","string");
Артикул=WebСервис.ФабрикаXDTO.Создать(ТипСтрока,"000000")
90 Pooh_I
 
19.06.13
12:37
WebСервис.ФабрикаXDTO.Создать(ТекущийМассивТип,Артикул)-- ошибка
{(1)}: Ошибка при вызове метода контекста (Создать): Несоответствие типов (параметр номер '2')
91 Serginio1
 
19.06.13
12:54
Нет тебе нужно так
args = Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "string"), "00000");
WebСервис.Call("2efd47ae057f40fff97a6df42fb6807f","product.info",args)
92 Pooh_I
 
19.06.13
13:06
я так делал. не работает
<sessionId xsi:type="xsd:string">feaf98cfd6276ae29501c90fcdca0365</sessionId>
<resourcePath xsi:type="xsd:string">product.info</resourcePath>
<args xsi:type="xsd:string">000000</args>
93 Pooh_I
 
19.06.13
13:07
так работает
        <sessionId xsi:type="xsd:string">2efd47ae057f40fff97a6df42fb6807f</sessionId>
        <resourcePath xsi:type="xsd:string">product.info</resourcePath>
        <args xsi:type="xsd:anyType">00000</args>
94 Pooh_I
 
19.06.13
13:08
это через SoapUI
95 Pooh_I
 
19.06.13
13:09
считай sessionId одинаковыми
96 Pooh_I
 
19.06.13
13:18
Ошибка при вызове метода контекста (call): Ошибка вызова операции сервиса:  {urn:Magento}:MagentoService:call()
может дело в пространстве имен?
97 Pooh_I
 
19.06.13
13:27
или ТекущийМассивТип нужно другой делать...
98 Serginio1
 
19.06.13
13:57
Это тебе уже к авторам этого сайта.
99 Serginio1
 
19.06.13
14:05
Если посмотреть на
$filters = array(
     'sku' => array('like'=>'zol%')
 );
 
 $products = $proxy->call($sessionId, 'product.list', array($filters));

вообще тройной массив
100 Pooh_I
 
19.06.13
14:27
выяснилось такое
args = Фабрика.Создать(Фабрика.Тип("http://www.w3.org/2001/XMLSchema", "string"), "00000");
WebСервис.Call("2efd47ae057f40fff97a6df42fb6807f","product.info",args)
работает
только 1с не понимает ответ сайта
Форма.Форма(46)}: Ошибка при вызове метода контекста (call): Ошибка вызова операции сервиса:  {urn:Magento}:MagentoService:call()
       Ответ = WebСервис.call(sessionId,"catalog_product.info",Артикул);
по причине:
Ошибка вызова операции сервиса:  {urn:Magento}:MagentoService:call()
по причине:
Неизвестная ошибка. Неизвестное свойство:
Свойство 'item' не обнаружено
по причине:
Неизвестное свойство:
Свойство 'item' не обнаружено

куда теперь копать непонятно...
101 Pooh_I
 
19.06.13
14:31
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.