Ako otvoriť súbor 1c xml. Generovanie súboru XML. Jednoduché nahrávanie pre aplikáciu tretej strany. Generovanie dokladu „Faktúra“.

V organizácii je možné viesť účtovníctvo nielen v riešeniach na platforme 1C:Enterprise, ale aj v iných softvérových systémoch (Galaktika, Parus, SAP atď.). To vyvoláva problém integrácie dvoch aplikácií.

Napríklad nejaká aplikácia (nazvime ju „X“) potrebuje prečítať zoznam konfiguračných dokumentov. O praktických výhodách riešenia takéhoto problému sa baviť nebudeme, len poznamenám, že najpohodlnejším a najuniverzálnejším spôsobom by v takejto situácii bolo nahrať zoznam dokumentov vo formáte XML.

Výmena pomocou tohto formátu je univerzálna, pretože väčšina aplikácií s ním dokáže pracovať. Pozrime sa, ako môžete nahrať zoznam konfiguračných dokumentov do súboru XML od 1C:Enterprise.

Nahrať do XML

A tak prejdime k tomu hlavnému. Musíme prejsť zoznam metadát dokumentu a vygenerovať zoznam v súbore XML. Nasledujúca snímka obrazovky zobrazuje algoritmus na generovanie súboru XML:

Funkcia CreateXML() Export // Získajte názov dočasného súboru Cesta = GetTemporaryFileName() ; // Inicializujte triedu "XML Record". Záznam = Nový záznamXML; // Otvorí dočasný súbor na zápis- 8 " ) ; // Napíšte deklaráciu súboru XML Záznam. WriteDeclarationXML() ; // Záznam. WriteElementStart(" Konfigurácie dokumentov" ) ; // Prvý prvok // Atribút prvého prvku s dátumom vytvorenia súboru Záznam. WriteAttribute(" vygenerované ", Format(CurrentDate(), " DF = rrrr-MM- ddThh:mm:ss; DLF = DT" ) ) ; // Napíšte prvok pre každý konfiguračný dokument. Do textu vložíme názov dokumentu. Pre každý dokument z metadát. Záznam cyklu dokumentov. WriteElementStart("Dokument"); Záznam. WriteText(Doc.Name) ; Záznam. WriteEndElement() ; EndCycle ; // Dokončite písanie prvého prvku Záznam. WriteEndElement() ; Záznam. Zavrieť(); // Zatvorte súbor // Získajte binárne údaje súboru a uložte ich do dočasného úložiska BinaryData = new BinaryData(Cesta) ; Adresa = PlaceInTemporaryStorage(BinaryData, New UniqueIdentifier) ​​​​; Spiatočná adresa; // Vráti adresu súboru do úložiska EndFunction

Každý vytvorený prvok musí byť správne dokončený. Po vykonaní „WriteStartofElement()“ sa musí vykonať metóda „WriteEndElement()“, inak bude štruktúra súboru XML nesprávna.

Všeobecná šablóna na vytváranie súborov XML je nasledovná:

// 1. Inicializujte triedu "XML Record". Záznam = Nový záznamXML; // 2. Otvorte dočasný súbor na nahrávanie Záznam. OpenFile(cesta, "UTF - 8 " ) ; // 3. Napíšte deklaráciu súboru XML Záznam. WriteDeclarationXML() ; // // 4. ++ Napíšte obsah súboru XML Záznam. WriteElementStart("XMLElement"); Záznam. WriteEndElement() ; // -- Napíšte obsah súboru XML // 5. Zatvorte súbor Záznam. Zavrieť();

Týchto päť krokov vytvorí takmer akýkoľvek súbor XML.

V našom príklade sa vygenerovaný súbor skonvertuje na binárne dáta a vráti sa na miesto, kde sa volá funkcia CreateXML. Tento súbor je potom možné zapísať do súborového systému.

Príklad nahraného súboru môžete vidieť na snímke obrazovky vyššie.

Aplikácia tretej strany

Ako príklad som vytvoril aplikáciu v .NET Framework na demonštráciu čítania súboru XML v aplikácii tretej strany.

Program prečíta vytvorený súbor a zobrazí dokumenty vo forme zoznamu:

Môžete si to vyskúšať sami, aplikácia je dostupná na stiahnutie pomocou odkazu na konci článku.

Všestrannosť

Formát XML sa používa vo väčšine konfigurácií na výmenu údajov medzi aplikačnými riešeniami na platforme 1C:Enterprise. Ďalším bežne používaným spôsobom komunikácie je pripojenie COM. XML umožňuje výmenu s takmer ľubovoľnou aplikáciou, a preto si zaslúži označenie univerzálne.

Súbory na stiahnutie:

Aplikácia na čítanie súborov XML.

Spracovanie generovania súboru XML.

Prenos informácií medzi databázami je jednou z úloh ich podpory a správy. Pre jeho efektívnu implementáciu je spracovanie vytvorené v automatizovaných komplexoch 1C. Výrazne uľahčujú rutinnú prácu, urýchľujú procesy nahrávania a sťahovania informácií a zároveň implementujú kontrolu nad ich správnosťou. Nahrávanie z 1c do xml vám umožňuje vytvoriť súbor s obsahom ľubovoľného nakonfigurovaného konfiguračného objektu a použiť ho, keď potrebujete nahrať údaje do identickej konfigurácie.

Nástroje na vytváranie nahrávaní

Na export informácií obsiahnutých v databázach sa používa najmä formát xml. Pre 1C boli vyvinuté mnohé metódy spracovania (napríklad UploadLoadDataxml82 epf), pomocou ktorých je možné výstup a načítanie dát do súboru. V tomto prípade musí používateľ dostať súbor určitej štruktúry, ktorá umožňuje informácie v ňom uložené načítať do natívnej databázy alebo preniesť na iné miesto. Pri vytváraní nahrávania je potrebné dodržiavať nasledujúce pravidlá:

  • Uložte vytvorené súbory až do úplného obnovenia a dokončenia postupov na overenie správnosti prenesených informácií;
  • Ak používate spracovanie ako nástroj na zálohovanie, vytvorte samostatné podpriečinky pre kópie údajov a uchovávajte si o nich denník, aby ste ich mohli rýchlo vyhľadať.

Dodáva sa v programe užívateľskej podpory 1C, ktorý nájdete na webovej stránke alebo diskoch ITS, je to vynikajúci nástroj na export a import informácií. Používateľ počítača môže nahrať celú databázu aj jej jednotlivé objekty a okrem samotného exportu sa vykonávajú rôzne operácie na kontrolu informácií, ktoré pomáhajú zbaviť sa kritických chýb v dátach Spracovanie 1c uploadu do xml funguje v dvoch režimoch:

  • Vykladanie. Vytvorí súbor obsahujúci používateľom definované stránkovateľné objekty;
  • Načítava. Prečíta predtým exportovaný súbor a zapíše informácie v ňom obsiahnuté do informačnej databázy.

Spracovanie vám umožňuje kontrolovať objekty na neplatné znaky a obsahuje aj funkciu na export informácií s obmedzeniami.

Nahrávanie je možné využiť nielen pri výmene informácií medzi databázami 1C. S jeho pomocou môžete zabezpečiť integráciu rôznych komplexov, napríklad 1C a systému Parus. Všestrannosť formátu XML umožňuje vytvárať programy na prenos informácií pre takmer všetky informačné banky. Spracovanie, nahrávanie a sťahovanie xml dát je najdôležitejším nástrojom na výmenu informácií.

Proces nahrávania údajov doxml

Pozrime sa, ako nahrať z 1c do xml v normálnom režime. Po stiahnutí súboru UploadLoadDataxml.epf a jeho otvorení musíte vykonať nasledujúce kroky:

  • Vyberte objekty na export;
  • Nastavte potrebné filtre, napríklad podľa obdobia;
  • Určite umiestnenie súboru s informáciami o diskovom podsystéme;
  • Začnite vykladať predmety.

Je potrebné mať na pamäti, že hlavička formátu nahrávaného súboru sa líši od formátu súboru používaného pri nahrávaní podľa výmenných plánov.

xml

XML sa načíta do 1c do prijímajúcej databázy s konfiguráciou identickou so zdrojovou databázou. Pred načítaním xml 1c do 1c musíte otvoriť spracovanie v prijímajúcej databáze. Potom musíte zadať cestu k predtým nahranému súboru a stiahnuť údaje kliknutím na tlačidlo „Načítať údaje“.

V prípade potreby sa aktivujú zaškrtávacie políčka na načítanie údajov v režime výmeny v distribuovanej informačnej databáze a ignorovanie chýb, ktoré sa vyskytnú pri načítavaní objektov.

Potom musíte skontrolovať databázy a uistiť sa, že všetky prvky sú načítané správne, aby ste ich nestratili, napríklad ak sa po načítaní objektu vyskytne chyba v obsluhe udalosti.

Keď podnik pri svojej práci neustále používa nejaký softvérový balík, potom, prirodzene, vždy vyvstáva otázka jeho priebežnej podpory a správy. Neexistuje spôsob, ako sa vyhnúť úlohám výmeny, ukladania a obnovy údajov. Pozrime sa, ako načítať alebo uvoľniť údaje z 1C vo formáte XML, pretože ide o dôležitý postup pre túto tému.

Sú postavené tak, že pri nahrávaní môžete dostať XML súbor, v ktorom budú zaznamenané údaje potrebné pre klienta. Zároveň sa súčasne s nahrávaním kontroluje správnosť prenášaných záznamov na kritické chyby.

Nahrávanie do XML súboru (import záznamov) z jednej informačnej bázy a následné načítanie z XML do inej teda predstavuje výmenu údajov vo formáte XML medzi databázami.

Tento postup, najmä pri veľkom množstve informácií, ušetrí veľa ručnej práce.

Import (výsledný súbor) možno použiť aj ako archív na obnovu v neočakávaných situáciách (pri strate alebo poškodení).

Bolo vyvinutých veľa takýchto nástrojov na spracovanie a sú dostupné na internete. Zodpovednosť za ich použitie padá na plecia (a hlavu) klienta.

Pre oficiálnych používateľov Odeneski však vývojári vytvorili univerzálny procesor „Odovzdať/načítať údaje XML“.

DÔLEŽITÉ. Export do XML v 1C a ďalšie načítanie do XML z 1C je prijateľné pre identické konfigurácie – inak dôjde k jeho poškodeniu.

Univerzálny manipulátor

Kľúčové body pre používanie univerzálneho vývojára:

  • Ukladať importované súbory, kým sa nedokončí prenos záznamov a neskontroluje sa ich správnosť;
  • Ak sa používajú ako záložné kópie, mali by sa uchovávať záznamy, aby sa vyhľadávanie zoradilo.

Jeho fungovanie má dva režimy: vytvorenie súboru pri ukladaní informácií a jeho čítanie/zápis pri importe.

Okrem toho si používateľ môže nastaviť ďalšie obmedzenia pri exporte aj načítaní údajov.

Extrahovanie záznamov

Dáta môžete nahrávať ako v rámci celej databázy, tak aj selektívne - objekt po objekte.

Po stiahnutí, inštalácii a otvorení obslužného programu nastane nasledovné:


Ich výber sa vykonáva v dialógovom okne, ktoré sa otvorí po spustení. Ak to chcete urobiť, začiarknite políčka v zozname, ktorý zobrazuje objekty metadát, ktoré sa majú získať;

  1. Potrebné filtre sú nakonfigurované (napríklad podľa dátumu);
  2. Je vybraté miesto na disku;
  3. Spustí sa samotná operácia.

Nahrávanie záznamov do prijímača

Prvým krokom na prijatie údajov do prijímacej databázy je otvorenie programu procesora v nej.

Po zadaní cesty k zdrojovému súboru a aktivácii príznakov nastavenia procedúry (ak je to potrebné), môžete proces spustiť tlačidlom „Načítať dáta“.

Teraz viete, ako načítať alebo uvoľniť údaje z 1C vo formáte XML, aby ste ušetrili údaje a vymieňali si ich medzi databázami.

- známe webové stránky, ktoré sú tiež analógom XML so slabými kontrolami.

Objekty XML Reader/Writer, FastInfoset, HTML rozširujú možnosti čítania textových súborov pomocou vstavaného spracovania značiek.

Používajú sa aj pre objekty DOMBuilder/DOMRecord (pozri nižšie) ako zdroje údajov.

Súbory XML 1C obsahujú textové informácie, to znamená, že ide o textové súbory. Objekty 1C XML Reader a 1C Write XML sú „doplnkom“, ktorý uľahčuje prácu so značkami XML v súbore 1C.

Objekty ReadingFastInfoset 1C a WritingFastInfoset 1C, ReadingHTML 1C a WritingHTML 1C sú úplne podobné ReadingXML 1C a WritingXML 1C a slúžia na prácu rovnakým spôsobom s inými formátmi.

Súbor XML 1C použitý v príkladoch

Adresár>

Adresár>

Textová hodnotaProps>
Adresár>
Konfigurácia>

Príklad 1. Čítanie súboru 1C XML do stromu hodnôt pomocou Reading XML 1C

//otvorte súbor XML 1C na čítanie pomocou ReadingXML 1C
Súbor = Nový ReadXML();
File.OpenFile("D:\ConfigurationStructure.xml");

//pripravte strom hodnôt
//každá vetva XML môže mať názov, atribúty a hodnotu
dzXML = NewValueTree();
dzXML.Columns.Add("Názov");
dzXML.Columns.Add("Hodnota");
dzXML.Columns.Add("Atribúty");

//keďže reťazec XML môže mať viacero atribútov, zapíšeme ich do tabuľky hodnôt
//každý atribút má názov a hodnotu
tAtribúty = New ValueTable();
tAttributes.Columns.Add("Name");
tAttributes.Columns.Add("Hodnota");

//úroveň vnorenia nám pomôže pochopiť, kedy potrebujeme pridať vnorenú vetvu a kedy sa musíme vrátiť o úroveň vyššie
Úroveň vnorenia = 0;
//aktuálna línia je stromová, bude sa meniť s rastúcim hniezdením
CurrentRow = Nedefinované;
//čítanie súboru XML 1C sa nerobí riadok po riadku, ale podľa štruktúry, keď súbor skončí, čítanie vráti FALSE
Kým File.Read() Loop

//zaujímajú nás tri typy uzlov - začiatok prvku, text (hodnota prvku) a koniec prvku (pre návrat na najvyššiu úroveň)
Ak File.NodeType = XMLNodeType.ElementStart Then

Úroveň vnorenia = Úroveň vnorenia + 1;

//ak je to prvý riadok, tak ho pridajte na úplný vrchol stromu a uložte iba názov
Ak CurrentRow = Undefined Then
CurrentRow = dXML.Rows.Add();
CurrentLine.Name = File.Name;
Ďalej;
Inak
//vnorené riadky
CurrentRow = CurrentRow.Rows.Add();
CurrentLine.Name = File.Name; //uložte meno

//má tento prvok XML atribúty?
Ak File.NumberAttributes() > 0 Potom
//ak áno, skopírujte pripravenú prázdnu tabuľku na uloženie atribútov
tAttributesNode = tAttributes.Copy();
//cyklujte cez počet atribútov tohto prvku
Pre účet = 0 podľa cyklu File.Number of Attributes()-1
//pre každý atribút si zapamätajte názov a hodnotu
Riadok = tNodeAttributes.Add();
Line.Name = File.AttributeName(Sch);
Row.Value = File.AttributeValue(Ac);
EndCycle;
//uložiť tabuľku atribútov prvku do aktuálneho riadku
CurrentRow.Attributes = tNodeAttributes;
koniec Ak;
koniec Ak;

ElseIf File.NodeType = XMLNodeType.EndElement Then
//na začiatku prvku zvyšujeme úroveň vnorenia, na konci prvku ju znižujeme
Úroveň vnorenia = Úroveň vnorenia - 1;
//vráti aktuálny riadok o úroveň vyššie
CurrentRow = CurrentRow.Parent;

ElseIf File.NodeType = XMLNodeType.Text Then
//ak má prvok hodnotu, stačí ju uložiť
CurrentRow.Value = File.Value;

koniec Ak;

EndCycle;

File.Close();

Príklad 2. Nahrávanie súboru 1C XML pomocou objektu 1C Record XML

//vytvorte súbor Record XML 1C
Súbor = NewWriteXML();
File.OpenFile("D:\ConfigurationStructure.xml", "UTF-8");
File.WriteElementStart("Konfigurácia");

//používať metadáta na prechádzanie všetkými adresármi (ďalšie podrobnosti nájdete v časti „Práca s metaúdajmi“)
Pre každý adresár z cyklu Metadata.Directories

//WriteStartofElement - otvorí novú [podriadenú] vetvu
File.WriteElementStart("Adresár");
//WriteAttribute - zapíše atribút do predtým otvorenej vetvy
File.WriteAttribute("Name", Directory.Name);
File.WriteAttribute("Synonymum", Directory.Synonymum);

//pomocou metadát prejdeme všetky detaily adresára
Pre každú rekvizitu z cyklu Directory.Props




EndCycle;

//použite metaúdaje na prechod cez všetky tabuľkové časti adresára
Pre každú PM z adresára Tabuľkové časti cyklu
File.WriteElementStart("TabularPart");
File.WriteAttribute("Meno", PM.Name);
File.WriteAttribute("Synonymum", PM.Synonymum);

Pre každú rekvizitu z cyklu PM.Props
File.WriteElementStart("rekvizity");
File.WriteAttribute("Názov", Atribúty.Názov);
File.WriteAttribute("Synonymum", Atribúty.Synonymum);
File.WriteEndElement();
EndCycle;

File.WriteEndElement();
EndCycle;

//WriteEndElement - „zatvorí“ predtým otvorenú vetvu pomocou WriteBeginElement
File.WriteEndElement();
EndCycle;

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

Pokračovanie v téme:
Apple

V tomto článku vám predstavím niektoré online úložné služby, ktoré poskytujú bezplatný cloudový priestor. A nakoniec si to zaslúžia...