СпПарам=ПолучитьРеквизиты();
КодОКПО=СпПарам.Получить("ОКПО");
КодОбласти=СпПарам.Получить("Область");
КодГНА=СпПарам.Получить("ГНА");
Для Инд=1 по 10-СтрДлина(КодОКПО) Цикл
КодОКПО="0"+КодОКПО;
КонецЦикла;
тНомерДок=Формат(НомерДок,"Ч(0)7.0");
Возврат СокрЛП(Константа.ПутьЭкспортХМЛ)+КодОбласти+КодГНА+КодОКПО+?(ДатаДок>=Дата("01.01.2015"),"J1201007100",?(ДатаДок>=Дата("01.12.2014"),"J1201006100",?(ДатаДок>=Дата("01.03.2014"),"J1201005100",?(ДатаДок>Дата("15.12.2011"),"J1201004100","J1201003100"))))+тНомерДок+"1"+Прав(СтрЗаменить(Формат(ДатаДок,"ДДДММГГГГ"),".",""),6)+КодОбласти+КодГНА+".xml";
КонецФункции
Процедура ХМЛФайл()
Если СтавкаНДС.Код<>"2" Тогда
Сообщить("Выгрузка в XML - файл предусмотрена только для налоговых накладных со ставкой НДС 20 %");
Возврат;
КонецЕсли;
Если ДатаДок<'01.03.2014' Тогда
Сообщить("Выгрузка в XML файл возможна только для документов, датированных после 01.03.2014");
Возврат;
КонецЕсли;
СпПарам=ПолучитьРеквизиты();
тНомерДок = Формат(Число(СокрЛП(Сред(НомерДок,4))),"Ч7.0");
тДатаДок=СтрЗаменить(Формат(ДатаДок,"ДДДММГГГГ"),".","");
тФилиал="";
тКодДеятельности="";
тТелефонПр = ВыровнятьВправо(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СокрЛП(Фирма.Телефоны),"-",""),"(",""),")","")," ",""),10);
ФирмаНалогНомер = ВыровнятьВправо(СокрЛП(Фирма.ИНН),12);
КонтрагентАдрес = Клиент.Адрес;
тТелефонПок = ВыровнятьВправо(СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(СокрЛП(Клиент.Телефоны),"-",""),"(",""),")","")," ",""),10);
КонтрагентНалогНомер = ВыровнятьВправо(?(ПустоеЗначение(Клиент.ИНН)=1, "400000000000", СокрЛП(Клиент.ИНН)),12);
КодПр="";
Если ОригиналУПродавца=1 Тогда
Если Причина.Выбран()=0 Тогда
Сообщить("Не выбрана причина хранения оригинала нал.накл. у продавца");
Возврат;
КонецЕсли;
КодПр=Причина.Код;
КонецЕсли;
Если ((ОригиналУПродавца=1) и ((КодПр<>"01") и (КодПР<>"11") и (КодПР<>12))) или (Число(КонтрагентНалогНомер)=0)Тогда
Если ДатаДок>='01.03.2014' Тогда
КонтрагентНалогНомер="400000000000";
Иначе
КонтрагентНалогНомер = " 0";
КонецЕсли;
тСвидетельствоПок = "0";
КонецЕсли;
ВидДоговора=Строка(ВидДог);
тДатаДог=СтрЗаменить(Формат(ДатаДог,"ДДДММГГГГ"),".","");
тНомерДог=СокрЛП(НомерДог);
Пакет=СоздатьОбъект("Текст");
Пакет.КодоваяСтраница(0);
Пакет.Шаблон(1);
Пакет.ДобавитьСтроку("<?xml version=""1.0"" encoding=""windows-1251""?>");
Если ДатаДок>=Дата("01.01.2015") Тогда
Пакет.ДобавитьСтроку("<DECLAR xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""J1201007.xsd"">");
ИначеЕсли ДатаДок>Дата("01.12.2014") Тогда
Пакет.ДобавитьСтроку("<DECLAR xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""J1201006.xsd"">");
ИначеЕсли ДатаДок>Дата("01.03.2014") Тогда
Пакет.ДобавитьСтроку("<DECLAR xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""J1201005.xsd"">");
ИначеЕсли ДатаДок>Дата("15.12.2011") Тогда
Пакет.ДобавитьСтроку("<DECLAR xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""J1201004.xsd"">");
Иначе
Пакет.ДобавитьСтроку("<DECLAR xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:noNamespaceSchemaLocation=""J1201003.xsd"">");
КонецЕсли;
Пакет.ДобавитьСтроку("<DECLARHEAD>");
Пакет.ДобавитьСтроку("<TIN>"+СпПарам.Получить("ОКПО")+"</TIN>");
Пакет.ДобавитьСтроку("<C_DOC>J12</C_DOC>");
Пакет.ДобавитьСтроку("<C_DOC_SUB>010</C_DOC_SUB>");
Если ДатаДок>=Дата("01.01.2015") Тогда
Пакет.ДобавитьСтроку("<C_DOC_VER>7</C_DOC_VER>");
ИначеЕсли ДатаДок>Дата("01.12.2014") Тогда
Пакет.ДобавитьСтроку("<C_DOC_VER>6</C_DOC_VER>");
ИначеЕсли ДатаДок>Дата("01.03.2014") Тогда
Пакет.ДобавитьСтроку("<C_DOC_VER>5</C_DOC_VER>");
ИначеЕсли ДатаДок>Дата("15.12.2011") Тогда
Пакет.ДобавитьСтроку("<C_DOC_VER>4</C_DOC_VER>");
Иначе
Пакет.ДобавитьСтроку("<C_DOC_VER>3</C_DOC_VER>");
КонецЕсли;
Пакет.ДобавитьСтроку("<C_DOC_TYPE>0</C_DOC_TYPE>");
Пакет.ДобавитьСтроку("<C_DOC_CNT>"+тНомерДок+"</C_DOC_CNT>");
Пакет.ДобавитьСтроку("<C_REG>"+СпПарам.Получить("Область")+"</C_REG>");
Пакет.ДобавитьСтроку("<C_RAJ>"+СпПарам.Получить("ГНА")+"</C_RAJ>");
Пакет.ДобавитьСтроку("<PERIOD_MONTH>"+СпПарам.Получить("Месяц")+"</PERIOD_MONTH>");
Пакет.ДобавитьСтроку("<PERIOD_TYPE>1</PERIOD_TYPE>");
Пакет.ДобавитьСтроку("<PERIOD_YEAR>"+СпПарам.Получить("Год")+"</PERIOD_YEAR>");
Пакет.ДобавитьСтроку("<C_STI_ORIG>"+СпПарам.Получить("Область")+СпПарам.Получить("ГНА")+"</C_STI_ORIG>");
Пакет.ДобавитьСтроку("<C_DOC_STAN>1</C_DOC_STAN>");
Пакет.ДобавитьСтроку("<LINKED_DOCS xsi:nil=""true""></LINKED_DOCS>");
Пакет.ДобавитьСтроку("<D_FILL>"+СпПарам.Получить("ТДата")+"</D_FILL>");
Пакет.ДобавитьСтроку("<SOFTWARE>OPZ 1.29.19</SOFTWARE>");
Пакет.ДобавитьСтроку("</DECLARHEAD><DECLARBODY>");
Если ДатаДок<Дата("01.01.2015") Тогда
Пакет.ДобавитьСтроку("<HORIG>1</HORIG>");
ДобавитьПараметр(Пакет,"HERPN",ВключеноВЕРПН);
ДобавитьПараметр(Пакет,"HORIG1",ОригиналУПродавца);
Если ДатаДок>=Дата("01.03.2014") Тогда
ДобавитьПараметр(Пакет,"HEL",Электронный);
Если ДатаДок>=Дата("01.12.2014") Тогда
ДобавитьПараметр(Пакет,"HCOPY",0);
КонецЕсли;
КонецЕсли;
ДобавитьПараметр(Пакет,"HTYPR",?(ОригиналУПродавца=0,"",СокрЛП(Причина.Код)));
Иначе
ДобавитьПараметр(Пакет,"H01",0);
КонецЕсли;
ДобавитьПараметр(Пакет,"HFILL",СпПарам.Получить("ТДата"));
ДобавитьПараметр(Пакет,"HNUM",тНомерДок);
ДобавитьПараметр(Пакет,"HNUM1",тКодДеятельности);
ДобавитьПараметр(Пакет,"HNUM2",тФилиал);
ДобавитьПараметр(Пакет,"HNAMESEL",СпПарам.Получить("Наим"));
ДобавитьПараметр(Пакет,"HNAMEBUY",Клиент.ПолнНаименование);
ДобавитьПараметр(Пакет,"HKSEL",ФирмаНалогНомер);
ДобавитьПараметр(Пакет,"HKBUY",КонтрагентНалогНомер);
ДобавитьПараметр(Пакет,"HLOCSEL",СпПарам.Получить("Адрес"));
ДобавитьПараметр(Пакет,"HLOCBUY",КонтрагентАдрес);
ДобавитьПараметр(Пакет,"HTELSEL",тТелефонПр);
ДобавитьПараметр(Пакет,"HTELBUY",тТелефонПок);
ДобавитьПараметр(Пакет,"H01G1S",ВидДоговора);
ДобавитьПараметр(Пакет,"H01G2D",тДатаДог);
ДобавитьПараметр(Пакет,"H01G3S",тНомерДог);
ДобавитьПараметр(Пакет,"H02G1S",СокрЛП(Основание));
НПП=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
ДобавитьПараметр(Пакет,"RXXXXG2D",ДатаДок,НПП);
КонецЦикла;
НПП=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
ДобавитьПараметр(Пакет,"RXXXXG3S",СокрЛП(ТМЦ.ПолнНаименование),НПП);
КонецЦикла;
Если ДатаДок>Дата("15.12.2011") Тогда
НПП=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
тКодУКТЗЕД="";
Если (ТМЦ.Вид()="ТМЦ") Тогда
тКодУКТЗЕД=СокрЛП(ТМЦ.КодУКТЗЕД);
КонецЕсли;
ДобавитьПараметр(Пакет,"RXXXXG4",тКодУКТЗЕД,НПП);
КонецЦикла;
КонецЕсли;
НПП=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
Если ТМЦ.Вид() = "ТМЦ" Тогда
ЕдИзм = СокрЛП(Ед);
Иначе
ЕдИзм = СокрЛП(ТМЦ.БазЕдиница);
КонецЕсли;
ДобавитьПараметр(Пакет,"RXXXXG4S",ЕдИзм,НПП);
КонецЦикла;
// 2015
Если ДатаДок>=Дата("01.01.2015") Тогда
НПП=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
Если ТМЦ.Вид() = "ТМЦ" Тогда
ЕдИзмКод = СокрЛП(Ед.Код);
Иначе
ЕдИзмКод = СокрЛП(ТМЦ.БазЕдиница.Код);
КонецЕсли;
//ЕдИзмКод = Прав("00000" + Формат(ЕдИзмКод,"ЧГ=0"),4);
ЕдИзмКод = Прав("00000" + ЕдИзмКод,4);
ДобавитьПараметр(Пакет,"RXXXXG105_2S",ЕдИзмКод,НПП);
КонецЦикла;
КонецЕсли;
НПП=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
ДобавитьПараметр(Пакет,"RXXXXG5",Кво,НПП);
КонецЦикла;
//НПП=0;
//ВыбратьСтроки();
//Пока ПолучитьСтроку()=1 Цикл
// НПП=НПП+1;
// Если ТМЦ.Вид()="ТМЦ" Тогда
// Если (ТМЦ.ВидТМЦ=Перечисление.ВидыТМЦ.Услуга) Тогда
// Если СокрЛП(ТМЦ.КвоДляНН)<>"" Тогда
// ДобавитьПараметр(Пакет,"RXXXXG5S",СокрЛП(ТМЦ.КвоДляНН),НПП);
// КонецЕсли;
// КонецЕсли;
// КонецЕсли;
//КонецЦикла;
НПП=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
ДобавитьПараметр(Пакет,"RXXXXG6",ЦенаБезНДС,НПП);
КонецЦикла;
НПП=0;
ИтСумма=0;
ИтСуммаОкр=0;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
НПП=НПП+1;
ИтСумма=ИтСумма+СуммаБезНДС;
ТекСум=Окр(ИтСумма,2,1)-ИтСуммаОкр;
ИтСуммаОкр=ИтСуммаОкр+ТекСум;
ДобавитьПараметр(Пакет,"RXXXXG7",СокрЛП(Формат(ТекСум,"Ч012.2")),НПП);
КонецЦикла;
ДобавитьПараметр(Пакет,"R01G7",СокрЛП(Формат(ИтСуммаОкр,"Ч012.2")));
ДобавитьПараметр(Пакет,"R01G8",0);
ДобавитьПараметр(Пакет,"R01G9",0);
ДобавитьПараметр(Пакет,"R01G10",0);
ДобавитьПараметр(Пакет,"R01G11",СокрЛП(Формат(ИтСуммаОкр,"Ч012.2")));
ДобавитьПараметр(Пакет,"R02G11",СокрЛП(Формат(ВозвТара,"Ч012.2")));
СуммаНДС=Окр(Итог("НДС"),2,1);
ДобавитьПараметр(Пакет,"R03G7",СуммаНДС);
ДобавитьПараметр(Пакет,"R03G8",0);
ДобавитьПараметр(Пакет,"R03G9",0);
ДобавитьПараметр(Пакет,"R03G10S",0);
ДобавитьПараметр(Пакет,"R03G11",СуммаНДС);
ДобавитьПараметр(Пакет,"R04G7",ИтСуммаОкр+СуммаНДС);
ДобавитьПараметр(Пакет,"R04G8",0);
ДобавитьПараметр(Пакет,"R04G9",0);
ДобавитьПараметр(Пакет,"R04G10",0);
ДобавитьПараметр(Пакет,"R04G11",ИтСуммаОкр+СуммаНДС);
тПЗакона="";
ДобавитьПараметр(Пакет,"R003G10S",тПЗакона);
ДобавитьПараметр(Пакет,"H10G1S",ФИО(Константа.ОтвЗаВыпискуНН,1,1));
Пакет.ДобавитьСтроку("</DECLARBODY></DECLAR>");
ИмяФ=ПолучитьИмяФайла();
Пакет.Записать(ИмяФ);
Если ФС.СуществуетФайл(ИмяФ)=1 Тогда
Сообщить("Файл "+ИмяФ+" успешно создан");
Иначе
Сообщить("Ошибка при создании файла");
КонецЕсли;
КонецПроцедуры