УФЭБС ED101 (платежное поручение) с помощью Microsoft.XMLDOM

Автор:Lexy
Дата:16.12.2004
Просмотров:13638
Скачиваний:2762
Оценка:, Оценок - 3
Сохранить в файле

Обсудить в форуме

Описание

Пример формирования XML-файла платежного поручения - ED101 - по форматам УФЭБС с помощью Microsoft.XMLDOM.

Текст примера

 import rslx;

dom = ActiveX("Microsoft.XMLDOM");

macro createAttribute(name, value)
    attr = dom.createAttribute(name);
    attr.value = value;
    return attr;
end;

macro createElement(name)
    return dom.createNode(1, name, "urn:cbr-ru:ed:v1.0");
end;
    
macro createRootElement(name)
    node = createElement(name);
    node.attributes.setNamedItem(createAttribute("xmlns:xsi", "http//www.w3.org/2001/XMLSchema-instance"));
    node.attributes.setNamedItem(createAttribute("xsi:schemaLocation", "urn:cbr-ru:ed:v1.0 UniDoc1_1.xsd"));
    return node;
end;

macro addAttr(elem, name, value);
    elem.attributes.setNamedItem(createAttribute(name, value));
end;

pi = dom.createProcessingInstruction("xml", "version='1.0' encoding='windows-1251'");
dom.appendChild(pi);
ed101 = createRootElement("ED101");
addAttr(ed101, "EDNo", "7");
addAttr(ed101, "EDDate", "2003-04-14");
addAttr(ed101, "EDAuthor", "452554500");
addAttr(ed101, "PaytKind", "1");
addAttr(ed101, "Sum", 2400000);
addAttr(ed101, "TransKind", "01");
addAttr(ed101, "ChargeOffDate", "2003-04-14");
addAttr(ed101, "Priority", 6);
addAttr(ed101, "ReceiptDate", "2003-04-14");
dom.appendChild(ed101);

AccDoc = createElement("AccDoc");
addAttr(AccDoc,"AccDocNo", "004");
addAttr(AccDoc,"AccDocDate", "2003-04-14");
ed101.appendChild(dom.createTextNode("\n    "));
ed101.appendChild(AccDoc);

Payer = createElement("Payer");
addAttr(Payer, "INN", "7726274727");
addAttr(Payer, "PersonalAcc", "40702810200203001037");
ed101.appendChild(dom.createTextNode("\n    "));
ed101.appendChild(Payer);

Payer.appendChild(dom.createTextNode("\n        "));
Name = createElement("Name");
Name.text = "ООО ТЕХНО-ПЛЮС";
Payer.appendChild(Name);

Payer.appendChild(dom.createTextNode("\n        "));
Bank = createElement("Bank");
addAttr(Bank, "BIC", "044525545");
addAttr(Bank, "CorrespAcc", "30101810300000000545");
Payer.appendChild(Bank);
Payer.appendChild(dom.createTextNode("\n    "));


Payee = createElement("Payee");
addAttr(Payee, "INN", "7726062105");
addAttr(Payee, "PersonalAcc", "40702810010130010079");
Name = createElement("Name");
Name.text = "ООО ТЕХНО-ПЛЮС";
Payee.appendChild(dom.createTextNode("\n        "));
Payee.appendChild(Name);
Payee.appendChild(dom.createTextNode("\n        "));
Bank = createElement("Bank");
addAttr(Bank, "BIC", "044525219");
addAttr(Bank, "CorrespAcc", "30101810500000000219");
Payee.appendChild(Bank);
ed101.appendChild(dom.createTextNode("\n    "));
ed101.appendChild(Payee);
purp = createElement("Purpose");
purp.text = "ОПЛАТА ПО ДОГОВОРУ 95456 ОТ 15.01.2003 В ТОМ ЧИСЛЕ НДС 4000 РУБ";
ed101.appendChild(dom.createTextNode("\n    "));
ed101.appendChild(purp);
ed101.appendChild(dom.createTextNode("\n"));
dom.save("C:\\ed101.xml");