Ang proseso ng pag-upload ng data sa xml. Pagbuo ng XML file. Madaling pag-upload para sa application ng third party. Ang proseso ng pag-upload ng data sa xml Paano mag-upload ng xml file sa 1c

Kapag ang isang negosyo ay patuloy na gumagamit ng ilang uri ng software package sa trabaho nito, kung gayon, natural, ang tanong ng patuloy na suporta at pangangasiwa nito ay palaging bumangon. Walang paraan upang maiwasan ang mga gawain ng pagpapalitan, pag-iimbak at pagpapanumbalik ng data. Tingnan natin kung paano mag-load o mag-unload ng data mula sa 1C sa XML na format, dahil ito ay isang mahalagang pamamaraan para sa paksang ito.

Ang mga ito ay binuo sa isang paraan na kapag nagda-download posible na makakuha ng isang XML file kung saan ang data na kinakailangan ng kliyente ay itatala. Kasabay nito, kasabay ng pag-record, ang kawastuhan ng mga nailipat na tala ay sinusubaybayan para sa mga kritikal na pagkakamali.

Kaya, ang pag-upload sa isang XML file (pag-import ng mga tala) mula sa isang base ng impormasyon at kasunod na paglo-load mula sa XML patungo sa isa pa ay kumakatawan sa isang pagpapalitan ng data sa XML na format sa pagitan ng mga database.

Ang pamamaraang ito, lalo na sa malalaking halaga ng impormasyon, ay nakakatipid ng maraming manu-manong gawain.

Ang pag-import (ang resultang file) ay maaari ding gamitin bilang isang archive para sa pagbawi sa mga hindi inaasahang sitwasyon (kung nawala o nasira).

Ang isang pulutong ng naturang mga tool sa pagpoproseso ay binuo, at ang mga ito ay magagamit sa Internet. Ang responsibilidad para sa kanilang paggamit ay nasa balikat (at ulo) ng kliyente.

Ngunit para sa mga opisyal na gumagamit ng Odeneski, ang mga developer ay lumikha ng isang unibersal na processor na "Mag-upload/Mag-load ng XML Data".

MAHALAGA. Ang pag-export sa XML sa 1C at ang karagdagang paglo-load sa XML mula sa 1C ay katanggap-tanggap para sa magkatulad na mga pagsasaayos - kung hindi, ito ay masisira.

Universal handler

Mga pangunahing punto para sa paggamit ng pangkalahatang developer:

  • I-save ang pag-import ng mga file hanggang sa makumpleto ang paglilipat ng mga talaan at masuri ang kawastuhan ng mga ito;
  • Kapag ginamit bilang mga backup na kopya, ang isang talaan ng mga ito ay dapat na panatilihin upang ayusin ang paghahanap.

Ang operasyon nito ay may dalawang mode: paglikha ng file kapag nagse-save ng impormasyon at binabasa/sinulat ito kapag nag-i-import.

Bilang karagdagan, maaaring magtakda ng mga karagdagang paghihigpit ang user kapag nag-e-export at naglo-load ng data.

Pagkuha ng mga talaan

Maaari kang mag-upload ng data pareho sa buong database at piling - bagay ayon sa bagay.

Pagkatapos i-download, i-install at buksan ang handler, ang mga sumusunod ay nangyayari:


Ang kanilang pagpili ay ginawa sa dialog box na bubukas pagkatapos ng paglunsad. Upang gawin ito, lagyan ng tsek ang mga kahon sa listahan na nagpapakita ng mga bagay na metadata na kukunin;

  1. Ang mga kinakailangang filter ay na-configure (halimbawa, ayon sa petsa);
  2. Pinili ang puwang ng disk;
  3. Ang operasyon mismo ay nagsisimula.

Pag-upload ng mga tala sa tatanggap

Ang unang hakbang upang tanggapin ang data sa pagtanggap ng database ay upang buksan ang processor program sa loob nito.

Matapos matukoy ang landas patungo sa source file at ang mga flag ng mga setting ng pamamaraan ay na-activate (kung kinakailangan), maaari mong simulan ang proseso gamit ang pindutang "Mag-load ng data".

Ngayon alam mo na kung paano mag-load o mag-unload ng data mula sa 1C sa XML na format upang mag-save ng data at makipagpalitan sa pagitan ng mga database.

Ang paglipat ng data ay isang napakahalagang proseso sa anumang sistema ng accounting, ang 1C 8.3 at 8.2 na platform ay walang pagbubukod. Sa ibaba ay titingnan natin ang mga tagubilin sa pinakamadaling paraan upang maglipat ng data mula sa isang system patungo sa isa pa na may katulad na configuration (para sa iba't ibang configuration, maaari kang gumamit ng tool para sa mga programmer - o).

Bago ang anumang aksyon ay kinakailangan, ang mga pagbabago ay hindi maibabalik!

Ang pinakamadali at pinaka-maginhawang paraan upang maglipat ng data mula sa 1C 8.3 hanggang 1C 8.3 Accounting 3.0 ay ang paggamit ng pagpoproseso ng Pag-upload at pag-load ng data sa XML na format (pag-download - para sa 8.2 o para sa 1C 8.3 o sa ITS). Ang paggamot ay pangkalahatan at angkop para sa anumang pagsasaayos.

Hindi na tayo magdedetalye; tingnan natin ang sunud-sunod na mga tagubilin para sa paglilipat ng data gamit ang pagpoprosesong ito gamit ang halimbawa ng pinakasimpleng paglilipat ng mga kalakal.

Pag-upload ng data sa XML

Una sa lahat, buksan natin ang pagproseso sa source database (mula sa kung saan tayo mag-i-unload ng mga kalakal) at tingnan ang interface:

Kumuha ng 267 video lesson sa 1C nang libre:

Dapat mong agad na punan ang field na "Pangalan ng file" - isang bagong file ng data ang gagawin sa landas na ito, na ia-upload namin sa database ng tatanggap. Sa ibaba lamang, sa tabular na seksyong "Data para sa pag-upload", kailangan mong piliin ang data na gusto naming i-upload mula sa database.

Pagkatapos pumili ng isang bagay mula sa kaliwang bahagi ng talahanayan, maaari mong ilapat ang pagpili sa kanang bahagi ng talahanayan:

Sa aming halimbawa, gusto kong i-unload ang lahat ng produkto na may pangalang "Rake".

Kapag nakumpleto na ang lahat ng mga setting, maaaring ma-upload ang data. Upang gawin ito, mag-click sa pindutang "Mag-upload ng data":

Naglo-load ng data mula sa xml sa 1s 8.3

Ang data ay na-unload mula sa source database ngayon ay kailangan itong ilipat sa destination database.

Upang gawin ito, kailangan mong simulan ang pagproseso na nasa database kung saan kailangan mong i-load ang data, at pumunta sa tab na "I-download", piliin ang na-download na file sa disk at mag-click sa pindutang "Mag-load ng data":

Ang halimbawang ito ay angkop lamang para sa paglilipat ng data sa pagitan ng magkatulad na mga configuration sa 1C platform. Upang maunawaan ang mekanismo ng palitan para sa mga programmer, nagsulat kami ng isang artikulo -.

Mga mode ng pagpapatakbo

Ang pagpoproseso ng UploadLoadDataXML82 ay nagpapatupad ng 2 operating mode: Pag-upload (paggawa ng upload file ng data na tinukoy ng user) at Load (pagbabasa ng upload file na ginawa ng mode ng parehong pangalan at pagsusulat ng data na nilalaman nito). Itinakda ang mode sa pamamagitan ng pagpili nito sa field ng Mode.

Bago simulan ang isang partikular na mode (pag-click sa Run button), kailangan mong tukuyin ang pangalan ng upload file, alinman sa pamamagitan ng pagpasok nito nang manu-mano sa field na "File name", o gamit ang button para piliin ang field na ito at ang standard na dialog ng pagpili ng file. .

Sa mode ng pag-download, posibleng i-edit ang paggamit ng mga kabuuan kapag nagsusulat ng mga rehistro, na maaaring makaapekto sa bilis ng pag-download. Available ang mga button na "I-disable ang mga kabuuan" at "I-enable ang mga kabuuan" kapag ang flag na "Paganahin ang kakayahang i-edit ang paggamit ng mga kabuuan habang naglo-load ng data" ay nakatakda at ginagamit upang manual na kontrolin ang mode ng paggamit ng mga kabuuan kapag naglo-load ng data. ** Mga kundisyon ng applicability ng pagproseso**

Magagamit lang ang pagpoproseso sa mga kaso kung saan ang base ng impormasyon kung saan na-upload ang data at ang kung saan na-load ang data ay homogenous (magkapareho ang mga configuration, maaaring mag-iba ang data), o halos magkapareho ang lahat ng na-upload na object sa komposisyon at mga uri ng mga detalye at mga bahagi ng tabular, mga katangian ng "nangungunang" metadata object, atbp. Dapat tandaan na, dahil sa mga limitasyong ito, ang pagproseso ay pangunahing inilaan para sa pagpapalitan sa pagitan ng homogenous na IS.

Ang format ng pag-upload ng file ay naiiba sa format ng file na ginawa kapag nag-a-upload ayon sa isang exchange plan sa bahagi ng header. Upang mag-upload ng data (mga elemento ng direktoryo, mga hanay ng mga talaan ng rehistro, atbp.), ang pagproseso ay gumagamit ng parehong mekanismo ng serialization ng XML bilang pag-upload ayon sa mga plano ng palitan sa bahaging ito, ang mga format ng file ay magkapareho.

Pagtukoy sa komposisyon ng pagbabawas

Ang pagpoproseso ay nagbibigay-daan para sa parehong buo at bahagyang pag-upload ng data ng infobase sa isang file. Ang komposisyon ng na-upload na data ay na-configure sa dialog sa pamamagitan ng paglalagay ng check sa mga kahon sa column ng tree na nagpapakita ng mga metadata object kung saan maaaring ma-upload ang data. Ang isang karagdagang hanay ng mga checkbox, "Kung kinakailangan," ay nagtatakda ng pangangailangang mag-alis ng mga bagay ng ganitong uri "sa pamamagitan ng sanggunian." Iyon ay, kung ang checkbox ay naka-check lamang sa column na "Kung kinakailangan", ang data para sa naturang bagay ay hindi ganap na mada-download, ngunit sa lawak lamang na kinakailangan upang mapanatili ang integridad ng referential sa infobase na maglo-load ng pag-download file.

Kapag nagbubukas ng isang form, ang pagpoproseso ay nagtatakda ng tanda ng pag-alis sa pamamagitan ng pagtukoy sa lahat ng mga bagay, na ginagarantiyahan ang referential integridad ng hindi na-load na fragment ng base ng impormasyon.

Kapag nag-click ka sa button na "Tuklasin ang mga bagay na na-download sa pamamagitan ng link," sinusuri ng pagproseso kung aling mga link ng data ang maaaring nasa mga bagay na mayroong buong set ng flag ng pag-download, at awtomatikong pinupunan ang column ng mga flag na nagpapahiwatig ng pangangailangang mag-download sa pamamagitan ng link. Kung ang object ay mayroon nang buong nakatakdang flag ng unload, hindi nakatakda ang unload sa pamamagitan ng reference na flag.

Mga posibleng aplikasyon

Ang paggamit ng pagproseso na ito ay posible, halimbawa, upang lumikha ng isang buo o bahagyang backup na kopya ng data, makipagpalitan ng data sa pagitan ng mga base ng impormasyon, at din bilang isang pantulong na tool kapag nagpapanumbalik ng mga problemang base ng impormasyon.

2018-11-15T19:32:35+00:00

Ang pangkalahatang pagproseso ng "Pag-upload at pag-load ng XML data" ay nagsasagawa ng buo o bahagyang pag-unload ng data ng infobase sa isang file sa XML na format. Kasunod nito, maaaring i-load ang file na ito sa infobase gamit ang parehong pagproseso. Ang format ng pag-upload ng file ay naiiba sa format ng file na ginawa kapag nag-a-upload ayon sa isang exchange plan sa bahagi ng header.

Magagamit lang ang pagpoproseso sa mga kaso kung saan ang base ng impormasyon kung saan na-upload ang data at ang kung saan na-load ang data ay homogenous (magkapareho ang mga configuration, maaaring magkaiba ang data), o halos magkapareho ang lahat ng na-upload na object sa komposisyon at mga uri ng mga detalye at bahagi ng talahanayan, mga katangian ng "nangungunang" metadata object, at iba pa.

Ang paggamit ng pagpoprosesong ito ay posible, halimbawa, upang lumikha ng buo o bahagyang backup na kopya ng data, makipagpalitan ng data sa pagitan ng mga infobase, at bilang isang pantulong na tool kapag nagre-restore ng mga maling infobase.

Sinusuportahan ng pagproseso ang pag-upload ng data na may kakayahang tukuyin ang pagpili ayon sa panahon. Ipinapatupad din ang pagsuri sa mga bagay para sa pagkakaroon ng mga di-wastong character kapag ipinagpalit sa pamamagitan ng XML.

Taos-puso, (guro at developer).

- mga kilalang web page, na isa ring analogue ng XML na may mahinang pagsusuri.

XML Reader/Writer Objects, FastInfoset, HTML ay nagpapalawak ng mga kakayahan sa pagbabasa ng text file na may built-in na pagproseso ng mga markup tag.

Ginagamit din ang mga ito para sa mga bagay ng DOMBuilder/DOMRecord (tingnan sa ibaba) bilang mga pinagmumulan ng data.

Ang mga XML 1C file ay naglalaman ng impormasyon ng teksto, iyon ay, ang mga ito ay mga text file. Ang 1C XML Reader at 1C Write XML object ay isang "add-on" na nagpapadali sa paggamit ng mga XML tag sa isang 1C file.

Ang mga bagay na ReadingFastInfoset 1C at WritingFastInfoset 1C, ReadingHTML 1C at WritingHTML 1C ay ganap na katulad ng ReadingXML 1C at WritingXML 1C at nagsisilbing gumagana sa parehong paraan sa iba pang mga format.

XML 1C file na ginamit sa mga halimbawa

Direktoryo>

Direktoryo>

Text valueProps>
Direktoryo>
Configuration>

Halimbawa 1. Pagbabasa ng 1C XML file sa isang value tree gamit ang Reading XML 1C

//buksan ang XML 1C file para sa pagbabasa gamit ang ReadingXML 1C
File = Bagong ReadXML();
File.OpenFile("D:\ConfigurationStructure.xml");

//ihanda ang value tree
//bawat XML branch ay maaaring magkaroon ng pangalan, mga katangian at halaga
dzXML = NewValueTree();
dzXML.Columns.Add("Pangalan");
dzXML.Columns.Add("Halaga");
dzXML.Columns.Add("Mga Katangian");

//dahil ang isang XML string ay maaaring magkaroon ng ilang mga katangian, isusulat namin ang mga ito sa talahanayan ng mga halaga
//bawat attribute ay may pangalan at value
tAttributes = Bagong ValueTable();
tAttributes.Columns.Add("Pangalan");
tAttributes.Columns.Add("Halaga");

//tutulungan tayo ng nesting level na maunawaan kapag kailangan nating magdagdag ng nested branch, at kapag kailangan nating bumalik sa isang level
Nesting Level = 0;
//kasalukuyang linya ay isang linya ng puno, ay magbabago habang tumataas ang nesting
CurrentRow = Hindi Natukoy;
//Ang pagbabasa ng XML 1C file ay hindi tapos na linya, ngunit ayon sa istraktura kapag natapos ang file, ang pagbabasa ay magbabalik ng FALSE
Habang ang File.Read() Loop

//kami ay interesado sa tatlong uri ng mga node - ang simula ng elemento, ang teksto (ang halaga ng elemento) at ang dulo ng elemento (upang bumalik sa pinakamataas na antas)
Kung File.NodeType = XMLNodeType.ElementStart Then

Nesting Level = Nesting Level + 1;

//kung ito ang unang linya, pagkatapos ay idagdag ito sa pinakatuktok ng puno at i-save lamang ang pangalan
Kung CurrentRow = Undefined Then
CurrentRow = dXML.Rows.Add();
CurrentLine.Name = File.Name;
Magpatuloy;
Kung hindi
//mga nested na linya
CurrentRow = CurrentRow.Rows.Add();
CurrentLine.Name = File.Name; //i-save ang pangalan

//may mga katangian ba ang elementong XML na ito?
Kung File.NumberAttributes() > 0 Pagkatapos
//kung oo, kopyahin ang inihandang bakanteng talahanayan upang i-save ang mga katangian
tAttributesNode = tAttributes.Copy();
//paikot sa bilang ng mga katangian ng elementong ito
Para sa Account = 0 ayon sa File.Number of Attributes()-1 Cycle
//para sa bawat katangian, tandaan ang pangalan at halaga
Row = tNodeAttributes.Add();
Line.Name = File.AttributeName(Sch);
Row.Value = File.AttributeValue(Ac);
EndCycle;
//i-save ang talahanayan ng katangian ng elemento sa kasalukuyang linya
CurrentRow.Attributes = tNodeAttributes;
tapusin kung;
tapusin kung;

ElseIf File.NodeType = XMLNodeType.EndElement Pagkatapos
//sa simula ng elemento pinapataas natin ang antas ng nesting, sa dulo ng elemento binabawasan natin ito
Nesting Level = Nesting Level - 1;
//ibalik ang kasalukuyang linya ng isang antas
CurrentRow = CurrentRow.Parent;

ElseIf File.NodeType = XMLNodeType.Text Pagkatapos
//kung ang elemento ay may halaga, i-save lamang ito
CurrentRow.Value = File.Value;

tapusin kung;

EndCycle;

File.Close();

Halimbawa 2. Pagre-record ng 1C XML file gamit ang 1C Record XML object

//lumikha ng file Record XML 1C
File = NewXMLRecord();
File.OpenFile("D:\ConfigurationStructure.xml", "UTF-8");
File.WriteElementStart("Configuration");

//use metadata to traverse all directories (para sa higit pang mga detalye, tingnan ang "Paggawa gamit ang metadata")
Para sa bawat Directory mula sa Metadata.Directories Cycle

//WriteStartofElement - nagbubukas ng bagong [subordinate] na sangay
File.WriteElementStart("Directory");
//WriteAttribute - nagsusulat ng attribute sa isang naunang binuksang branch
File.WriteAttribute("Pangalan", Directory.Name);
File.WriteAttribute("Synonym", Directory.Synonym);

// gamit ang metadata dinadaan namin ang lahat ng mga detalye ng direktoryo
Para sa bawat Props mula sa Directory.Props Cycle




EndCycle;

//gumamit ng metadata upang lampasan ang lahat ng tabular na bahagi ng direktoryo
Para sa bawat PM mula sa Mga Tabular na Bahagi ng Cycle
File.WriteElementStart("TabularPart");
File.WriteAttribute("Pangalan", PM.Name);
File.WriteAttribute("Synonym", PM.Synonym);

Para sa bawat Props mula sa PM.Props Cycle
File.WriteElementStart("Props");
File.WriteAttribute("Pangalan", Attributes.Name);
File.WriteAttribute("Synonym", Attributes.Synonym);
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
EndCycle;

//WriteEndElement - "sinasara" ang sangay na dati nang binuksan gamit ang WriteBeginElement
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
File.Close();