8.х Как добавить элемент в массив через XDTO?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем trancer, 15 окт 2007.

  1. TopicStarter Overlay
    trancer
    Offline

    trancer

    Регистрация:
    23 янв 2007
    Сообщения:
    7
    Симпатии:
    0
    Баллы:
    1
    Всем привет!

    Осваиваю web-сервисы в 8.1. А точнее WS-Ссылки.
    Возник вопрос со следующими обстоятельствами:

    1) Есть тип Category (wsdl описание не привожу, оно тривиальное)
    2) Есть тип Categories (массив Category[]), вот его описание

    Код:
     <xsd:complexType name="Categories">
    <xsd:complexContent>
    <xsd:restriction base="SOAP-ENC:Array">
    <xsd:attribute ref="SOAP-ENC:arrayType" wsdl:arrayType="tns:Category[]"/>
    </xsd:restriction>
    </xsd:complexContent>
    </xsd:complexType>
    
    3) Есть тип Category_parms (некоторые параметры плюс массив Category[]), вот его описание

    Код:
     <xsd:complexType name="Category_parms">
    <xsd:all>
    <xsd:element name="login" type="xsd:string"/>
    <xsd:element name="password" type="xsd:string"/>
    <xsd:element name="categories" type="tns:Categories" />
    </xsd:all>
    </xsd:complexType>
    
    И, наконец, есть SOAP-метод SendCategories(Category_parms params).

    Вот как я пытаюсь подготовить параметр для этого метода в 1С:

    Код:
    ПроксиУправлениеКатегориями = WSСсылки.УправлениеКатегориями.СоздатьWSПрокси("urn:Cat_Maint", "Cat_Maint", "Cat_MaintPort");
    Category_parmsType = ПроксиУправлениеКатегориями.ФабрикаXDTO.Тип("urn:Cat_Maint", "Category_parms");
    CategoryType = ПроксиУправлениеКатегориями.ФабрикаXDTO.Тип("urn:Cat_Maint", "Category");
    CategoriesType = ПроксиУправлениеКатегориями.ФабрикаXDTO.Тип("urn:Cat_Maint", "Categories");
    
    CategoryObj = ПроксиУправлениеКатегориями.ФабрикаXDTO.Создать(CategoryType);
    CategoryObj.category_id = 1;
    CategoryObj.category_name = "Вот такая крутая категория";
    CategoryObj.task = "save";
    
    // ***
    CategoriesObj = ПроксиУправлениеКатегориями.ФабрикаXDTO.Создать(CategoriesType);
    
    Category_parmsObj = ПроксиУправлениеКатегориями.ФабрикаXDTO.Создать(Category_parmsType);
    Category_parmsObj.login = "admin";
    Category_parmsObj.password = "123";
    Category_parmsObj.categories = CategoriesObj;
    
    Внимание вопрос! Как в объект, идущий после строчки ***, которые по идее является массивом, добавить объект CategoryObj?
    Если этого сделать нельзя, то придется выносить функционал из 1С-ки и работать через COM..
    Пожалуйста, помогите!

    Спасибо!

Поделиться этой страницей