1c 8.2 stvaranje xml-a na temelju xsd-a. Tipizirani objekt DataSet. Čitanje i pisanje XML dokumenata

01.11.2019 Sigurnost

Napomena: XML podatkovne sheme (XSD). Stvaranje XSD sheme u okruženju Vizualni studio.NETO. Stvaranje tipiziranog DataSet objekta. Dobivanje informacija o strukturi DataSet objekta. Učitavanje XML dokumenata i XSD shema u tipizirane i obične DataSet objekte. Metode ReadXml i ReadXmlSchema. Snimanje sadržaja i strukture tipiziranog i regularnog DataSet objekta. Metode WriteXml i WriteXmlSchema

Tipizirani objekt DataSet. Čitanje i pisanje XML dokumenata

XML podatkovne sheme (XSD)

Sheme podataka 1 Točan prijevod dokumenta XML sheme -< Shema XML dokumenta>, no nastavit ćemo koristiti izraz "XML podatkovna shema". XSD (XML Schema Document, XSD) su alternativni način pravila za izradu XML dokumenata. U usporedbi s DTD-ovima, sheme su snažnije za definiranje složenih struktura podataka, pružaju jasniji način za opisivanje gramatike jezika i mogu se jednostavno modernizirati i proširiti. XSD shema može sadržavati sljedeće informacije:

  • prikaz odnosa između podatkovnih elemenata, slično odnosima stranog ključa između tablica u relacijskoj bazi podataka;
  • predstavljanje jedinstvenih identifikatora sličnih primarnom ključu;
  • specifikacija tipa podataka za svaki pojedinačni element i atribut u XML dokumentu.

Za izradu podatkovne sheme u Visual Studio .NET, idite na Datoteka\Nova\Datoteka u glavnom izborniku i odaberite XML shema s popisa predložaka (pogledajte sliku 11.3). Pojavit će se prozor koji kaže "Za početak, povucite objekte iz prozora Server Explorer ili Toolbox na radni prostor (područje dizajna) ili kliknite desnom tipkom" (Slika 11.1):


Riža. 11.1.

Poanta je da smo u modu dizajna. Prebacite se u način kodiranja klikom na gumb (XML):

Prvi red je poznata indikacija da je shema XML dokument s korijenskim elementom xs:schema. Prefiks xs: postavlja prefiks svim elementima sheme kako bi označio njihov prostor imena. Drugi redak sadrži dugačak, detaljan i često potpuno nepotreban opis sheme (usporedite sa sličnim kodom za HTML stranice). Za ispravan rad dovoljno je ograničiti se na sljedeći prikaz:

Međutim, ugrađeni alati za vizualizaciju studija pretpostavljaju prisutnost ovog "zaglavlja", pa ga ne treba uklanjati. Stvaranje sheme koja opisuje dati XML dokument u Visual Studio .NET prilično je jednostavan zadatak. Kreirajmo sljedeći XMLEasy.xml dokument:

1

Prelazimo na karticu (Podaci) i vidimo samo jedan unos (Sl. 11.2).


Riža. 11.2.

Možete stvoriti shemu koja opisuje ovaj dokument na nekoliko načina: u glavnom izborniku odaberite "XML\Create Schema" (Sl. 11.3, A), u XML modu u kontekstni izbornik odaberite istu stavku (Sl. 11.3, B), u Data modu odaberite ovu stavku u kontekstnom izborniku (Sl. 11.3, C), i na kraju, u Data modu kliknite na gumb alatne trake XML (Sl. 11.3, D) .


Riža. 11.3.

U svakom slučaju, obris dokumenta pojavljuje se u obliku tablice (Sl. 11.4). Ostavimo sada način rada sheme i prebacimo se na (XML) način rada.


Riža. 11.4.

Okruženje je generiralo XML kod koji opisuje strukturu dokumenta:

Ovo također uključuje opis potreban za daljnje manipuliranje shemom pomoću ADO .NET objekata. U izvornom dokumentu XMLEasy.xml pojavila se poveznica na podatkovnu shemu:

Dokument XMLEasy.xsd automatski je stvoren u istom direktoriju u kojem se nalazi XMLEasy.xml.

Kako biste naučili razumjeti XSD sheme, prvo biste trebali raditi s opisom podataka u njihovom čistom obliku, bez dodatni elementi. Tablica 11.1 prikazuje nekoliko jednostavnih XML dokumenata i njihovih shema, generiranih bez vezanja na ADO .NET objekte.

Tablica 11.1. Primjeri kreiranja XSD shema
Sadržaj XML dokumenta Sadržaj XSD sheme

1

Opis
U XMLEasy.xml dokumentu, element TOUR je korijenski element koji sadrži element djeteta IDTOUR. Opća shema jer korijenski element ima sljedeći oblik:

: Sadržaj elementa...

Podređeni elementi opisani su ovako:

Sadržaj XML dokumenta Sadržaj XSD sheme

1 Cipar 25.000,00 RUB U cijenu dva kupona za odrasle uključena je cijena jednog djeteta (do 7 godina) 2 Grčka 32.000,00 RUB U kolovozu i rujnu vrijede posebni popusti 3 Tajland 30.000,00 RUB Ne uključujući zrakoplovne karte 4 Italija 26.000,00 RUB Doručak u hotelu je uključen u cijenu izleta 5 Francuska 27.000,00 RUB Dodatni izleti nisu uključeni u cijenu izleta

Opis
Korijenski element TABLE sadrži element TOUR, koji se pak sastoji od grupe podređenih elemenata. Izborni element kontrolira odabir ostalih elemenata, s "neograničenom" vrijednošću atributa maxOccurs koja označava da TOUR grupe mogu biti neograničene.

: :

Sadržaj XML dokumenta Sadržaj XSD sheme

1 Cipar 25.000,00 RUB 1 U cijenu dva kupona za odrasle uključena je cijena jednog djeteta (do 7 godina)


Riža. 11.5.
Opis
Tip podataka elementa IDTOUR postavljen je na int, tip podataka elementa CLOSED postavljen je na Boolean, a ostali su postavljeni na zadani tip podataka niza. Možete promijeniti vrstu podataka izravno u načinu rada sheme XML podataka, ali je praktičnije koristiti način rada sheme (u ovom slučaju način će se zvati DataSet) odaberite vrstu podataka s padajućeg popisa (Slika 11.5) :

U softver Za tečaj ćete pronaći sve datoteke ove tablice u XSD mapi (Kod\Glava5\XSD).

Postavljanje vrste podataka u XML dokumentu (tablica 11.1 je najnoviji primjer) jedan je od načina da se ograniči sadržaj. Dodatni atributi koriste se za ograničavanje vrijednosti danog tipa. U sljedećem fragmentu sheme, vrijednost elementa PRICE mora biti između 50 i 100:

Da biste ograničili XML dokument na neke fiksne vrijednosti, koristite sljedeću konstrukciju:

Ovdje element NAME može uzeti samo jednu fiksnu vrijednost od pet naziva zemalja.

Razvijanje XSD sheme je dosta posla. Vizualni alati u Visual Studio .NET čine ovaj zadatak mnogo lakšim. Za svladavanje osnovnih pojmova, preporučljivo je naučiti nekoliko automatski generiranih shema XML dokumenata. Tablice 11.2-11.4 daju opis glavnih elemenata i atributa na koje se može naići.

Tablica 11.2. Elementi XSD sheme
Element Opis
svi Ugniježđeni elementi mogu se definirati bilo kojim redoslijedom
anotacija Nadređeni element elemenata komentara I
bilo koji Bilo koji ugniježđeni elementi
bilo kojiAtribut Bilo kakvi atributi
appInfo Element komentara. Određuje naslov sheme
atribut Atribut
atributGroup Grupa atributa
izbor Odabir ostalih elemenata. Analog operatora "|" u DTD
složeniSadržaj Ograničenja ili nastavci modela složeni tip sadržaja
složeniTip Složeni element
dokumentacija Element komentara. Pruža informacije o shemi
element Element
proširenje Proširenja elemenata
polje Deklaracija polja. Primjenjuje se unutar elementa za definiranje polja
skupina Grupa elemenata
uvoz Uvoz deklaracije tipa iz druge sheme
uključiti Uključivanje različite sheme u postojeći imenski prostor
ključ Određivanje elementa ili atributa s ključem koji pokazuje na drugi element
ključni ref Određivanje elementa ili atributa na koji ključ pokazuje
popis Element koji može sadržavati popis vrijednosti
redefinirati Nadjačavanje već deklariranih elemenata
ograničenje Ograničenje elementa
shema Korijenski element sheme
selektor Selektor za odabir XML elemenata
slijed Redoslijed ostalih elemenata. Analog operatora "," u DTD
jednostavanSadržaj Model čiji sadržaj predstavlja samo znakovne podatke
jednostavanTip Jednostavan element
unija Element ili atribut koji može imati više značenja
jedinstvena Element ili atribut koji mora imati jedinstvena vrijednost
Tablica 11.3. Atributi - Ograničenja XSD sheme
Atribut Opis
nabrajanje Popis vrijednosti
duljina Duljina
maksimalna dužina Maksimalna duljina
minLength Minimalna duljina
maxExclusive Maksimalna vrijednost
maxInclusive Uključuje maksimalnu vrijednost
min Ekskluzivno Minimalna vrijednost
minUključivo Uključuje minimalnu vrijednost
razlomakZifre Broj decimalnih mjesta u razlomačkim brojevima
totalDigits Broj znamenki
uzorak Uzorak (uzorak) sadržaja elementa
zadano Zadana vrijednost elementa ili atributa
elementFormDefault Postavljanje svojstava lokalnog elementa kao globalno definiranog
fiksni Fiksna vrijednost elementa ili atributa
oblik Lokalno deklarirani elementi definirani su u određenim instancama dokumenta
itemType Vrsta stavke popisa
vrste članova Vrsta članova koji se koriste u sindikatu
maxDogađa se Najveći broj pojavljivanja elementa
minDogađa se Najmanji broj pojavljivanja elementa
mješoviti Određivanje elementa koji ima mješoviti tip
Ime Ime elementa ili atributa
imenski prostor Imenski prostor
noNamespace Određivanje lokacije dokumenta sheme,
SchemaLocation bez rezultirajućih imenskih prostora
poništavajući Utvrđivanje da element može biti prazan NULL vrijednost(nula)
ref Postavljanje reference na globalno definirani element
schemaLocation Lociranje kruga
supstitucijskaGrupa Definiranje zamjene elemenata drugim elementima
targetNamespace Imenski prostor rezultirajuće sheme
tip Vrsta artikla
koristiti Je li element potreban ili ne?
vrijednost Vrijednost elementa sheme
xsi:nula Postavljanje stvarnog sadržaja praznog (NULL) elementa u XML dokumentu
xsi:schemaLocation Stvarna lokacija elementa u XML dokumentu
xsi: vrsta Stvarni tip elementa u XML dokumentu

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 datoteka:

XML za lutke

Imena (tagovi) korištena u ovu datoteku- root, list, name, el - mogu biti potpuno proizvoljni. 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 "<» и «>" Način opisa u XML-u vrlo je prikladan za korištenje pri razmjeni s drugima programi trećih strana a koristi se u 1C mehanizmu razmjene podataka.

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 mnogi ih razumiju razne programe. 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 morate 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. Zato poseban jedinstveni identifikator, koji također definira 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.

Na nedostatke ovu metodu rada, postoje visoki zahtjevi za performanse računala, jer DOM obrađuje (formira strukturu u obliku objekata) cijelu XML datoteku odjednom, bez obzira na njezinu veličinu, te datoteke velika veličina(više od 4GB) jednostavno ne može “probaviti”.

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:

Koristiti se konkretna imena;
- 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, npr. 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 već gotovim Detaljan opis shema. Opis XSD objektne sheme bilo koje konfiguracije može se dobiti klikom na granu Općenito - XDTO paketi i odabirom " XML izvoz sheme konfiguracijskih podataka."

Ovaj tekstualna datoteka, Možete uređivati ​​u Windows Notepadu, dok uklanjate 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 od XML do 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:

Imenik 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

XML format vrlo je popularan za razmjenu raznih tekstualni dokumenti između informacijski sustavi. Sposobnost 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 ugodan rad s ovim formatom, 1C sustavi ne bi mogli steći 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. Izjava o mehanizmima kojima se to događa XML čitanje 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; Dokument = Builder.Read(Reader); //petlja za prelaženje čvorova Za svaki element From Document.DocumentElement.ChildrenNodes Petlja //čitanje podataka If element.NodeName = "Product" Then product = element; Za svaku vrijednost From product.ChildrenNodes Cycle If values.NodeName = "Name" then Name = values; Boja = Naziv.Atributi.GetNamedElement("Boja"); ElseIf values.NodeName = "Price" then Cost = values; Valuta = Cost.Attributes.GetNamedItem("Valuta"); završi ako; EndCycle; //izlazne poruke Notify("Ime: " + Name.TextContent + "; boja: "+Color.Value +"; Cijena: "+Cost.TextContent + "; Valuta: "+Currency.Value); završi ako; EndCycle; //zatvaranje mehanizma Non-MechanismReading.Close(); Kraj postupka

Kao rezultat toga, prikazujemo poruke korisniku s uvezenim podacima. Također možete unijeti sve podatke željenu strukturu te na temelju njega programirati izradu dokumenta ili upisa u imenik. Brzina rada 1C s xml-om prilično je visoka, pa se ovaj format sve više koristi pri razmjeni podataka s drugim izvorima.

Za prijenos informacija trebat će nam i interakcija s datotekama XML format. Pogledajmo primjer zapisa koji koristi objekt XML zapisa 1C platforme i učitaj podatke o stavci. Njegove glavne prednosti su jednostavnost koda i brzina obrade podataka. Algoritam poslužiteljske strane za pisanje XML datoteke može se predstaviti kao nekoliko uzastopnih koraka:

  1. Povežite se s xml datotekom;
  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

Programeri tvrtke 1C stvorili su vlastiti mehanizam za razmjenu informacija putem XML-a - XDTO (XML Data Transfer Objects). Počevši od verzije 8.1, platforma ima mogućnost razmjene podataka s drugim sustavima bez zalaženja u probleme generiranja XML datoteke. Većina tehnički problemi 1C preuzima, a mi samo trebamo navesti podatke potrebne za generiranje XML-a. Istina, za to programer treba unaprijed napraviti neke manipulacije.

Za učitavanje XML datoteke koristeći XDTO, moramo reći 1C strukturu datoteke. Prenosi se skupom dijagrama koji se mogu izraditi u uređivaču teksta ili pomoću specijaliziranog programa. Rezultirajuća datoteka trebala bi opisati opću strukturu i tipove podataka koji se koriste u XML datoteci. Prije čitanja ili pisanja novog XML-a, programer mora učitati svoju shemu u konfiguraciju pod XDTO paketima.

U ovom ćemo slučaju ručno izraditi jednostavan paket kako bi 1C razumio strukturu naše datoteke primjera. Kako bi se generiranje datoteke uspješno dovršilo, u shemi moramo prikazati da imamo element glave i privitak s atributima. Stvorena shema mora se izvesti u datoteku u xsd formatu i prenijeti zajedno s xml, tako da se druga strana ne mora baviti strukturom i ponovno kreirati xdto paket.


Spremi novi XML u HDD Pomoći će algoritam poslužitelja sličan prethodnom. 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(); //Dodajte pojedinačne proizvode u glavni element Dok odabirete iz direktorija.Next() cycle Product = FactoryXDTO.Create(FactoryXDTO.Type("http://wiseadviceXML.org","Product")); 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 ispravna postavka može 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.

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. Ova greška može se pojaviti i zbog činjenice da vaš uređaj ima zastarjela verzija programa u kojem sačinjavate izvješće, kao i ako sama porezna uprava nema instaliranu nadogradnju 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 podatke o vašoj organizaciji, kao i druge podatke za koje misle da su potrebni; to 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 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 tekst same pogreške; možda je razlog njezine pojave već naznačen tamo.

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 najviše Zadnje 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 neparan prostor. Ako ne možete pronaći uzrok greške, možete kontaktirati tehnička podrška programe, gdje će stručnjaci sigurno pomoći u rješavanju vašeg problema.