Η διαδικασία για την εργασία με το ενσωματωμένο αντικείμενο αίτησης γλώσσας. Ποιος είναι ο σκοπός του αντικειμένου διαμόρφωσης "Γλώσσα";

Ανάπτυξη μιας λύσης εφαρμογής στο 1C: Enterprise σύστημα αποτελείται από δύο κύριες ενέργειες: οπτικό σχεδιασμό αντικειμένων διαμόρφωσης και περιγραφή της συγκεκριμένης συμπεριφοράς του συστήματος χρησιμοποιώντας την ενσωματωμένη γλώσσα και τη γλώσσα ερωτημάτων.

Η ενσωματωμένη γλώσσα του συστήματος 1C: Enterprise έχει πολλές ομοιότητες με άλλες γλώσσες προγραμματισμού, αλλά δεν είναι άμεσο ανάλογο καμίας από αυτές. Τα πιο σημαντικά χαρακτηριστικά του:

· μαλακή πληκτρολόγηση (ο τύπος μιας μεταβλητής καθορίζεται από τον τύπο της τιμής που περιέχει και μπορεί να αλλάξει κατά τη λειτουργία).

· έλλειψη περιγραφής λογισμικού των τύπων εφαρμογών (δημιουργούνται κατά την προσθήκη αντικειμένων διαμόρφωσης).

· Ενσωματωμένη γλώσσα προσανατολισμένη σε εκδηλώσεις.

· Όλοι οι χειριστές έχουν και ρωσική και αγγλική ορθογραφία, που μπορούν να χρησιμοποιηθούν ταυτόχρονα.

Μονάδες διαμόρφωσης

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

Διακρίνονται οι ακόλουθοι τύποι ενοτήτων λογισμικού:

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

· Ενότητα εφαρμογής. Υπάρχει πάντα μια μονάδα εφαρμογής στη διαμόρφωση. Εκτελείται όταν το σύστημα ξεκινά σε λειτουργία 1C: Enterprise και προορίζεται να επεξεργαστεί ενέργειες που σχετίζονται με την περίοδο εργασίας του τελικού χρήστη. Τα κύρια συμβάντα που μπορούν να υποβληθούν σε επεξεργασία σε μια ενότητα εφαρμογής είναι τα συμβάντα έναρξης και λήξης της εφαρμογής. Η σειρά από την κλήση εμφανίζεται στο ρύζι. 1. Εκδήλωση Πριν από την εκκίνηση του συστήματοςΕμφανίζεται όταν το σύστημα ξεκινά πριν ανοίξει το κύριο παράθυρο. Με το χειρισμό αυτού του συμβάντος, ο προγραμματιστής, για παράδειγμα, έχει την ευκαιρία να αρνηθεί την εκτέλεση εάν δεν πληρούνται οποιεσδήποτε προϋποθέσεις. Εκδήλωση Κατά την εκκίνηση του συστήματοςεμφανίζεται μετά το άνοιγμα του κύριου παραθύρου. Στον χειριστή αυτού του συμβάντος, μπορείτε, για παράδειγμα, να εμφανίσετε πληροφορίες σχετικά με άτομα γενεθλίων κ.λπ.

· Μονάδα εξωτερικής σύνδεσης. Υπάρχει πάντα μια ενιαία εξωτερική μονάδα σύνδεσης στη διαμόρφωση. Εκτελείται όταν γίνεται πρόσβαση στην εφαρμογή ως διακομιστής COM (σε λειτουργία εξωτερικής σύνδεσης). Στη λειτουργία εξωτερικής σύνδεσης, δεν εκκινείται η πλήρης εφαρμογή 1C: Enterprise, αλλά μια "ελαφριά έκδοση" στην οποία δεν είναι διαθέσιμες όλες οι λειτουργίες που σχετίζονται με τον ένα ή τον άλλο τρόπο με την οργάνωση της διεπαφής χρήστη.

· Ενότητες αντικειμένων εφαρμογής. Κάθε αντικείμενο διαμόρφωσης εφαρμογής (για παράδειγμα, ένα έγγραφο λογισμικού ή ένας κατάλογος), τα δεδομένα του οποίου μπορούν να τροποποιηθούν στη λειτουργία 1C: Enterprise, έχει τη δική του ενότητα. Εκτός από την περιγραφή των μεταβλητών και του κύριου προγράμματος, μια ενότητα αντικειμένου μπορεί να περιέχει μια περιγραφή διαδικασιών - χειριστές συμβάντων που σχετίζονται με ένα δεδομένο αντικείμενο διαμόρφωσης. Υπάρχουν δύο γεγονότα που εγείρονται σε όλα τα αντικείμενα - Πριν την ΗχογράφησηΚαι Κατά την Εγγραφή.

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

Συμφραζόμενα

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

· Παγκόσμιο πλαίσιο, διαθέσιμο σε όλα τα άλλα πλαίσια, αποτελείται από τα ακόλουθα μέρη:

§ ιδιότητες, μέθοδοι και συμβάντα του παγκόσμιου περιβάλλοντος (για παράδειγμα, η ιδιότητα Ημερομηνία Εργασίας);

§ απαριθμήσεις συστήματος και σύνολα τιμών συστήματος (για παράδειγμα, Επιστροφή CodeDialogΚαι Σύμβολα).

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

· Στο πλαίσιο μιας μονάδας εφαρμογής ή μιας εξωτερικής μονάδας σύνδεσηςΔιατίθενται εξαγόμενες διαδικασίες και λειτουργίες κοινών μονάδων.

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

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

Η σχέση μεταξύ των πλαισίων φαίνεται σχηματικά στο ρύζι. 2.Επί ρύζι. 3απεικονίζει την πιθανή αλληλεπίδραση της ενότητας φόρμας περιοδικού και της ενότητας εγγράφων.


Διαδικασίες και λειτουργίες

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

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

Παράδειγμα 1:

Διαδικασία Υπολογισμός()

Ποσό=Τιμή*Ποσότητα;

Τέλος Διαδικασίας

Υπολογισμός(); // Κλήση της διαδικασίας

Παράδειγμα 2:

Perem Glob;

// Περιγραφή της διαδικασίας

Υπολογισμός Διαδικασίας (Par1, Par2, ParZ) Εξαγωγή

Glob = Glob + Par1 + Par2 + ParZ;

Τέλος Διαδικασίας

Υπολογισμός(5, 6, 7); // Κλήση της διαδικασίας

Παράδειγμα 3:

Perem Glob;

// Περιγραφή της συνάρτησης

Υπολογισμός συνάρτησης (Par1, Par2, ParZ) Εξαγωγή

Lok = Glob + Par1 + Par2 + ParZ;

Κλείδωμα επιστροφής.

EndFunction

Res = Υπολογισμός (5, 6, 7); // Κλήση συνάρτησης

Τύποι δεδομένων

Number, String, Date, Boolean, Undefined, Null (για απροσδιόριστες τιμές σε πίνακες βάσης δεδομένων)

Τύπος.Οι τιμές του ειδικού τύπου "Τύπος" απαιτούνται για την αναπαράσταση και σύγκριση τύπων δεδομένων, για παράδειγμα:

Δήλωση μεταβλητών

Οι μεταβλητές εμφανίζονται στο πρόγραμμα στις ακόλουθες περιπτώσεις:

· αφού δηλωθούν χρησιμοποιώντας τον τελεστή Μεταβλητή.

Περέμ<Имя_переменной>[Εξαγωγή];

Μεταβλητή A, B;

· μετά την πρώτη τοποθέτηση του ονόματος της μεταβλητής στην αριστερή πλευρά του τελεστή εκχώρησης.

Παράδειγμα:

· κατά τον καθορισμό των ονομάτων των αναγνωριστικών των επεξεργασμένων στοιχείων διαλόγου.

· κατά τον καθορισμό επίσημων παραμέτρων των διαδικασιών.

Εκμαγείο

Η χύτευση τύπου μπορεί να είναι ρητή ή σιωπηρή.

Για ρητή μετάδοση, υπάρχουν οι ακόλουθες συναρτήσεις: Αριθμός, Συμβολοσειρά, Ημερομηνία, Δυαδική. Η χύτευση σιωπηρού τύπου εκτελείται αυτόματα από το σύστημα κατά την αξιολόγηση των εκφράσεων.

Παράδειγμα: Η τιμή της αριθμητικής μεταβλητής MonthNumber μετατρέπεται σιωπηρά σε συμβολοσειρά και προστίθεται σε άλλη συμβολοσειρά:

A = "Month" + MonthNumber;

καταλόγους

Η εργασία με καταλόγους πραγματοποιείται χρησιμοποιώντας τα ακόλουθα αντικείμενα:

· Διευθυντής καταλόγων.Παρέχει πρόσβαση σε όλα τα βιβλία αναφοράς διαμόρφωσης. Οι ιδιότητες αυτού του αντικειμένου συμπίπτουν με τα ονόματα των καταλόγων και περιέχουν αντικείμενα του τύπου DirectoryManager.

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

· Σύνδεσμος καταλόγου.Προσδιορίζει με σαφήνεια ένα στοιχείο (ομάδα) του καταλόγου και σας επιτρέπει να έχετε πρόσβαση σε αυτό σε λειτουργία μόνο για ανάγνωση. Μέσω των ιδιοτήτων και των μεθόδων αυτού του αντικειμένου, μπορείτε να διαβάσετε τις λεπτομέρειες ενός στοιχείου (ομάδας) και να αποκτήσετε πρόσβαση στα τμήματα του πίνακα. Η τιμή αυτού του τύπου αποθηκεύεται σε χαρακτηριστικά που αναφέρονται σε στοιχεία αυτού του καταλόγου, για παράδειγμα, στο χαρακτηριστικό Υπάλληλοςέγγραφο ΠΡΟΣΛΗΨΗαποθηκεύεται ένας σύνδεσμος προς ένα συγκεκριμένο στοιχείο καταλόγου Υπαλλήλους.

· DirectoryObject.Παρέχει δυνατότητα εγγραφής σε ένα στοιχείο. Αυτό το αντικείμενο περιέχει μεθόδους που επηρεάζουν ένα στοιχείο στη βάση δεδομένων, για παράδειγμα, μεθόδους ΣημειωσεΚαι Διαγράφω.

· Επιλογή καταλόγου.Παρέχει τη δυνατότητα επανάληψης μέσω στοιχείων καταλόγου. Η δειγματοληψία μπορεί να είναι άμεση ή ιεραρχική.

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

Στο σύστημα 1C: Enterprise;

1. Τα κείμενα διαμόρφωσης και βάσης δεδομένων αποθηκεύονται στη μορφήUNICODE

3. Δεν υπάρχει σωστή απάντηση

6.75 Για ποιο σκοπό αποθηκεύονται τα κείμενα διαμόρφωσης και βάσης δεδομένων στη μορφήUNICODE?

1. Η μορφή UNICODE διασφαλίζει την αμετάβλητη (ανεξαρτησία της πλατφόρμας λογισμικού του λειτουργικού συστήματος) της παρουσίασης πληροφοριών

2. ΜορφήUNICODE σας επιτρέπει να υποστηρίζετε διαφορετικές γλώσσες στο σύστημα 1C:Enterprise

3. Δεν υπάρχει σωστή απάντηση

6.76 Καθορισμένοι μηχανισμοί διεθνοποίησης. ..

1. τεχνολογική πλατφόρμα 1C: Enterprise

2. εφαρμοσμένες λύσεις

3. Οι απαντήσεις 1 και 2 είναι σωστές

4. δεν υπάρχει σωστή απάντηση

6.77 Τι είναι ο κωδικός τοπικής προσαρμογής;

1. Μια συμβολοσειρά που αποτελείται από έναν κωδικό γλώσσας και έναν κωδικό χώρας που προσδιορίζει κάποια περιοχή του κόσμου

2. Κωδικός προϊόντος λογισμικού (αναγράφεται στη φόρμα εγγραφής, τεκμηρίωση που περιλαμβάνεται στο κιτ παράδοσης)

3. Μορφοποίηση επιλογής συμβολοσειράς για μετατροπή

4. Η απάντησή της είναι σωστή

6.78 Είναι αλήθεια ότι στο 1C:Enterprise 8 οποιαδήποτε πληροφορία κειμένου μπορεί να περιλαμβάνει ταυτόχρονα χαρακτήρες από διαφορετικές γλώσσες;

1. Ναι, αφού όλα τα κείμενα διαμόρφωσης και βάσης δεδομένων αποθηκεύονται στη μορφήUNICODE

2. Ανάλογα με τις ρυθμίσεις που καθορίστηκαν κατά τη δημιουργία της βάσης πληροφοριών

3. Μόνο εάν αυτό παρέχεται από τη διαμόρφωση

6.79 Ποιος είναι ο σκοπός του αντικειμένου διαμόρφωσης "Language";

1. Για να δημιουργήσετε μια διεπαφή προγράμματος σε διαφορετικές γλώσσες

2. Για να δημιουργήσετε έγγραφα κειμένου σε διαφορετικές γλώσσες

3. Ένα τέτοιο αντικείμενο δεν υπάρχει στο 1C: Enterprise 8

6.80 Πώς μπορώ να αλλάξω τη γλώσσα για την προβολή (επεξεργασία) της διαμόρφωσης;

1. Χρησιμοποιώντας το κουμπί επιλογής γλώσσας που βρίσκεται στη γραμμή κατάστασης στα δεξιά του κουμπιού "NUM".

2. Μέσω του στοιχείου μενού "Διαμόρφωση - Γλώσσα επεξεργασίας διαμόρφωσης"

3. Σε 1 C: Enterprise αυτή η δυνατότητα δεν υπάρχει

4. Η Verpa απαντά 1 και 2

6.81 Ποια είναι η ορθογραφία των ενσωματωμένων τελεστών γλώσσας;

1. Μόνο ρωσική γραφή

3.

6.82 Είναι δυνατή η χρήση ενσωματωμένων τελεστών γλώσσας στη ρωσική και αγγλική γραφή σε ένα κείμενο πηγής;

1. Μόνο με ειδικές ρυθμίσεις διαμόρφωσης

2. Ναι, αυτό δεν απαιτεί αλλαγή των ρυθμίσεων του διαμορφωτή

3. Όχι, καθώς η επιλογή ενσωματωμένης γλώσσας έχει οριστεί στις ιδιότητες διαμόρφωσης

6.83 Ποιος είναι ο σκοπός της ενσωματωμένης γλώσσας;

1. Για να προσδιορίσετε την προεπιλεγμένη διεπαφή προγράμματος

2. Να περιγράψει (στο στάδιο ανάπτυξης της διαμόρφωσης) αλγόριθμους για τη λειτουργία μιας εφαρμοσμένης εργασίας

3. Δεν υπάρχει σωστή απάντηση

6.84 Ποια είναι η ορθογραφία των ενσωματωμένων γλωσσικών συναρτήσεων;

1. Μόνο ρωσική γραφή

2. Μόνο αγγλική ορθογραφία

3. Ρωσική και αγγλική γραφή

4. Ανάλογα με τις ρυθμίσεις του διαμορφωτή

6.85 Τι σημαίνει η παράμετρος L;(μεγάλο) στη συμβολοσειρά μορφοποίησης της συνάρτησης μορφοποίησης NumberInWriting();

1. Υπογράψτε "έξοδος του κλασματικού μέρους σε αριθμούς/λέξεις"

2. Αριθμός δεκαδικών ψηφίων

3. Κωδικός εντοπισμού

7. Πινακοποιημένο μοντέλο της λύσης εφαρμογής

7.1 Κατά τη ρύθμιση περιορισμών πρόσβασης δεδομένων, μπορείτε να ορίσετε αρκετούς περιορισμούς (με βάση τον αριθμό των πεδίων):

1. Για το «Διαβάστε» δεξιά

2. Για το σωστό "Αλλαγή"

3. Για το δικαίωμα «Προσθήκη».

4. Για το δικαίωμα «Διαγραφή».

5. Για όλα τα παραπάνω δικαιώματα

6. Για όλα τα πιθανά δικαιώματα

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

1. Μόνο τιμές παραμέτρων περιόδου λειτουργίας

2. Μόνο δεδομένα από πίνακες (ερωτήματα)

3. Τιμές παραμέτρων περιόδου λειτουργίας και δεδομένα από πίνακες (ερωτήματα)

4. Μόνο τιμές με τύπους: Number, String, Boolean, Date

7.3 Ποια από τις παραπάνω μεθόδους μπορεί να χρησιμοποιηθεί ώστε ο κωδικός και το όνομα του καταλόγου να εμφανίζονται στην ενότητα «Πεδία» του σχεδιαστή ερωτήματος;

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

2. Χωρίς να συμπληρώσετε την ενότητα «Πίνακες», επιλέξτε αμέσως τα απαραίτητα αντικείμενα από τους πίνακες - πηγές δεδομένων της ενότητας «Βάση δεδομένων», μεταφέροντάς τα στην ενότητα «Πεδία» χρησιμοποιώντας την τεχνολογία Drag & Drop. Η ενότητα «Πίνακες» συμπληρώνεται αυτόματα

3. Συμπληρώστε πρώτα την ενότητα "Πίνακες" και, στη συνέχεια, επιλέγοντας τα απαραίτητα αντικείμενα από αυτήν την ενότητα, μεταφέρετέ τα στην ενότητα "Πεδία" χρησιμοποιώντας τα κουμπιά στη φόρμα ">" """

4. Οι απαντήσεις Ι και 3 είναι σωστές

5. Οι απαντήσεις I, 2 και 3 είναι σωστές

7.4 Για να αυξήσετε την ταχύτητα εκτέλεσης του αιτήματος, πρέπει:

1. Ορίστε παραμέτρους για τους περισσότερους πραγματικούς πίνακες

2. Ορίστε παραμέτρους για τους περισσότερους εικονικούς πίνακες

3. Αντί να καθορίσετε παραμέτρους για έναν πραγματικό ή εικονικό πίνακα, χρησιμοποιήστε την επιλογή που καθορίζεται από τη δομή της γλώσσας ερωτήματος "WHERE"

4. Οι απαντήσεις I και 2 είναι σωστές

7.5 Είναι δυνατόν να εκχωρήσετε ένα νέο όνομα (ψευδώνυμο) για αυτό κατά την επιλογή ενός πίνακα προέλευσης στην ενότητα "Πίνακες" του σχεδιαστή ερωτήματος;

1. ναι μπορείς

2. Ναι, μπορείτε, αλλά μόνο εάν η προέλευση δεδομένων είναι ένα ένθετο ερώτημα

3. Ναι, μπορείτε, αλλά μόνο εάν η προέλευση δεδομένων είναι εικονικός πίνακας

4. Οι απαντήσεις 1 και 2 είναι σωστές

5. Οι απαντήσεις 1 και 3 είναι σωστές

7.6 Μπορεί να χρησιμοποιηθεί ένθετο ερώτημα:

1. Ως πίνακας προέλευσης δεδομένων

2. Ως τελεστής των πράξεων σύγκρισης "B" ή "NOT B" κατά τον ορισμό παραμέτρων εικονικού πίνακα

3. Ως τελεστής των πράξεων σύγκρισης "B" ή "NOT B" κατά τον καθορισμό της κατασκευής της γλώσσας ερωτήματος "WHERE"

4. Η Verpa απαντά 1, 2 και 3

7.7 Είναι δυνατόν να ληφθούν σύνολα κατά ιεραρχία χρησιμοποιώντας τον σχεδιαστή ερωτημάτων;

1. Είναι δυνατό εάν καθορίσετε τον συνολικό τύπο "Στοιχεία και Ιεραρχία" για το πεδίο ομαδοποίησης

2. Είναι δυνατό εάν καθορίσετε τον συνολικό τύπο "Μόνο Ιεραρχία" για το πεδίο ομαδοποίησης

3. Η Verpa απαντά 1 και 2

7.8 Στην καρτέλα "Συνθήκες" του σχεδιαστή ερωτήματος, μπορεί να δημιουργηθεί μια ξεχωριστή γραμμή της λίστας συνθηκών:

1. Κάντε διπλό κλικ με το αριστερό κουμπί του ποντικιού στο επιθυμητό πεδίο στη λίστα των διαθέσιμων πεδίων

2. Μετακινώντας το επιθυμητό πεδίο στη λίστα χρησιμοποιώντας την τεχνολογία Drag & Drop

3. Κάντε κλικ στο κουμπί "Προσθήκη". Εάν η συνθήκη είναι αυθαίρετη, τότε το κείμενο συνθήκης μπορεί να εισαχθεί "χειροκίνητα"

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

5. Όλες οι παραπάνω απαντήσεις είναι σωστές

7.9 Στην καρτέλα «Σύνδεσμοι» του σχεδιαστή ερωτημάτων, μπορείτε να ορίσετε:

1. Σύνδεση πινάκων προέλευσης δεδομένων και σχέσεων μεταξύ τους

2. Συνδυασμός πινάκων προέλευσης δεδομένων και συνδέσεων μεταξύ τους

3. Σχέσεις μεταξύ των πεδίων του πίνακα που προέκυψαν ως αποτέλεσμα του ερωτήματος

4. Σχέσεις μεταξύ των πεδίων του πίνακα προέλευσης δεδομένων και του πίνακα που προέκυψε ως αποτέλεσμα του ερωτήματος

7.10 Όταν συνδέετε πίνακες προέλευσης δεδομένων στον σχεδιαστή ερωτημάτων, μπορείτε:

1. Εκχωρήστε μια σύνδεση χωρίς να καθορίσετε την κατάσταση σύνδεσης

2. Εκχωρήστε μια σύνδεση που υποδεικνύει την κατάσταση σύνδεσης και αυτή η συνθήκη μπορεί να είναι μόνο μία

3. Εκχωρήστε μια σύνδεση που υποδεικνύει την κατάσταση σύνδεσης και αυτή η συνθήκη μπορεί να είναι απλή

4. Εκχωρήστε τον απαιτούμενο αριθμό συνδέσεων υποδεικνύοντας τον απαιτούμενο αριθμό συνθηκών επικοινωνίας και αυτές οι συνθήκες μπορεί να είναι είτε απλές είτε αυθαίρετες

7.11 Η δημιουργία μιας σύνδεσης μεταξύ πινάκων προέλευσης δεδομένων στον σχεδιαστή ερωτημάτων επιτρέπει:

1. Σύνδεση μόνο δύο πινάκων προέλευσης δεδομένων

2. Σύνδεση του απαιτούμενου αριθμού πινάκων προέλευσης δεδομένων

3. Η σύνδεση μόνο δύο πινάκων προέλευσης δεδομένων και το πλαίσιο ελέγχου "Όλα" πρέπει να είναι επιλεγμένο για τουλάχιστον έναν από τους πίνακες

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

Εδώ είναι μερικά μόνο από τα πιο σημαντικά χαρακτηριστικά της ενσωματωμένης γλώσσας:

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

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

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

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

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

Προκαθορισμένοι τύποι δεδομένων

Η πλατφόρμα 1C:Enterprise 8.0 επιτρέπει στον προγραμματιστή να χρησιμοποιεί διάφορους τύπους δεδομένων.

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


Περιγραφή πρωτόγονους τύπους δεδομένων:

  • ΜΗΔΕΝΙΚΟ- λείπει τιμή. Χρησιμοποιείται, για παράδειγμα, σε ερωτήματα.
  • Απροσδιόριστος- κενή, απροσδιόριστη τιμή. Χρησιμοποιείται, για παράδειγμα, κατά την αξιολόγηση της μετάδοσης παραμέτρων, εάν αυτή η παράμετρος παραλείπεται κατά την κλήση μιας διαδικασίας ή μιας συνάρτησης. Οι λεπτομέρειες που έχουν σύνθετο τύπο δεδομένων είναι από προεπιλογή του τύπου "Undefined".
  • Boolean- περιέχει δύο τιμές: True ή False. Χρησιμοποιείται, για παράδειγμα, σε λογικές εκφράσεις - μια λογική έκφραση είναι τύπου "Boolean".
  • ημερομηνία- περιέχει ημερομηνία και ώρα. Η προεπιλεγμένη τιμή είναι 01/01/01 00:00:00 ημερομηνία έναρξης της εποχής μας. Ο χρόνος μετριέται από την αρχή της ημέρας. Μια έκφραση που έχει κυριολεκτικό τύπο "ημερομηνία" γράφεται ως εξής - "00010101000000". Πρώτα καταγράφεται το έτος, μετά ο μήνας, μετά η ημερομηνία και μετά η ώρα. Είναι δυνατή η ακόλουθη καταχώρηση: "20041031". Η προεπιλεγμένη ώρα είναι η αρχή της ημέρας.
  • Γραμμή- μπορεί να είναι μεταβλητό, σταθερό ή απεριόριστο μήκος. Γενικά, συνιστάται η χρήση χορδών μεταβλητού μήκους.
  • Αριθμός- το βάθος αριθμού bit έχει αυξηθεί στα 38 bit.
  • Τύπος- χρησιμεύει για τον προσδιορισμό των τύπων τιμών. Χρησιμοποιείται, για παράδειγμα, για σύγκριση τύπων δεδομένων. Δεν έχει κυριολεκτικά και επιστρέφεται από τις συναρτήσεις Type(<Имя типа>) ή TypeValue(<Значение>).

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


Τύποι δεδομένων "Καθολικές συλλογές" - μια λίστα (σύνολο) αντικειμένων δεδομένων οποιουδήποτε τύπου, οι τιμές των οποίων μπορούν να προσπελαστούν με ωμή βία ή με ένα καθορισμένο ευρετήριο (κλειδί). Η αρίθμηση των στοιχείων συλλογής ξεκινά από το 0. Όλοι οι καθορισμένοι τύποι δεδομένων δημιουργούνται μόνο μέσω προγραμματισμού.

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

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

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

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

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

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

COMSafeArray. Αντιπροσωπεύει ένα περιτύλιγμα αντικειμένου πάνω από έναν πολυδιάστατο πίνακα SAFEARRAY

Διαδικασία SelectFromFileClick(Element) // Επιλογή αρχείου με viewingFileSelectionDialog = NewFileSelectionDialog(FileSelectionDialogMode.Open); FileSelectionDialog.Directory = ""; FileSelectDialog.Preview = True; FileSelectionDialog.FilterIndex = 0; Αν FileSelectDialog.Select() Τότε File = New File(FileSelectDialog.FullFileName); Εικόνα = NewValueStorage(NewImage(FileSelectionDialog.FullFileName)); DisplayImage(); τέλος εαν; Τέλος Διαδικασίας

THIS_KEYWORD
<Это конструкция языка>,
<Это конструкция языка>
THIS_FUNCTION(<Это конструкция языка>)

Στους κανόνες που περιγράφουν μια γλώσσα ερωτήματος, οι δομές γλώσσας υποδεικνύονται σε γωνιακές αγκύλες. Οι λέξεις-κλειδιά και τα ονόματα συναρτήσεων περιγράφονται με κεφαλαία γράμματα.

Οι γλωσσικές κατασκευές μπορούν να περιέχουν προαιρετικά στοιχεία - λέξεις-κλειδιά κ.λπ. Στους κανόνες που περιγράφουν τη γλώσσα ερωτήματος, τα προαιρετικά στοιχεία περικλείονται σε αγκύλες "[" και "]":

[ΑΥΤΗ ΕΙΝΑΙ ΜΙΑ ΠΡΟΑΙΡΕΤΙΚΗ ΛΕΞΗ] [<Это необязательная конструкция>]

Σε ορισμένες περιπτώσεις, ο σχεδιασμός της γλώσσας μπορεί να χρησιμοποιεί ένα από τα πολλά εναλλακτικά στοιχεία. Τέτοια στοιχεία στους κανόνες παρατίθενται μέσω μιας κάθετης γραμμής "|":

EITHER_THIS_WORD | Ή ΑΥΤΗ_ΛΕΞΗ
<Либо эта конструкция> | <Либо эта конструкция>

Οι περιγραφές όλων των δομών συνοδεύονται από παραδείγματα που εξηγούν πώς χρησιμοποιούνται στη γλώσσα ερωτημάτων.

Σχόλια στη Γλώσσα ερωτήματος

Το όργανο αιτήματος μπορεί να περιλαμβάνει σχόλια. Ένα σχόλιο θεωρείται ότι είναι μέρος μιας γραμμής που ξεκινά με την ακολουθία χαρακτήρων // και συνεχίζει μέχρι το τέλος της γραμμής:

// Αυτό είναι ένα σχόλιο.

Τα σχόλια αγνοούνται όταν εκτελείται το αίτημα.

Δίγλωσση αναπαράσταση λέξεων-κλειδιών

Ένα από τα σημαντικά χαρακτηριστικά της γλώσσας ερωτημάτων 1C: Enterprise είναι ότι, όπως και στην ενσωματωμένη γλώσσα, όλες οι λέξεις-κλειδιά έχουν δύο ορθογραφία: στα ρωσικά και στα αγγλικά. Αργότερα σε αυτό το κεφάλαιο, υποδεικνύονται η ρωσική ορθογραφία των λέξεων-κλειδιών. Ακολουθεί ένας πίνακας που δείχνει την αντιστοιχία μεταξύ των ρωσικών και των αγγλικών και τις επιλογές ορθογραφίας για λέξεις-κλειδιά στη γλώσσα ερωτήματος...... (παραλείπεται)

Κύριες ενότητες του κειμένου αιτήματος

Το κείμενο της αίτησης μπορεί να περιγραφεί από τον ακόλουθο κανόνα:

<Описание запроса>
[<Объединение запросов>]
[<Упорядочивание результатов>]
[ΑΥΤΟΜΑΤΗ ΠΑΡΑΓΓΕΛΙΑ]
[<Описание итогов>]

Όπως φαίνεται από αυτόν τον κανόνα, το κείμενο αίτησης αποτελείται από πολλά μέρη ή ενότητες:

Στο τμήμα<Упорядочивание результатов>Μπορείτε να ορίσετε συνθήκες παραγγελίας για τις σειρές στο αποτέλεσμα του ερωτήματος. Η παραγγελία του αποτελέσματος ενός ερωτήματος συζητείται στη σελίδα 324.

Η ΑΥΤΟΜΑΤΗ ΠΑΡΑΓΓΕΛΙΑ σάς επιτρέπει να ενεργοποιήσετε την αυτόματη ταξινόμηση σειρών στο αποτέλεσμα του ερωτήματος. Αυτή η λειτουργία περιγράφεται στη σελίδα 331.

Στο τμήμα<Описание итогов>Μπορείτε να καθορίσετε ποια σύνολα πρέπει να υπολογίζονται στο ερώτημα. Αυτή η ενότητα περιγράφεται στη σελίδα 332.

Περιγραφή αιτήματος

Όπως ήδη αναφέρθηκε, το κείμενο της αίτησης πρέπει απαραίτητα να περιέχει μια ενότητα περιγραφής αιτήματος, η οποία ορίζει:

Πεδία που θα περιέχονται στο αποτέλεσμα του αιτήματος.

Πηγές δεδομένων ερωτήματος - πίνακες προέλευσης.

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

Η σειρά με την οποία ομαδοποιούνται τα αποτελέσματα του ερωτήματος.

Η ενότητα περιγραφής αιτήματος αποτελείται από πολλές αλληλένδετες προτάσεις:

ΕΠΙΛΟΓΗ [ΔΙΑΦΟΡΕΤΙΚΟ] [ΠΡΩΤΟ<Количество>]
<Список полей выборки>
[ΑΠΟ<Список источников>]
[ΟΠΟΥ<Условие отбора>]
[ΟΜΑΔΑ ΑΠΟ<Поля группировки>]
[ΕΧΟΝΤΑΣ<Условие отбора>]
[ΓΙΑ ΑΛΛΑΓΗ [<Список таблиц верхнего уровня>]]

Η περιγραφή του αιτήματος ξεκινά με μια απαιτούμενη λέξη-κλειδί ΕΠΙΛΕΓΩ.

Προσφορά ΟΠΟΥ<Условие отбора> σας επιτρέπει να φιλτράρετε το αποτέλεσμα του ερωτήματος. Το αποτέλεσμα περιλαμβάνει μόνο εκείνες τις εγγραφές για τις οποίες ισχύει η καθορισμένη συνθήκη. Οι κανόνες για την περιγραφή των συνθηκών επιλογής αναλύονται στη σελίδα 315.

Προσφορά ΓΙΑ ΑΛΛΑΓΗπροορίζεται να υποδείξει την ανάγκη αποκλεισμού των δεδομένων που διαβάζονται σε μια συναλλαγή.

Προσφορά ΟΜΑΔΑσας επιτρέπει να περιγράψετε τη σειρά με την οποία ομαδοποιούνται τα αποτελέσματα των ερωτημάτων. Η ομαδοποίηση συζητείται λεπτομερώς στη σελίδα 316.

Προσφορά ΕΧΟΝΤΑΣσας επιτρέπει να επιβάλλετε όρους στην ομαδοποίηση των αποτελεσμάτων. Περιγράφεται στη σελίδα 318.

Όλα τα παραδείγματα ερωτημάτων σε αυτό το κεφάλαιο παρέχουν το κείμενο του ερωτήματος και το αποτέλεσμα του ερωτήματος. Υποτίθεται ότι το κείμενο αίτησης μεταβιβάζεται ως παράμετρος στη μέθοδο Execute του αντικειμένου Request.

Ας δώσουμε ένα παράδειγμα ενός αρκετά απλού ερωτήματος που αποτελείται από μία πρόταση SELECT και μια λίστα πεδίων επιλογής.

//Πρέπει να εμφανίσετε μια λίστα τιμολογίων στην αναφορά.

Αποτέλεσμα ερωτήματος:

Χρήση της λέξης ΔΙΑΦΟΡΕΤΙΚΟΣ

Σε πολλές περιπτώσεις, είναι επιθυμητό να μην επαναλαμβάνονται οι ίδιες σειρές σε μια αναφορά.

// Είναι απαραίτητο να μάθετε ποιοι αντισυμβαλλόμενοι γενικά
// τα αγαθά αποστέλλονται για την περίοδο.
Επιλέξτε Document.Invoice.Counterparty

Αποτέλεσμα ερωτήματος:

Μπορεί να φανεί ότι το αποτέλεσμα του ερωτήματος περιέχει πολλές επαναλαμβανόμενες γραμμές, γεγονός που μειώνει τη σαφήνειά του. Για να αποφευχθεί η επανάληψη, η λέξη-κλειδί ΔΙΑΦΟΡΕΤΙΚΟ θα πρέπει να προσδιορίζεται στην περιγραφή του ερωτήματος.

Επιλέξτε Διάφορα έγγραφα.Τιμολόγιο.Αντισυμβαλλόμενος

Αποτέλεσμα ερωτήματος:

Χρήση της λέξης ΠΡΩΤΟΣ

Σε ορισμένες περιπτώσεις, είναι απαραίτητο να εμφανιστεί ένας περιορισμένος αριθμός σειρών σε μια αναφορά. Για να το κάνετε αυτό, στην περιγραφή του ερωτήματος θα πρέπει να καθορίσετε τη λέξη-κλειδί ΠΡΩΤΑ και μετά - τον απαιτούμενο αριθμό γραμμών.

// Είναι απαραίτητο να επιλέξετε τα πέντε πιο ακριβά αγαθά.
// Η επιλογή πρέπει να γίνει με φθίνουσα σειρά της τιμής του προϊόντος.
Επιλέξτε Πρώτα 5
Directory.Nomenclature.Name,
Directory.Nomenclature.PurchasingPrice
Ταξινόμηση κατά Directory.Nomenclature.PurchasePrice Φθίνουσα

Αποτέλεσμα ερωτήματος:

Περιγραφή των πεδίων επιλογής

Μετά την υποχρεωτική λέξη-κλειδί SELECT (και τις επιλέξιμες λέξεις DIFFERENT και FIRST), καθορίζεται μια λίστα πεδίων επιλογής στο κείμενο του αιτήματος. Αυτά τα πεδία θα υποβληθούν σε επεξεργασία κατά την ανάκτηση δεδομένων σε ένα αίτημα. Το αποτέλεσμα του ερωτήματος θα έχει επίσης το σύνολο των πεδίων που ορίζονται σε αυτήν τη λίστα. Τα πεδία επιλογής περιγράφονται σύμφωνα με τους ακόλουθους κανόνες:

<Описание поля>[ [ΠΩΣ]<Псевдоним поля>]

<Выражение>[.<Группа полей>]

Η λίστα των πεδίων επιλογής αποτελείται από ένα ή περισσότερα στοιχεία που χωρίζονται με κόμμα. Καθε<Поле выборки>αποτελείται από μια περιγραφή του πεδίου επιλογής και ένα προαιρετικό ψευδώνυμο πεδίου.

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

Σχόλιο!Όταν καθορίζετε έναν αστερίσκο "*" στη λίστα πεδίων επιλογής, τα εικονικά πεδία των πινάκων προέλευσης δεν περιλαμβάνονται στο αποτέλεσμα.

<Описание поля>ορίζει πώς θα πρέπει να δημιουργούνται οι τιμές των πεδίων. Στην απλούστερη περίπτωση, το πεδίο επιλογής είναι ένας σύνδεσμος προς ένα πεδίο στον πίνακα προέλευσης. Ο σύνδεσμος μπορεί να καθοριστεί προσδιορίζοντας τον πίνακα που περιέχει αυτό το πεδίο ή χωρίς να καθορίσετε τον ίδιο τον πίνακα. Η αποαναφορά πεδίου συζητείται στο.

Γενικά, το πεδίο επιλογής μπορεί να είναι όχι μόνο ένας σύνδεσμος προς ένα πεδίο στον πίνακα προέλευσης, αλλά και κάποιο<Выражение>. Οι εκφράσεις αναλύονται λεπτομερώς στη σελίδα 344.

Τα αποτελέσματα ερωτημάτων μπορούν να ομαδοποιηθούν χρησιμοποιώντας συγκεντρωτικές συναρτήσεις που καθορίζονται ως εκφράσεις σε επιλεγμένα πεδία. Η ομαδοποίηση των αποτελεσμάτων ερωτήματος συζητείται στη σελίδα 316. Οι αθροιστικές λειτουργίες περιγράφονται στη σελίδα 345.

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

<Группа полей>μπορεί να καθοριστεί μόνο όταν το πεδίο επιλογής δείχνει σε ένθετο πίνακα. Σε αυτήν την περίπτωση, μπορείτε να καθορίσετε ποια πεδία θα πρέπει να υποβάλλονται σε επεξεργασία στην επιλογή ένθετου πίνακα. Εάν δεν έχει καθοριστεί μια ομάδα πεδίων, όλα τα πεδία του ένθετου πίνακα θα υποβληθούν σε επεξεργασία στην επιλογή. Η πρόσβαση σε ένθετους πίνακες περιγράφεται στο .

Ψευδώνυμα πεδίων στη λίστα επιλογής

Εάν αντιστοιχίσετε ένα ψευδώνυμο σε ένα πεδίο επιλογής, μπορείτε αργότερα να ανατρέξετε σε αυτό το πεδίο χρησιμοποιώντας το ψευδώνυμό του στις προτάσεις ORDER BY και TOTAL, καθώς και όταν εργάζεστε με το αποτέλεσμα ενός ερωτήματος. Μια τέτοια θεραπεία μπορεί να είναι πιο βολική και οπτική, και σε ορισμένες περιπτώσεις η μόνη δυνατή.

Η λέξη-κλειδί HOW μπορεί να προηγείται του ψευδώνυμου πεδίου. Αυτή η λέξη μπορεί να μην προσδιορίζεται καθόλου, αλλά αν προσδιορίζεται, αυξάνεται η ορατότητα και η αναγνωσιμότητα του κειμένου αιτήματος.

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

Η αντιστοίχιση ψευδωνύμων σε πεδία δεν επηρεάζει από μόνη της την επιλογή δεδομένων στο ερώτημα.

// Πρέπει να επιλεγεί από τον κατάλογο προϊόντων
// ονόματα εμπορευμάτων και ονόματα ομάδων.
Επιλέγω
Ευρετήριο. Ονοματολογία Όνομα ως προϊόν,
Ευρετήριο. Nomenclature.Parent.Name As Group
από
Κατάλογος.Ονοματολογία

Αποτέλεσμα ερωτήματος:

Σημειώστε ότι τα πεδία στο αποτέλεσμα του ερωτήματος πεδίου ονομάζονται "Στοιχείο" και "Ομάδα". Εάν δεν είχαν καθοριστεί ψευδώνυμα πεδίων, τα πεδία στο αποτέλεσμα του ερωτήματος θα ονομάζονταν "Όνομα" και "Όνομα1" (τα ονόματα πεδίων στο αποτέλεσμα του ερωτήματος δεν μπορούν να ταιριάζουν, επομένως το "1" προστίθεται αυτόματα στο όνομα του δεύτερου πεδίου). που είναι πολύ λιγότερο σαφές.

Ένθετοι πίνακες στη λίστα πεδίων επιλογής

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

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

(<Список вложенных полей>) | *

<Вложенное поле [, <Вложенное поле>[, ...] ]

<Список вложенных полей>αποτελείται από ένα ή περισσότερα στοιχεία που χωρίζονται με κόμμα. Εάν η λίστα αποτελείται από ένα στοιχείο, δεν χρειάζεται να περικλείεται σε παρένθεση.

Αντί να αναφέρετε ένθετα πεδία, μπορείτε να καθορίσετε έναν αστερίσκο "*". Αυτό σημαίνει ότι το αποτέλεσμα ένθετου ερωτήματος πρέπει να περιέχει όλα τα πεδία που βρίσκονται στον ένθετο πίνακα.

<Выражение>[[ΠΩΣ]<Псевдоним поля>]

<Вложенное поле>μπορεί να αντιπροσωπεύει κάποια έκφραση. Στην πιο απλή περίπτωση<Выражение>είναι μια αναφορά σε ένα πεδίο σε έναν ένθετο πίνακα. Οι εκφράσεις αναλύονται λεπτομερώς στη σελίδα 344.

Σε κάθε ένθετο πεδίο μπορεί να εκχωρηθεί ένα ψευδώνυμο. Περαιτέρω<Псевдоним поля>μπορεί να χρησιμοποιηθεί για πιο εύκολη πρόσβαση σε αυτό το πεδίο, παρόμοια με τα ψευδώνυμα για πεδία στη λίστα επιλογής - δείτε την ενότητα "Ψευδώνυμα για πεδία στη λίστα επιλογής" στο

Τα ψευδώνυμα μπορούν να εκχωρηθούν σε ένθετα πεδία ανεξάρτητα από το εάν ένα ψευδώνυμο έχει εκχωρηθεί στον ίδιο τον ένθετο πίνακα.

//Είναι απαραίτητο να εμφανιστεί η προδιαγραφή των τιμολογίων στην αναφορά,
// το ίδιο το έγγραφο, ονοματολογία και ποσότητα.
Επιλέγω

Έγγραφο.Τιμολόγιο.Σύνθεση.(Ονοματολογία ως προϊόν, ποσότητα)

Αποτέλεσμα ερωτήματος:

Σύνδεσμος Χημική ένωση
Προϊόν Ποσότητα
Τζιν για γυναίκες 4
Τζιν για γυναίκες 5
Πουκάμισο "Cowgirl" 5
Τιμολόγιο 00005 με ημερομηνία 24/02/2002 0:00:00 Τζιν για γυναίκες 1
Τζιν για γυναίκες 1
Moydodyr "Ενυδρείο" 5
Νεροχύτης "Lily" 8
Μίξερ "Ultra" 10

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

//Εμφάνιση όλων των πεδίων του τμήματος πίνακα του τιμολογίου στην αναφορά.
Επιλέγω
Έγγραφο.Τιμολόγιο.Σύνδεσμος,
Έγγραφο.Τιμολόγιο.Σύνθεση.*

Ο σκοπός της ρήτρας IZ είναι να ορίσει μια λίστα με πίνακες προέλευσης - πηγές δεδομένων που χρησιμοποιούνται σε μια δεδομένη πρόταση SELECT.

Θα πρέπει να σημειωθεί ότι η ρήτρα IZ στη γλώσσα ερωτήματος είναι προαιρετική. Ενδέχεται να παραλειφθεί εάν οι πηγές δεδομένων είναι πλήρως αναγνωρισμένες στην περιγραφή της λίστας πεδίων επιλογής που περιέχεται στον όρο SELECT. Λάβετε υπόψη ότι ορισμένα από τα παραδείγματα στις προηγούμενες ενότητες δεν περιείχαν τη ρήτρα IZ.

Μετά τη λέξη-κλειδί IZ, υποδεικνύεται μια λίστα πηγών. Γενικά, ο κατάλογος των πηγών περιγράφεται από το ακόλουθο σύνολο κανόνων:

<Источник>[, <Источник>[, ...]]

Οι πηγές δεδομένων ερωτήματος παρατίθενται στη λίστα προέλευσης, διαχωρισμένες με κόμμα. Κάθε<Источник>ο κατάλογος των πηγών πρέπει να περιλαμβάνει περιγραφή της πηγής· επιπλέον, μπορεί να προσδιοριστεί<Перечень соединений>- κανόνες για τη σύνδεση μιας πηγής με άλλες πηγές. Περιγράφονται οι προδιαγραφές σύνδεσης.

<Описание источника> [ <Перечень соединений> ]

Εάν η πηγή δεδομένων είναι ένας πίνακας βάσης πληροφοριών,<Описание источника>περιέχει<Имя таблицы>.

<Таблица>[ [ΠΩΣ]<Псевдоним источника>]

Εάν ο πίνακας προέλευσης είναι εικονικός, μπορείτε να καθορίσετε<Параметры>ο σχηματισμός του. Οι παράμετροι του εικονικού πίνακα περιγράφονται λεπτομερώς στην ενότητα "Πηγές δεδομένων ερωτήματος".

<Имя таблицы> [(<Параметры>)] | <Описание запроса>

Ένα δευτερεύον ερώτημα μπορεί επίσης να λειτουργήσει ως πηγή δεδομένων ερωτήματος. σε αυτήν την περίπτωση η περιγραφή της πηγής περιέχει<Описание запроса>. Η χρήση των ένθετων ερωτημάτων περιγράφεται στο.

Η περιγραφή της πηγής δεδομένων μπορεί επίσης να εκχωρήσει το ψευδώνυμό της. Περαιτέρω<Псевдоним источника>μπορεί να χρησιμοποιηθεί για πιο εύκολη πρόσβαση σε αυτήν την πηγή. Η χρήση ψευδωνύμων πηγών δεδομένων συζητείται στο.

Προδιαγραφές Σύνδεσης

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

Αποτέλεσμα ερωτήματος:

αντισυμβαλλόμενος Τράπεζα
Προμηθευτές JSCB InvestBank
Προμηθευτές JSCB PromStroyBank
Πλεκτοβιομηχανία "Zarya" JSCB InvestBank
Πλεκτοβιομηχανία "Zarya" JSCB PromStroyBank
Εργοστάσιο τζιν ενδυμάτων JSCB InvestBank
Εργοστάσιο τζιν ενδυμάτων JSCB PromStroyBank
Αγοραστές JSCB InvestBank
Αγοραστές JSCB PromStroyBank
Έκθεση ρούχων JSCB InvestBank
Έκθεση ρούχων JSCB PromStroyBank
Εμπορικός οίκος "Budenovsky" JSCB InvestBank
Εμπορικός οίκος "Budenovsky" JSCB PromStroyBank
Περίπτερο 45 στη χονδρική αγορά JSCB InvestBank
Περίπτερο 45 στη χονδρική αγορά JSCB PromStroyBank
Βαυαρία - πορσελάνη JSCB InvestBank
Βαυαρία - πορσελάνη JSCB PromStroyBank
Εργοστάσιο τζιν ενδυμάτων JSCB InvestBank
Εργοστάσιο τζιν ενδυμάτων JSCB PromStroyBank
JSCB PromStroyBank JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

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

Υπάρχουν διάφοροι τύποι συνδέσεων, περιγράφονται από τους ακόλουθους κανόνες:

<Соединение> [<Перечень соединений>]

Γενικά<Перечень соединений>μπορεί να περιέχει και να περιγράφει όχι μόνο μία σύνδεση (δύο πηγών), αλλά και πολλές συνδέσεις πολλών πηγών ταυτόχρονα.

[ΕΣΩΤΕΡΙΚΟ] ΕΓΓΡΑΦΕΙΤΕ<Описание источника>ΜΕ<Условие отбора> |

ΑΡΙΣΤΕΡΑ [ΕΞΩΤΕΡΙΚΗ] ΣΥΝΔΕΣΗ<Описание источника>ΜΕ<Условие отбора> |

ΔΕΞΙΑ [ΕΞΩΤΕΡΙΚΗ] ΣΥΝΔΕΣΗ<Описание источника>ΜΕ<Условие отбора> |

ΠΛΗΡΗΣ (ΕΞΩΤΕΡΙΚΗ] ΣΥΝΔΕΣΗ<Описание источника>ΜΕ<Условие отбора>

<Условие отбора>περιέχει συνθήκες σύμφωνα με τις οποίες η επιλογή πρέπει να συνδυάζει δεδομένα από τους αρχικούς πίνακες - τις πηγές του ερωτήματος. Οι κανόνες για την περιγραφή των συνθηκών σε μια γλώσσα ερωτήματος αναλύονται στη σελίδα 357.

Οι λέξεις-κλειδιά ΑΡΙΣΤΕΡΑ, ΔΕΞΙΑ και ΠΛΗΡΕΣ αποσαφηνίζουν τη φύση της σύνδεσης. Οι λέξεις ΕΣΩΤΕΡΙΚΟ ή ΕΞΩΤΕΡΙΚΟ ενδέχεται να μην προσδιορίζονται καθόλου· αυξάνουν τη σαφήνεια και την αναγνωσιμότητα του κειμένου αιτήματος.

Οι πηγές που συνδέονται δεν είναι ισοδύναμες μεταξύ τους και σε ορισμένες περιπτώσεις το αποτέλεσμα εξαρτάται από τον πίνακα που εμφανίζεται πρώτος, πριν από τη λέξη-κλειδί JOIN (στα αριστερά του) και ποιος πίνακας εμφανίζεται δεύτερος (στα δεξιά).

[INTERNAL] JOIN σημαίνει ότι και από τους δύο πίνακες προέλευσης - πηγές δεδομένων, μόνο εκείνοι οι συνδυασμοί εγγραφών που πληρούν την καθορισμένη συνθήκη πρέπει να περιλαμβάνονται στο αποτέλεσμα του ερωτήματος. Τα υπόλοιπα ρεκόρ δεν περιλαμβάνονται στο αποτέλεσμα.

// Πρέπει να μάθετε ποιες τράπεζες είναι ταυτόχρονα
// αντισυμβαλλόμενοι (υπάρχουν τα ίδια ονόματα
//τόσο στον κατάλογο Αντισυμβαλλόμενοι όσο και στον κατάλογο Τράπεζες).
Επιλέγω

Banks.Link How to Bank
Από

Εσωτερική σύνδεση
Κατάλογος.Τράπεζες Πώς Τράπεζες
Με

Αποτέλεσμα ερωτήματος:

αντισυμβαλλόμενος Τράπεζα
JSCB PromStroyBank JSCB PromStroyBank

Η ΑΡΙΣΤΕΡΑ [ΕΞΩΤΕΡΙΚΗ] ΣΥΝΔΕΣΗ σημαίνει ότι το αποτέλεσμα του ερωτήματος πρέπει να περιλαμβάνει συνδυασμούς εγγραφών και από τους δύο πίνακες προέλευσης που πληρούν την καθορισμένη συνθήκη. Όμως, σε αντίθεση με μια εσωτερική ένωση, το αποτέλεσμα του ερωτήματος πρέπει επίσης να περιλαμβάνει εγγραφές από την πρώτη πηγή (που υποδεικνύεται στα αριστερά της λέξης JOIN) για τις οποίες δεν βρέθηκαν εγγραφές από τη δεύτερη πηγή που να ταιριάζουν με τη συνθήκη.

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

//Είναι απαραίτητο να εμφανίζονται όλοι οι αντισυμβαλλόμενοι στην αναφορά και για αυτούς
// που είναι επίσης τράπεζα - υποδείξτε έναν σύνδεσμο προς την τράπεζα.
Επιλέγω
Counterparties.Link As Counterparty,
Banks.Link How to Bank
Από
Κατάλογος Αντισυμβαλλόμενοι Πώς Αντισυμβαλλόμενοι
Αριστερός εξωτερικός σύνδεσμος
Κατάλογος.Τράπεζες Πώς Τράπεζες
Με
Αντισυμβαλλόμενοι.Όνομα = Τράπεζες.Όνομα

Αποτέλεσμα ερωτήματος:

Η ΔΕΞΙΑ [ΕΞΩΤΕΡΙΚΗ] ΣΥΝΔΕΣΗ σημαίνει ότι το αποτέλεσμα του ερωτήματος πρέπει να περιλαμβάνει συνδυασμούς εγγραφών και από τους δύο πίνακες προέλευσης που πληρούν μια καθορισμένη συνθήκη. Επιπλέον, το αποτέλεσμα του ερωτήματος πρέπει επίσης να περιλαμβάνει εγγραφές από τη δεύτερη πηγή (που υποδεικνύεται στα δεξιά της λέξης ΣΥΝΔΕΣΗ) για τις οποίες δεν βρέθηκαν εγγραφές από την πρώτη πηγή που να ταιριάζουν με τη συνθήκη.

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

//Είναι απαραίτητο να εμφανιστούν όλες οι τράπεζες στην αναφορά και για αυτές
// ποιος είναι επίσης ο αντισυμβαλλόμενος - υποδείξτε μια σύνδεση με τον αντισυμβαλλόμενο.
ΕΠΙΛΕΓΩ
Counterparties.Link As Counterparty,
Banks.Link Like Bank
ΑΠΟ
Κατάλογος Αντισυμβαλλόμενοι Πώς Αντισυμβαλλόμενοι
Δεξιά εξωτερική ένωση
Κατάλογος.Τράπεζες Πώς Τράπεζες
Με
Αντισυμβαλλόμενοι.Όνομα = Τράπεζες.Όνομα

Αποτέλεσμα ερωτήματος:

αντισυμβαλλόμενος Τράπεζα
ΜΗΔΕΝΙΚΟ JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

ΠΛΗΡΗΣ [ΕΞΩΤΕΡΙΚΗ] ΣΥΝΔΕΣΗ σημαίνει ότι το αποτέλεσμα του ερωτήματος πρέπει να περιλαμβάνει συνδυασμούς εγγραφών και από τους δύο πίνακες προέλευσης που πληρούν μια καθορισμένη συνθήκη. Επιπλέον, το αποτέλεσμα του ερωτήματος πρέπει επίσης να περιλαμβάνει τις εγγραφές και από τις δύο πηγές για τις οποίες δεν βρέθηκαν αντιστοιχίες.

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

// Είναι απαραίτητο να εμφανίζονται όλοι οι αντισυμβαλλόμενοι και όλες οι τράπεζες στην αναφορά,
// και όσοι είναι και οι δύο - τυπώστε σε μια γραμμή.
Επιλέγω
Counterparties.Link As Counterparty,
Banks.Link How to Bank
Από
Κατάλογος Αντισυμβαλλόμενοι Πώς Αντισυμβαλλόμενοι
Πλήρης εξωτερική ένωση
Κατάλογος.Τράπεζες Πώς Τράπεζες
Με
Αντισυμβαλλόμενοι.Όνομα = Τράπεζες.Όνομα

Αποτέλεσμα ερωτήματος:

Ψευδώνυμα πηγής δεδομένων

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

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

Η λέξη-κλειδί HOW μπορεί να προηγείται του ψευδώνυμου πηγής. Αυτή η λέξη μπορεί να μην προσδιορίζεται καθόλου, αλλά αν προσδιορίζεται, αυξάνεται η ορατότητα και η αναγνωσιμότητα του κειμένου αιτήματος.

Η εκχώρηση ψευδωνύμων σε πηγές δεν επηρεάζει από μόνη της την επιλογή δεδομένων στο ερώτημα.

// Αυτό το παράδειγμα δείχνει τη χρήση
// στη λίστα πεδίων επιλογής του ψευδώνυμου Προϊόν,
// εκχωρήθηκε στον πίνακα προέλευσης Directory.Nomenclature
Επιλέγω
Ονομασία προϊόντος,
Προϊόν.Γονέας
Από
Directory.Nomenclature.Product

Ένθετοι πίνακες στη λίστα πηγών

Ο κατάλογος των πηγών μπορεί επίσης να περιλαμβάνει ένθετους πίνακες - τμήματα πινάκων βιβλίων αναφοράς και εγγράφων.

//Είναι απαραίτητο να εμφανιστεί η προδιαγραφή των τιμολογίων στην αναφορά -
// εμφανίζει το ίδιο το έγγραφο, την ονοματολογία και την ποσότητα.
//Η λίστα των πηγών περιέχει τον ένθετο πίνακα "Σύνθεση" -
// τμήμα πίνακα του τιμολογίου.
// Η επιλογή περιορίζεται σε οκτώ εγγραφές για να μην υπερφορτωθεί το παράδειγμα.
Επιλέξτε Πρώτα 8
Σύνδεσμος, Ονοματολογία, Ποσότητα
Από
Έγγραφο.Τιμολόγιο.Σύνθεση

Αποτέλεσμα ερωτήματος:

Σύνδεσμος Ονοματολογία Ποσότητα
Τιμολόγιο 00007 με ημερομηνία 25/02/2002 21:03:21 Τζιν για γυναίκες 4
Τιμολόγιο 00006 με ημερομηνία 25/02/2002 0:00:00 Τζιν για γυναίκες 5
Τιμολόγιο 00006 με ημερομηνία 25/02/2002 0:00:00 Πουκάμισο "Cowgirl" 5
Τιμολόγιο 00005 από 01/03/2002 20:58:28 Τζιν για γυναίκες 1
Τιμολόγιο 00004 με ημερομηνία 01/03/2002 20:50:40 Τζιν για γυναίκες 1
Τιμολόγιο 00003 με ημερομηνία 23/02/2002 0:00:00 Moydodyr "Ενυδρείο" 5
Τιμολόγιο 00003 με ημερομηνία 23/02/2002 0:00:00 Νεροχύτης "Lily" 8
Τιμολόγιο 00003 με ημερομηνία 23/02/2002 0:00:00 Μίξερ "Ultra" 10

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

Υποερωτήματα στη λίστα πηγών

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

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

Το αποτέλεσμα θα είναι ακριβώς το ίδιο όπως στο προηγούμενο παράδειγμα.

Δημιουργία αναφορών

Εργασία με αιτήματα

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

Πηγές δεδομένων ερωτήματος

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

Οι πραγματικοί πίνακες, με τη σειρά τους, μπορεί να είναι αντικείμενο (αναφορά) ή μη αντικείμενο (μη αναφορά):

Το χαρακτηριστικό γνώρισμα των πραγματικών πινάκων είναι ότι περιέχουν δεδομένα από έναν ενιαίο πραγματικό πίνακα που είναι αποθηκευμένος σε μια βάση δεδομένων. Για παράδειγμα, οι πραγματικοί πίνακες είναι ο πίνακας "Directory.Clients", που αντιστοιχεί στον κατάλογο "Clients", ή ο πίνακας "Accuulation Register. Material Remaining", που αντιστοιχεί στον καταχωρητή συσσώρευσης "Material Remaining".

Οι εικονικοί πίνακες σχηματίζονται κυρίως από δεδομένα από πολλαπλούς πίνακες βάσεων δεδομένων. Για παράδειγμα, ένας εικονικός πίνακας είναι ο πίνακας "Μητρώο συσσώρευσης. Υπόλοιπα υλικών. Υπόλοιπα και κύκλοι εργασιών", που σχηματίζεται από διάφορους πίνακες του μητρώου συσσώρευσης "Υλικά υπολείμματα". Μερικές φορές οι εικονικοί πίνακες μπορούν να σχηματιστούν από έναν πραγματικό πίνακα (για παράδειγμα, ο εικονικός πίνακας "Prices.SliceLast" σχηματίζεται με βάση τον πίνακα μητρώου πληροφοριών "Τιμές"). Ωστόσο, αυτό που έχουν όλοι οι εικονικοί πίνακες κοινό είναι ότι μπορούν να τους δοθεί ένας αριθμός παραμέτρων που θα καθορίσουν ποια δεδομένα περιλαμβάνονται σε αυτούς τους εικονικούς πίνακες. Το σύνολο τέτοιων παραμέτρων μπορεί να είναι διαφορετικό για διαφορετικούς εικονικούς πίνακες και καθορίζεται από τα δεδομένα που είναι αποθηκευμένα στους πίνακες της βάσης δεδομένων προέλευσης.

Οι πραγματικοί πίνακες χωρίζονται σε πίνακες αντικειμένων (αναφορά) και μη αντικειμενικούς (μη αναφοράς).

Οι πίνακες αντικειμένων (αναφοράς) παρέχουν πληροφορίες για τύπους δεδομένων αναφοράς (κατάλογοι, έγγραφα, σχέδια για τύπους χαρακτηριστικών κ.λπ.). Και σε μη αντικείμενο (μη αναφορά) - όλους τους άλλους τύπους δεδομένων (σταθερές, καταχωρητές κ.λπ.).

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

Γλώσσα ερωτήματος

Ο αλγόριθμος με τον οποίο θα επιλεγούν δεδομένα από τους πίνακες προέλευσης του αιτήματος περιγράφεται στο κείμενο του αιτήματος σε ειδική γλώσσα - γλώσσα ερωτήματος.Το κείμενο της αίτησης αποτελείται από πολλά μέρη:

    περιγραφή αιτήματος,

    συγχώνευση ερωτημάτων

    παραγγελία των αποτελεσμάτων,

    αυτόματη παραγγελία,

    περιγραφή των αποτελεσμάτων.

Το μόνο υποχρεωτικό μέρος του αιτήματος είναι το πρώτο - η περιγραφή του αιτήματος. Όλοι οι άλλοι είναι παρόντες όπως απαιτείται.

Περιγραφή αιτήματοςορίζει πηγές δεδομένων, πεδία επιλογής, ομαδοποιήσεις κ.λπ.

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

Οργάνωση αποτελεσμάτωνκαθορίζει τις συνθήκες παραγγελίας για τις σειρές αποτελεσμάτων ερωτήματος.

Αυτόματη παραγγελίασας επιτρέπει να ενεργοποιήσετε την αυτόματη ταξινόμηση των σειρών αποτελεσμάτων ερωτήματος.

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

Αναφορά Μητρώου Εγγράφων Παροχή Υπηρεσιών

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

Ας δημιουργήσουμε ένα νέο αντικείμενο διαμόρφωσης στον διαμορφωτή: Αναφορά «Μητρώο Παροχής Υπηρεσιών Εγγράφων». Ας πάμε στην καρτέλα "Διάταξη" και εκκινούμε τη σχεδίαση φόρμας εξόδου.

Ως πηγή δεδομένων για το αίτημα, θα επιλέξουμε τον πίνακα αντικειμένου (αναφοράς) εγγράφων «Παροχή Υπηρεσιών». Από αυτόν τον πίνακα επιλέγουμε τα ακόλουθα πεδία:

  • "Κύριος",

    "Πελάτης":

Σημειώστε ότι όταν επιλέγετε τα πεδία «Αποθήκη», «Κύριος» και «Πελάτης», τα πεδία «Αποθήκη.Προβολή», «Κύριος.Προβολή» και «Προβολή Πελάτη» επιλέγονται επίσης στη λίστα επιλεγμένων πεδίων. Το γεγονός είναι ότι στη γενική περίπτωση θεωρείται ότι αυτά τα πεδία θα εμφανίζονται στα κελιά ενός εγγράφου υπολογιστικού φύλλου. Δεδομένου ότι τα αντίστοιχα πεδία "Αποθήκη", "Κύριος" και "Πελάτης" είναι πεδία αναφοράς, εάν μια τιμή αναφοράς μεταβιβαστεί ως τιμή παραμέτρου για έξοδο, το σύστημα θα εκτελέσει ένα πρόσθετο αίτημα για να λάβει μια αναπαράσταση αυτού του πεδίου (το οποίο θα είναι εμφανίζεται στο έγγραφο), με αποτέλεσμα πιο αργή παραγωγή αναφοράς. Επομένως, κατά την επιλογή πεδίων αναφοράς, το σύστημα προσφέρει να συμπεριλάβει αμέσως αναπαραστάσεις πεδίων αναφοράς στη λίστα των επιλεγμένων πεδίων, με την προσδοκία ότι θα χρησιμοποιηθούν για έξοδο στο έγγραφο.

Μετά από αυτό, ας πάμε στην καρτέλα "Παραγγελία" και ας υποδείξουμε ότι το αποτέλεσμα του αιτήματος πρέπει πρώτα να ταξινομηθεί με την τιμή του πεδίου "Ημερομηνία" και, στη συνέχεια, με την τιμή του πεδίου "Παροχή υπηρεσίας. Σύνδεσμος":

Ας πάμε στην καρτέλα "Αναφορά" και ας επαναφέρουμε τη σημαία "Χρήση εργαλείου δημιουργίας αναφορών":

Ας επαναφέρουμε τη σημαία "Χρήση εργαλείου δημιουργίας αναφορών"...

Κάντε κλικ στο "OK". Ο σχεδιαστής θα δημιουργήσει τη φόρμα αναφοράς και τη διάταξη. Ας ανοίξουμε τη μονάδα φόρμας και ας βρούμε σε αυτήν τη διαδικασία «Μητρώο Παροχής Υπηρεσιών Εγγράφων». Σε αυτή τη διαδικασία, πώς θα δημιουργηθεί το κείμενο αίτησης, το οποίο θα χρησιμοποιηθεί για τη λήψη των δεδομένων που μας ενδιαφέρουν:

Query.Text = «ΕΠΙΛΟΓΗ

Παροχή Υπηρεσιών. Ημερομηνία AS Ημερομηνία,

Παροχή Υπηρεσιών Αριθμός AS Αριθμός,

Παροχή Υπηρεσιών Αποθήκη,

Παροχή Υπηρεσιών, Αποθήκη, Παρουσίαση,

Παροχή Υπηρεσιών.

Παροχή Υπηρεσιών Master. Παρουσίαση,

Παροχή Υπηρεσιών Πελάτης,

Παροχή Υπηρεσιών Πελάτης Αντιπροσωπεία

Έγγραφο.Παροχή Υπηρεσιών ΤΡΟΠΟΣ Παροχής Υπηρεσιών

ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ

Το κείμενο του αιτήματος ξεκινά, όπως είπαμε παραπάνω, με μέρος της περιγραφής του αιτήματος:

I Παροχή της Υπηρεσίας Ημερομηνία AS Ημερομηνία,

I Παροχή Υπηρεσιών. Αριθμός AS Αριθμός,

I Παροχή Υπηρεσιών Αποθήκη,

I Παροχή Υπηρεσιών, Αποθήκη, Παρουσίαση,

Παρέχω Υπηρεσίες. Master,

I Παροχή Υπηρεσιών Master. Παρουσίαση,

I Παροχή Υπηρεσιών Πελάτης,

1 Παροχή Υπηρεσιών Πελάτες Αντιπροσώπευση

I Έγγραφο Παροχή Υπηρεσιών ΠΩΣ στην Παροχή Υπηρεσιών

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

Μετά τη λέξη-κλειδί IZ, υποδεικνύονται οι πηγές δεδομένων - οι αρχικοί πίνακες ερωτημάτων, τα περιεχόμενα των οποίων επεξεργάζονται στο ερώτημα. Σε αυτήν την περίπτωση, αυτός είναι ο πίνακας αντικειμένου (αναφοράς) «Έγγραφο.Παροχή Υπηρεσίας». Μετά τη λέξη-κλειδί ΠΩΣυποδεικνύεται ψευδώνυμοπηγή δεδομένων. Στην περίπτωσή μας, πρόκειται για «Παροχή Υπηρεσιών». Στο μέλλον, αυτή η πηγή δεδομένων μπορεί να είναι προσβάσιμη στο σώμα του αιτήματος χρησιμοποιώντας ένα ψευδώνυμο.

Βλέπουμε αυτήν την κλήση στην περιγραφή των πεδίων επιλογής:

| Παροχή Υπηρεσιών. Ημερομηνία AS Ημερομηνία,

| Παροχή Υπηρεσιών Αριθμός AS Αριθμός,

| Παροχή Υπηρεσιών Αποθήκη,

| Παροχή Υπηρεσιών, Αποθήκη, Παρουσίαση,

| Παροχή Υπηρεσιών.

| Παροχή Υπηρεσιών Master. Παρουσίαση,

| Παροχή Υπηρεσιών Πελάτης,

| Παροχή Υπηρεσιών Πελάτης Αντιπροσωπεία

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

Μετά το τμήμα περιγραφής του ερωτήματος στο παράδειγμά μας ακολουθεί το τμήμα παραγγελίας αποτελεσμάτων:

|ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ

| Ημερομηνία, | Αριθμός";

Προσφορά ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑσας επιτρέπει να ταξινομήσετε τις σειρές στο αποτέλεσμα του ερωτήματος. Μετά από αυτήν την ρήτρα κλειδιού βρίσκεται μια έκφραση σειράς, η οποία, γενικά, είναι μια λίστα πεδίων (εκφράσεις) και σειρά εξόδου. Στην περίπτωσή μας, η παραγγελία θα εκτελεστεί πρώτα από το πεδίο επιλογής, στο οποίο έχετε πρόσβαση μέσω του ψευδώνυμου - "Κωδικός" και στη συνέχεια από το πεδίο - "Αριθμός". Και στις δύο περιπτώσεις η σειρά ταξινόμησης θα είναι αύξουσα, η οποία είναι η προεπιλεγμένη σειρά ταξινόμησης.

Τώρα ας δώσουμε προσοχή στο πώς εμφανίζεται το αποτέλεσμα του ερωτήματος σε ένα έγγραφο υπολογιστικού φύλλου.

Διαδικασία Μητρώο Εγγράφων Παροχή Υπηρεσιών (TabDoc) Εξαγωγή

//((CONSTRUCTOR_OUTPUT_FORM(Μητρώο Παροχής Υπηρεσιών Εγγράφων)// Αυτό το κομμάτι κατασκευάστηκε από τον κατασκευαστή.// Κατά την επαναχρησιμοποίηση του κατασκευαστή,// εισήχθηχειροκίνητα αλλαγέςθα χαθεί!!!

Layout = GetLayout ("Μητρώο Εγγράφων Παροχής Υπηρεσιών"); Request = Νέο αίτημα;

Αποτέλεσμα = Query.Run();

HeaderArea = Layout.GetArea("Header"); Περιοχή Υπόγειο =

Layout.GetArea("TableFooter"); DetailRecordsArea =

TabDoc.Output(TableHeadArea); TabDoc.StartAutogruttingRows();

SelectDetails = Result.Select();

Ενώ βρόχος SelectDetails.NextFunctions().

AreaDetailRecords.Parameters.Fill(SelectionDetails);

TabDoc.Output(RecordsDetailsArea,DetailsSelection.Level()); EndCycle;

/L) CONSTRUCTOR_OUTPUT_FORM EndProcedure

Η φόρμα αναφοράς περιέχει ένα στοιχείο ελέγχου TabularDocumentFieldμε το όνομα «TabDoc», το οποίο είναι γεμάτο με δεδομένα με βάση τη διάταξη που δημιουργεί ο σχεδιαστής.

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

HeaderArea = Layout.GetArea("Header"); Περιοχή Υπόγειο =

Layout.GetArea ("Υπόγειο"); TableHeaderArea =

Layout.GetArea("TableHeader"); TableFooterArea =

Layout.GetArea("TableFooter"");DetailRecordsArea =

Layout.GetArea("Λεπτομέρειες");

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

TabDoc.Clear(); TabDoc.Output(AreaHeader);

TabDoc.Output(TableHeadArea); TabDoc.StartAutoGroupingRows();

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

Μετά από αυτό, λαμβάνουμε μια επιλογή από το αποτέλεσμα του ερωτήματος, την οποία περνάμε σε βρόχο:

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

Στο τέλος της διαδικασίας, εμφανίζουμε τις τελικές περιοχές της διάταξης σε ένα έγγραφο υπολογιστικού φύλλου:

TabDoc.FinishAutoGroupingRows();

TabDoc.Output(TableFooterArea);

TabDoc.Output(AreaFooter);

Τώρα ας ξεκινήσουμε το 1C: Enterprise σε λειτουργία εντοπισμού σφαλμάτων και ας δούμε το αποτέλεσμα της αναφοράς μας:

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

Η αναφορά "Βαθμολογία υπηρεσιών" θα περιέχει πληροφορίες σχετικά με το ποιες υπηρεσίες απέφεραν το μεγαλύτερο κέρδος στην Master of All Trades LLC κατά την καθορισμένη περίοδο. Χρησιμοποιώντας την αναφορά "Βαθμολογία υπηρεσίας" ως παράδειγμα, θα δείξουμε πώς να επιλέγετε δεδομένα σε μια συγκεκριμένη περίοδο, πώς να ορίζετε παραμέτρους ερωτήματος και πώς να χρησιμοποιείτε δεδομένα από πολλούς πίνακες σε ένα ερώτημα και να συμπεριλαμβάνετε όλα τα δεδομένα από μία από τις πηγές στο αποτέλεσμα ερωτήματος.

Ας δημιουργήσουμε ένα νέο αντικείμενο διαμόρφωσης Αναφορά "Βαθμολογία υπηρεσίας". Ας πάμε στην καρτέλα "Διατάξεις" και ας καλέσουμε τον κατασκευαστή της φόρμας εξόδου.

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

Στη συνέχεια, τοποθετήστε τον κέρσορα στον πίνακα "SalesTurnover" και καλέστε το παράθυρο διαλόγου για την εισαγωγή παραμέτρων εικονικού πίνακα:

Ανοίξτε το παράθυρο διαλόγου για την εισαγωγή παραμέτρων εικονικού πίνακα

Ας υποδείξουμε ότι η αρχή και το τέλος της περιόδου θα περάσουν στις αντίστοιχες παραμέτρους "StartDate" και "EndDate" (το σύμβολο "&" πριν από το όνομα υποδηλώνει ότι πρόκειται για παράμετρο αιτήματος):

Στη συνέχεια επιλέξτε από τους πίνακες τα πεδία «SprNomenclature.Link» και «SalesTurnover.RevenueTurnover»:

SprNomenclature.Παρουσίαση

SalesTurnoverΈσοδαΚύκλος εργασιών

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

Το μόνο που μας μένει να κάνουμε είναι να επαναφέρουμε τη σημαία "Όλα" για τον πίνακα καταχωρήσεων και να την ορίσουμε για τον πίνακα καταλόγου.

Θα επιλέξουμε όλα τα στοιχεία από τον κατάλογο "Ονοματολογία".

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

Ας πάμε στην καρτέλα "Συνθήκες" και ας ορίσουμε τις προϋποθέσεις για την επιλογή στοιχείων από τον κατάλογο "Ονοματολογία". Όταν ορίζουμε τις συνθήκες επιλογής, θα χρησιμοποιήσουμε ξανά παραμέτρους ερωτήματος. Η πρώτη προϋπόθεση πρέπει να είναι ότι το επιλεγμένο στοιχείο δεν είναι ομάδα (για να το κάνετε αυτό, μεταβείτε στη λειτουργία "Προσαρμοσμένη κατάσταση").

Η δεύτερη προϋπόθεση πρέπει να είναι ότι το επιλεγμένο στοιχείο είναι υπηρεσία (αυτή είναι η "Απλή συνθήκη"):

Στο μέλλον, πριν από την εκτέλεση της αίτησης, θα μεταβιβάσουμε την αντίστοιχη τιμή απαρίθμησης στην παράμετρο «Τύπος Ονοματολογίας».

Ας πάμε στην καρτέλα "Συσχετισμοί/Ψευδώνυμα" και προσδιορίζουμε ότι η προβολή του στοιχείου καταλόγου θα έχει το ψευδώνυμο "Υπηρεσία" και το πεδίο μητρώου θα έχει το ψευδώνυμο "Έσοδα":

Ας πάμε στην καρτέλα "Παραγγελία" και υποδεικνύουμε ότι το αποτέλεσμα του ερωτήματος πρέπει να ταξινομηθεί με φθίνουσα σειρά της τιμής του πεδίου "Έσοδα".

Στην καρτέλα "Σύνολο", προσδιορίζουμε ότι πρέπει να εμφανίσουμε γενικά σύνολα και θα πρέπει να είναι το άθροισμα των τιμών στο πεδίο "Έσοδα":

Στην καρτέλα "Αναφορά", καταργήστε τη σημαία "Χρήση εργαλείου δημιουργίας αναφορών".

Τώρα ας πάμε στην καρτέλα "Φόρμα εξόδου". Ας υποδείξουμε ότι οι παράμετροι "Ημερομηνία λήξης" και "Ημερομηνία έναρξης" θα υποβληθούν σε επεξεργασία με τη μορφή στα πεδία εισαγωγής του τύπου "Ημερομηνία". Για την παράμετρο "Τύπος Ονοματολογίας", αντίθετα, θα αφαιρέσουμε τη σημαία επεξεργασίας με τη μορφή:

Κάντε κλικ στο "OK". Η πλατφόρμα θα δημιουργήσει μια φόρμα διάταξης και αναφοράς. Ανοίξτε τη μονάδα φόρμας και βρείτε τη διαδικασία "Βαθμολογία υπηρεσίας" σε αυτήν.

Σε αυτήν τη διαδικασία, στο τμήμα όπου ορίζονται οι παράμετροι του ερωτήματος, θα προσδιορίσουμε την τιμή της παραμέτρου "Nomenclature Type" (οι διορθώσεις επισημαίνονται με έντονη γραφή):

| ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ RegisterAccumulation.Sales,Turnover(&StartDate,

| &Ημερομηνία λήξης,)

| ΠΩΣ ΝΑ ΠΩΛΗΣΕΤΕ κύκλο εργασιών

|ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ | Έσοδα ΚΑΤΩ

|ΑΠΟΤΕΛΕΣΜΑΤΑ ΠΟΣΟ (Έσοδα) ΑΝΑ | ΕΙΝΑΙ ΚΟΙΝΑ";

RequestSetParameterC"Τύπος Ονοματολογίας",

Μεταφορές.Τύποι Ονοματολογίας.Υπηρεσία);

Query.SetParameter("StartDate",StartDate); Request.SetParameterC"EndDate", EndDate);

Τώρα ας δούμε το κείμενο αίτησης που δημιουργήθηκε από τον κατασκευαστή:

| SprNomenclature.Representation AS Representation,

|SalesTurnover.RevenueTurnover AS Revenue

| Directory.Nomenclature AS RefNomenclature

ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ RegisterAccumulations.Sales.Turnover(&StartDate,

| ΠΩΣ ΝΑ ΠΩΛΗΣΕΤΕ κύκλο εργασιών

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

| (RefNomenclature.ThisGroup = False) ΚΑΙ

| SprNomenclature.Type of Nomenclature = &Type of Nomenclature

|ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ

| Έσοδα ΚΑΤΩ

|ΑΠΟΤΕΛΕΣΜΑΤΑ ΠΟΣΟ (Έσοδα) ΑΝΑ

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

Κατά την περιγραφή των πηγών αιτημάτων (μετά τη λέξη-κλειδί IZ), χρησιμοποιήθηκε η δυνατότητα καθορισμού πολλών πηγών αιτημάτων:

| Directory.Nomenclature AS RefNomenclature

|&Ημερομηνία λήξης,)

| ΠΩΣ ΝΑ ΠΩΛΗΣΕΤΕ κύκλο εργασιών

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

Σε αυτήν την περίπτωση, οι εγγραφές επιλέγονται από δύο πηγές: "SprNomenklatura" και "SalesTurnover", με την πρόταση κλειδί ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ... ΜΕπεριγράφει τον τρόπο με τον οποίο θα συνδυαστούν οι εγγραφές από αυτές τις δύο πηγές.

ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗσημαίνει ότι το αποτέλεσμα του ερωτήματος πρέπει να περιλαμβάνει συνδυασμούς εγγραφών και από τις δύο πηγές που ταιριάζουν με τη συνθήκη που καθορίζεται μετά τη λέξη-κλειδί BY. Επιπλέον, το αποτέλεσμα του ερωτήματος πρέπει επίσης να περιλαμβάνει εγγραφές από το πρώτο (που υποδεικνύεται στα αριστερά της λέξης ΧΗΜΙΚΗ ΕΝΩΣΗ)πηγή για την οποία δεν βρέθηκαν εγγραφές που να ταιριάζουν με την κατάσταση από τη δεύτερη πηγή.

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

| RegisterAccumulations.Sales.Turnover(&StartDate, & EndDate,)

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

Εάν είναι γνωστό εκ των προτέρων ότι ο χρήστης δεν θα ενδιαφέρεται για τα αποτελέσματα της αναφοράς σε περιόδους που καθορίζονται με ακρίβεια δευτερολέπτων, τότε θα πρέπει να ληφθεί υπόψη η ακόλουθη δυνατότητα: από προεπιλογή, η ώρα στην ημερομηνία ορίζεται σε 00 :00:00. Επομένως, εάν δεν λάβετε ειδικά μέτρα, αποδεικνύεται ότι όταν ο χρήστης ορίσει την περίοδο αναφοράς από 01/03/2004 έως 31/03/2004, τα σύνολα του μητρώου θα υπολογιστούν από την αρχή της ημέρας 03/01/ 2004 00:00:00 έως την αρχή της ημέρας 31/03/2004 00:00: 00. Έτσι, δεδομένα για την 31η ημέρα, εκτός από την αρχή της ημέρας, δεν θα συμπεριληφθούν στον υπολογισμό, γεγονός που θα εκπλήξει πολύ τον χρήστη.

Για να εξαλειφθεί αυτή η κατάσταση, πρέπει να γίνουν δύο πράγματα.

Αρχικά, στη φόρμα αναφοράς, περιορίστε τη δυνατότητα του χρήστη να εισαγάγει την ημερομηνία έναρξης και την ημερομηνία λήξης ορίζοντας τη σύνθεση ημερομηνίας για τα αντίστοιχα πεδία εισαγωγής ως "Ημερομηνία":

Ας καθορίσουμε τη σύνθεση της ημερομηνίας...

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

ProcedureFormActionsRatingServicesGenerate(Button) //((CONSTRUCTOR_WEEKEND_FORM_PROCEDURE_CALL(RatingServices) //Αυτό το τμήμα δημιουργήθηκε από τον κατασκευαστή. // Κατά την επαναχρησιμοποίηση του κατασκευαστή, // οι αλλαγές που έγιναν με μη αυτόματο τρόπο θα χαθούν!!!

TabDoc = FormElements.TableField;

//)) CONSTRUCTOR_OUTPUT_FORM_CALL_PROCEDURE

Co. netΔιαδικασίες

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

| SprNomenclature.Representation AS Representation,

| SalesTurnover.RevenueTurnover AS Revenue

| Directory.Nomenclature AS RefNomenclature

| ΑΡΙΣΤΕΡΑ ΣΥΝΔΕΣΗ RegisterAccumulations.Sales.Turnover(&StartDate,

| &Ημερομηνία λήξης,

| ΠΩΣ ΝΑ ΠΩΛΗΣΕΤΕ κύκλο εργασιών

| Software SalesTurnover.Nomenclature = SprNomenclature.Ssshka

| SprNomenclature.ThisGroup = False AND

| SprNomenclature.Type of Nomenclature = &Type of Nomenclature

Η συνθήκη επιλογής προηγείται πάντα από μια λέξη-κλειδί ΟΠΟΥ.Μετά από αυτό περιγράφεται η ίδια η κατάσταση. Λάβετε υπόψη ότι τα πεδία των πινάκων προέλευσης στους οποίους εφαρμόζεται η συνθήκη ενδέχεται να μην περιλαμβάνονται στη λίστα επιλογής (όπως στην περίπτωσή μας). Επιπλέον, η συνθήκη μας χρησιμοποιεί την παράμετρο ερωτήματος "Τύπος ονοματολογίας".

ΑΠΟΤΕΛΕΣΜΑΤΑ ΠΟΣΟ (Έσοδα) PO

Ξεκινά πάντα με μια λέξη-κλειδί ΑΠΟΤΕΛΕΣΜΑΤΑ,ακολουθούμενη από μια περιγραφή των συνόλων που θα υπάρχουν στο αποτέλεσμα του ερωτήματος. Αμέσως μετά τη λέξη ΑΠΟΤΕΛΕΣΜΑΤΑπεριγράφει τις αθροιστικές συναρτήσεις που πρέπει να υπολογιστούν στα αποτελέσματα. Στην περίπτωσή μας θα υπολογιστεί το ποσό στο πεδίο «Έσοδα». Ακολουθεί η λέξη-κλειδί PO, μετά την οποία περιγράφονται οι ομαδοποιήσεις στις οποίες πρόκειται να υπολογιστούν τα σύνολα. Στην περίπτωσή μας απουσιάζουν και χρησιμοποιείται μόνο η λέξη-κλειδί ΕΙΝΑΙ ΚΟΙΝΑ,που υποδηλώνει ότι τα σύνολα θα υπολογιστούν για ολόκληρο τον πίνακα ως σύνολο.

Τώρα που ολοκληρώσαμε την εξοικείωση με το κείμενο του αιτήματος, ας ξεκινήσουμε το 1C: Enterprise σε λειτουργία εντοπισμού σφαλμάτων και ας δούμε πώς λειτουργεί η αναφορά μας.

Ας ορίσουμε την περίοδο αναφοράς από 01/03/2004 έως 30/04/2004. Το αποτέλεσμα θα μοιάζει με αυτό:

Τώρα ας αλλάξουμε την ημερομηνία λήξης σε 31/03/2004 και ας βεβαιωθούμε ότι τα δεδομένα για τις 31 Μαρτίου περιλαμβάνονται στην αναφορά: