Μια σύντομη περιγραφή της δημιουργίας ενός αρχείου XML από το σχέδιο XSD στο παράδειγμα δημιουργίας εκφόρτωσης στατιστικής αναφοράς για το FCS. Πληκτρολογημένο αντικείμενο δεδομένων. Η ανάγνωση και η εγγραφή εγγράφων XML δημιουργούν ένα αρχείο XSD στο 1C 8.2

Σχόλιο: Σχέδια δεδομένων XML (XSD). Δημιουργία ενός σχήματος XSD στο περιβάλλον Visual Studio .NET. Δημιουργία αντικειμένου πληκτρολογημένου συνόλου δεδομένων. Λήψη πληροφοριών σχετικά με τη δομή του αντικειμένου του συνόλου δεδομένων. Φόρτωση εγγράφων XML και Schemas XSD σε αντικείμενα δακτυλογράφησης και κανονικών δεδομένων. Readxml και readxmlschema μέθοδοι. Καταγράψτε το περιεχόμενο και τη δομή ενός πληκτρολογημένου και συμβατικού αντικειμένου Dataset. Writexml και writexmlschema μέθοδοι

Πληκτρολογημένο αντικείμενο δεδομένων. Ανάγνωση και εγγραφή εγγράφων XML

Σχέδια δεδομένων XML (XSD)

Κυκλώματα δεδομένων 1. Ακριβής μετάφραση του εγγράφου Schema XML -< Σχέδιο εγγράφων XML\u003e Ωστόσο, θα συνεχίσουμε να χρησιμοποιούμε τον όρο "Σχέδιο δεδομένων XML". Το XSD (έγγραφο XML Schema, XSD) είναι ένας εναλλακτικός τρόπος για την κατασκευή εγγράφων XML. Σε σύγκριση με το DTD, τα συστήματα έχουν πιο ισχυρά μέσα για τον προσδιορισμό σύνθετων δομών δεδομένων, παρέχουν έναν πιο κατανοητό τρόπο για να περιγράψει τη γραμματική της γλώσσας, είναι σε θέση να αναβαθμίσουν εύκολα και να επεκταθούν. Το σύστημα XSD μπορεί να περιέχει τις ακόλουθες πληροφορίες:

  • Αντιπροσωπεία δεσμών μεταξύ στοιχείων δεδομένων, παρόμοιο με τους συνδέσμους των εξωτερικών πλήκτρων μεταξύ των πινάκων της σχεσιακής βάσης δεδομένων.
  • αναπαράσταση μοναδικών αναγνωριστικών παρόμοιων με το κύριο κλειδί.
  • Προδιαγραφή τύπου Δεδομένα από κάθε μεμονωμένο στοιχείο και χαρακτηριστικό στο έγγραφο XML.

Για να δημιουργήσετε ένα σχήμα δεδομένων στο Visual Studio .net στο κύριο μενού, μεταβείτε στο αρχείο \\ new \\ αρχείο και επιλέξτε από τη λίστα προτύπων (βλ. Εικ. 11.3) Σχήμα XML. Ένα παράθυρο εμφανίζεται με την επιγραφή "Για να ξεκινήσει, σύρετε αντικείμενα από το παράθυρο Εξερεύνησης διακομιστή ή εργαλειοθήκη στον χώρο εργασίας (περιοχή σχεδιασμού) ή κάντε δεξί κλικ" (Εικ. 11.1):


Σύκο. 11.1.

Το γεγονός είναι ότι είμαστε σε λειτουργία σχεδιασμού. Ενεργοποιούμε τη λειτουργία κώδικα, για το οποίο κάντε κλικ στο κουμπί (XML):

Η πρώτη γραμμή είναι μια γνωστή ένδειξη ότι το σχήμα είναι ένα έγγραφο XML με το στοιχείο ρίζας XS: Σχήμα. Το πρόθεμα XS: πρόβλεψε όλα τα στοιχεία του σχεδίου, δείχνοντας το χώρο ονομάτων τους. Στη δεύτερη γραμμή, υπάρχει μια μακρά, λεπτομερής και συχνά εντελώς περιττή περιγραφή του συστήματος (συγκρίνετε με τον ίδιο κωδικό για τις σελίδες HTML). Για σωστή εργασία, αρκεί να περιορίσετε την ακόλουθη υποβολή:

Ωστόσο, η ενσωματωμένη απόδοση του στούντιο προτείνει αυτό το "καπάκι", οπότε δεν πρέπει να διαγραφεί. Η δημιουργία ενός συστήματος που περιγράφει το καθορισμένο έγγραφο XML στο Visual Studio .NET περιβάλλον είναι ένα αρκετά απλό έργο. Δημιουργήστε το ακόλουθο έγγραφο xmleasy.xml:

1

Μεταβείτε στην καρτέλα (δεδομένα) και δείτε μόνο μία εγγραφή (Εικ. 11.2).


Σύκο. 11.2.

Μπορείτε να δημιουργήσετε ένα διάγραμμα που περιγράφει αυτό το έγγραφο με διάφορους τρόπους: Στο κύριο μενού, επιλέξτε "XML \\ Create Schema" (Εικ. 11.3, A), σε λειτουργία XML στο μενού περιβάλλοντος, επιλέξτε το ίδιο στοιχείο (Εικ. 11.3, B ), σε δεδομένα τρόπου λειτουργίας στο μενού περιβάλλοντος, επιλέξτε αυτό το στοιχείο (Εικ. 11.3, B), και τέλος στη λειτουργία δεδομένων, κάντε κλικ στο κουμπί της γραμμής εργαλείων XML (Εικ. 11.3, D).


Σύκο. 11.3.

Σε κάθε περίπτωση, ένα σχήμα εγγράφου εμφανίζεται με τη μορφή πίνακα (Εικ. 11.4). Ας αφήσουμε τη λειτουργία Schema και να μεταβείτε στη λειτουργία (XML).


Σύκο. 11.4.

Το μέσο δημιουργήθηκε ο κώδικας XML που περιγράφει τη δομή του εγγράφου:

Αυτό περιλαμβάνει μια περιγραφή που απαιτείται για περαιτέρω χειρισμό από το σχέδιο χρησιμοποιώντας αντικείμενα ADO .NET. Στο έγγραφο προέλευσης xmleasy.xml, εμφανίστηκε ένας σύνδεσμος με το σύστημα δεδομένων:

Το έγγραφο xmleasy.xsd δημιουργήθηκε αυτόματα στον ίδιο τον ίδιο κατάλογο, όπου βρίσκεται το Xmleasy.xml.

Προκειμένου να μάθετε πώς να κατανοείτε τα προγράμματα XSD, πρώτα θα πρέπει να συνεργαστεί με μια περιγραφή των δεδομένων στην καθαρή του μορφή, χωρίς πρόσθετα στοιχεία. Ο πίνακας 11.1 παρέχει αρκετά απλά έγγραφα XML και τα σχέδιά τους σχηματίζονται χωρίς δεσμευτικά αντικείμενα ADO .NET.

Πίνακας 11.1. Παραδείγματα προγραμμάτων XSD
Περιεχόμενο εγγράφων XML Περιεχόμενο Schema XSD

1

Περιγραφή
Στο έγγραφο xmleasy.xml, το στοιχείο περιοδείας είναι ένα στοιχείο ρίζας που περιέχει ένα στοιχείο παιδιού. Το συνολικό σχέδιο για το στοιχείο ρίζας έχει την ακόλουθη μορφή:

: Στοιχείο περιεχομένου ...

Οι θυγατρικές περιγράφονται ως εξής:

Περιεχόμενο εγγράφων XML Περιεχόμενο Schema XSD

1 Κύπρος 25 000.00. Η τιμή δύο δελτίων ενηλίκων περιλαμβάνει την τιμή ενός παιδιού (έως 7 ετών) 2 Ελλάδα 32 000.00. Τον Αύγουστο και τον Σεπτέμβριο λειτουργούν ειδικές εκπτώσεις 3 Ταϊλάνδη 30 000.00. Δεν συμπεριλαμβάνεται η αεροπορική πτήση 4 Ιταλία 26 000.00. Το πρωινό στο ξενοδοχείο συμπεριλαμβάνεται στο κόστος ενός εισιτηρίου 5 Γαλλία 27 000.00. Οι πρόσθετες εκδρομές δεν περιλαμβάνονται στο κόστος ενός εισιτηρίου

Περιγραφή
Ο πίνακας ριζικής στοιχείου περιέχει ένα στοιχείο περιοδείας, το οποίο, με τη σειρά του, από την ομάδα των παιδιών στοιχείων. Το στοιχείο επιλογής καθορίζει την επιλογή άλλων στοιχείων και η αξία "απεριόριστη" (απεριόριστη) χαρακτηριστικά Maxoccurs υποδεικνύει τη δυνατότητα απεριόριστης παρουσίας ομάδων περιήγησης.

: :

Περιεχόμενο εγγράφων XML Περιεχόμενο Schema XSD

1 Κύπρος 25 000.00. 1 Η τιμή δύο δελτίων ενηλίκων περιλαμβάνει την τιμή ενός παιδιού (έως 7 ετών)


Σύκο. 11.5.
Περιγραφή
Για το στοιχείο IDTOUR, ο τύπος πληροφοριών Int εγκαταστάθηκε, για το στοιχείο κλειστού τύπου κλειστού τύπου, για το υπόλοιπο - από προεπιλεγμένο τύπο τύπου. Μπορείτε να αλλάξετε τον τύπο δεδομένων απευθείας στη λειτουργία XML Data Diagram, αλλά πιο εύκολη - στη λειτουργία Schema (σε αυτή την περίπτωση, η λειτουργία θα ονομάζεται DataSet) Επιλέξτε τον τύπο δεδομένων από την αναπτυσσόμενη λίστα (Εικ. 11.5):

Κατά τη διάρκεια του μαθήματος θα βρείτε όλα τα αρχεία αυτού του πίνακα στο φάκελο XSD (Code \\ Glava5 \\ XSD).

Ρύθμιση του τύπου δεδομένων στο έγγραφο XML (το τελευταίο παράδειγμα είναι ο πίνακας. 11.1) είναι ένας από τους τρόπους περιορισμού του περιεχομένου. Πρόσθετα χαρακτηριστικά εφαρμόζονται για να περιορίσουν την τιμή του καθορισμένου τύπου. Στο ακόλουθο κομμάτι του κυκλώματος, η τιμή της τιμής στοιχείου πρέπει να είναι μεταξύ 50 και 100:

Για να περιορίσετε το έγγραφο XML, ορισμένες σταθερές τιμές χρησιμοποιούν το ακόλουθο σχέδιο:

Εδώ το στοιχείο ονόματος μπορεί να λάβει μόνο μία σταθερή αξία από τα πέντε ονόματα των χωρών.

Η ανάπτυξη του σχεδίου XSD είναι αρκετά ζωντανή εργασία. Το Visual Media Visual Studio .net διευκολύνει σημαντικά αυτό το έργο. Για να μάθετε τις βασικές έννοιες, είναι επιθυμητό να μελετήσετε πολλά έγγραφα XML που δημιουργήθηκαν αυτόματα. Πίνακες 11.2-11.4 περιγράφει τα κύρια στοιχεία και τα χαρακτηριστικά που μπορούν να βρεθούν ταυτόχρονα.

Πίνακας 11.2. Σχέδια XSD
Στοιχείο Περιγραφή
Ολα. Τα ένθετα στοιχεία μπορούν να καθοριστούν με τυχαία σειρά
Σχόλιο. Στοιχεία γονικού στοιχείου-σχόλιο και
Οποιος. Οποιαδήποτε ένθετα αντικείμενα
anyattribute. Οποιαδήποτε χαρακτηριστικά
appinfo. Σχόλιο στοιχείων. Καθορίζει τον τίτλο του σχεδίου
Χαρακτηριστικό. Χαρακτηριστικό
χαρακτηριστικό. Ομάδα χαρακτηριστικών
Επιλογή Επιλέγοντας άλλα στοιχεία. Αναλογικό του χειριστή "|" στο DTD.
Πολύπλοκος Περιορισμούς ή Επέκταση του μοντέλου Τύπος συμπλόκου περιεχομένου
Σεντόνια. Στοιχείο σύνθετου τύπου
Τεκμηρίωση Στοιχείο-σχόλιο. Παρέχει πληροφορίες σχετικά με το σχέδιο
Στοιχείο. Στοιχείο
Επέκταση Επέκταση στοιχείων
Πεδίο Ανακοίνωση πεδίου. Που χρησιμοποιείται μέσα στο στοιχείο Για τον προσδιορισμό πεδίων
Ομάδα. Ομάδα στοιχείων
Εισαγωγή Εισαγωγή δηλώσεων τύπου από άλλο καθεστώς
Περιλαμβάνω. Ενεργοποιήστε ένα άλλο σχήμα στο υπάρχον ονομαστικό χώρο
Κλειδί. Ορίζοντας ένα στοιχείο ή ένα χαρακτηριστικό κλειδιού που δείχνει ένα άλλο στοιχείο
keyref. Ορίζοντας ένα στοιχείο ή ένα χαρακτηριστικό σε ποιο βασικό σημείο
Λίστα Ένα στοιχείο που μπορεί να περιέχει μια λίστα τιμών
Επαναπληρώνω Αντικατάσταση ήδη δηλωθέντων αντικειμένων
Περιορισμός Περιορισμός στοιχείου
Σχήμα. Στοιχείο ρίζας του κυκλώματος
Εκλέκτορας Επιλογή επιλογής στοιχείων XML
Αλληλουχία Ακολουθία άλλων στοιχείων. Ανάλογο του χειριστή "," στο DTD
Απρόσκοπτος Μοντέλο, τα περιεχόμενα των οποίων αντιπροσωπεύουν μόνο συμβολικά δεδομένα
simpleetype. Στοιχείο απλού τύπου
Ενωση Ένα στοιχείο ή ένα χαρακτηριστικό που μπορεί να έχει πολλαπλή τιμή
μοναδικός Στοιχείο ή χαρακτηριστικό που πρέπει να έχει μια μοναδική αξία
Πίνακας 11.3. Χαρακτηριστικά - Περιορισμοί των προγραμμάτων XSD
Χαρακτηριστικό Περιγραφή
Κατάλογος τιμών
Μήκος. Μήκος
Μέγιστο μήκος. Μέγιστο μήκος
μίνι μήν Ελάχιστο μήκος
maxexclusive. Μέγιστη αξία
maxinclusive. Μέγιστη τιμή συμπεριλαμβανομένου
Ναρκοπελιωτική. Ελάχιστη τιμή
mininclusive. Η ελάχιστη τιμή που περιλαμβάνει
Κλάσματα. Αριθμός ερωτηματικών σε κλασματικούς αριθμούς
totalIgits. Αριθμός ψηφίων
Πρότυπο. Δείγμα (μοτίβο) του περιεχομένου των στοιχείων
Προκαθορισμένο. Το προεπιλεγμένο στοιχείο ή τιμή χαρακτηριστικού
elegationFormDefault. Ορίζοντας τις ιδιότητες του τοπικού στοιχείου όπως ορίζεται σε παγκόσμιο επίπεδο
Σταθερός Σταθερή αξία του στοιχείου ή χαρακτηριστικού
μορφή Τα τοπικά ανακοινωθέντα αντικείμενα ορίζονται σε συγκεκριμένα αντίγραφα εγγράφων.
Τύπος αντικειμένου. Τύπος στοιχείων λίστας
Μέλη. Είδος μελών που χρησιμοποιούνται στην Ένωση (Ένωση)
maxoccars. Μέγιστος αριθμός καταχωρήσεων στοιχείων
minoccurs. Ελάχιστη είσοδος στοιχείου
Μικτός. Η ρύθμιση ενός στοιχείου που έχει μικτό τύπο
Ονομα. Όνομα του στοιχείου ή χαρακτηριστικού
Ονομαστικό χώρο. Ονόματα διαστήματος
nonamespace. Ορίζοντας τη θέση του σχήματος εγγράφων,
Εφημερίδα δεν έχουν προκύπτου
Λυστά Προσδιορίζοντας ότι το στοιχείο μπορεί να έχει κενή τιμή μηδενική (μηδέν)
ref. Ρύθμιση συνδέσμων σε ένα παγκοσμίως καθορισμένο στοιχείο
Εφημερίδα Προσδιορισμός της θέσης του συστήματος
Υποκατάσταση Προσδιορισμός της αντικατάστασης στοιχείων από άλλα στοιχεία
Στόχος του Στόχου. Προκύπτουσα χώρο ονομάτων
Τύπος Τύπος στοιχείου
χρήση Είναι το στοιχείο υποχρεωτικό ή όχι
αξία Η τιμή του στοιχείου διαγράμματος
xsi: nil. Ορίστε το πραγματικό περιεχόμενο του εγγράφου XML Empty (Null)
xSI: Σχηματισμός Πραγματική θέση του στοιχείου στο έγγραφο XML
xSI: Τύπος. Τύπος πραγματικού στοιχείου στο έγγραφο XML

Μια αναφορά σφάλματος ότι το αρχείο δεν ταιριάζει με το σχέδιο XSD είναι κοινό στις περιπτώσεις όταν Το σύστημα δεν μπορεί να διαβάσει τα δεδομένα από την αναφορά. Σε γενικές γραμμές, τέτοια λάθη στους ανθρώπους συμβαίνουν συχνά, και είναι αρκετά εύκολο να το αντιμετωπίσετε.

Πρώτα πρέπει να καταλάβετε τι σημαίνει το σχέδιο XSD για να καταλάβετε τι δεν ταιριάζει το αρχείο σας.

Έτσι, το XSD είναι γλώσσα προγραμματισμού, Με αυτό, περιγράφει τη δομή της έκθεσής σας. Η δομή περιλαμβάνει, για παράδειγμα, αναφορά περιεχομένου, τύπου, προβολής, καθώς και σύνταξη δεδομένων, χωρίσματα που περιέχουν πληροφορίες.

Αποδεικνύεται ότι το σχέδιο XSD είναι Περιγραφή της δομής της έκθεσής σαςεκτελείται σε μία από τις γλώσσες προγραμματισμού. Εάν υποβάλλονται λανθασμένες πληροφορίες στην έκθεση, θα είναι απλά ακάθαρτο για το καθεστώς, γι 'αυτό το σύστημα εκδίδει ένα σφάλμα ότι ο φάκελος δεν αντιστοιχεί στο σχέδιο XSD.

Αυτό υποδηλώνει ότι οι πληροφορίες που καταχωρίσατε δεν μπορούν να διαβαστούν στη γλώσσα προγραμματισμού, επομένως, το πρόγραμμα αναγνωρίζει εσφαλμένο.

Αξίζει να σημειωθεί ότι αυτό το πρόβλημα μπορεί να προκύψει εξαιτίας του Εισάγετε εσφαλμένα δεδομένα (Για παράδειγμα, εσκεπτήκατε λάθος όταν εισήχθη το Inn της οργάνωσης) και λόγω του λανθασμένου μορφότυπου εισαγωγής δεδομένων (για παράδειγμα, υποδεικνύετε περιττά κενά ή παύλες).

Ωστόσο, αυτός δεν είναι ο μόνος λόγος που προκαλεί την ασυνέπεια του αρχείου Schema XSD. Αυτό το σφάλμα μπορεί επίσης να προκύψει λόγω του γεγονότος ότι η ξεπερασμένη έκδοση του προγράμματος είναι εγκατεστημένη στη συσκευή σας στην οποία κάνετε μια αναφορά, καθώς και εάν το πρόγραμμα δεν έχει ενημερωθεί στη φορολογική αρχή.

Για να λύσετε το σφάλμα στο σχέδιο XSD, θα χρειαστείτε Ελέγξτε την ορθότητα όλων των δεδομένων, Που έχετε εισάγει, καθώς και να διευκρινίσετε εάν η ενημέρωση του προγράμματος στο οποίο εργάζεστε δεν είναι. Ωστόσο, πριν ελέγξετε το αρχείο, εξετάστε προσεκτικά το κείμενο του σφάλματος που σας δίνει.

Το γεγονός είναι ότι σε ορισμένες περιπτώσεις μετά το κείμενο που το αρχείο δεν αντιστοιχεί στο σχήμα, υπάρχει ένα παχύ έντερο και στη συνέχεια υποδηλώνει τον λόγο για αυτό το πρόβλημα. Εάν ο λόγος του ίδιου του σφάλματος δεν έχει καθοριστεί, ενημερώστε το πρόγραμμα στην πιο πρόσφατη έκδοση.

Μετά την ολοκλήρωση της ενημερωμένης έκδοσης, δοκιμάστε να στείλετε ξανά την αναφορά σας. Εάν μετά την ενημέρωση του αρχείου και πάλι δίνει ένα σφάλμα, τότε είναι απαραίτητο Ψάξτε για ένα πρόβλημα σε αυτό. Εάν εργάζεστε στο πρόγραμμα 1C, τότε μπορείτε να ελέγξετε το αρχείο χρησιμοποιώντας ένα ειδικό κουμπί που ονομάζεται "Έλεγχος στο Internet".

Εάν τα δύο προηγούμενα στοιχεία δεν σας βοηθήσουν να προσδιορίσετε το πρόβλημα και, στη συνέχεια, ελέγξτε αν είστε όλα τα απαιτούμενα πεδία, είτε έχετε εισάγει όλα τα δεδομένα, επειδή πολλά από αυτά πρέπει να συμπληρώσετε τους αριθμούς, οπότε είναι πολύ εύκολο να πληρώσετε Αφήστε το λάθος.

Επιπλέον, πρέπει να ελέγξετε όλα τα πεδία απουσία περιττών κενών, παύλων και άλλων χαρακτήρων. Εάν έχετε ελέγξει ολόκληρο το αρχείο και δεν μπορείτε να βρείτε ένα σφάλμα ή αν κατάφερα να βρω ένα λάθος, αλλά δεν μπορείτε να το διορθώσετε, τότε σίγουρα στέκεστε Επικοινωνήστε με την τεχνική υποστήριξη Προγράμματα με τα οποία κάνετε μια αναφορά ή στους προγραμματιστές του.

Για την επίλυση αυτού του προβλήματος χρησιμοποιώντας τους προγραμματιστές του προγράμματος, θα πρέπει να στείλετε ορισμένα έγγραφα, όπως το ίδιο το αρχείο στο οποίο η αναφορά είναι το πρωτόκολλο ειδοποίησης που σας εκδίδει ο υπολογιστής.

Επιπλέον, οι προγραμματιστές μπορούν να σας ζητήσουν κάποιες πληροφορίες σχετικά με τον οργανισμό σας, καθώς και άλλες πληροφορίες που θα φαίνονται απαραίτητες, πρέπει να τους δώσετε, διαφορετικά δεν θα μπορέσει να λύσει το πρόβλημα.

Έτσι, αν προσπαθείτε να στείλετε μια αναφορά στη φορολογική αρχή, αλλά το αρχείο δίνει ένα σφάλμα ότι δεν ταιριάζει με το σχέδιο XSD, αυτό σημαίνει ότι η αναφορά σας δεν μπορεί να σταλεί Δεδομένου ότι το πρόγραμμα δεν μπορεί να διαβάσει τα δεδομένα που καταχωρίσατε.

Αλλά ο πανικός δεν αξίζει τον κόπο, διότι στις περισσότερες περιπτώσεις αυτό το πρόβλημα Λύσει αρκετά απλό και γρήγορα. Επιπλέον, αν η αναφορά που στείλατε έγκαιρα, αλλά δεν έγινε δεκτή λόγω της λανθασμένης μορφής, τότε ο φόρος δεν έχει κανένα δικαίωμα να τελειώσει Εσείς για το χρόνο σας παρέχουμε μια αναφορά. Πρώτα απ 'όλα, δώστε προσοχή στο κείμενο του ίδιου του σφάλματος, ίσως εκεί δείχνει ήδη τον λόγο για την εμφάνισή του.

Στην πραγματικότητα, οι λόγοι μπορούν να είναι μόνο δύο. Ή έχετε εγκαταστήσει στη συσκευή Παλιά έκδοση του προγράμματοςΜε τη βοήθεια του οποίου κάνετε μια αναφορά, σε αυτή την περίπτωση λύστε εύκολα το πρόβλημα, απλά πρέπει να κάνετε λήψη της τελευταίας ενημέρωσης, συνήθως μπορεί να βρεθεί στον ιστότοπο που χρησιμοποιείτε. Ο δεύτερος λόγος μπορεί να είναι ότι εσείς παρερμηνεύουν ορισμένα δεδομένα ή δεν ολοκληρώσατε κανένα πεδίο καθόλου.

Σε αυτή την περίπτωση, πρέπει να ελέγξετε το αρχείο σας, ενώ πρέπει να θυμάστε ότι το πρόγραμμα μπορεί να εξετάσει ένα σφάλμα ακόμη και περίεργος χώρος. Εάν δεν μπορείτε να βρείτε την αιτία του σφάλματος, τότε μπορείτε να επικοινωνήσετε με την τεχνική υποστήριξη για το πρόγραμμα, σίγουρα θα βοηθήσει στην επίλυση του προβλήματός σας.

Η μορφή XML είναι πολύ δημοφιλής κατά την ανταλλαγή διαφόρων εγγράφων κειμένου μεταξύ συστημάτων πληροφοριών. Η δυνατότητα δημιουργίας μιας μοναδικής δομής εγγράφων επιτρέπει τη χρήση του σε πολλούς τομείς - ηλεκτρονικές βιβλιοθήκες, ιστό, εισαγωγές / εξαγωγές, καθώς και πολλά άλλα. Χωρίς τη δυνατότητα βολικής εργασίας με αυτή τη μορφή, το σύστημα 1C δεν θα μπορούσε να πάρει τέτοια δημοτικότητα. Δεδομένου ότι το 1C χρησιμοποιεί ενεργά τεχνολογίες ιστού, κάθε προγραμματιστής θα πρέπει να είναι σε θέση να διαβάζει τις xml και να καταγράψει πληροφορίες σε αυτά.

Άποψη του αρχείου XML και την ανάγνωση

Ένα από τα βασικά πλεονεκτήματα της γλώσσας σήμανσης XML είναι μια αρκετά βολική και διαισθητική δομή και σύνταξη. Όταν δημιουργήθηκε, οι συγγραφείς έθεσαν το στόχο να δημιουργήσουν μια γλώσσα σήμανσης που θα ήταν βολική για την ανάγνωση και τον άνθρωπο και τον υπολογιστή. Μέχρι σήμερα, η XML έχει αναπτυχθεί ευρέως σε άλλες μορφές, αλλά παραμένει δημοφιλής και ευρέως χρησιμοποιούμενη. Η δομή του αρχείου XML κατασκευάζεται σύμφωνα με το ακόλουθο σχήμα:

Για να εξετάσετε ένα παράδειγμα εισαγωγής δεδομένων στο 1C θα είναι επαρκώς το παραπάνω αρχείο. Προκειμένου η γραπτή διαδικασία να διαβάσει το αρχείο XML, αρκεί να περάσει η διαδρομή προς το ίδιο το αρχείο. Αυτό μπορεί να γίνει μέσω της διασύνδεσης, επιτρέποντας στους χρήστες να καθορίζουν το αρχείο ανεξάρτητα ή σκληρά μιλώντας στο κείμενο επεξεργασίας.

Μία από τις δημοφιλείς μεθόδους εργασίας με XML έως 100 MB σε 1C θεωρείται ότι χρησιμοποιεί το μοντέλο αντικειμένου εγγράφου (DOM). Το νόημά της είναι να επεξεργαστεί εναλλακτικά όλους τους κόμβους του εγγράφου που παρουσιάζονται στο XML. Στην ενσωματωμένη γλώσσα 1C, αυτός ο αλγόριθμος μοιάζει με αυτό:

  1. Ανακοίνωση μηχανισμών με τους οποίους διαβάζεται το αρχείο XML. Κύκλος παράκαμψης κόμβων ·
  2. Ανάγνωση δεδομένων και χαρακτηριστικά στον κόμβο.
  3. Έξοδος πληροφοριών. Εάν υπάρχει ανάγκη, σε αυτό το στάδιο μπορεί να καταγραφεί σε μεταβλητές ή αμέσως στους επιθυμητούς πίνακες.
  4. Ολοκλήρωση του μηχανισμού.
& Διαδικασία Nasserver Διαβάστε το διακομιστή (PulyFile) // Ανακοίνωση μηχανισμών μηχανισμού \u003d Νέα ανάγνωση; Μηχανισμός. Άνοιγμα (πολτός); Builder \u003d Νέο Builderdom. Έγγραφο \u003d οικοδόμος. Up (Μηχανισμός); // Κύκλος να παρακάμψει τους κόμβους για κάθε στοιχείο από το έγγραφο. Το στοιχείο αναφέρει. Κύκλος. Κύκλος // ανάγνωση δεδομένων εάν είναι στοιχείο. Στοιχείο \u003d στοιχείο \u003d στοιχείο. Για κάθε τιμή από το προϊόν. Κύκλος. Κύκλος. Εάν οι τιμές της τιμής \u003d "όνομα" τότε το όνομα \u003d τιμές. Χρώμα \u003d όνομα. Χαρακτηριστικά. Στοιχείο υψηλής ανάλυσης ("χρώμα"). Revalited τιμές. Τα στοιχεία \u003d "Τιμή" στη συνέχεια κοστίζουν \u003d τιμές. Νόμισμα \u003d κόστος. Χαρακτηριστικά. Στοιχείο εστίασης ("νόμισμα"). Τελείωσε. Κολύγιο; // Εμφάνιση αναφοράς μηνυμάτων ("Όνομα:" + όνομα. Βασισμένο σε λογισμικό + "Χρώμα:" + χρώμα. Θεραπεία + ". Τιμή:" + Κόστος. Λευκό χέρι + "νόμισμα); Τελείωσε. Κολύγιο; // κλείνοντας τον μηχανισμό μη διάτρησης. Τόπος (); Εξηγητές

Ως αποτέλεσμα, εμφανίζουμε μηνύματα με εισαγόμενα δεδομένα. Μπορείτε επίσης να τοποθετήσετε όλα τα δεδομένα στην επιθυμητή δομή και την ίδρυσή του για να προγραμματίσετε τη δημιουργία ενός εγγράφου ή εγγραφών στον κατάλογο. Η ταχύτητα λειτουργίας 1C με XML είναι αρκετά μεγάλη, έτσι και συχνότερα αυτή η μορφή χρησιμοποιείται κατά την ανταλλαγή δεδομένων με άλλες πηγές.

Για να εκφορτώσετε πληροφορίες, χρησιμοποιούμε επίσης αλληλεπίδραση με αρχεία μορφής XML. Εξετάστε ένα παράδειγμα εγγραφής χρησιμοποιώντας τα αντικείμενα αντικειμένου εγγραφής 1C και εκφόρτωσης δεδομένων σχετικά με την ονοματολογία. Τα κύρια πλεονεκτήματα είναι η απλότητα της ταχύτητας επεξεργασίας κώδικα και δεδομένων. Ο αλγόριθμος εγγραφής αρχείων XML μπορεί να αντιπροσωπεύεται ως αρκετά διαδοχικά βήματα:

  1. Συνδεθείτε στο αρχείο XML.
  2. Δημιουργήστε στοιχεία κεφαλής και γράψτε δεδομένα σε αυτά. Εάν θέλετε να εκφορτώσετε στο αρχείο XML μια μεγάλη ποσότητα πληροφοριών, τότε σε αυτό το στάδιο θα έχετε κύκλους. Να είστε προσεκτικοί και να μην ξεχνάτε ότι το αίτημα των δεδομένων πρέπει να γίνει πριν από τον κύκλο, και όχι σε αυτό.
  3. Κλείστε το αρχείο.
// ανοίξτε το αρχείο nomenclatura.xml και γράψτε το στοιχείο κεφαλής στη συσκευή εγγραφής \u003d Νέο Postsml \u200b\u200b(); Openfile picklefile ("d: \\ nomenclatura.xml", "UTF-8"). Opavorphrablaelement ("εμπορεύματα"). // Επιλέξτε τα δεδομένα για την εγγραφή της επιλογής - Κατάλογος. Υποκατάσταση. Ισχύει (); // Ο κύκλος στον οποίο καταγράφεται η εγγραφή ενώ λαμβάνεται το δείγμα. Επόμενο () Κύκλος // Καταγραφή νέων τιμών εγγραφής δεδομένων. Εγγραφή pickuptiribut ("όνομα", επιλεκτικό playmahter. Όνομα); Εγγραφή pickettiribut ("εκκίνηση", συμβολοσειρά (δείγμαProof.naCchant); ΑΠΟΣΤΟΛΗ. ΠΡΟΣΟΧΗ (); Κολύγιο; // κλείστε το στοιχείο κεφαλής και το αρχείο εγγραφής. RecordConcelereLement (); Postback. Κλείσιμο ();

Μηχανισμός XDTO σε 1C

Οι προγραμματιστές της εταιρείας 1γ να ανταλλάξουν πληροφορίες μέσω XML δημιούργησαν το δικό τους μηχανισμό - XDTO (αντικείμενα μεταφοράς δεδομένων XML). Ξεκινώντας από την έκδοση 8.1, η πλατφόρμα εμφανίζεται η δυνατότητα ανταλλαγής δεδομένων με άλλα συστήματα, που δεν εισάγεται στο σχηματισμό του αρχείου XML. Τα περισσότερα τεχνικά ζητήματα αναλαμβάνουν πάνω από 1C και πρέπει να καθορίσουμε μόνο τα δεδομένα που είναι απαραίτητα για να σχηματίσουν ένα XML. Είναι αλήθεια, γι 'αυτό, ο προγραμματιστής πρέπει να κάνει μερικούς χειρισμούς εκ των προτέρων.

Για να κάνετε λήψη του αρχείου XML χρησιμοποιώντας το XDTO, πρέπει να ενημερώσουμε τη δομή αρχείου 1C. Μεταδίδεται μέσω ενός συνόλου σχεδίων που μπορούν να δημιουργηθούν στον επεξεργαστή κειμένου ή να χρησιμοποιήσουν ένα εξειδικευμένο πρόγραμμα. Ως αποτέλεσμα, πρέπει να αποδειχθεί το αρχείο που περιγράφει τη γενική δομή και τους τύπους δεδομένων που χρησιμοποιούνται στο αρχείο XML. Πριν από την ανάγνωση ή την καταγραφή ενός νέου XML, ο προγραμματιστής πρέπει να το κατεβάσει στη διαμόρφωση στην ενότητα "Πακέτα πακέτων".

Σε αυτή την περίπτωση, δημιουργήστε τα χέρια σας ένα απλό πακέτο έτσι ώστε το 1C να κατανοήσει τη δομή του αρχείου μας για παράδειγμα. Έτσι ώστε το σχηματισμό αρχείων να ολοκληρωθεί με επιτυχία, πρέπει να προβληματιστούμε στο σχέδιο που έχουμε ένα στοιχείο κεφαλής και προσκόλληση με χαρακτηριστικά. Το δημιουργημένο σχήμα πρέπει να εξαχθεί στο αρχείο μορφής XSD και τη μεταφορά μαζί με το XML έτσι ώστε η άλλη πλευρά να μην χρειάζεται να αντιμετωπίσει τη δομή και να δημιουργήσει και πάλι ένα πακέτο XDTO.


Αποθηκεύστε το νέο XML στον σκληρό δίσκο βοηθά τον αλγόριθμο διακομιστή παρόμοιο με το προηγούμενο. Η διαφορά αποτελείται μόνο για την ανάγκη προσθήκης δεδομένων σε 1 προϊόν στο εργοστάσιο XDTO - ο ειδικός μηχανισμός της πλατφόρμας 8.3 1C. Εάν υπάρχει ανάγκη να κάνετε περισσότερα επίπεδα φωλιάσματος - θα πρέπει να περιγράψετε κάθε στοιχείο κεφαλής.

// ανοίξτε το αρχείο του αρχείου XML \u003d νέο recordxml; Openfile picklefile ("d: \\ nomenclatura.xml", "UTF-8"). // Υποδείξτε 1c, τι είδους δεδομένα πρέπει να δημιουργηθεί - το στοιχείο κεφαλής του Nascular \u003d FactoryXDTO. Δημιουργία (FactoryXDTO. Τύπος ("http://wiseadvicexml.org", "εμπορεύματα")). // Επιλέξτε τα δεδομένα για εκφόρτωση του δείγματος \u003d Βιβλία αναφοράς. Namerenclature. Εξοπλισμός (); // Προσθέστε ξεχωριστά στοιχεία στο στοιχείο κεφαλής μέχρι το δείγμαProoper. Επόμενο () στοιχείο κύκλου \u003d εργοστάσιο. Δημιουργία (FactoryXDTO. Τύπος ("http://wiseadvicexml.org", "προϊόν")); Προϊόν. Όνομα \u003d ενιαίοπτερο. Όνομα; Προϊόν. Τιμή ιδιόκτητης τιμής \u003d συμβολοσειρά (δείγμα. Ιδιόκτητη τιμή). NutoMovars. Προσθέστε (προϊόν); Κολύγιο; // Καταγράψτε τα δεδομένα και κλείστε το εργοστάσιο FactoryXDTO. RecretXML (Postback, Bellows); Postback. Κλείσιμο ();

Οι θεωρητικοί μηχανισμοί είναι αρκετά καθολικοί και τα περισσότερα καθήκοντα μπορούν να το λύσουν. Ωστόσο, στην αλληλεπίδραση του 1C και XML υπάρχουν αρκετές αποχρώσεις. Μελετήστε τα είναι πολύ πιο αποτελεσματικά σε πραγματικές συνθήκες και όχι σε εργασίες δοκιμής στις οποίες η επεξεργασία του αρχείου XML επιλύει αρκετά στενά καθήκοντα.

Το έργο της δημιουργίας ενός αρχείου XML που βασίζεται σε σχήμα XSD εμφανίστηκε. Οι αναζητήσεις στα φόρουμ οδήγησαν σε μεγάλο αριθμό συζητήσεων που σχετίζονται με την παρεξήγηση της διαδικασίας και μόνο μερικά άρθρα που εξηγούν την ουσία. Οι άνθρωποι ρώτησαν ερωτήσεις, κτύπησαν την απόφαση, αλλά μετά το έργο υπέκυψε σε αυτούς, απλά εξαφανίστηκαν χωρίς να περιγράφουν τον μηχανισμό. Ώθησε να δημιουργήσει μια απλή περιγραφή της διαδικασίας.
ΥΣΤΕΡΟΓΡΑΦΟ. Μην ορκίζετε έντονα, ο στόχος μου δεν ήταν να δημιουργήσω ένα συγκεκριμένο άρθρο σχήματος σκορ, χρησιμοποιώντας αυστηρά τη σωστή ορολογία και την επιθυμία να βοηθήσει απλά να πάρετε το πρώτο βήμα προς την κατανόηση ενός πολύ ισχυρού μηχανισμού ανταλλαγής μέσω του XML.
P.P.S. Αμέσως θα πρέπει να κάνετε κράτηση ότι το αρχείο εκφόρτωσης που επισυνάπτεται στο άρθρο είναι μόνο ένα τεμάχιο εργασίας που δημιουργεί μόνο ένα μέρος της επιθυμητής δομής αρχείου XML, από τότε Η δουλειά μου με αυτή την εκφόρτωση είχε μάλλον έναν γνωστικό χαρακτήρα (αντιγράψτε το προηγούμενο έγγραφο εξαγωγής στον ιστότοπο FCS και κατεβάστε από το Excel. "Κριός μόνο ένα πίνακα των εμπορευμάτων έχει εισαγάγει μια πιο αποτελεσματική λύση) και η έλλειψη χρόνου δεν το έκανε Επιτρέψτε να προσθέσετε τη δημιουργία ολόκληρης της δομής, προχωρώντας μόνο για τους λόγους της τελειομανίας.

Έτσι, καταγράφοντας τον ιστότοπο της FCS, κατέστη σαφές ότι η δημιουργία εγγράφων της στατιστικής αναφοράς σχετικά με τις εξαγωγές απαιτεί εκφόρτωση δεδομένων από έγγραφα. Εφαρμογή υπηρεσιών διαχείρισης αγαθών και υπηρεσιών και δημιουργία ενός αρχείου για λήψη.

Υπάρχουν δύο επιλογές εκκίνησης.

Πρώτον: Τοποθέτηση πίνακα με εμπορεύματα από το αρχείο Excel (αυτή η επιλογή επιλέχθηκε ως εργαζόμενος, επειδή υπήρχαν αυτά τα πλεονεκτήματα που δεν ήταν απαραίτητο να χάσετε την επεξεργασία των "καπακιών" του εγγράφου και θα μπορούσατε απλά να αντιγράψετε το το προηγούμενο με την αλλαγή του καπέλου "Τι απαιτείται).

Δεύτερον: Δημιουργία ενός αρχείου XML σύμφωνα με το σύστημα που κατεβάστηκε από τη θέση FCT με τη μορφή "μορφών album των ηλεκτρονικών μορφών εγγράφων". Το άλμπουμ είναι αρκετά μεγάλο αριθμό προγραμμάτων XSD. Βρήκαν ένα σχέδιο της "στατιστικής μορφής κίνησης προϊόντων" και πρόσθετα αρχεία με περιγραφές τύπου για αυτό. Τα συστήματα επισυνάπτονται στο αντικείμενο του αρχείου επεξεργασίας.

Για να δείτε τα προγράμματα XSD, χρησιμοποιήθηκε ένα δωρεάν Microsoft XML Notepad 2007.

Η εικόνα δείχνει το κύριο αρχείο με το σχέδιο XSD "Στατιστική μορφή λογιστικής για τη μετακίνηση των εμπορευμάτων". Η εικόνα υπογράμμισε τα κύρια μπλοκ XSD του κυκλώματος που απαιτείται για την κατανόησή του.

Από το σχήμα είναι σαφές ότι πρέπει να πάρουμε ένα αρχείο XML γεμάτο με τη δομή που καθορίζεται στο υποκατάστημα "XS: στοιχείο" του τύπου StaticFormtyPe.

Η δομή μπορεί να είναι αρκετά περίπλοκη (όπως στην περίπτωσή μας). Με περιγραφές τύπων που υπάρχουν απευθείας στο υποκατάστημα που εισέρχονται σε ξεχωριστό κλάδο ή ακόμα και σε άλλο αρχείο.

Αυτή η δομή έχει έναν τύπο staticformtype, το οποίο με τη σειρά του αποτελείται από έναν βασικό τύπο βασιζόμενου τύπου, ένα σύνολο αντικειμένων διαφορετικών τύπων και χαρακτηριστικών κειμένου.

Βασικός τύπος underocstyle περιγράφεται σε ένα άλλο αρχείο (και στο χώρο ονομάτων)
.

Αυτό το αρχείο περιέχει περισσότερους τύπους τύπων που δεν χρησιμοποιούνται στην περίπτωσή μας.

Τώρα γυρίζουμε στην εργασία στο 1C. Με λίγα λόγια, αυτό που πρέπει να κάνουμε καταλήξουμε στα εξής:

1. Δημιούργησε ένα εργοστάσιο

Nasofabricxdto \u003d createfabricxdto (masciveinfile sumixsd);

2. Το FactoryXDTO δημιουργεί όλους τους πολύπλοκους τύπους δεδομένων, οι οποίοι τότε θα συμπληρώσουμε το δημιουργημένο αρχείο XML:

Staticformtype \u003d πλύσιμο ("Urn: customs.ru: Πληροφορίες: Κατακτήματα: Εκκαθάριση: Στατιστική: 5.4.0", "staticformtype").

Τύποι δεδομένων που περιλαμβάνονται σε κάποιο τύπο μπορούν να ληφθούν από τη συλλογή των ιδιοτήτων του:

Cuorganizationtype \u003d staticformtype. Επιτυχής. Ρίξτε ("παραλήπτης"). Τύπος; Nametype \u003d cuorganizatttype. Επιτυχής. Ρίξτε ("οργανωτικό όνομα"). Τύπος? SWETNAMETYPE \u003d cuorganizatttype. Επιτυχής. Ρίξτε ("κοντό όνομα"). Τύπος; LanguageCoDetype \u003d cuorganizatttype. Λογισμικό. Ρίξτε ("οργανωτικόLanguage"). Τύπος;

3. Όταν δημιουργούνται όλοι πολύπλοκοι τύποι δεδομένων, δημιουργούμε ένα αρχείο XML που βασίζεται σε αυτά των αντικειμένων του εργοστασίου:

Staticformtype_bjectxdto \u003d washformtype (staticformtype); // Συλλογή με έγγραφα NewdoCuments \u003d MyFaBricxdto. Δημιουργία (DocumentStype); Newdocuments.prdocumentName \u003d myfofabrikaxdto. Δημιουργία (prdocumentametype, "περίγραμμα εμπορευμάτων"). Newdocuments.prdocumentNumbumber \u003d πλύσιμο (prdocumentnumbertype, "123 αριθμός"); Newdocuments.prdocumentdate \u003d myfabrikaxdto. Δημιουργία (PrdocumentDateType, "2014-10-05"). Staticformtype_bjectxdto.documents. Attly (newdocuments);

Ταυτόχρονα, συμπληρώστε λεπτομέρειες στοιχειωδών (απλών τύπων).

4. Λοιπόν, τελικά, ξεφλουμίστε όλα από το εργοστάσιοXDTO στο αρχείο:

FileXML \u003d Νέα recordxml (); Filexml.text αρχείο (όνομα); FileXML. Εγγραφή XML (); Washxdto. Recruitxml (filexml, staticformtype_objectxdto); Filexml. Κλείσιμο ();

ΥΣΤΕΡΟΓΡΑΦΟ. Το αρχείο περιέχει το κενό αρχείο εκφόρτωσης στο XML (δημιουργούνται μόνο μερικές λεπτομέρειες, αντανακλώντας όλη την περίπτωση της πλήρωσης του αρχείου) και του σχεδίου XSD.

Αποσυνδέστε όλα τα αρχεία σε κάποιο κατάλογο.

Το XML θα δημιουργηθεί σε αυτό.