Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Željezo
  • Tipizirani objekt DataSet. Čitanje i pisanje XML dokumenata

Tipizirani objekt DataSet. Čitanje i pisanje XML dokumenata

Platforme: 1C:Enterprise 8.3, 1C:Enterprise 8.2, 1C:Enterprise 8.1
Konfiguracije: Sve konfiguracije

2012-11-25
34938

XDTO je mehanizam koji je neophodan prilikom kreiranja i pokretanja web servisa. XDTO paketi koriste se za opisivanje strukture potrebne XML datoteke potrebne za izmjenu podataka iz iu XML.

XML je način da se opiše složena struktura podataka u običnoj tekstualnoj datoteci. Opisuje ne samo same podatke, već i polja u kojima su pohranjeni.
Evo osnovnog primjera XML datoteke:

XML za lutke

Imena (tagovi) korištena u ovoj datoteci - root, list, name, el - mogu biti potpuno proizvoljna. Osnovna pravila za izradu XML datoteke odmah su vidljiva iz njene strukture:
- Moguće je ugniježditi elemente;

Početak elementa<Имя>, završetak je isti naziv, ali s dodatkom znaka “/”.

Unutar elementa mogu se nalaziti:
- Ugniježđeni elementi;
- Tekst.

Svaki element može imati svojstva (atribute), njihova vrijednost i naziv su naznačeni. Zabranjeno je koristiti bilo kakve znakove u XML-u, jer se nekoliko njih koristi izravno za XML, na primjer "<» и «>" Metoda XML opisa vrlo je prikladna za korištenje pri razmjeni s drugim programima trećih strana i koristi se u mehanizmu razmjene podataka 1C.

Imenski prostor

XML datoteka počinje zaglavljem koje opisuje verziju XML-a, kodiranje itd... Zaglavlje u XML-u nije u potpunosti potrebno i vrlo često se jednostavno ne koristi. Zaglavlje također može definirati imenski prostor.

XML datoteke se prenose internetom i čitaju ih mnogi različiti programi. Oni se percipiraju - to znači da postoji zaštita u njihovom kodu - ako naiđete na određeni naziv elementa u XML datoteci, tada ga trebate percipirati na ovaj način i učiniti upravo to. Dakle, kada koristimo oznaku IBM, postoji prilično velika šansa da će neki drugi program pomisliti da je to njemu poznati IBM, a mi smo pod ovim mislili nešto svoje.

Kako bi se to spriječilo i kako bi se jasno ukazalo na razliku između našeg IBM-a i svih ostalih, u datoteci je moguće navesti ime namespacea - prefiks koji se koristi prije imena elemenata.

Prostor imena možete definirati na sljedeći način - xmlns:Prefix (NameSpace) = “URL”, primjer:
xmlns:store = "http://site.ru"

Zašto je potreban URL? Oni koji su već razmišljali o tome i gledaju dalje - naravno, imenski prostor koji smo izmislili možda također nije jedinstven, tj. može ga koristiti i bilo tko drugi. Zbog toga je naveden poseban jedinstveni identifikator koji identificira i izvršitelja imenskog prostora.

Naravno, pretpostavlja se da je osoba koja je navela imenski prostor potpuno poštena. Pokazuje na svoje vlastito web mjesto i ne koristi više različitih imenskih prostora s jednim web mjestom. U pravilu, navodite i URL stranice i URL određene mape na stranici, tako da je moguće stvoriti drugi imenski prostor u bilo kojoj mapi na ovoj stranici, za njegovu upotrebu u bilo kojoj situaciji.

DOM

Objekt je posebna struktura podataka koja je samostalna i sadrži sve svoje podatke.

Budući da XML datoteka opisuje strukturirane podatke, odnosno podatke u obliku strukture koja ima svoja svojstva i slično, prema tome ih možete promatrati kao objekte. Gornji primjer može koristiti objekt LIST sa svojstvima i ugniježđenim elementom.

DOM je način tretiranja XML datoteke ne kao teksta u određenom formatu, već kao skupa objekata s poljima, svojstvima i više.

Nedostaci ove metode rada uključuju visoke zahtjeve za performanse računala, jer DOM obrađuje (formira strukturu u obliku objekata) cijelu XML datoteku odjednom, bez obzira na njezinu veličinu i jednostavno ne može “probaviti” velike datoteke (više od 4GB).

Za raščlanjivanje velikih datoteka koristi se SAX. Ova metoda raščlanjivanja datoteke temelji se na sekvencijalnom čitanju datoteke, a ne na izgradnji njezine cijele strukture odjednom; .

Opis XML datoteke

Ako stalno koristimo datoteku određene strukture za komunikaciju između 2 programa, tada bismo vjerojatno željeli sljedeće:

Tako da se koriste specifični nazivi;
- Da se koriste samo oni elementi koje očekujemo (koji “moraju postojati da bi se koristili u razmjeni”);
- Tako da atributi označavaju samo one vrste koje očekujemo (broj, niz itd.).

Sljedeći formati datoteka dostupni su za opisivanje XML struktura (također pohranjenih u običnoj tekstualnoj datoteci):

DTD proširenje je Document Type Definition;
- Ekstenzija XSD je XML Shema.

Ovi formati opisuju kakav bi dokument trebao biti. Postupak provjere usklađenosti XML-a, koji je opisan u takvoj standardnoj datoteci, naziva se verifikacija.

XDTO

XDTO je 1C objekt koji vam omogućuje dodavanje opisa XML datoteke u konfiguraciju. Točnije, ne opisuje se sama datoteka, već određene XML strukture.

Za označavanje tipova koji se mogu koristiti, koristi se popis, biblioteka tipova, nazvana XDTO tvornica. Ova tvornica specificira ne samo jednostavne tipove (datum, niz, broj) koji se koriste u drugim programima, jezicima itd., već i 1C tipove koji se koriste u 1C iu specifičnoj konfiguraciji.

XDTO Factory uključuje nekoliko paketa. Početni tipovi opisani su u paketu tzv www.w3.org Tipovi podataka u konfiguraciji opisani su u paketu http://v8.1c.ru/8.1/data/enterprise/current-config

Ovi tipovi su imenovani u skladu s nazivima u konfiguratoru uz dodatak engleskog oblika (CatalogRef, DocumentObject, CatalogObject, DocumentRef), na primjer:

CatalogObject.Accounts

Dodavanje XDTO paketa

Došli smo do teme XSLT - načina transformacije XML datoteka u nešto drugo, kao što su HTML datoteke. Tema XML-a je iznimno velika i o njoj je napisano više od jedne knjige.

Naš zadatak je razumjeti da nam XDTO omogućuje opis elemenata koji moraju biti u XML paketu koji treba pročitati ili generirati. XDTO paketi se nalaze u konfiguraciji 1C iu grani General - XDTO paketi.

Moguće je dodati XDTO paket u 1C ručno, ali najbolje je dobiti odgovarajuću XSD datoteku s gotovim detaljnim opisom sheme. Opis XSD objektne sheme bilo koje konfiguracije možete dobiti klikom na granu Općenito - XDTO paketi i odabirom stavke "Izvoz XML sheme konfiguracijskih podataka" u izborniku.

Ovu tekstualnu datoteku možete urediti u Windows Notepadu, uklanjajući nepotrebne objekte (vama nepotrebne). Možete dodati gotovu XSD shemu u 1C tako da desnom tipkom miša kliknete granu General - XDTO paketi i odaberete "Uvezi XML shemu" iz izbornika.

Rad s XDTO u 1C znači pretvaranje vrijednosti iz XML-a u XML. To se radi pomoću objekata jezika 1C Čitaj XML/XMLWrite.

Kada radite s XDTO, trebate navesti paket s kojim izravno radite. To može biti ili standardni paket (pogledajte raspravu iznad, XDTO) ili paket dodan konfiguraciji.

Paket je identificiran URL-om koji je naveden u paketu. Postoje dva glavna načina rada:

Serijalizacija - automatska promjena vrijednosti iz XML-a u 1C i obrnuto;

Ispunjavanje polja objekta, njegovo kreiranje i pisanje u XML (kao i čitanje iz XML-a i naknadno čitanje njegovih polja).

Zamislimo primjer serijalizacije vrijednosti:

Serializer = Novi XDTO serijalizator (XDTO tvornica);
XML datoteka = Novi XML zapis();
XMLFile.OpenFile("Naziv datoteke");
Serializer.WriteXML(XMLFile, 1C vrijednost);

Inverzna funkcija je serijalizator. XMLReading (), koristi se iz 1C objekata jezika XML Reading.
Primjer pisanja/čitanja objekta:

Direktorij XDTOObject = FactoryXDTO.Create(XDTOFactory. Type("http://v8.1c.ru/8.1/data/enterprise/current-config", "CatalogObject.Counterparties"));
Ispunite PropertyValues(DirectoryXDTOObject, Directory.Counterparties.FindByProperties("Name", "Ivanov").Link);

Tada kreirani objekt možete napisati u XML-u na potpuno isti način kao i serijalizacija. Kada čitate XML na isti način kao što je gore objašnjeno, možda neće biti vraćena XDTO vrijednost, već samo takav objekt.

Prilikom kreiranja XDTO objekta, kreira se struktura koja je slična strukturi konfiguracijskog objekta (osim, naravno, ako ne kreirate konfiguracijski objekt iz paketa navedenog u gornjem primjeru). Tipična polja (naziv, šifra itd.) su na engleskom jeziku, a objekt se kreira prazan pa se mora popuniti, svako polje zasebno ili pomoću funkcije FillPropertyValues

Pogreška koja navodi da datoteka nije u skladu s XSD shemom je uobičajena kada sustav ne može očitati podatke iz izvješća. Općenito, ljudi često čine takve pogreške i s njima se vrlo lako nositi.

Prvo morate razumjeti što XSD shema znači da biste razumjeli s čime vaša datoteka točno nije u skladu.

Dakle, XSD je programski jezik, opisuje strukturu vašeg izvješća. Struktura uključuje, primjerice, parametre sadržaja izvješća, vrste, izgleda, kao i sintaksu podataka, odjeljake koji sadrže informacije.

Ispostavilo se da je XSD shema opis strukture vašeg izvješća, izveden u jednom od programskih jezika. Ako se u izvješće unesu netočni podaci, ono će jednostavno biti nečitljivo za shemu, zbog čega sustav generira grešku da datoteka ne odgovara XSD shemi.

To znači da se podaci koje ste unijeli ne mogu pročitati u programskom jeziku, stoga ih program prepoznaje kao netočne.

Vrijedno je napomenuti da ovaj problem može nastati ili zbog netočno unesenih podataka(na primjer, pogriješili ste prilikom unosa TIN-a organizacije), te zbog netočnog formata unosa podataka (na primjer, naveli ste dodatne razmake ili crtice).

Međutim, to nije jedini razlog zašto datoteka nije usklađena s XSD shemom. Do ove pogreške može doći i zbog toga što je na vašem uređaju instalirana zastarjela verzija programa u kojem izrađujete izvješće, kao i ako sama porezna uprava nije instalirala ažuriranje programa.

Kako biste riješili pogrešku u XSD shemi, morat ćete provjerite jesu li svi podaci točni, koji ste unijeli, a također provjerite je li došlo do ažuriranja za program u kojem radite. Ipak, prije provjere datoteke, pažljivo pogledajte tekst pogreške koju vam daje.

Činjenica je da u nekim situacijama, nakon teksta koji govori da datoteka ne odgovara shemi, stoji dvotočka i tada je naznačen uzrok ovog problema. Ako sam uzrok pogreške nije naznačen, ažurirajte program na najnoviju verziju.

Nakon dovršetka ažuriranja pokušajte ponovno poslati izvješće. Ako nakon ažuriranja datoteka ponovno daje pogrešku, tada morate tamo potraži problem. Ako radite u programu 1C, tada možete provjeriti datoteku pomoću posebnog gumba pod nazivom "Provjeri na Internetu".

Ako vam prethodne dvije točke nisu pomogle u prepoznavanju problema, onda provjerite jeste li ispunili sva potrebna polja, jeste li ispravno unijeli sve podatke, jer mnogi od njih moraju biti popunjeni brojevima, u tom slučaju je vrlo lako napraviti tipfeler.

Osim toga, trebate provjeriti ima li u svim poljima dodatnih razmaka, crtica i drugih znakova. Ako ste provjerili cijelu datoteku i ne možete pronaći grešku, ili ako ste uspjeli pronaći grešku, ali je ne možete popraviti, onda biste svakako trebali obratite se tehničkoj podršci programu s kojim izrađujete izvješće ili njegovim programerima.

Kako biste riješili ovaj problem uz pomoć programera programa, morat ćete poslati neke dokumente, kao što je sama datoteka u kojoj se nalazi izvješće, protokol obavijesti koji vam daje računalo.

Osim toga, programeri od vas mogu tražiti neke informacije o vašoj organizaciji, kao i druge informacije za koje misle da ih morate dati, inače problem neće biti riješen.

Dakle, ako pokušavate poslati izvješće poreznoj upravi, ali datoteka daje pogrešku koja kaže da nije u skladu s XSD shemom, to znači da je vaše izvješće ne može se poslati, jer program ne može pročitati podatke koje ste unijeli.

Ali ne biste trebali paničariti, jer u većini slučajeva ovaj problem riješen sasvim jednostavno i to brzo. Osim toga, ako ste izvješće poslali na vrijeme, ali ono nije prihvaćeno zbog neispravnog formata, tada porezna nema pravo kaznitišto niste podnijeli izvješće na vrijeme. Prije svega, obratite pozornost na sam tekst pogreške; možda je razlog njezine pojave već naznačen.

Zapravo, mogu postojati samo dva razloga. Ili ga imaš instaliran na svom uređaju? stara verzija programa, s kojim napravite izvješće, u ovom slučaju lako je riješiti problem, samo trebate preuzeti najnovije ažuriranje, obično se može pronaći na web stranici programa koji koristite. Drugi razlog može biti to što ste neke podatke netočno ispunili ili niste ispunili niti jedno polje.

U tom slučaju morate provjeriti svoju datoteku, ali morate zapamtiti da program to može čak smatrati pogreškom dodatni prostor. Ako ne možete pronaći uzrok pogreške, tada se možete obratiti tehničkoj podršci programa, gdje će stručnjaci sigurno pomoći u rješavanju vašeg problema.

XML format je vrlo popularan kod razmjene različitih tekstualnih dokumenata između informacijskih sustava. Mogućnost stvaranja jedinstvene strukture za dokumente omogućuje njihovu upotrebu u mnogim područjima - elektroničke knjižnice, WEB, uvoz/izvoz i mnoga druga. Bez mogućnosti prikladnog rada s ovim formatom, 1C sustavi ne bi stekli takvu popularnost. Budući da 1C aktivno koristi WEB tehnologije, svaki programer mora biti u stanju čitati XML i pisati informacije u njega.

Predstavljanje i čitanje XML datoteke

Jedna od ključnih prednosti XML jezika za označavanje je njegova prilično praktična i intuitivna struktura i sintaksa. Prilikom izrade, autori su postavili cilj stvoriti označni jezik koji bi lako čitali i ljudi i računala. Danas je XML široko razvijen u druge formate, ali je i dalje popularan i naširoko korišten. Struktura XML datoteke izgrađena je prema sljedećoj shemi:

Da bismo razmotrili primjer uvoza podataka u 1C, gornja datoteka bit će dovoljna. Da bi napisana procedura mogla pročitati XML datoteku, dovoljno je u nju proslijediti putanju do same datoteke. To se može učiniti putem sučelja, dopuštajući korisnicima da sami specificiraju datoteku, ili tvrdo kodiranom obradom u tekstu.

Jedan od popularnih načina za rad s XML-om veličine do 100 MB u 1C je korištenje Document Object Model (DOM). Njegovo značenje je sekvencijalna obrada svih čvorova dokumenta predstavljenih u XML-u. U ugrađenom 1C jeziku ovaj algoritam izgleda ovako:

  1. Deklaracija mehanizama kojima se čita XML datoteka; Petlja za pomicanje čvorova;
  2. Čitanje podataka i atributa u čvoru;
  3. Izlaz informacija. Ako je potrebno, u ovoj fazi pisanje se može dogoditi u varijablama ili izravno u potrebnim tablicama;
  4. Završetak mehanizma.
&OnServer postupak ReadOnServer(PathToFile) //deklaracija mehanizama Reading Mechanism = New ReadingXML;

Reader.OpenFile(PathToFile);

Builder = Novi BuilderDOM;

  1. Dokument = Builder.Read(Reader);
  2. Kreiramo elemente glave i upisujemo podatke u njih. Ako želite prenijeti veliku količinu informacija u XML datoteku, tada ćete u ovoj fazi koristiti petlje. Budite oprezni i zapamtite da zahtjev za podacima mora biti postavljen prije petlje, a ne u njoj;
  3. Zatvorite datoteku.
//otvorite datoteku Nomenclatura.xml i napišite glavni element RecordVFile = New RecordXML(); WriteToFile.OpenFile("D:\Nomenclatura.xml", "UTF-8"); WriteInFile.3writeStartItem("Proizvodi"); //odaberi podatke za zapis SelectionFromDirectory = Directories.Nomenclature.Select(); //ciklus u kojem se snima dok SelectingFromDirectory.Next() ciklus //zapisuje nove podatke RecordToFile.RecordBeginningElement("Product");

RecordInFile.RecordAttribute("Ime", SelectionFromDirectory.Name);

WriteToFile.WriteAttribute("InitialPrice", Line(SelectionFromDirectory.InitialPrice));

WriteToFile.WriteEndElement(); EndCycle; //Zatvorite element glave i datoteku WriteVFile.WriteEndElement(); WriteInFile.Close();

XDTO mehanizam u 1C


Algoritam poslužitelja sličan prethodnom pomoći će vam da spremite novi XML na svoj tvrdi disk. Jedina razlika je potreba za dodavanjem podataka za 1 proizvod u XDTO tvornicu - poseban mehanizam platforme 8.3 1C. Ako postoji potreba za stvaranjem više razina ugniježđivanja, morat ćete opisati svaki element glave.

//Otvorite XML datoteku RecordVFile = New RecordXML; WriteToFile.OpenFile("D:\Nomenclatura.xml", "UTF-8"); //Navedite 1C koju vrstu podataka treba kreirati - glavni element AllProducts = FactoryXDTO.Create(FactoryXDTO.Type("http://wiseadviceXML.org","Proizvodi")); //odaberite podatke za učitavanje SelectionFromDirectory = Directories.Nomenclature.Select(); //Dodavanje pojedinačnih proizvoda u glavni element Dok odabirete iz direktorija.Next() ciklus Proizvod = FactoryXDTO.Create(FactoryXDTO.Type("http://wiseadviceXML.org","Proizvod"));

Product.Name = Odaberite iz imenika.Name;

Product.InitialPrice = String(SelectionFromDirectory.InitialPrice);

Svi proizvodi.Dodaj(proizvod); EndCycle; //upisati podatke i zatvoriti datoteku FactoryXDTO.WriteXML(WriteToFile, AllProducts); WriteInFile.Close();

Razmatrani mehanizmi prilično su univerzalni i, ako su ispravno konfigurirani, mogu riješiti većinu problema. Međutim, postoji dosta nijansi u interakciji između 1C i XML-a. Mnogo je učinkovitije proučavati ih u stvarnim uvjetima, a ne na ispitnim zadacima u kojima obrada XML datoteke rješava prilično uske probleme.

Ovo poglavlje će vam pokazati kako napisati XML sheme. Također ćete naučiti da se dijagram može pisati na različite načine.
XML dokument
Pogledajmo ovaj XML dokument pod nazivom "shiporder.xml":

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:noNamespaceSchemaLocation="shiporder.xsd">

John Smith
Ola Nordmann


Langgt 23
4000 Stavanger
1
10.90


Norveška
1
9.90

Empire Burlesque

Posebno izdanje Sakrij svoje srce .

Stvaranje XML sheme

Sada želimo stvoriti shemu za gornji XML dokument.

Počet ćemo otvaranjem nove datoteke koju ćemo nazvati "shiporder.xsd". Da bismo stvorili shemu, mogli bismo jednostavno slijediti strukturu u XML dokumentu i definirati svaki element kako ga nađemo. Počet ćemo sa standardnom XML deklaracijom nakon koje slijedi element xs:schema koji definira shemu:



...

U gornjoj shemi koristimo standardne prostore imena (xs), a URI povezan s ovim prostorom imena je definicija jezika sheme, koja ima standardnu ​​vrijednost http://www.w3.org/2001/XMLSchema.

Zatim moramo definirati element "shiporder". Ovaj element ima atribut i sadrži druge elemente, pa ga tretiramo kao složenu vrstu. Podređeni elementi elementa "shiporder" okruženi su xs: elementom niza koji definira uređeni niz podelemenata:




...


Tada moramo definirati element "orderperson" kao jednostavan tip (budući da ne sadrži nikakve atribute ili druge elemente). Vrsta (xs:string) ima prefiks prefiksa prostora imena povezanog s XML shemom, koja navodi unaprijed definiranu vrstu podataka sheme:










Uz pomoć shema možemo odrediti broj mogućih pojavljivanja elementa s MaxOccurs i MinOccurs atributima. MaxOccurs navodi maksimalni broj pojavljivanja za element, a MinOccurs navodi minimalni broj pojavljivanja za element. Zadana vrijednost za MaxOccurs i MinOccurs je 1!

Sada možemo definirati element "item". Ovaj se element može pojaviti više puta unutar elementa "shiporder". To se utvrđuje postavljanjem atributa maxOccurs elementa "item" na "unbounded" , što znači da može postojati onoliko pojavljivanja elementa "item" koliko autor želi. Imajte na umu da je element "note" neobavezan. Ovo smo definirali postavljanjem atributa minOccurs na nulu:










Sada možemo deklarirati atribut "shiporder" elementa. Budući da je ovo obavezan atribut, navodimo use="required".

Napomena: Izjave atributa uvijek moraju biti zadnje:

Ovdje je potpuni popis datoteke sheme pod nazivom "shiporder.xsd":





























Odvojeni krugovi

Prethodna metoda dizajna je vrlo jednostavna, ali može biti teška za čitanje i održavanje kada su dokumenti složeni.

Sljedeća metoda dizajna temelji se na definiranju svih elemenata i atributa te njihovom referenciranju pomoću atributa ref.

Evo novog dizajna shematske datoteke ("shiporder.xsd"):








































Korištenje imenovanih tipova

Treća metoda dizajna definira klase ili tipove, što omogućuje ponovnu upotrebu definicija elemenata. To se postiže imenovanjem elemenata simpleTypes i complexTypes, a zatim upućivanjem na njih kroz atribut tipa elementa.

Ovdje je treći dizajn shematske datoteke ("shiporder.xsd"):

































Element ograničenja označava da je tip podataka izveden iz prostora imena tipa podataka W3C XML Schema. Dakle, sljedeći isječak znači da vrijednost elementa ili atributa mora biti vrijednost niza:

Element ograničenja se češće koristi za primjenu ograničenja na elemente. Pogledajte sljedeće retke iz gornjeg dijagrama:





Ovo specificira da vrijednost elementa ili atributa mora biti niz, mora imati točno šest znakova po retku, a ti znakovi moraju biti brojevi između 0 i 9.

Pojavio se zadatak stvaranja XML datoteke na temelju XSD sheme. Pretragom foruma došlo se do velikog broja rasprava vezanih uz nerazumijevanje procesa, a tek par članaka koji objašnjavaju bit. Ljudi su postavljali pitanja, mučili se s rješenjem, ali nakon što im je problem popustio, jednostavno su nestali bez opisa mehanizma. To je potaknulo stvaranje jednostavnog opisa procesa.
p.s. Nemojte previše psovati, moj cilj nije bio stvoriti nekakav znanstveni članak strogo koristeći ispravnu terminologiju, već jednostavno pomoći napraviti prvi korak prema razumijevanju vrlo moćnog mehanizma razmjene putem XML-a.
P.P.S. Odmah moram napomenuti da je datoteka za učitavanje priložena članku samo predložak koji stvara samo dio potrebne strukture XML datoteke, jer moj rad s ovim preuzimanjem bio je prilično edukativne prirode (kopiranje prethodnog izvoznog dokumenta na web stranici FCS-a i preuzimanje samo tabelarnog dijela proizvoda iz Excel datoteke činilo se učinkovitijim rješenjem), a nedostatak vremena nije dopuštao dovršiti stvaranje cijele strukture, samo na temelju razmatranja perfekcionizma.

Dakle, registracijom na web stranici FCS-a postalo je jasno da je za izradu dokumenata Statističkog izvješćivanja o izvozu potrebno preuzeti podatke iz dokumenata Upravljanja trgovinom robe i usluga i kreirati datoteku za preuzimanje.

Postoje dvije moguće opcije preuzimanja.

Prvo: učitavanje tabelarnog dijela s Proizvodima iz Excel datoteke (ova opcija je odabrana kao radna opcija, jer je imala prednosti jer se nije bilo potrebno mučiti s obradom “Header-a” dokumenta, već ste jednostavno mogli kopirati prethodni, mijenjajući ga u “Zaglavlju” "što je bilo potrebno).

Drugo: izrada XML datoteke prema shemi preuzetoj s web stranice FCS-a u obliku “Albuma formata za elektroničke obrasce dokumenata”. Album sadrži prilično velik broj XSD shema. Pronašli su dijagram “Statističkog obrasca za evidentiranje kretanja robe” i dodatne datoteke s opisima vrsta za njega. Dijagrami su priloženi članku u arhivi s obradom.

Za pregled XSD shema koristili smo besplatni Microsoft XML Notepad 2007.

Slika prikazuje glavnu datoteku sa XSD shemom "Statistički obrazac za obračun kretanja robe". Slika naglašava glavne blokove XSD sheme koje trebamo razumjeti.

Iz dijagrama je jasno da trebamo dobiti XML datoteku ispunjenu strukturom navedenom u grani "xs:element" tipa StaticFormType.

Struktura može biti prilično složena (kao u našem slučaju). S opisima tipa koji su prisutni izravno u grani, smješteni u zasebnoj grani ili čak smješteni u drugoj datoteci.

Ova struktura ima tip StaticFormType, koji se pak sastoji od osnovnog tipa BaseDocType, skupa objekata različitih tipova i tekstualnih atributa.

Osnovni tip BaseDocStyle definiran je u drugoj datoteci (i prostoru imena)
.

Ova datoteka sadrži mnogo tipova koji se ne koriste u našem slučaju.

Sada prijeđimo na rad u 1C. Ukratko, ono što trebamo učiniti svodi se na sljedeće:

1. Tvornica XDTO se stvara

NašaTvornicaXDTO = StvoriTvornicuXDTO(NizPunihImenaDatotekaSXSDShemama);

2. U XDTO tvornici kreiraju se svi složeni tipovi podataka koje ćemo zatim popuniti u kreiranu XML datoteku:

StaticFormType = MyFactoryXDTO.Type("urn:customs.ru:Information:CustomsDocuments:StaticForm:5.4.0", "StaticFormType");

Tipovi podataka uključeni u određeni tip mogu se dobiti iz zbirke njegovih svojstava:

CUOrganizationType = StaticFormType.Properties.Get("Primatelj").Type; NameType = CUOrganizationType.Properties.Get("OrganizationName").Type; ShortNameType = CUOrganizationType.Properties.Get("ShortName").Type; LanguageCodeType = CUOrganizationType.Properties.Get("OrganizationLanguage").Tip;

3. Kada su svi složeni tipovi podataka kreirani, na temelju njih stvaramo strukturu XML datoteke koja se sastoji od XDTO Factory objekata:

StaticFormType_XDTOObject = MyXDTOFactory.Create(StaticFormType);

// zbirka s dokumentima NewDocuments = MyFactoryXDTO.Create(DocumentsType); NewDocuments.PrDocumentName = MyFactoryXDTO.Create(PrDocumentNameType, "Tovarni list"); NewDocuments.PrDocumentNumber = MyFactoryXDTO.Create(PrDocumentNumberType, "123-broj"); NewDocuments.PrDocumentDate = MyFactoryXDTO.Create(PrDocumentDateType, "2014-10-05"); StaticFormType_XDTO.Documents.Add(NewDocuments);

U isto vrijeme ispunite elementarne (jednostavne vrste) detalje.

4. I na kraju, istovarujemo sve iz XDTO tvornice u datoteku:

XML datoteka = Novi XML unos(); FileXML.OpenFile(FileName); FileXML.WriteXMLDeclaration(); MyXDTOFactory.WriteXML(XMLFile, StaticFormType_XDTOObject); FileXML.Close();

p.s. Arhiva sadrži datoteku predloška za učitavanje u XML-u (stvoreni su samo neki detalji koji odražavaju sve slučajeve u kojima je datoteka ispunjena) i XSD sheme.

Raspakirajte sve datoteke u određeni direktorij.

U njemu će se stvoriti XML.

U BIOS-u nema pokretanja s flash pogona - kako ga konfigurirati?