| 
    
        
     
     | 
    
    
  | 
Передача ассоциированного массива (структуры) параметром в Magento SOAP API | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        Alantal    
     07.08.12 
            ✎
    17:22 
 | 
         
        Добрый день. Нужна помошь.
  
        Пытаюсь вызвать функцию Magento из 1С Мадженто = Новый WSОпределения("http://demo.magentocommerce.com/api/soap?wsdl","parol", "login"); Прокси = Новый WSПрокси(Мадженто,"urn:Magento","MagentoService","Mage_Api_Model_Server_HandlerPort"); Сессия = Прокси.login("parol", "login"); Подключаюсь нормально. далее хочу вызвать функцию Call Попытка результат = Прокси.call(Сессия,"customer.list", Фильтр); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; Вот тут фильтр должен быть ассоциированным массивом вот тут есть описание и даже пример на PHP http://www.magentocommerce.com/wiki/doc/webservices-api/api/customer_address#customer_address.list но в 1С у меня не получается так сделать Фишка в том, что данный параметр не имеет фиксированной структурой, он для каждого вызова может быть разный. Подскажите, кто сталкивался, как создать произвольный массив и передать его на WEB.  | 
|||
| 
    1
    
        izekia    
     07.08.12 
            ✎
    17:25 
 | 
         
        хдто тебе не поможет?     
         | 
|||
| 
    2
    
        Alantal    
     07.08.12 
            ✎
    17:30 
 | 
         
        Может и поможет, но как?
  
        Я, конечно, не профи в XDTO, если можешь, подскажи, как добавить элементы? Пробовал: ТипМассивXDTO = Прокси.ФабрикаXDTO.Пакеты[1].Получить("FixedArray"); МассивXDTO = Прокси.ФабрикаXDTO.Создать(ТипМассивXDTO); МассивXDTO получается тип ОбъектXDTO МассивXDTO.Добавить(ФормаXML.Атрибут, "urn:Magento", "Array", СтрокаXDTO); //МассивXDTO.Array.Добавить("filter","*"); Везде ошибки...  | 
|||
| 
    3
    
        Alantal    
     07.08.12 
            ✎
    17:47 
 | 
         
        МассивXDTO.Добавить(ФормаXML.Атрибут, "urn:Magento", "Array", СтрокаXDTO);
  
        Таким образом можно добавить произвольное свойство, но как именно - не понял. Не получается... ОбъектXDTO (XDTODataObject) Добавить (Add) Вариант синтаксиса: Установка значения нового произвольного свойства Синтаксис: Добавить(<Форма>, <URIПространстваИмен>, <ЛокальноеИмя>, <ЭлементДанных>) Параметры: <Форма> (обязательный) Тип: ФормаXML. Форма XML представления произвольного свойства. Может принимать значения Элемент или Атрибут. <URIПространстваИмен> (обязательный) Тип: Строка. URI пространства имен XML представления произвольного свойства. <ЛокальноеИмя> (обязательный) Тип: Строка. Локальное имя произвольного свойства. <ЭлементДанных> (обязательный) Тип: ЗначениеXDTO; ОбъектXDTO. Элемент данных XDTO (значение или объект), являющийся значением произвольного свойства. Описание варианта метода: Имя свойства будет создано автоматически, на основе локального имени XML представления свойства.  | 
|||
| 
    4
    
        Alantal    
     07.08.12 
            ✎
    18:05 
 | 
         
        Не понимаю...
  
        <complexType name="FixedArray"><complexContent><restriction base="soapenc:Array"><attribute ref="soapenc:arrayType" wsdl:arrayType="xsd:anyType[]"/></restriction></complexContent></complexType> FixedArray - это объект? При вызове: ТипМассивXDTO = Прокси.ФабрикаXDTO.Пакеты[1].Получить("FixedArray"); МассивXDTO = Прокси.ФабрикаXDTO.Создать(ТипМассивXDTO); МассивXDTO.Добавить(ФормаXML.Атрибут, "http://www.w3.org/2001/XMLSchema", "Array", СтрокаXDTO); пишет: Несоответствие типов XDTO: Тип '{urn:Magento}FixedArray' не найден Тип объекта не является открытым  | 
|||
| 
    5
    
        Asmody    
     07.08.12 
            ✎
    18:32 
 | 
         
        какой на демке логин/пароль?     
         | 
|||
| 
    6
    
        Alantal    
     07.08.12 
            ✎
    22:55 
 | 
         
        Не знаю ((
  
        Ее я привел для примера, т.к. структура SOAP идентична моей  | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |