Вход | Регистрация


1С:Предприятие ::

Метки: 

v8: Работа с web-сервисами

Я
   Iovlev
 
26.12.12 - 07:35
Не могу разобраться как заполнять данные типа complexType
 
 
   Iovlev
 
1 - 26.12.12 - 07:39
Есть вот такая вот xsd-шка:
    <complexType name="ReportType">
        <annotation>
            <documentation>Отчет - Распределение средств субсидии на 2012 год по принятым обязательствам (контрактам, договорам, счетам)
            </documentation>
        </annotation>
        <sequence>
            <element name="DataYear">
                <annotation>
                    <documentation>
                        Год, за который подаются сведения
                    </documentation>
                </annotation>
                <simpleType>
                    <restriction base="int">
                        <minExclusive value="1900"></minExclusive>
                        <maxExclusive value="2100"></maxExclusive>
                    </restriction>
                </simpleType>
            </element>
            <element name="DataStateDate" type="date">
                <annotation>
                    <documentation>
                        Дата, по состоянию на которую сведения
                    </documentation>
                </annotation>
            </element>

            <element name="ReportData">
                <annotation>
                    <documentation>Сведения отчета</documentation>
                </annotation>
                <complexType>
                    <sequence>
                        <element name="Section211" type="tns:SectionType">
                            <annotation>
                                <documentation>Заработная плата и начисления на выплаты по оплате труда (ст.211)
                                </documentation>
                            </annotation>
                        </element>
                        <element name="Section213" type="tns:SectionType">
                            <annotation>
                                <documentation>Начисления на выплаты по оплате труда (ст.213)
                                </documentation>
                            </annotation>
                        </element>
                        <element name="Section212" type="tns:SectionType">
                            <annotation>
                                <documentation>Прочие выплаты (ст.212)</documentation>
                            </annotation>
                        </element>
                        <element name="Section290" type="tns:SectionType">
                            <annotation>
                                <documentation>Прочие расходы (ст.290)</documentation>
                            </annotation>
                        </element>
                        <element name="Section221" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.221 "Услуги связи"</documentation>
                            </annotation>
                        </element>
                        <element name="Section222" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.222 "Транспортные услуги"</documentation>
                            </annotation>
                        </element>
                        <element name="Section223" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.223 "Коммунальные услуги"</documentation>
                            </annotation>
                        </element>
                        <element name="Section224" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.224 "Арендная плата за пользование имуществом"
                                </documentation>
                            </annotation>
                        </element>
                        <element name="Section225" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.225 "Работы, услуги по содержанию имущества"
                                </documentation>
                            </annotation>
                        </element>
                        <element name="Section226" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.226 "Прочие работы, услуги"</documentation>
                            </annotation>
                        </element>
                        <element name="Section310" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.310 "Увеличение стоимости основных средств"
                                </documentation>
                            </annotation>
                        </element>
                        <element name="Section320" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.320 "Увеличение стоимости нематериальных активов"
                                </documentation>
                            </annotation>
                        </element>
                        <element name="Section340" type="tns:GroupedSectionType">
                            <annotation>
                                <documentation>ст.340 "Увеличение стоимости материальных запасов"
                                </documentation>
                            </annotation>
                        </element>
                    </sequence>
                </complexType>
            </element>
        </sequence>
    </complexType>

    <simpleType name="CellValueType">
        <annotation>
            <documentation>Тип значения ячейки отчета</documentation>
        </annotation>
        <restriction base="decimal"></restriction>
    </simpleType>


    <complexType name="SectionType">
        <annotation>
            <documentation>Статья из двух заполняемых столбцов отчета (без сумм обязательств)</documentation>
        </annotation>
        <sequence>
            <element name="FinanceAmount" type="tns:CellValueType" nillable="true">
                <annotation>
                    <documentation>Доведенные суммы финансирования согласно договору (тыс.руб.)</documentation>
                </annotation>
            </element>

            <element name="CashExecution" type="tns:CellValueType" nillable="true">
                <annotation>
                    <documentation>Кассовое исполнение (тыс.руб.)</documentation>
                </annotation>
            </element>
        </sequence>
    </complexType>


    <complexType name="GroupedSectionType">
        <annotation>
            <documentation>Статья из всех заполняемых столбцов отчета</documentation>
        </annotation>
        <complexContent>
            <extension base="tns:SectionType">
                <sequence>
                    <element name="CommitmentsContracts" type="tns:CellValueType" nillable="true">
                        <annotation>
                            <documentation>Принятые обязательства / контракты, договоры
                            (с проведением конкурсных процедур)</documentation>
                        </annotation>
                    </element>
                    <element name="CommitmentsPayment" type="tns:CellValueType" nillable="true">
                        <annotation>
                            <documentation>Принятые обязательства / оплата договоров, счетов и иных платежных документов
                            (заключаемых без проведения конкурсных процедур)</documentation>
                        </annotation>
                    </element>
                    <element name="CoordinationAmount" type="tns:CellValueType" nillable="true">
                        <annotation>
                            <documentation>Сумма обязательств на согласовании в Роскомнадзоре
                            </documentation>
                        </annotation>
                    </element>
                </sequence>
            </extension>
        </complexContent>
    </complexType>


Не могу заполнить ReportData
   Iovlev
 
2 - 26.12.12 - 07:48
По идее это массив структур типа SectionType и GroupedSectionType
 

Переменную типа ReportData не могу создать.
   ТипWSПараметра_ReportData    = Прокси.ФабрикаXDTO.Пакеты.Получить(\"http://esoft.ru/sei/rkn/SubsidiesReport/entity/ReportType\").Получить(\"ReportData\");
   WSПараметр_ReportData        = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра_ReportData);
Ломается и говорит что
Ошибка при вызове метода контекста (Создать)
   WSПараметр_ReportData        = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра_ReportData);
по причине:
Несоответствие типов (параметр номер '1')
   Fragster
 
3 - 26.12.12 - 08:07
ТипWSПараметра_ReportData = неопределено, инфа 146%
   Fragster
 
4 - 26.12.12 - 08:08
и вообще читать СП полезно иногда...
должно быть что-то типа 
ТипWSПараметра_ReportData = Прокси.ФабрикаXDTO.Тип(UriПространстваИмен, "ReportData");
WSПараметр_ReportData        = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра_ReportData);
   Fragster
 
5 - 26.12.12 - 08:09
ну и чтобы меньше говнокода было - если идет обращение через 2 и более точек несколько раз к одной и той же сущности - правильнее будет сделать типа

Фабрика = Прокси.ФабрикаXDTO;
Фабрика....
   Iovlev
 
6 - 28.12.12 - 01:54
Как это не прескорбно, но этот код тоже не работает . . .

Фабрика = Прокси.ФабрикаXDTO;
 
ТипWSПараметра_ReportData    = Фабрика.Тип(\"http://esoft.ru/sei/rkn/SubsidiesReport/entity/ReportType\",\"ReportData\");
WSПараметр_ReportData        = Фабрика.Создать(ТипWSПараметра_ReportData);
   Fragster
 
7 - 28.12.12 - 08:12
(6) а ТипWSПараметра_ReportData чему равен? несли неопределено - значит накосячил с определением типа
   Fragster
 
8 - 28.12.12 - 08:13
ну и судя по схеме должно быть таки ReportType в определении типа
   Iovlev
 
9 - 28.12.12 - 08:49
Да, именно неопределено. Там помоему невозможно накосячить, берешь пространство имен, я считаю что оно такое же как и у ReportType, и всё!!!
Что то я не понял где толжен быть ReportType в определении типа?
   Fragster
 
10 - 28.12.12 - 11:59
(9) ты пытаешься создать тип ReportData, а у тебя такого нету, у тебя есть reporttype
 
 Рекламное место пустует
   Fragster
 
11 - 28.12.12 - 12:02
вообще 1с плохо работает с вложенными типами (работает, но надо код лишний писать), лучше определение сделать типа:
  <xs:complexType name="ReprotType">
    <xs:sequence>
      <xs:element type="ReportData"/>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ReportData">
    <xs:sequence>
      <xs:element type="xs:string"/>
    </xs:sequence>
  </xs:complexType>
   Fragster
 
12 - 28.12.12 - 12:03
т.е. для вложенных элементов-объектов в определении пилить свой тип
   Kasper076
 
13 - 28.12.12 - 12:34
А заголовок у файла схемы есть?
   Iovlev
 
14 - 29.12.12 - 03:01
Просто wsdl-ка предостовляется сторонней организацией, и на ее изменение я никак повлиять не могу
   Iovlev
 
15 - 16.01.13 - 02:02
(11) "работает, но надо код лишний писать" Так и не могу пробить этот тип, каком "лишнем коде" была речь, можно поподробнее!!!
   На стороне добра
 
16 - 16.01.13 - 11:05
(14) сохрани описание в xml файл и отредактируй его
   Fragster
 
17 - 16.01.13 - 11:27
(15) дружище, зачем мне писать за тебя код? который достаточно просто гуглится при этом...
   Jolly Roger
 
18 - 16.01.13 - 11:41
(15) вложенный тип можно вытащить чем-то вроде:
типReportData.Свойства.Получить("ReportType").Тип
   Iovlev
 
19 - 17.01.13 - 01:49
(17) Если б он так просто гуглился, я бы не поднимал этот вопрос . . .
   Iovlev
 
20 - 17.01.13 - 01:51
(16) wsdl-ка постоянно меняется у них, добавляются новые функции и т.п., т.е. это не статическая вещь, которую один раз сделали и забыли. А постоянно менять у себя это тоже не вариант
   Iovlev
 
21 - 17.01.13 - 02:12
(18) На прямую так не получилось. Если не трудно по подробнее можно!?
   Jolly Roger
 
22 - 17.01.13 - 08:52
(21) что не получилось-то?
   Iovlev
 
23 - 17.01.13 - 10:42
(22) Получить переменную типа ReportType таким способом
   Jolly Roger
 
24 - 17.01.13 - 11:55
(23) чо мешает-то?
   Iovlev
 
25 - 18.01.13 - 01:22
(24) Ну вот так же примерно надо?

ТипWSПараметра_ReportType    = Прокси.ФабрикаXDTO.Пакеты.Получить(\"http://esoft.ru/sei/rkn/SubsidiesReport/entity/ReportType\").Получить(\"ReportType\");
 
WSПараметр_ReportType        = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра_ReportType);
WSПараметр_ReportType.DataYear        = Год(ТекущаяДата());
WSПараметр_ReportType.DataStateDate    = ТекущаяДата();

ТипWSПараметра_ReportData    = Прокси.ФабрикаXDTO.Пакеты.Получить(\"http://esoft.ru/sei/rkn/SubsidiesReport/entity/ReportType\").Получить(\"ReportData\");
WSПараметр_ReportData = ТипWSПараметра_ReportData.Свойства.Получить(\"ReportType\").Тип;
ТипWSПараметра_SectionType            = Прокси.ФабрикаXDTO.Пакеты.Получить(\"http://esoft.ru/sei/rkn/SubsidiesReport/entity/ReportType\").Получить(\"SectionType\");
ТипWSПараметра_GroupedSectionType    = Прокси.ФабрикаXDTO.Пакеты.Получить(\"http://esoft.ru/sei/rkn/SubsidiesReport/entity/ReportType\").Получить(\"GroupedSectionType\");
   
WSПараметр_SectionType_Section211    = Прокси.ФабрикаXDTO.Создать(ТипWSПараметра_SectionType);
WSПараметр_SectionType_Section211.FinanceAmount    = 0;
WSПараметр_SectionType_Section211.CashExecution    = 0;
WSПараметр_ReportData.Section211    = WSПараметр_SectionType_Section211;



Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует