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

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

Ανοίξτε τη λειτουργική μονάδα αντικειμένου και δημιουργήστε μια προκαθορισμένη διαδικασία OnResultComposition (ResultDocument, DecryptionData, StandardProcessing)

Μέσα σε αυτήν τη διαδικασία, θα συλλέξουμε δεδομένα και θα δημιουργήσουμε μια αναφορά.
Στη διαδικασία WhenComposingResult, απενεργοποιούμε την τυπική επεξεργασία. StandardProcessing = False;
Στη συνέχεια σχηματίζουμε έναν πίνακα τιμών με αυθαίρετο τρόπο. Τα ονόματα των στηλών του πίνακα τιμών πρέπει να ταιριάζουν με τα μελλοντικά πεδία του συνόλου δεδομένων στο ACS.:


Για παράδειγμα, ας προσθέσουμε τρεις σειρές δεδομένων. Στη συνέχεια, δημιουργούμε την έξοδο της αναφοράς βήμα προς βήμα.

  • Από το σχήμα παίρνουμε τις προεπιλεγμένες ρυθμίσεις.

  • Στέλνουμε δεδομένα αποκρυπτογράφησης στην αντίστοιχη μεταβλητή.

  • Σχηματίζουμε το layout χρησιμοποιώντας το layout builder.

  • Περνάμε το σχήμα, τις ρυθμίσεις και τα δεδομένα αποκρυπτογράφησης στη διάταξη διάταξης.

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

  • Καθαρίζουμε το πεδίο του εγγράφου υπολογιστικού φύλλου.

  • Εμφανίζουμε το αποτέλεσμα σε υπολογιστικό φύλλο.
Το αποτέλεσμα είναι ο παρακάτω κώδικας:
DataCompositionSchema = GetLayout( "Σχήμα διάταξης βασικών δεδομένων"); //Ρυθμίσεις = DataCompositionScheme.DefaultSettings; // - Εάν κάνετε όπως φαίνεται παραπάνω (συνιστάται σε ορισμένους πόρους), τότε όταν αλλάζετε ρυθμίσεις σε λειτουργία πελάτη // δεν θα βλέπετε αυτές τις αλλαγές, επειδή οι ρυθμίσεις θα είναι πάντα οι προεπιλεγμένες. Πώς να το κάνετε σωστά - παρακάτω Settings = Settings Composer. GetSettings(); DecryptData = New DataCompositionDecryptData; Layout Layout Builder = Νέο Εργαλείο δημιουργίας διάταξης διάταξης δεδομένων. LayoutLayout = LayoutComposer. Execute(DataCompositionScheme, Settings, DecryptionData); ExternalDataSet = Νέα δομή( "ExampleValueTable", TZConclusion); DataCompositionProcessor = Νέος DataCompositionProcessor; DataCompositionProcessor. Initialize(LayoutLayout, ExternalDataSet, DecodeData); Αποτέλεσμα εγγράφου. Σαφή(); OutputProcessor = Νέος OutputProcessorofDataCompositionResultIntoSpreadsheetDocument; Επεξεργαστής εξόδου. SetDocument(DocumentResult); Επεξεργαστής εξόδου. Output(DataCompositionProcessor); Προσθήκη διάταξης διάταξης. Μπορούμε να αφήσουμε το όνομα ως προεπιλογή.

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

Προσθέστε πόρους εάν χρειάζεται. Θα μετρήσουν τα αποτελέσματα. Στην περίπτωσή μας, αυτά είναι τα πεδία Ποσότητα και Ποσότητα.

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

Αποθηκεύουμε την αναφορά μας. Το εκκινούμε στον πελάτη και το σχηματίζουμε. Ένα παράδειγμα εκτέλεσης μιας αναφοράς ACS χρησιμοποιώντας δεδομένα από τον πίνακα τιμών φαίνεται στην εικόνα.


Αυτό είναι όλο. Αρκετά απλό, σωστά;

Μπορείτε να κατεβάσετε την αναφορά που προκύπτει για παράδειγμα

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

Το σχήμα σύνθεσης δεδομένων που εφαρμόζεται στο 1C υποστηρίζει τρεις τύπους πηγών δεδομένων (Εικ. 1)

Πηγές δεδομένων

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

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

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

Η τρίτη πηγή δεδομένων είναι "Συνδυασμός". Στην πραγματικότητα, αυτή η πηγή μπορεί να θεωρηθεί ως ένας από τους τύπους επικοινωνίας. Συνδυάζει (μειώνει πολλούς πίνακες σε έναν), χωρίς ωστόσο να συγκρίνει τη σύμπτωση ορισμένων πεδίων. Δηλαδή, εάν οι δύο πίνακες που ενώνονται έχουν 3 και 4 σειρές, αντίστοιχα, τότε η προέλευση δεδομένων που προκύπτει θα έχει 7 σειρές.

Διατύπωση του προβλήματος

Ως πεδίο δοκιμής, θα επιλέξουμε τη βάση SCP, έκδοση 1.3.92.3, που λειτουργεί στην κανονική λειτουργία εφαρμογής.

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

Έτσι, πρέπει:

  1. Πάρτε το τμήμα του πίνακα του εγγράφου απόδειξης.
  2. Ανεβάστε ένα αρχείο στην πηγή δεδομένων "Αντικείμενο".
  3. Συνδέστε αυτές τις δύο πηγές με μια συγκεκριμένη παράμετρο (στην περίπτωσή μας, αυτό θα είναι κώδικας).
  4. Εξαγωγή του πίνακα που προκύπτει.

Διαδικασία εκτέλεσης

Ας περάσουμε από όλα τα παραπάνω βήματα:

  • Δημιουργούμε ένα αίτημα στο τμήμα του πίνακα παραλαβής (Εικ. 2)

Εικ.2

  • Δημιουργία αντικειμένου δεδομένων (Εικ.3).

Εικ.3

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

  • Μεταβείτε στη μονάδα αναφοράς και δημιουργήστε τη διαδικασία "Σχετικά με τη σύνθεση αποτελεσμάτων" εκεί (Εικ. 4).


Εικ.4

Δεν θα περιγράψουμε τη διαδικασία λήψης δεδομένων από εξωτερικό αρχείο, θα δώσουμε προσοχή στο τμήμα του κώδικα που πρέπει να υπάρχει στη διάταξη ώστε να μπορούμε να λάβουμε δεδομένα για το «Σύνολο δεδομένων 2» (Εικ. 5).

Εικ.5

Σπουδαίος! Κατά τη δημιουργία ενός "Object" στον κώδικα διαδικασίας κατά τη σύνδεση, η τιμή της παραμέτρου StandardProcessing πρέπει να είναι False.

Μεταβείτε στην καρτέλα Σύνδεσμοι συνόλου δεδομένων.

Σύνολα σύνδεσης

Πηγαίνουμε στην αντίστοιχη καρτέλα του σχήματος (Εικ. 6).

Βλέπουμε μια ενότητα πίνακα που μοιάζει πολύ με την ενότητα πίνακα που βρίσκεται στο εργαλείο δημιουργίας ερωτημάτων, με μερικές εξαιρέσεις. Το σύνολο προέλευσης και το σύνολο προορισμού συνδέσμων δεν μπορούν να οριστούν σε Όλα, αλλά έχουν προστεθεί αρκετές πρόσθετες στήλες.

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

Πριν δημιουργήσουμε έναν σύνδεσμο, ας ορίσουμε τον σκοπό των στηλών:

  1. Η πηγή συνδέσμου είναι το πρώτο σύνολο δεδομένων από το οποίο θα ληφθούν όλες οι διαθέσιμες τιμές.
  2. Ο δέκτης επικοινωνίας είναι ένα σύνολο δεδομένων από το οποίο θα επιλεγούν οι τιμές που αντιστοιχούν στην κατάστασή μας.
  3. Η έκφραση πηγής είναι το πεδίο ή η έκφραση του πρώτου συνόλου δεδομένων που θα αντιστοιχιστεί.
  4. Η έκφραση του δέκτη είναι μια έκφραση πεδίου ή εξαρτώμενου συνόλου.
  5. Παράμετρος – εάν καθορίσετε ένα όνομα παραμέτρου σε αυτό το πεδίο, τότε η επικοινωνία με το σύνολο δέκτη θα πραγματοποιείται μόνο από την τιμή που καθορίζεται στην παράμετρο.
  6. Λίστα παραμέτρων - καθορίζει τη δυνατότητα χρήσης μιας λίστας τιμών ως παραμέτρου.
  7. Συνθήκη σύνδεσης - καθορίζοντας μια έκφραση εδώ χρησιμοποιώντας πεδία πηγής, μπορείτε να δημιουργήσετε μια συνθήκη, η εκπλήρωση της οποίας θα χρησιμεύσει ως σήμα για τη δημιουργία μιας σύνδεσης.
  8. Αρχική τιμή - δείχνει την αρχική τιμή της σχέσης.
  9. Απαιτούμενος σύνδεσμος - καθορίζει εάν εμπλέκονται τα πεδία που χρησιμοποιούνται στην πηγή (ορίστηκε σε FALSE) ή στον στόχο (ορίστηκε σε TRUE) και, βάσει αυτού, προσθέτει τη σύνδεση στη διάταξη.

Ετσι:

  • Το αποτέλεσμα του αιτήματός μας θα λειτουργήσει ως πηγή συνδέσμου.
  • Το αντικείμενο θα λειτουργεί ως δέκτης.
  • Η έκφραση πηγής θα είναι "NomenclatureCode".
  • Έκφραση δέκτη "Ονοματολογία";
  • Η επικοινωνία θα είναι υποχρεωτική (Εικόνα 7).

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

Εικ.8

Δεν υπήρχε αντιστοιχία για τις δύο κατώτατες γραμμές της αναφοράς στο αρχείο τιμών.

Σε αυτήν την καρτέλα, μπορείτε να δημιουργήσετε έναν απεριόριστο αριθμό συνόλων δεδομένων. Το σύνολο δεδομένων είναι η πηγή των δεδομένων.

Υπάρχουν διάφοροι τύποι συνόλων δεδομένων:

  • Αίτηση;
  • Ενα αντικείμενο;
  • Ένας σύλλογος.

Το αίτημα είναι ένα κανονικό αίτημα 1s, μόνο η γλώσσα ερωτήματος είναι ελαφρώς αναπτυγμένη. Για ευκολία, μπορείτε να χρησιμοποιήσετε τον κατασκευαστή ερωτήματος.

Ένα αντικείμενο είναι ένα εξωτερικό σύνολο δεδομένων, όπως ένας πίνακας τιμών.

Union - η ένωση πολλών συνόλων δεδομένων τύπων ερωτημάτων και αντικειμένων.

Σε αυτό το άρθρο, θα εξετάσουμε εν συντομία όλες τις καρτέλες του σχεδιαστή σχήματος σύνθεσης δεδομένων. Σύνολα δεδομένων Σε αυτήν την καρτέλα, μπορείτε να δημιουργήσετε έναν απεριόριστο αριθμό συνόλων δεδομένων. Το σύνολο δεδομένων είναι η πηγή των δεδομένων. Υπάρχουν διάφοροι τύποι συνόλων δεδομένων: Αίτημα; Ενα αντικείμενο; Ένας σύλλογος. Το αίτημα είναι ένα κανονικό αίτημα 1s, μόνο η γλώσσα ερωτήματος είναι ελαφρώς αναπτυγμένη. Για ευκολία, μπορείτε να χρησιμοποιήσετε τον κατασκευαστή ερωτήματος. Ένα αντικείμενο είναι ένα εξωτερικό σύνολο δεδομένων, όπως ένας πίνακας τιμών. Union - η ένωση πολλών συνόλων δεδομένων τύπων ερωτημάτων και αντικειμένων. Σχέσεις συνόλου δεδομένων Αυτή η καρτέλα περιγράφει σχέσεις δεδομένων. Εδώ μπορείτε να καθορίσετε ποια σύνολα δεδομένων θα συνδεθούν και με ποια πεδία και με ποιες παραμέτρους. Το πιο σημαντικό πράγμα που πρέπει να θυμάστε είναι ότι σε ένα σχήμα σύνθεσης δεδομένων, όταν συνδέετε σύνολα, χρησιμοποιείται πάντα μια αριστερή σύνδεση! Υπολογισμένα πεδία Σε αυτήν την καρτέλα, μπορείτε να δημιουργήσετε πρόσθετα πεδία που δεν περιγράφονται στην καρτέλα Σύνολα δεδομένων. Μπορείτε να χρησιμοποιήσετε τη γλώσσα έκφρασης σύνθεσης δεδομένων, πεδία από βασικά σύνολα δεδομένων και μη καθολικές συναρτήσεις κοινής μονάδας ως εκφράσεις υπολογισμού. Πόροι Οι πόροι είναι συνοπτικά δεδομένα για ομαδοποιήσεις. Στην καρτέλα, μπορείτε να αντιστοιχίσετε πεδία από σύνολα δεδομένων ως πόρο, καθώς και από υπολογισμένα πεδία. Επίσης, για τους πόρους, καθορίζεται η έκφραση με την οποία υπολογίζονται και είναι δυνατό να καθοριστεί η ομαδοποίηση με την οποία θα υπολογιστεί η έκφραση για πόρους. Με βάση τις τιμές των πόρων, υπολογίζονται και τα σύνολα της αναφοράς. Παράμετροι Οι παράμετροι δεδομένων χρησιμοποιούνται συνήθως σε ένα σύνολο δεδομένων ερωτημάτων. Όλες οι παράμετροι που περιγράφονται στο ερώτημα εμφανίζονται στην καρτέλα Παράμετροι. Σε αυτήν την καρτέλα, μπορείτε να καθορίσετε τον τίτλο, τους διαθέσιμους τύπους, τη διαθέσιμη τιμή και ορισμένα άλλα πράγματα. Περισσότερα για τις επιλογές αργότερα. Διατάξεις Από προεπιλογή, η διάταξη της παραγόμενης αναφοράς δημιουργείται αυτόματα από το σύστημα σύνθεσης δεδομένων. Αλλά το σύστημα έχει επίσης τη δυνατότητα για τον προγραμματιστή να σχεδιάζει μεμονωμένες περιοχές της αναφοράς (πεδία, ομαδοποιήσεις, πόρους ...). Όλες οι μεμονωμένες διατάξεις περιοχών που δημιουργούνται σε αυτήν την καρτέλα συνδέονται μόνο με την τρέχουσα αναφορά. Ένθετα σχήματα Τα ένθετα σχήματα χρησιμοποιούνται όταν τα δεδομένα από μια αναφορά πρέπει να χρησιμοποιηθούν σε μια άλλη. Με άλλα λόγια, "ενσωματώνουμε" ένα σχήμα σύνθεσης δεδομένων σε ένα άλλο, υποδεικνύοντας μια σχέση από ένα κοινό πεδίο. Ένα παράδειγμα χρήσης ένθετων σχημάτων μπορείτε να βρείτε σε αυτό το άρθρο. Ρυθμίσεις Σε αυτήν την καρτέλα, ο προγραμματιστής δημιουργεί τυπικές ρυθμίσεις για τη δημιουργία μιας αναφοράς. Η ιεραρχική δομή τοποθετείται στο επάνω μέρος του παραθύρου. Η δομή δημιουργίας αναφορών μπορεί να αποτελείται από τα ακόλουθα στοιχεία: Ομαδοποίηση. Τραπέζι; Διάγραμμα; Ένθετο σχήμα Στο κάτω μέρος του παραθύρου, οι ρυθμίσεις καθορίζονται για ολόκληρη την αναφορά και για κάθε στοιχείο της δομής της αναφοράς. Εν συντομία στις καρτέλες ρυθμίσεων: Επιλεγμένα πεδία – λίστα πεδίων που εμφανίζονται στην αναφορά. Επιλογή – διάφορες επιλογές εγγραφών αναφορών. Σειρά – ταξινόμηση των εγγραφών στην αναφορά. Παράμετροι δεδομένων – τιμή των παραμέτρων αναφοράς. Προσαρμοσμένα πεδία - πρόσθετα πεδία αναφοράς που δημιουργήθηκαν από τον χρήστη. Μορφοποίηση υπό όρους – ορίζεται η υπό όρους μορφοποίηση των εγγραφών της αναφοράς. Άλλες ρυθμίσεις - κάθε είδους πρόσθετες ρυθμίσεις όπως: τίτλος αναφοράς, διάταξη σχεδίασης, διάταξη πεδίου κ.λπ.

41
Έκανα πρόσφατα μια αναφορά με απροσδιόριστο αριθμό στηλών. Ήμουν απρόθυμος να μπλέξω με τον κωδικό, αποφάσισα να το κάνω στο ACS. Δεν υπήρχε πρόβλημα με αυτό, ήταν απαραίτητο να επεκταθεί το αποτέλεσμα σε μια αυθαίρετη διάταξη (δικός τίτλος + ... 27
Παρόλο που οι εκπαιδευόμενοι του SKD το συναντούν την πρώτη ή τη δεύτερη μέρα, θα πρέπει να βρίσκεται στην ενότητα Συχνές ερωτήσεις. Ένα απλό παράδειγμα εξόδου μέσω προγραμματισμού μιας αναφοράς σε μια διάταξη χρησιμοποιώντας τις προεπιλεγμένες ρυθμίσεις. //Λήψη σχήματος από... 18
Κατά τη δημιουργία αναφορών στο ACS, από προεπιλογή, όλες οι ομαδοποιήσεις επεκτείνονται, αλλά συμβαίνει ότι είναι απαραίτητο να εμφανιστεί μια αναφορά με συμπτυγμένες ομαδοποιήσεις αμέσως μετά τη γενιά! Αυτός ο κωδικός στη μονάδα αναφοράς σάς επιτρέπει να συμπτύξετε... 10
Σε αυτήν την καρτέλα, μπορείτε να καθορίσετε τι είδους συνδέσεις γίνονται μεταξύ δύο ή περισσότερων συνόλων δεδομένων, ανάλογα με τις παραμέτρους και τις συνθήκες..png 1. "Πηγή συνδέσμου" - υποδεικνύεται το πρώτο σύνολο δεδομένων, από ... 9
Ότι κατά την ανάπτυξη αναφορών, απαιτείται ένας χρήστης με περιορισμένα δικαιώματα να δημιουργεί μια αναφορά εντελώς χωρίς να ελέγχει δικαιώματα! Ειδικά εάν το RLS έχει ρυθμιστεί. Υπάρχουν διάφοροι τρόποι για να το κάνετε αυτό: 1. Εγκαταστήστε ...