Автор |
Тема: Re: Экспорт НН в XML (Прочитано 4146 раз) |
|
Denis, Dnepropetrovsk
Я люблю этот Форум!
Просмотреть Профиль | E-мэйл
Сообщений: 129
|
По трудоемкости создать сразу XML-файл будет не намного сложнее чем такой текстовый. Проблема кодировки выходного файла решается простой подпрограммой (можно не только в windows-1251 но в принципе и в любую другую кодировку перевести).
|
|
Зарегистрирован |
|
|
|
Boris, Kiev.
Адепт ФБП с 1996г.
Просмотреть Профиль | E-мэйл
Сообщений: 875
|
on 05.03.12 в 12:43:49, alushta wrote: Не очень понятно, какой смысл в том, что сначала средствами ФБП делается болванка, а затем её же обрабатывать с целью получения тем же средством связанного результирующего текстового xml-формата. Чего Вам не хватает для прямой генерации резудьтирующего XML-файла?
|
|
Зарегистрирован |
|
|
|
alushta
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 192
|
Я думал что здесь мы будем предлагать, а тут пошло обсуждение что да как, вместо, того чтобы предложить конкретно лучше моего Поэтому я удалил свое предложение...
|
|
Зарегистрирован |
|
|
|
Denis, Dnepropetrovsk
Я люблю этот Форум!
Просмотреть Профиль | E-мэйл
Сообщений: 129
|
Рабочая заготовка для экспорта НН в 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></TRANS PORT>'] 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>J1 201003</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-файла очень просто. Файл должен открываться браузером без ошибок.
|
« Изменён в : 11.06.12 в 09:42:47 пользователем: Denis, Dnepropetrovsk » |
Зарегистрирован |
|
|
|
Denis, Dnepropetrovsk
Я люблю этот Форум!
Просмотреть Профиль | E-мэйл
Сообщений: 129
|
продолжение: ***Строка 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 **********************************
|
« Изменён в : 11.06.12 в 09:45:04 пользователем: Denis, Dnepropetrovsk » |
Зарегистрирован |
|
|
|
alushta
Я люблю этот Форум!
Просмотреть Профиль |
Сообщений: 192
|
Большое спасибо Денису за этот пример. Я думаю что вопрос создания файлов XML средствами ФБП рассмотрен полностью
|
|
Зарегистрирован |
|
|
|
|
|