RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 1602285
Accepted
Pu5her
Pu5her
Asked:2024-12-12 22:12:13 +0000 UTC2024-12-12 22:12:13 +0000 UTC 2024-12-12 22:12:13 +0000 UTC

从 EnterpriseData 格式的 XML 导入

  • 772

如何从 XML 文件导入数据?我找不到任何使用 IMPORT XML 的示例。我不明白如何正确使用它。如果不同嵌套级别存在迭代,如何迭代对象?导入应该在什么结构中进行?

具体来说,我需要从 1c 以 EnterpriseData 格式导入发票

它看起来像这样:

标题

<?xml version="1.0"?>
<Message xmlns:msg="http://www.1c.ru/SSL/Exchange/Message" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <msg:Header>
        <msg:Format>http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.3</msg:Format>
        <msg:CreationDate>2024-12-12T09:38:51</msg:CreationDate>
        <msg:AvailableVersion>1.3</msg:AvailableVersion>
    </msg:Header>
    <Body xmlns="http://v8.1c.ru/edi/edi_stnd/EnterpriseData/1.3">

然后是账单本身

<Документ.ЗаказКлиента>
    <КлючевыеСвойства>
        <Ссылка>98c212ed-c377-11e5-b9f7-88532ee9a795</Ссылка>
        <Дата>2016-01-11T12:00:00</Дата>
        <Номер>0000-000001</Номер>
        <Организация>
            <Ссылка>98c212d9-c377-11e5-b9f7-88532ee9a795</Ссылка>
            <Наименование>***</Наименование>
            <НаименованиеСокращенное>***</НаименованиеСокращенное>
            <НаименованиеПолное>***</НаименованиеПолное>
            <ИНН>***</ИНН>
            <ЮридическоеФизическоеЛицо>ФизическоеЛицо</ЮридическоеФизическоеЛицо>
        </Организация>
    </КлючевыеСвойства>
    <Ответственный>
        <Ссылка>aa00559e-ad84-4494-88fd-f0826edc46f0</Ссылка>
        <Наименование>&lt;Не указан&gt;</Наименование>
    </Ответственный>
    <Валюта>
        <Ссылка>d85dd251-c377-11e5-b9f7-88532ee9a795</Ссылка>
        <Код>643</Код>
        <Наименование>руб.</Наименование>
    </Валюта>
    <Сумма>***</Сумма>
    <Контрагент>
        <Ссылка>98c212e9-c377-11e5-b9f7-88532ee9a795</Ссылка>
        <Наименование>***</Наименование>
        <НаименованиеПолное>***</НаименованиеПолное>
        <ИНН>***</ИНН>
        <КПП>***</КПП>
        <ЮридическоеФизическоеЛицо>ЮридическоеЛицо</ЮридическоеФизическоеЛицо>
        <СтранаРегистрации>
            <Ссылка>a85e20f9-c377-11e5-b9f7-88532ee9a795</Ссылка>
            <Код>643</Код>
            <Наименование>РОССИЯ</Наименование>
        </СтранаРегистрации>
    </Контрагент>
    <ДанныеВзаиморасчетов>
        <КурсВзаиморасчетов>1</КурсВзаиморасчетов>
        <КратностьВзаиморасчетов>1</КратностьВзаиморасчетов>
    </ДанныеВзаиморасчетов>
    <СуммаВключаетНДС>true</СуммаВключаетНДС>
    <БанковскийСчетОрганизации>
        <Ссылка>98c212dd-c377-11e5-b9f7-88532ee9a795</Ссылка>
        <НомерСчета>***</НомерСчета>
        <Банк>
            <Ссылка>98c212dc-c377-11e5-b9f7-88532ee9a795</Ссылка>
            <БИК>***</БИК>
            <КоррСчет>***</КоррСчет>
            <Наименование>***</Наименование>
        </Банк>
        <Владелец>
            <ОрганизацииСсылка>
                <Ссылка>98c212d9-c377-11e5-b9f7-88532ee9a795</Ссылка>
                <Наименование>***</Наименование>
                <НаименованиеСокращенное>***</НаименованиеСокращенное>
                <НаименованиеПолное>***</НаименованиеПолное>
                <ИНН>***</ИНН>
                <ЮридическоеФизическоеЛицо>ФизическоеЛицо</ЮридическоеФизическоеЛицо>
            </ОрганизацииСсылка>
        </Владелец>
    </БанковскийСчетОрганизации>
    <Услуги>
        <Строка>
            <Номенклатура>
                <Ссылка>98c212ec-c377-11e5-b9f7-88532ee9a795</Ссылка>
                <НаименованиеПолное>***</НаименованиеПолное>
                <КодВПрограмме>00-00000001</КодВПрограмме>
                <Наименование>***</Наименование>
            </Номенклатура>
            <Количество>3</Количество>
            <Сумма>***</Сумма>
            <Цена>***</Цена>
            <СтавкаНДС>БезНДС</СтавкаНДС>
            <Содержание>***</Содержание>
        </Строка>
    </Услуги>
</Документ.ЗаказКлиента>
lsfusion
  • 1 1 个回答
  • 20 Views

1 个回答

  • Voted
  1. Best Answer
    Aliaksei Kirkouski
    2024-12-13T16:52:09Z2024-12-13T16:52:09Z

    IDEA 插件有一个特殊的按钮,用于生成从输入 XML 文件导入的表单。它位于菜单项LSF/Generate form/From xml中。

    接下来,您需要获取生成的代码并简单地运行IMPORT ( IMPORT <form> XML FROM file) 语句。导入的数据将位于相应的本地属性中。可以根据需要更改这些属性的名称,而无需更改 EXTID。

    唯一的问题是,建议在 XML 中重复标签(可能有多个)。在本例中,这是组织的银行帐户(如果可能有多个)。这样,平台将能够确定哪里应该有表(OBJECTS INTEGER)以及哪里应该只有组(GROUP)。

    您还可以使用生成的表单预览导入的数据。我使用提供的示例为解释器生成了代码。导入成功并在屏幕上显示结果。 :

    GROUP vkliuchievyieSvoistva EXTID 'КлючевыеСвойства';
    GROUP vorghanizatsiia EXTID 'Организация' : vkliuchievyieSvoistva;
    GROUP votvietstviennyi EXTID 'Ответственный';
    GROUP vvaliuta EXTID 'Валюта';
    GROUP vkontraghient EXTID 'Контрагент';
    GROUP vstranaRieghistratsii EXTID 'СтранаРегистрации' : vkontraghient;
    GROUP vdannyieVzaimoraschietov EXTID 'ДанныеВзаиморасчетов';
    GROUP vbank EXTID 'Банк';
    GROUP vbankovskiiSchietOrghanizatsii EXTID 'БанковскийСчетОрганизации';
    GROUP vvladieliets EXTID 'Владелец';
    GROUP vorghanizatsiiSsylka EXTID 'ОрганизацииСсылка' : vvladieliets;
    GROUP vuslughi EXTID 'Услуги';
    GROUP vstroka EXTID 'Строка' : vuslughi;
    GROUP vnomienklatura EXTID 'Номенклатура' : vstroka;
    
    vssylka = DATA LOCAL STRING();
    vdata = DATA LOCAL DATETIME();
    vnomier = DATA LOCAL STRING();
    vssylka1 = DATA LOCAL STRING();
    vnaimienovaniie = DATA LOCAL STRING();
    vnaimienovaniieSokrashchiennoie = DATA LOCAL STRING();
    vnaimienovaniiePolnoie = DATA LOCAL STRING();
    vINN = DATA LOCAL STRING();
    viuridichieskoieFizichieskoieLitso = DATA LOCAL STRING();
    vssylka2 = DATA LOCAL STRING();
    vnaimienovaniie1 = DATA LOCAL STRING();
    vssylka3 = DATA LOCAL STRING();
    vkod = DATA LOCAL STRING();
    vnaimienovaniie2 = DATA LOCAL STRING();
    vsumma = DATA LOCAL STRING();
    vssylka4 = DATA LOCAL STRING();
    vnaimienovaniie3 = DATA LOCAL STRING();
    vnaimienovaniiePolnoie1 = DATA LOCAL STRING();
    vINN1 = DATA LOCAL STRING();
    vKPP = DATA LOCAL STRING();
    viuridichieskoieFizichieskoieLitso1 = DATA LOCAL STRING();
    vssylka5 = DATA LOCAL STRING();
    vkod1 = DATA LOCAL STRING();
    vnaimienovaniie4 = DATA LOCAL STRING();
    vkursVzaimoraschietov = DATA LOCAL STRING();
    vkratnost_Vzaimoraschietov = DATA LOCAL STRING();
    vsummaVkliuchaietNDS = DATA LOCAL STRING();
    vssylka6 = DATA LOCAL STRING(INTEGER);
    vnomierSchieta = DATA LOCAL STRING(INTEGER);
    vssylka7 = DATA LOCAL STRING(INTEGER);
    vBIK = DATA LOCAL STRING(INTEGER);
    vkorrSchiet = DATA LOCAL STRING(INTEGER);
    vnaimienovaniie5 = DATA LOCAL STRING(INTEGER);
    vssylka8 = DATA LOCAL STRING(INTEGER);
    vnaimienovaniie6 = DATA LOCAL STRING(INTEGER);
    vnaimienovaniieSokrashchiennoie1 = DATA LOCAL STRING(INTEGER);
    vnaimienovaniiePolnoie2 = DATA LOCAL STRING(INTEGER);
    vINN2 = DATA LOCAL STRING(INTEGER);
    viuridichieskoieFizichieskoieLitso2 = DATA LOCAL STRING(INTEGER);
    vssylka9 = DATA LOCAL STRING();
    vnaimienovaniiePolnoie3 = DATA LOCAL STRING();
    vkodVProghrammie = DATA LOCAL STRING();
    vnaimienovaniie7 = DATA LOCAL STRING();
    vkolichiestvo = DATA LOCAL STRING();
    vsumma1 = DATA LOCAL STRING();
    vtsiena = DATA LOCAL STRING();
    vstavkaNDS = DATA LOCAL STRING();
    vsodierzhaniie = DATA LOCAL STRING();
    
    FORM vdokumient_ZakazKliienta FORMEXTID 'Документ.ЗаказКлиента'
        PROPERTIES() vsumma EXTID 'Сумма', vsummaVkliuchaietNDS EXTID 'СуммаВключаетНДС'
        PROPERTIES() IN vkliuchievyieSvoistva vssylka EXTID 'Ссылка', vdata EXTID 'Дата', vnomier EXTID 'Номер'
        PROPERTIES() IN vorghanizatsiia vssylka1 EXTID 'Ссылка', vnaimienovaniie EXTID 'Наименование', vnaimienovaniieSokrashchiennoie EXTID 'НаименованиеСокращенное', vnaimienovaniiePolnoie EXTID 'НаименованиеПолное', vINN EXTID 'ИНН', viuridichieskoieFizichieskoieLitso EXTID 'ЮридическоеФизическоеЛицо'
        PROPERTIES() IN votvietstviennyi vssylka2 EXTID 'Ссылка', vnaimienovaniie1 EXTID 'Наименование'
        PROPERTIES() IN vvaliuta vssylka3 EXTID 'Ссылка', vkod EXTID 'Код', vnaimienovaniie2 EXTID 'Наименование'
        PROPERTIES() IN vkontraghient vssylka4 EXTID 'Ссылка', vnaimienovaniie3 EXTID 'Наименование', vnaimienovaniiePolnoie1 EXTID 'НаименованиеПолное', vINN1 EXTID 'ИНН', vKPP EXTID 'КПП', viuridichieskoieFizichieskoieLitso1 EXTID 'ЮридическоеФизическоеЛицо'
        PROPERTIES() IN vstranaRieghistratsii vssylka5 EXTID 'Ссылка', vkod1 EXTID 'Код', vnaimienovaniie4 EXTID 'Наименование'
        PROPERTIES() IN vdannyieVzaimoraschietov vkursVzaimoraschietov EXTID 'КурсВзаиморасчетов', vkratnost_Vzaimoraschietov EXTID 'КратностьВзаиморасчетов'
        
        OBJECTS vbankovskiiSchietOrghanizatsii = INTEGER EXTID 'БанковскийСчетОрганизации'
        PROPERTIES(vbankovskiiSchietOrghanizatsii) vssylka6 EXTID 'Ссылка', vnomierSchieta EXTID 'НомерСчета'
        PROPERTIES(vbankovskiiSchietOrghanizatsii) IN vbank vssylka7 EXTID 'Ссылка', vBIK EXTID 'БИК', vkorrSchiet EXTID 'КоррСчет', vnaimienovaniie5 EXTID 'Наименование'
        FILTERS imported(vbankovskiiSchietOrghanizatsii)
        
    //    OBJECTS vvladieliets = INTEGER EXTID 'Владелец'
        PROPERTIES(vbankovskiiSchietOrghanizatsii) IN vorghanizatsiiSsylka vssylka8 EXTID 'Ссылка', vnaimienovaniie6 EXTID 'Наименование', vnaimienovaniieSokrashchiennoie1 EXTID 'НаименованиеСокращенное', vnaimienovaniiePolnoie2 EXTID 'НаименованиеПолное', vINN2 EXTID 'ИНН', viuridichieskoieFizichieskoieLitso2 EXTID 'ЮридическоеФизическоеЛицо'
        PROPERTIES() IN vstroka vkolichiestvo EXTID 'Количество', vsumma1 EXTID 'Сумма', vtsiena EXTID 'Цена', vstavkaNDS EXTID 'СтавкаНДС', vsodierzhaniie EXTID 'Содержание'
        PROPERTIES() IN vnomienklatura vssylka9 EXTID 'Ссылка', vnaimienovaniiePolnoie3 EXTID 'НаименованиеПолное', vkodVProghrammie EXTID 'КодВПрограмме', vnaimienovaniie7 EXTID 'Наименование'
    ;
    
    run() {
        INPUT f = FILE DO {
            IMPORT vdokumient_ZakazKliienta XML FROM f;
            SHOW vdokumient_ZakazKliienta DOCKED;
        }
    }
    
    • 1

相关问题

  • 从 intellij idea 下启动 lsfusion 服务器时的警告

  • 将元素添加到现有 NAVIGATOR 元素

  • 说说 EVAL ACTION 中 PARAM 参数的使用

  • 如何对计算属性进行约束?

  • 如何使用多张工作表上传到 XLSX?

  • 如何创建具有多个参数的 ABSTRACT CASE 抽象操作的实现?

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5