УФЭБС ED101 (платежное поручение) с помощью Microsoft.XMLDOM
Сохранить в файлеОбсудить в форуме
Описание
Пример формирования 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");