Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 07:06

Выгрузка в xml

Автор Tyshkan, 03 фев 2013, 11:45

0 Пользователей и 1 гость просматривают эту тему.

Tyshkan

необходимо получить такую структуру

<?xml version="1.0" encoding="windows-1251" ?> 

- <Файл ДатаДок="16.01.2013" ВерсФорм="4.20" НаимПрог="Для Декларант-Алко">


- <Документ>


- <Оборот ПN="1" П000000000003="200">


- <СведПроизвИмпорт NameOrg="ЗАО "ЗАВОД1"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127040" П200000000015="" П200000000016="0.25000" /> 

  <Продукция П200000000013="26.12.2012" П200000000014="ГЛМ00129841" П200000000015="" П200000000016="0.25000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ЗАО "ЗАВОД1"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124405" П200000000015="" П200000000016="0.50000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127040" П200000000015="" П200000000016="0.50000" /> 

  <Продукция П200000000013="26.12.2012" П200000000014="ГЛМ00129841" П200000000015="" П200000000016="0.50000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ОАО "ЗАВОД1"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124405" П200000000015="" П200000000016="0.15000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127040" П200000000015="" П200000000016="0.10000" /> 

  <Продукция П200000000013="26.12.2012" П200000000014="ГЛМ00129841" П200000000015="" П200000000016="0.10000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД1"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.15000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="0.15000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД1"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.50000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="0.50000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД2"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124405" П200000000015="" П200000000016="0.15000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127040" П200000000015="" П200000000016="0.10000" /> 

  <Продукция П200000000013="26.12.2012" П200000000014="ГЛМ00129841" П200000000015="" П200000000016="0.10000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД2"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.25000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="0.25000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД2"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.80000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="0.65000" /> 
  </СведПроизвИмпорт>
  </Оборот>

- <Оборот ПN="2" П000000000003="212">


- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД2"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.15000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="0.15000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД2"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.15000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="0.15000" /> 
  </СведПроизвИмпорт>
  </Оборот>

- <Оборот ПN="3" П000000000003="229">


- <СведПроизвИмпорт NameOrg="ГУП "ЗАВОД2"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.10000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ЗАО "ЗАВОД3"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.28000" /> 
  </СведПроизвИмпорт>
  </Оборот>

- <Оборот ПN="4" П000000000003="260">


- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД3"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="1.20000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД3"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="1.20000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="1.20000" /> 
  </СведПроизвИмпорт>
  </Оборот>

- <Оборот ПN="5" П000000000003="400">


- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД3"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.21000" /> 
  </СведПроизвИмпорт>
  </Оборот>

- <Оборот ПN="6" П000000000003="403">


- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД3"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.63000" /> 
  </СведПроизвИмпорт>
  </Оборот>

- <Оборот ПN="7" П000000000003="450">


- <СведПроизвИмпорт NameOrg="ОАО "ЗАВОД3"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.45000" /> 
  </СведПроизвИмпорт>

- <СведПроизвИмпорт NameOrg="ООО "ЗАВОД3"" INN="1234567890" KPP="987654321">


  <Продукция П200000000013="14.12.2012" П200000000014="ГЛМ00124413" П200000000015="" П200000000016="0.45000" /> 

  <Продукция П200000000013="20.12.2012" П200000000014="ГЛМ00127035" П200000000015="" П200000000016="0.45000" /> 
  </СведПроизвИмпорт>
  </Оборот>
  </Документ>
  </Файл>


как сделать условие чтобы "Оборот" закрывался при смене кода продукции??? Вот код:

Процедура КнопкаВыполнитьНажатие(Кнопка)
   
   КодыОперацийВозвратПоставщику = Новый Массив;
   КодыОперацийВозвратПоставщику.Добавить(Перечисления.КодыОперацийПартииТоваров.ВозвратПоставщику);
   
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   алкТоварыОрганизацийБухгалтерскийУчет.Организация КАК Организация,
      |   алкТоварыОрганизацийБухгалтерскийУчет.Номенклатура КАК Номенклатура,
      |   алкТоварыОрганизацийБухгалтерскийУчет.Номенклатура.алкПроизводитель КАК Производитель,
      |   алкТоварыОрганизацийБухгалтерскийУчет.Регистратор.Дата КАК ДатаГТД,
      |   алкТоварыОрганизацийБухгалтерскийУчет.Регистратор.Номер КАК НомерГТД,
      |   алкТоварыОрганизацийБухгалтерскийУчет.Номенклатура.алкПроизводитель.КПП КАК ИмпортерКПП,
      |   алкТоварыОрганизацийБухгалтерскийУчет.Номенклатура.алкПроизводитель.ИНН КАК ИмпортерИНН,
      |   алкТоварыОрганизацийБухгалтерскийУчет.Регистратор.Контрагент КАК Контрагент,
      |   ВЫБОР
      |      КОГДА алкТоварыОрганизацийБухгалтерскийУчет.КодОперации В (&КодыОперацийВозвратПоставщику)
      |            И алкТоварыОрганизацийБухгалтерскийУчет.Количество > 0
      |         ТОГДА -1
      |      ИНАЧЕ 1
      |   КОНЕЦ * алкТоварыОрганизацийБухгалтерскийУчет.Количество * алкТоварыОрганизацийБухгалтерскийУчет.Номенклатура.алкЕмкость / 10 КАК Оборот,
      |   ВЫБОР
      |      КОГДА алкТоварыОрганизацийБухгалтерскийУчет.СерияНоменклатуры.алкВидПродукции ЕСТЬ NULL
      |            ИЛИ алкТоварыОрганизацийБухгалтерскийУчет.СерияНоменклатуры.алкВидПродукции В (НЕОПРЕДЕЛЕНО, ЗНАЧЕНИЕ(Справочник.алкВидыАлкогольнойПродукции.ПустаяСсылка))
      |         ТОГДА алкТоварыОрганизацийБухгалтерскийУчет.Номенклатура.алкВидПродукции.ЛокальныйКод
      |      ИНАЧЕ алкТоварыОрганизацийБухгалтерскийУчет.СерияНоменклатуры.алкВидПродукции.ЛокальныйКод
      |   КОНЕЦ КАК КодПродукции
      |ИЗ
      |   РегистрНакопления.алкТоварыОрганизацийБухгалтерскийУчет КАК алкТоварыОрганизацийБухгалтерскийУчет
      |ГДЕ
      |   алкТоварыОрганизацийБухгалтерскийУчет.Период МЕЖДУ &ДатаНачала И &ДатаОкончания
      |   И алкТоварыОрганизацийБухгалтерскийУчет.Регистратор.Контрагент = &Контрагент
      |
      |УПОРЯДОЧИТЬ ПО
      |   КодПродукции";
      
   Запрос.УстановитьПараметр("Контрагент"   ,Контрагент);
   Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);
   Запрос.УстановитьПараметр("ДатаОкончания", ДатаОкончания);
   Запрос.УстановитьПараметр("КодыОперацийВозвратПоставщику", КодыОперацийВозвратПоставщику);


   
   Выборка = Запрос.Выполнить();
   Результат = Выборка.Выбрать();
   ТЗ = Выборка.Выгрузить();
   //ТЗ.Свернуть("Организация, Номенклатура, Производитель, ДатаГТД, НомерГТД, ИмпортерКПП, ИмпортерИНН, Контрагент, КодПродукции", "Оборот");
   
   Файл ="D:\"+ ИмяФайла + ".xml";   
   
   ЗаписьXML = Новый ЗаписьXML;
   ЗаписьXML.ОткрытьФайл(Файл,"WINDOWS-1251");
   ЗаписьXML.ЗаписатьОбъявлениеXML();
   
   ЗаписьXML.ЗаписатьНачалоЭлемента("Файл");
   ЗаписьXML.ЗаписатьАтрибут("ДатаДок", Строка(Формат(ТекущаяДата(),"ДФ=dd.MM.yyyy")));
   ЗаписьXML.ЗаписатьАтрибут("ВерсФорм","4.20");
   ЗаписьXML.ЗаписатьАтрибут("НаимПрог","Для Декларант-Алко");
   
   ЗаписьXML.ЗаписатьНачалоЭлемента("Документ");
   КодПродукции = 1;
   номер = 1;
   Для Каждого Элемент из ТЗ Цикл
      Если не Элемент.КодПродукции = "" Тогда
      Если не КодПродукции = Элемент.КодПродукции Тогда
         ЗаписьXML.ЗаписатьНачалоЭлемента("Оборот");
         ЗаписьXML.ЗаписатьАтрибут("П000000000003", Строка(Элемент.КодПродукции));   
         ЗаписьXML.ЗаписатьАтрибут("ПN",Строка(номер));
         //ЗаписьXML.ЗаписатьКонецЭлемента();
         
         ЗаписьXML.ЗаписатьНачалоЭлемента("СведПроизвИмпорт");
         ЗаписьXML.ЗаписатьАтрибут("KPP",Элемент.ИмпортерКПП);
         ЗаписьXML.ЗаписатьАтрибут("INN", Элемент.ИмпортерКПП);
         ЗаписьXML.ЗаписатьАтрибут("NameOrg", Строка(Элемент.Производитель));
         ЗаписьXML.ЗаписатьКонецЭлемента();
         
         ЗаписьXML.ЗаписатьНачалоЭлемента("Продукция");
         ЗаписьXML.ЗаписатьАтрибут("П200000000016", Строка(Формат(Элемент.Оборот,"ЧРД=.")));
         ЗаписьXML.ЗаписатьАтрибут("П200000000015","");
         ЗаписьXML.ЗаписатьАтрибут("П200000000014", Строка(Элемент.НомерГТД));
         ЗаписьXML.ЗаписатьАтрибут("П200000000013", Строка(Формат(Элемент.ДатаГТД,"ДФ=dd.MM.yyyy" )));
         ЗаписьXML.ЗаписатьКонецЭлемента();
      ИначеЕсли КодПродукции = Элемент.КодПродукции Тогда
         ЗаписьXML.ЗаписатьНачалоЭлемента("СведПроизвИмпорт");
         ЗаписьXML.ЗаписатьАтрибут("KPP",Элемент.ИмпортерКПП);
         ЗаписьXML.ЗаписатьАтрибут("INN", Элемент.ИмпортерКПП);
         ЗаписьXML.ЗаписатьАтрибут("NameOrg", Строка(Элемент.Производитель));
         ЗаписьXML.ЗаписатьКонецЭлемента();
         
         ЗаписьXML.ЗаписатьНачалоЭлемента("Продукция");
         ЗаписьXML.ЗаписатьАтрибут("П200000000016", Строка(Формат(Элемент.Оборот,"ЧРД=.")));
         ЗаписьXML.ЗаписатьАтрибут("П200000000015","");
         ЗаписьXML.ЗаписатьАтрибут("П200000000014", Строка(Элемент.НомерГТД));
         ЗаписьXML.ЗаписатьАтрибут("П200000000013", Строка(Формат(Элемент.ДатаГТД,"ДФ=dd.MM.yyyy" )));
         ЗаписьXML.ЗаписатьКонецЭлемента();    
      КонецЕсли;
   
      Если НЕ КодПродукции = Элемент.КодПродукции и не КодПродукции = 1 Тогда 
         
         ЗаписьXML.ЗаписатьКонецЭлемента();
         //ЗаписьXML.ЗаписатьКонецЭлемента();
         номер = номер+1;
      
      КонецЕсли;
       КонецЕсли;
   КодПродукции = Элемент.КодПродукции;
   КонецЦикла;      
   
   ЗаписьXML.ЗаписатьКонецЭлемента();   
   ЗаписьXML.ЗаписатьКонецЭлемента();
   
КонецПроцедуры


Dethmontt

Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Tyshkan

я просто не могу понять как мне условие прописать чтобы открывался и закрывался оборот после смены кода продукции
Добавлено: 03 фев 2013, 15:49


и может кто нибудь поможет, это выгрузка для загрузки на сайт алкодекларация контур...может у кого нибудь есть примеры кода...просто при загрузки выгрузки из 1с сайт выдает ошибки(((

Dethmontt

Может стоит обратиться к специалисту, что бы вам написали обработку обмена с сайтом, так как вы хотите?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Dethmontt

Кто писал загрузку на сайт? У них можно же попросить схему?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Tyshkan

https://alko.kontur.ru/50bb6ec2-3e95-4047-b7ea-44d1626524d6/DeclarationFilling
вот он сайт, я немного не понимаю ваш вопрос...

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск