Имя: Пароль:
1C
 
Ошибка в выгрузке пакетов веб-сервиса
0 Надяша
 
12.07.16
13:56
имеется модуль:

Функция Poluchit(data1,data2,ТаблицаОтчета) Экспорт
    Организация = глЗначениеПеременной("ОсновнаяОрганизация");
    СтатьяДвижения = Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоНаименованию("Прямые договора");
    Запрос = Новый Запрос;
    //Запрос.Текст =
    //    "ВЫБРАТЬ
    //    |    ПоступлениеНаРасчетныйСчет.Номер,
    //    |    ПоступлениеНаРасчетныйСчет.Дата,
    //    |    ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента как Договор,
    //    |    ПоступлениеНаРасчетныйСчет.Контрагент,
    //    |    ПоступлениеНаРасчетныйСчет.Контрагент.ИНН ,
    //    |    ПоступлениеНаРасчетныйСчет.СуммаДокумента,
    //    |    ПоступлениеНаРасчетныйСчет.СтатьяДвиженияДенежныхСредств,
    //    |    ПРЕДСТАВЛЕНИЕ(ПоступлениеНаРасчетныйСчет.СтатьяДвиженияДенежныхСредств),
    //    |    ПоступлениеНаРасчетныйСчет.НазначениеПлатежа
    //    |ИЗ
    //    |    Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
    //    |ГДЕ
    //    //|    ПоступлениеНаРасчетныйСчет.Проведен = &Проведен
    //    |    ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &data1 И &data2
    ////    |    И ПоступлениеНаРасчетныйСчет.Организация = &Организация";
    //    |    И ПоступлениеНаРасчетныйСчет.СтатьяДвиженияДенежныхСредств = &СтатьяДвижения";
    
    Запрос.Текст="ВЫБРАТЬ
                 |    ПоступлениеНаРасчетныйСчет.Ссылка КАК Ссылка,
                 |    ПоступлениеНаРасчетныйСчет.Номер КАК Номер,
                 |    ПоступлениеНаРасчетныйСчет.Дата КАК Дата,
                 |    ПоступлениеНаРасчетныйСчет.НомерВходящегоДокумента КАК НомерПлПор,
                 |    ПоступлениеНаРасчетныйСчет.ДатаВходящегоДокумента КАК ДатаПлПор,
                 |    ПоступлениеНаРасчетныйСчет.Контрагент КАК Контрагент,
                 |    ПоступлениеНаРасчетныйСчет.Контрагент.ИНН КАК ИНН,
                 |    ПоступлениеНаРасчетныйСчет.Контрагент.КПП КАК КПП,
                 |    ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента КАК Договор,
                 |    ПоступлениеНаРасчетныйСчет.ДоговорКонтрагента.Код КАК КодДоговора,
                 |    ПоступлениеНаРасчетныйСчет.СтатьяДвиженияДенежныхСредств КАК СДДС,
                 |    ПоступлениеНаРасчетныйСчет.СуммаДокумента КАК СуммаДок,
                 |    ПоступлениеНаРасчетныйСчет.НазначениеПлатежа КАК НазначениеПлатежа
                 |ИЗ
                 |    Документ.ПоступлениеНаРасчетныйСчет КАК ПоступлениеНаРасчетныйСчет
                 |ГДЕ
                 |    ПоступлениеНаРасчетныйСчет.Дата МЕЖДУ &НачДата И &КонДата
                 |    И ПоступлениеНаРасчетныйСчет.ПометкаУдаления = ЛОЖЬ
                 |    И ПоступлениеНаРасчетныйСчет.Проведен = ИСТИНА
                 |    И ПоступлениеНаРасчетныйСчет.СтатьяДвиженияДенежныхСредств = &СДДС";

    Запрос.УстановитьПараметр("НачДата", data1);
    Запрос.УстановитьПараметр("КонДата", data2);
//    Запрос.УстановитьПараметр("Организация", глЗначениеПеременной("ОсновнаяОрганизация"));
//    Запрос.УстановитьПараметр("Проведен", Проведен);
    Запрос.УстановитьПараметр("СДДС", Справочники.СтатьиДвиженияДенежныхСредств.НайтиПоНаименованию("Прямые договора"));

    Результат = Запрос.Выполнить();
       ВыборкаДетальныеЗаписи = Результат.Выбрать();

    //Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    //    ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
    //    ТабДок.Добавить(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
    //КонецЦикла;

КонтрагентТип = ФабрикаXDTO.Тип("http://localhost/wsreport2";, "Контрагент");
ДоговорТип = ФабрикаXDTO.Тип("http://localhost/wsreport2";, "Договор");
ТаблицаОтчетаТип = ФабрикаXDTO.Тип("http://localhost/wsreport2";, "ТаблицаОтчета");
ТабДокТип = ФабрикаXDTO.Тип("http://localhost/wsreport2";, "ТабДок");
//
  //
//Для Каждого СтрокаВыборкаДетальныеЗаписи из ВыборкаДетальныеЗаписи Цикл
пер=0;
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

Контрагент = ФабрикаXDTO.Создать(КонтрагентТип);
Договор = ФабрикаXDTO.Создать(ДоговорТип);
ТаблицаОтчета = ФабрикаXDTO.Создать(ТаблицаОтчетаТип);
ТабДок = ФабрикаXDTO.Создать(ТабДокТип);
Если ТипЗнч(ВыборкаДетальныеЗаписи.Контрагент) = Тип("СправочникСсылка.Контрагенты") Тогда
Контрагент.Наименование = ВыборкаДетальныеЗаписи.Контрагент.Наименование;
Контрагент.ИНН = ВыборкаДетальныеЗаписи.Контрагент.ИНН;    
Контрагент.КПП = ВыборкаДетальныеЗаписи.Контрагент.КПП;    
Иначе
Контрагент.Наименование = "";
Контрагент.ИНН = "";  
Контрагент.КПП = "";
КонецЕсли;
Если ТипЗнч(ВыборкаДетальныеЗаписи.Договор) = Тип("СправочникСсылка.ДоговорыКонтрагентов") Тогда
Договор.Наименование = ВыборкаДетальныеЗаписи.Договор.Наименование;
Иначе
Договор.Наименование = "";
КонецЕсли;
пер=пер+1;
ТабДок.Шаг = пер;
ТабДок.Контрагент = Контрагент;
ТабДок.Контрагент.ИНН = ВыборкаДетальныеЗаписи.Контрагент.ИНН ;
ТабДок.Контрагент.КПП = ВыборкаДетальныеЗаписи.Контрагент.КПП;
ТабДок.Договор = Договор;
ТабДок.Договор.Код = ВыборкаДетальныеЗаписи.КодДоговора;
ТабДок.Дата = ВыборкаДетальныеЗаписи.Дата;
ТабДок.СуммаДок = ВыборкаДетальныеЗаписи.СуммаДок;
ТабДок.СуммаНДС = Окр(ВыборкаДетальныеЗаписи.СуммаДок-ВыборкаДетальныеЗаписи.СуммаДок/1.18,2);

ТабДок.НазначениеПлатежа = ВыборкаДетальныеЗаписи.НазначениеПлатежа;
ТабДок.Номер = ВыборкаДетальныеЗаписи.Номер;
ТабДок.НомерПлПор= ВыборкаДетальныеЗаписи.НомерПлПор;
ТабДок.ДатаПлПор= ВыборкаДетальныеЗаписи.ДатаПлПор;

ТаблицаОтчета.Состав.Добавить(ТабДок);

     КонецЦикла;
Возврат ТабДок;
//Возврат ТаблицаОтчета;
    
      
///Возврат Poluchit(data1,data2,ТабДок);
КонецФункции
1 Надяша
 
12.07.16
13:57
при использовании  данного веб-сервиса в soap,результат следующий:<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">;
   <soap:Header/>
   <soap:Body>
      <m:PoluchitResponse xmlns:m="http://localhost/wsreport2">;
         <m:return xsi:type="m:ТабДок" xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
            <m:Контрагент>
               <m:Наименование>10ГПЗ</m:Наименование>
               <m:ИНН>6168006148</m:ИНН>
               <m:КПП>616401001</m:КПП>
            </m:Контрагент>
            <m:Договор>
               <m:Наименование>Ремонт сч-ка</m:Наименование>
               <m:Код>F00001968</m:Код>
            </m:Договор>
            <m:Дата>2016-02-08</m:Дата>
            <m:Номер>00000000000000000338</m:Номер>
            <m:СуммаДок>42021.57</m:СуммаДок>
            <m:СуммаНДС>6410.07</m:СуммаНДС>
            <m:ДатаПлПор>2016-02-08</m:ДатаПлПор>
            <m:НомерПлПор>34</m:НомерПлПор>
            <m:НазначениеПлатежа>Электроэнергия за февраль 2016 по договору 00502271 от 01.01.2014 В том числе НДС 18 % - 6410.07</m:НазначениеПлатежа>
            <m:Шаг>6</m:Шаг>
         </m:return>
         <m:ТаблицаОтчета xsi:type="m:ТаблицаОтчета" xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">;
            <m:Состав>
               <m:Контрагент>
                  <m:Наименование>10ГПЗ</m:Наименование>
                  <m:ИНН>6168006148</m:ИНН>
                  <m:КПП>616401001</m:КПП>
               </m:Контрагент>
               <m:Договор>
                  <m:Наименование>Ремонт сч-ка</m:Наименование>
                  <m:Код>F00001968</m:Код>
               </m:Договор>
               <m:Дата>2016-02-08</m:Дата>
               <m:Номер>00000000000000000338</m:Номер>
               <m:СуммаДок>42021.57</m:СуммаДок>
               <m:СуммаНДС>6410.07</m:СуммаНДС>
               <m:ДатаПлПор>2016-02-08</m:ДатаПлПор>
               <m:НомерПлПор>34</m:НомерПлПор>
               <m:НазначениеПлатежа>Электроэнергия за февраль 2016 по договору 00502271 от 01.01.2014 В том числе НДС 18 % - 6410.07</m:НазначениеПлатежа>
               <m:Шаг>6</m:Шаг>
            </m:Состав>
         </m:ТаблицаОтчета>
      </m:PoluchitResponse>
   </soap:Body>
</soap:Envelope>
2 Надяша
 
12.07.16
13:58
как бы всё правильно, но в результате вместо 6-ти документов выгружается последний. Помогите, пожалуйста с поиском ошибки в модуле веб-сервиса
3 Serginio1
 
12.07.16
14:08
ТабДок = ФабрикаXDTO.Создать(ТабДокТип);
перед циклом поставь
4 Надяша
 
12.07.16
14:23
(3) шесть раз одна и тот же документ выгружается
5 Serginio1
 
12.07.16
14:32
Прошу прощения с ТаблицаОтчета перепутал.
6 Serginio1
 
12.07.16
14:33
ТаблицаОтчета = ФабрикаXDTO.Создать(ТаблицаОтчетаТип);
перед циклом поставь
7 Надяша
 
12.07.16
14:38
(6) спасибо большое!!!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший