Финансы без пpоблем: Пеpеговоpный Пункт II (http://hdru.com/cgi-bin/pp2/YaBB.cgi)
>> Платные и бесплатные услуги >> Re: Экспорт НН в XML
(Message started by: Denis, Dnepropetrovsk на 05.03.12 в 11:03:42)

Заголовок: Re: Экспорт НН в XML
Прислано пользователем Denis, Dnepropetrovsk на 05.03.12 в 11:03:42
По трудоемкости создать сразу XML-файл будет не намного сложнее чем такой текстовый. Проблема кодировки выходного файла решается простой подпрограммой (можно не только в windows-1251 но в принципе и в любую другую кодировку перевести).

Заголовок: Re: Экспорт НН в XML
Прислано пользователем Boris, Kiev. на 05.03.12 в 14:19:46

on 03/05/12 в 12:43:49, alushta wrote:
...


Не очень понятно, какой смысл в том, что сначала средствами ФБП делается болванка, а затем её же обрабатывать с целью получения тем же средством связанного результирующего текстового xml-формата.
Чего Вам не хватает для прямой генерации резудьтирующего XML-файла?

Заголовок: Re: Экспорт НН в XML
Прислано пользователем alushta на 05.03.12 в 14:26:13
Я думал что здесь мы будем предлагать, а тут пошло обсуждение что да как, вместо, того чтобы предложить конкретно лучше моего
Поэтому я удалил свое предложение...

Заголовок: Re: Экспорт НН в XML
Прислано пользователем Denis, Dnepropetrovsk на 11.06.12 в 09:39:03
Рабочая заготовка для экспорта НН в XML  для m.e.doc (проверено вместе с Alushta):

***************************XML***
ax='d:\buh\medoc\NN\111.xml'   xml-файл
\>file ax
printstr [win '<?xml version="1.0" encoding="windows-1251"?>']+[ch 13]+[ch 10] to file ax
printstr [win '<ZVIT>'] to file ax
*Дата создания НН
if DC<10 XX='0'+[intsn DC];else XX=[intsn DC];endif
if MC<10 XX=XX+'.0'+[intsn MC]+'.'+[intsn YC];else XX=XX+'.'+[intsn MC]+'.'+[intsn YC];endif
printstr [win '<TRANSPORT><CREATEDATE>'+XX+'</CREATEDATE><VERSION>3.0</VERSION></TRANSPORT>'] to file ax
*Код ЕДРПОУ предприятия  вставить!!!
XX='xxxxxxxx'
if XX=0 XX=' ';endif
printstr [win '<ORG><FIELDS><EDRPOU>'+XX+'</EDRPOU></FIELDS>'] to file ax
*Начало документа + первый день периода (месяца) документа
if MC<10 XX='01.0'+[intsn MC]+'.'+[intsn YC];else XX='01.'+[intsn MC]+'.'+[intsn YC];endif
printstr [win '<CARD><FIELDS><PERTYPE>0</PERTYPE><PERDATE>'+XX+'</PERDATE><CHARCODE>J1201003</CHARCODE><DOCID>1</DOCID></FIELDS><DOCUMENT>'] to file ax
*Код ЕДРПОУ покупателя
XX='xxxxxxxx'
if XX=0 XX=' ';endif
printstr [win '<ROW TAB="0" LINE="0" NAME="EDR_POK"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Код ЕДРПОУ предприятия
XX='xxxxxxxx'
if XX=0 XX=' ';endif
printstr [win '<ROW TAB="0" LINE="0" NAME="FIRM_EDRPOU"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Код ИНН предприятия
XX='xxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="FIRM_INN"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Наименование предприятия
XX='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="FIRM_NAME"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Телефон предприятия
XX='xxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="FIRM_PHON"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Свидетельство про регистрацию
XX='xxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="FIRM_SRPNDS"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
****Адрес Предприятия
XX='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
if XX=0 XX=' ';endif
printstr [win '<ROW TAB="0" LINE="0" NAME="FIRM_ADR"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Оригинал
printstr [win '<ROW TAB="0" LINE="0" NAME="N1"><VALUE>X</VALUE></ROW>'] to file ax
*Имя выписавшего налоговую
XX='xxxxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N10"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Дата выписки HH
if DC<10 XX='0'+[intsn DC];else XX=[intsn DC];endif
if MC<10 XX=XX+'.0'+[intsn MC]+'.'+[intsn YC];else XX=XX+'.'+[intsn MC]+'.'+[intsn YC];endif
printstr [win '<ROW TAB="0" LINE="0" NAME="N11"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Номер налоговой
XX='xxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N2_11"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
printstr [win '<ROW TAB="0" LINE="0" NAME="N2_1"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Наименование покупателя
XX='xxxxxxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N3"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*ИНН покупателя
XX='xxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N4"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Адрес покупателя
XX='xxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N5"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Телефон покупателя
XX='xxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N6"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Свидетельство про регистрацию покупателя
XX='xxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N7"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Вид договора
XX='xxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N8"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Номер договора
XX='xxxxxxxxxxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N81"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Дата договора
XX='xx.xx.xxxx'
printstr [win '<ROW TAB="0" LINE="0" NAME="N82"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Форма оплаты
XX='оплата з поточного рахунку'
printstr [win '<ROW TAB="0" LINE="0" NAME="N9"><VALUE>'+XX+'</VALUE></ROW>'] to file ax


В переменную XX нужно просто подставлять нужный значения...
Проверить корректность xml-файла очень просто.
Файл должен открываться браузером без ошибок.

Заголовок: Re: Экспорт НН в XML
Прислано пользователем Denis, Dnepropetrovsk на 11.06.12 в 09:39:22
продолжение:


***Строка HH для XML
**Нумерация с 0 а не с 1
*i - порядковый номер строки НН
*Дата отгрузки
XX='xx.xx.xxxx'
printstr [win '<ROW TAB="1" LINE="'+[intsn i-1]+'" NAME="TAB1_A12"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Наименование товара
XX='xxxxxxxxxxxxxx'
printstr [win '<ROW TAB="1" LINE="'+[intsn i-1]+'" NAME="TAB1_A13"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Единица измерения
XX='xxxxx'
printstr [win '<ROW TAB="1" LINE="'+[intsn i-1]+'" NAME="TAB1_A14"><VALUE>'+XX+'</VALUE></ROW>'] to file ax
*Количество
if XX='грн.'
  printstr [win '<ROW TAB="1" LINE="'+[intsn i-1]+'" NAME="TAB1_51">послуга<VALUE></VALUE></ROW>'] to file ax
else
  XX=1
  printstr [win '<ROW TAB="1" LINE="'+[intsn i-1]+'" NAME="TAB1_A15"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
endif
*Цена без НДС
XX=1
printstr [win '<ROW TAB="1" LINE="'+[intsn i-1]+'" NAME="TAB1_A16"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
*Обсяги постачання без урахування ПДВ (ставка 20%):
XX=1
printstr [win '<ROW TAB="1" LINE="'+[intsn i-1]+'" NAME="TAB1_A17"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
******************
***Итоги накладной и закрытие XML
*Усього по роздiлу I (колонка 7 <20%>)
XX=1
printstr [win '<ROW TAB="0" LINE="0" NAME="A5_7"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
*Усього по роздiлу I (колонка 11 <Загальна сума коштiв, що пiдлягає сплатi>)
XX=1
printstr [win '<ROW TAB="0" LINE="0" NAME="A5_11"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
*III ПДВ (колонка 7 <20%> )
XX=0.2
printstr [win '<ROW TAB="0" LINE="0" NAME="A6_7"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
*III ПДВ (колонка 11 <Загальна сума коштiв, що пiдлягає сплатi>)
XX=0.2
printstr [win '<ROW TAB="0" LINE="0" NAME="A6_11"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
*Загальна сума з ПДВ (20% вiдсоткiв)
XX=1.2
printstr [win '<ROW TAB="0" LINE="0" NAME="A7_7"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
*Загальна сума коштiв з ПДВ
XX=1.2
printstr [win '<ROW TAB="0" LINE="0" NAME="A7_11"><VALUE>'+[strip [sn XX,14,2]+'</VALUE></ROW>'] to file ax
printstr [win '</DOCUMENT></CARD></ORG></ZVIT>'] to file ax
**********************************

Заголовок: Re: Экспорт НН в XML
Прислано пользователем alushta на 11.06.12 в 11:56:40
Большое спасибо Денису за этот пример. Я думаю что вопрос создания файлов XML средствами ФБП рассмотрен полностью



Powered by YaBB 1 Gold - SP 1.3.2!
Forum software copyright й 2000-2004 Yet another Bulletin Board