Η κατάσταση είναι παρόμοια στο αίτημα 1γ. Παρόμοια με τις συνθήκες ερωτήματος. Μη έγκυρες παράμετροι όπως

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

1C Λειτουργίες γλώσσας ερωτήματος

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

1. Λειτουργία ΗΜΕΡΟΜΗΝΙΑ ΩΡΑ- αυτή η συνάρτηση δημιουργεί ένα σταθερό πεδίο με τον τύπο "Ημερομηνία".

Σύνταξη: ΗΜΕΡΟΜΗΝΙΑ ΩΡΑ(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Παράδειγμα χρήσης:

2. Λειτουργία ΔΙΑΦΟΡΑ ΗΜΕΡΟΜΗΝΙΑΣ- επιστρέφει τη διαφορά μεταξύ δύο ημερομηνιών σε μία από τις διαστάσεις (έτος, μήνας, ημέρα, ώρα, λεπτό, δευτερόλεπτο). Η μέτρηση μεταβιβάζεται ως παράμετρος.

Σύνταξη: ΔΙΑΦΟΡΑ(<Дата1>, <Дата2>, <Тип>)

Παράδειγμα χρήσης:

Query.Text = "SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Qty.Days";

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

Σύνταξη: VALUE(<Имя>)

Παράδειγμα χρήσης:

Request.Text = "SELECT //προκαθορισμένο στοιχείο | VALUE(Directory.Currencies.Dollar) AS Dollar, //empty link | VALUE(Document.Receipt of Goods and Services.EmptyLink) AS Receipt, //τιμή μεταφοράς | VALUE(Transfer .

4. Λειτουργία SELECT- έχουμε μπροστά μας ένα ανάλογο της κατασκευής IF, το οποίο χρησιμοποιείται στον κώδικα, μόνο αυτό χρησιμοποιείται σε ερωτήματα 1C.

Σύνταξη: ΕΠΙΛΟΓΗ ΠΟΤΕ<Выражение>ΕΠΕΙΤΑ<Выражение>ΣΕ ΔΙΑΦΟΡΕΤΙΚΗ ΠΕΡΙΠΤΩΣΗ<Выражение>ΤΕΛΟΣ

Παράδειγμα χρήσης:

Request.Text = //αν το ποσό είναι μεγαλύτερο από 7500, τότε θα πρέπει να υπάρχει έκπτωση 300 ρούβλια, //οπότε εάν ενεργοποιηθεί η συνθήκη τότε η συνάρτηση //επιστρέφει Sum - 300 //διαφορετικά το αίτημα θα επιστρέψει απλά Sum "ΕΠΙΛΕΞΤΕ | ΕΠΙΛΕΞΤΕ | ΟΤΑΝ TCReceipts.Amount > 7500 | THON TCReceipts.Amount - 300 | ALSE TCReceipts.Amount | ΤΕΛΟΣ ΩΣ ΠοσόΜε Έκπτωση | ΑΠΟ |

5. Λειτουργία EXPRESS- σας επιτρέπει να εκφράσετε ένα σταθερό πεδίο με έναν συγκεκριμένο τύπο.

Σύνταξη: EXPRESS (Όνομα πεδίου AS TypeName)

Παράδειγμα χρήσης:

Query.Text = "ΕΠΙΛΟΓΗ ΔΙΑΦΟΡΩΝ | Sales.Registrar.Number, | SELECT | WHEN Sales.Registrar LINK Document.Consumable | THEN EXPRESS(Sales.Registrar AS Document.Consumable) | ELSE SELECT | WHEN Sales.Registrar LINK Document. ΤΟΤΕ EXPRESS(Sales.Registrar AS Document.Ilementation) |. ΤΕΛΟΣ ΩΣ Αριθμός |.

Υπάρχει άλλη επιλογή για τη χρήση της συνάρτησης EXPRESS σε πεδία μικτών τύπων, πού εμφανίζονται; Το απλούστερο παράδειγμα είναι ο «Καταχωρητής» για οποιοδήποτε μητρώο. Γιατί λοιπόν μπορεί να χρειαστεί να προσδιορίσουμε τον τύπο στον καταχωρητή; Ας εξετάσουμε την κατάσταση όταν επιλέγουμε το πεδίο "Αριθμός" από τον καταχωρητή, από ποιον πίνακα θα επιλεγεί ο αριθμός; Η σωστή απάντηση όλων! Επομένως, για να λειτουργεί γρήγορα το ερώτημά μας, θα πρέπει να καθορίσουμε έναν ρητό τύπο χρησιμοποιώντας τη συνάρτηση EXPRESS

Παράδειγμα χρήσης:

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature";

6. Λειτουργία ISNULL(εναλλακτική ορθογραφία ISNULL) - εάν το πεδίο είναι τύπου NULL, τότε αντικαθίσταται με τη δεύτερη παράμετρο της συνάρτησης.

Σύνταξη: ISNULL(<Поле>, <ПодставляемоеЗначение>)

Παράδειγμα χρήσης:

Σημειώστε επίσης ότι είναι σκόπιμο να αντικαθιστάτε ΠΑΝΤΑ τον τύπο NULL με κάποια τιμή, γιατί Η σύγκριση με τον τύπο NULL επιστρέφει πάντα FALSE ακόμα κι αν συγκρίνετε NULL με NULL. Τις περισσότερες φορές, οι τιμές NULL σχηματίζονται ως αποτέλεσμα της ένωσης πινάκων (όλοι οι τύποι ενώσεων εκτός από τους εσωτερικούς).

Query.Text = //Επιλέξτε ολόκληρο το στοιχείο και τα υπόλοιπά του //αν δεν υπάρχει υπόλοιπο σε κάποιο στοιχείο, τότε θα υπάρχει ένα πεδίο //NULL το οποίο θα αντικατασταθεί με την τιμή 0 "SELECT | No. Link, | ISNULL (ProductsInStockRemains.InStockRemaining, 0) AS Remaining FROM.Ονοματολογία AS No.

7. Λειτουργία ΑΝΤΙΠΡΟΣΩΠΗΣΗΣ- σας επιτρέπει να λάβετε μια αναπαράσταση του πεδίου αιτήματος.

Σύνταξη: ΕΚΤΕΛΕΣΗ(<НаименованиеПоля>)

Παράδειγμα χρήσης:

Query.Text = "ΕΠΙΛΟΓΗ | ΑΝΤΙΠΡΟΣΩΠΗΣΗ(FreeRemainingRemains.Ονοματολογία) AS Ονοματολογία, | REPRESENTATION(FreeRemainingRemaining.Warehouse) AS Warehouse, | FreeRemainingRemaining.InStockRemaining |FROM |RemainingRemainmainingAS"

Κατασκευάζει στη γλώσσα ερωτημάτων 1C

Συζητήσαμε μαζί σας παραπάνω Λειτουργίες γλώσσας ερωτήματος 1C, τώρα ήρθε η ώρα να εξετάσουμε κατασκευάζει στη γλώσσα ερωτημάτων 1C, δεν είναι λιγότερο σημαντικά και χρήσιμα, ας ξεκινήσουμε.

1. ΣΥΝΔΕΣΜΟΣ Κατασκευής- είναι ένας λογικός τελεστής για τον έλεγχο ενός τύπου αναφοράς. Συχνότερα συναντάται κατά τον έλεγχο ενός πεδίου σύνθετου τύπου έναντι ενός συγκεκριμένου τύπου. Σύνταξη: ΣΥΝΔΕΣΜΟΣ<Имя таблицы>

Παράδειγμα χρήσης:

Request.Text = //εάν ο τύπος τιμής εγγραφής είναι παραλαβή παραστατικού, //τότε το ερώτημα θα επιστρέψει "Παραλαβή αγαθών", διαφορετικά "Πωλήσεις αγαθών" "SELECT | SELECT | WHEN Remainings.Registrar LINK Document.Receipt of Goods and Υπηρεσίες |. "Απόδειξη" |.

2. Σχεδιασμός ΜΕΤΑΞΥ- αυτός ο τελεστής ελέγχει εάν η τιμή είναι εντός του καθορισμένου εύρους.

Σύνταξη: ΜΕΤΑΞΥ<Выражение>ΚΑΙ<Выражение>

Παράδειγμα χρήσης:

Request.Text = //λήψη ολόκληρης της ονοματολογίας της οποίας ο κωδικός κυμαίνεται από 1 έως 100 "ΕΠΙΛΟΓΗ | Ονοματολογία.Σύνδεσμος |FROM | Κατάλογος.Ονοματολογία ΩΣ Ονοματολογία |ΠΟΥ | Ονοματολογία.Κωδικός Μεταξύ 1 ΚΑΙ 100" ;

3. Κατασκευή Β και Β ΙΕΡΑΡΧΙΑ- ελέγξτε εάν η τιμή βρίσκεται στη λίστα μεταφερόμενων (πίνακες, πίνακες τιμών κ.λπ. μπορούν να μεταφερθούν ως λίστα). Ο τελεστής IN HIERARCHY σάς επιτρέπει να προβάλετε την ιεραρχία (ένα παράδειγμα χρήσης του Λογαριασμού).

Σύνταξη: ΣΕ(<СписокЗначений>), ΣΤΗΝ ΙΕΡΑΡΧΙΑ(<СписокЗначений>)

Παράδειγμα χρήσης:

Request.Text = //επιλέξτε όλους τους δευτερεύοντες λογαριασμούς του λογαριασμού "SELECT | Self-supporting. Link AS Account | FROM | Chart of Account. Self-supporting AS Self-supporting | WHERE | Self-supporting. Link IN HIERARCHY VALUE (Γράφημα Λογαριασμοί αυτοσυντηρούμενοι.

4. Σχεδιασμός ΠΑΡΟΜΟΙΟ- Αυτή η συνάρτηση μας επιτρέπει να συγκρίνουμε μια συμβολοσειρά με ένα μοτίβο συμβολοσειράς.

Σύνταξη: ΑΡΕΣΕΙ "<ТекстШаблона>"

Επιλογές μοτίβου σειράς:

% - μια ακολουθία που περιέχει οποιονδήποτε αριθμό αυθαίρετων χαρακτήρων.

Ένας αυθαίρετος χαρακτήρας.

[...] - οποιοσδήποτε μεμονωμένος χαρακτήρας ή ακολουθία χαρακτήρων που παρατίθενται μέσα σε αγκύλες. Η απαρίθμηση μπορεί να καθορίσει εύρη, για παράδειγμα a-z, που σημαίνει έναν αυθαίρετο χαρακτήρα που περιλαμβάνεται στο εύρος, συμπεριλαμβανομένων των άκρων του εύρους.

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

Παράδειγμα χρήσης:

Ερώτημα.Κείμενο = //βρείτε ολόκληρη την ονοματολογία που περιέχει τη ρίζα TABUR και ξεκινά //είτε με μικρό ή κεφαλαίο γράμμα t "ΕΠΙΛΟΓΗ | Ονοματολογία. Σύνδεσμος | ΑΠΟ | Κατάλογος. Ονοματολογία ΩΣ Ονοματολογία | ΠΟΥ | Προϊόντα. Όνομα LIKE "" [Tt ]abur%""" ;

5. Σχεδιασμός ΕΠΙΤΡΕΠΕΤΑΙ- αυτός ο χειριστής σάς επιτρέπει να επιλέξετε μόνο εκείνες τις εγγραφές από τη βάση δεδομένων για τις οποίες ο καλών έχει άδεια ανάγνωσης. Αυτά τα δικαιώματα διαμορφώνονται σε επίπεδο εγγραφής (RLS).

Σύνταξη: ΕΠΙΤΡΕΠΕΤΑΙ γράφεται μετά τη λέξη-κλειδί ΕΠΙΛΟΓΗ

Παράδειγμα χρήσης:

Request.Text = "ΕΠΙΛΟΓΗ ΕΠΙΤΡΕΠΩΝ | Αντισυμβαλλόμενοι. Σύνδεσμος | ΑΠΟ | Κατάλογος. Αντισυμβαλλόμενοι ΩΣ Αντισυμβαλλόμενοι";

6. Σχεδιασμός ΔΙΑΦΟΡΟΙ- σας επιτρέπει να επιλέξετε εγγραφές στις οποίες δεν υπάρχουν διπλότυπες εγγραφές.

Σύνταξη: ΔΙΑΦΟΡΕΣ γράφεται μετά τη λέξη-κλειδί ΕΠΙΛΟΓΗ

Παράδειγμα χρήσης:

Request.Text = //επιλέγει εγγραφές στις οποίες ο αναγνώστης έχει δικαιώματα "ΕΠΙΛΟΓΗ ΔΙΑΦΟΡΩΝ | Αντισυμβαλλόμενοι. Όνομα | ΑΠΟ | Κατάλογος. Αντισυμβαλλόμενοι ΩΣ Αντισυμβαλλόμενοι" ;

Επίσης, η ΔΙΑΦΟΡΙΚΗ κατασκευή μπορεί να χρησιμοποιηθεί με τον χειριστή ALLOWED και άλλους χειριστές.

Παράδειγμα χρήσης:

Request.Text = //επιλέγει διάφορες εγγραφές στις οποίες ο αναγνώστης έχει δικαιώματα "ΕΠΙΛΟΓΗ ΕΠΙΤΡΕΠΩΝ ΔΙΑΦΟΡΩΝ | Αντισυμβαλλόμενοι. Όνομα | ΑΠΟ | Κατάλογος. Αντισυμβαλλόμενοι ΩΣ Αντισυμβαλλόμενοι";

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

Σύνταξη: ΠΡΩΤΟΣ<число>

Παράδειγμα χρήσης:

Request.Text = //επιλέξτε τους πρώτους 4 αριθμούς CCD από τον κατάλογο "SELECT FIRST 4 | CCD Numbers. Link | FROM | Directory. CCD Numbers AS CCD Numbers";

8. Σχεδιασμός ΓΙΑ ΑΛΛΑΓΗ- σας επιτρέπει να κλειδώσετε ένα τραπέζι, λειτουργεί μόνο σε συναλλαγές (σχετικό μόνο για αυτόματα κλείδωμα).

Σύνταξη: ΓΙΑ ΑΛΛΑΓΗ<НаименованиеТаблицы>

Παράδειγμα χρήσης:

Ερώτημα.Κείμενο = "ΕΠΙΛΟΓΗ | Ελεύθερα υπολείμματα. Ονοματολογία, | Δωρεάν υπολείμματα. Αποθήκη, | Ελεύθερα υπολείμματα. Σε απόθεμα | Ελεύθερα υπολείμματα».

9. Σχεδιασμός ΠΑΡΑΓΓΕΛΙΑ ΑΠΟ- οργανώνει δεδομένα ανά συγκεκριμένο πεδίο. Εάν το πεδίο είναι σύνδεσμος, τότε κατά τη ρύθμιση της σημαίας ΑΥΤΟΜΑΤΗ ΠΑΡΑΓΓΕΛΙΑΗ ταξινόμηση θα γίνει κατά αναπαράσταση συνδέσμου εάν η σημαία είναι απενεργοποιημένη, τότε οι σύνδεσμοι ταξινομούνται με βάση την αρχαιότητα της διεύθυνσης συνδέσμου στη μνήμη.

Σύνταξη: ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ<НаименованиеПоля>ΑΥΤΟΜΑΤΗ ΠΑΡΑΓΓΕΛΙΑ

Παράδειγμα χρήσης:

Ερώτημα.Κείμενο = "ΕΠΙΛΟΓΗ | Ελεύθερα υπόλοιπα. Ονοματολογία AS Ονοματολογία, | Ελεύθερα υπολείμματα. Αποθήκη AS Αποθήκη, | Ελεύθερα υπολείμματα που απομένουν. Σε απόθεμα που απομένουν | ΑΠΟ | Εγγραφή συσσωρεύσεων. Δωρεάν υπολείμματα. Υπόλοιπα AS Ελεύθερα υπολείμματα BORDERma | |. Ονοματολογία |.

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

Σύνταξη: ΟΜΑΔΑ ΑΠΟ<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Παράδειγμα χρήσης:

Ερώτημα.Κείμενο = "ΕΠΙΛΟΓΗ | ProductsInWarehouses.Ονοματολογία AS Ονοματολογία, | ProductsInWarehouses.Warehouse, | SUM(GoodsInWarehouses.InStock) AS INSTTOCK |FROM | RegisterAcumulations.ProductsInWarehouses AS ProductsInWarehouses σπίτι"?

11. Σχεδιασμός HAVING- σας επιτρέπει να εφαρμόσετε μια αθροιστική συνάρτηση σε μια συνθήκη επιλογής δεδομένων, παρόμοια με την κατασκευή WHERE.

Σύνταξη: ΕΧΟΝΤΑΣ<агрегатная функция с условием>

Παράδειγμα χρήσης:

Query.Text = //επιλέγει ομαδοποιημένες εγγραφές όπου το πεδίο InStock είναι μεγαλύτερο από 3 "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK.FROM | RegisterAccumulationSItemsInStocks | ΟΜΑΔΑ ΚΑΤΑ |. Προϊόντα Σε Αποθήκες. Ονοματολογία, |

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

Σύνταξη: ΕΥΡΕΤΗΡΙΟ ΑΠΟ<Поле1, ... , ПолеN>

Παράδειγμα χρήσης:

Query.Text = "ΕΠΙΛΟΓΗ | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | ΕΥΡΕΤΗΡΙΟ ΑΠΟ | Ts.NameOS, | Ts .CodeOS";

13. Σχεδιασμός ΠΟΥ- σας επιτρέπει να επιβάλετε μια συνθήκη σε οποιαδήποτε πεδία επιλογής. Το αποτέλεσμα θα περιλαμβάνει μόνο εγγραφές που ικανοποιούν την προϋπόθεση.

Σύνταξη: ΟΠΟΥ<Условие1 ОператорЛогСоединения УсловиеN>

Παράδειγμα χρήσης:

Query.Text = //επιλέγονται όλες οι εγγραφές με CompensationRemaining<>0 και //AmountForCalcCompRemaining > 100 "ΕΠΙΛΟΓΗ | CompensationRPORemains.Counterparty, |CompensationRPORemains.Child, | CompensationRPOREmains.CompensationRemains, | CompensationRPORemains.AmountForCalcCompRemains.RPRemains ationRPORemains |ΠΟΥ |ΑποζημίωσηRPORαπομένει.ΑποζημίωσηΥπόλοιπο<>0 | Και CompensationRPOREemains.AmountForCalcCompRemaining> 100" ;

14. Σχεδιαστικά ΑΠΟΤΕΛΕΣΜΑΤΑ... ΓΕΝΙΚΑ- χρησιμοποιείται για τον υπολογισμό των συνόλων, η σχεδίαση καθορίζει τα πεδία με τα οποία θα υπολογιστούν τα σύνολα και θα εφαρμοστούν συγκεντρωτικές συναρτήσεις στα συνολικά πεδία. Όταν χρησιμοποιείτε σύνολα για κάθε πεδίο που ακολουθεί την κατασκευή TOTAL, τα δεδομένα ομαδοποιούνται. Υπάρχει μια προαιρετική ΓΕΝΙΚΗ κατασκευή, η χρήση της παρέχει επίσης πρόσθετη ομαδοποίηση. Θα δείτε ένα παράδειγμα του αποτελέσματος του αιτήματος παρακάτω.

Σύνταξη: ΑΠΟΤΕΛΕΣΜΑΤΑ<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>ΜΕ<ОБЩИЕ> <Поле1, ... , ПолеN>

Παράδειγμα χρήσης:

αίτημα Διακανονισμός ΜΕ Αντισυμβαλλόμενους Υπολογισμοί ΣΥΝΟΛΟ |.

Το σχήμα περιγράφει τις ομαδοποιήσεις που σχηματίστηκαν κατά την εκτέλεση του αιτήματος, το πάνω μέρος αναφέρεται στην ενότητα ΓΕΝΙΚΑ και το δεύτερο στο πεδίο Τύπος συμφωνίας συμφωνίας αντισυμβαλλομένου.

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

Για τον χειριστή ΑΡΕΣΕΙΥπάρχουν ειδικοί χαρακτήρες υπηρεσίας που δεν γίνονται αντιληπτοί ως συμβολοσειρά:

  • Σύμβολο "%" τοις εκατό: υποδηλώνει την παρουσία οποιουδήποτε αριθμού αυθαίρετων χαρακτήρων σε μια συμβολοσειρά
  • "[...]" ένας ή περισσότεροι χαρακτήρες σε αγκύλες: υποδηλώνει την παρουσία οποιουδήποτε (ενός) από τους χαρακτήρες που αναφέρονται. Επίσης, μπορεί να καθοριστεί μια σειρά χαρακτήρων (για παράδειγμα)
  • "_" υπογράμμιση: υποδηλώνει την παρουσία οποιουδήποτε αυθαίρετου χαρακτήρα
  • "[^...]" χαρακτήρας άρνησης: υποδηλώνει την παρουσία οποιουδήποτε μεμονωμένου χαρακτήρα εκτός από αυτούς που καθορίζονται σε αγκύλες
Εάν πρέπει να καθορίσετε έναν από τους παραπάνω ειδικούς χαρακτήρες για σύγκριση, πρέπει να χρησιμοποιήσετε τη λέξη-κλειδί "ΕΙΔΙΚΟ ΣΥΜΒΟΛΟ"

Δυνατότητες χρήσης με διάφορα DBMS

IBM DB2"Μόνο μια παράμετρος μπορεί να τοποθετηθεί στα δεξιά του τελεστή SIMILAR. Οι μόνοι χαρακτήρες μπαλαντέρ είναι "_" (υπογράμμιση που σημαίνει οποιοσδήποτε χαρακτήρας) και "%" (το ποσοστό σημαίνει μια ακολουθία οποιωνδήποτε χαρακτήρων).
Σε περίπτωση χρήσης DBMS " PostgreSQL" ή " Βάση δεδομένων Oracle"οι ειδικοί χαρακτήρες "αγκύλες [...]" γίνονται αποδεκτοί μόνο εάν καθορίζονται στο κείμενο της αίτησης και ΔΕΝ μεταβιβάζονται ως παράμετρος στο αίτημα.

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

Παράδειγμα: επιλέξτε προϊόντα που περιέχουν το σύμβολο "%" στο όνομα

ΕΠΙΛΟΓΗ | Αναφ.Σύνδεσμος |ΑΠΟ | Κατάλογος Ονοματολογία ΠΩΣ | Ref.Name LIKE "%\%" ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ "\"

Παράδειγμα: επιλέξτε προϊόντα των οποίων τα ονόματα αρχίζουν με τη λέξη "Tank"

ΕΠΙΛΟΓΗ | Αναφ.Σύνδεσμος |ΑΠΟ | Κατάλογος Ονοματολογία ΠΩΣ | Ref.Name SIMILAR to "Bak%"

Παράδειγμα: επιλέξτε προϊόντα των οποίων τα ονόματα τελειώνουν με έναν αριθμό

ΕΠΙΛΟΓΗ | Αναφ.Σύνδεσμος |ΑΠΟ | Κατάλογος Ονοματολογία ΠΩΣ | Ref.Name SIMILAR to "%"

Ας δούμε τον σκοπό και τη χρήση του τελεστή υπό όρους LIKE (αγγλ. LIKE)στη γλώσσα ερωτημάτων 1C σε παραδείγματα.

Γρήγορο πέρασμα

Σκοπός

Ελέγξτε εάν η τιμή συμβολοσειράς στο αίτημα ταιριάζει με το καθορισμένο μοτίβο - επιστρέφει μια τιμή Boole (TRUE ή FALSE).

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

Χώροι χρήσης

  • Σύμφωνα με τους όρους του χειριστή WHERE
  • Στις συνθήκες σχεδιασμού ΕΠΙΛΟΓΗ ΠΟΤΕ<>ΜΕΤΑ "" ΑΛΛΟ "" ΤΕΛΟΣ
  • Στα πεδία επιλογής (για παράδειγμα: Όνομα LIKE &ParameterSimilar to StringSuitable)

Περιγραφή της σύνταξης του τελεστή LIKE

Η παράμετρος τελεστή πρέπει να είναι μια συμβολοσειρά: μπορεί να καθοριστεί ως σταθερά ή να μεταβιβαστεί ως παράμετρος αιτήματος.

Τα κυριολεκτικά (μάσκες) που αναφέρονται παρακάτω μπορούν να χρησιμοποιηθούν μαζί ή χωριστά.

Ακριβής προδιαγραφή συμβολοσειράς

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "1" // Iquivalent to Keys.Name ="1"

Αποτέλεσμα:

% είναι μια κυριολεκτική έννοια ενός αυθαίρετου αριθμού οποιωνδήποτε χαρακτήρων

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "%"

Αποτέλεσμα: οποιαδήποτε 10 αντικείμενα

_ (υπογράμμιση): κυριολεκτική αντιστοίχιση οποιουδήποτε χαρακτήρα

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

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "_"

Παράδειγμα #2:ξεκινώντας με οποιονδήποτε χαρακτήρα, ακολουθούμενο από "1" και μετά οποιονδήποτε χαρακτήρα

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "_1%"

Αποτέλεσμα:

(ένας ή περισσότεροι χαρακτήρες σε αγκύλες)

  • Κάθε κυριολεκτικό που ταιριάζει με οποιονδήποτε χαρακτήρα χρησιμοποιείται ως OR.
    Είναι αποδεκτό να καθορίσετε ένα εύρος, για παράδειγμα a-z, 0-5, που σημαίνει έναν αυθαίρετο χαρακτήρα από το καθορισμένο εύρος

Παράδειγμα

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "[l]%"

Αποτέλεσμα: 10 που αρχίζει με "l" ή "z"

Παράδειγμα:ξεκινώντας με 5,6,7

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "%"

Αποτέλεσμα:

[^] (σε αγκύλες υπάρχει ένα σύμβολο διαφυγής ^ ακολουθούμενο από έναν ή περισσότερους χαρακτήρες)

Ισοδυναμεί με οποιονδήποτε χαρακτήρα (_) εκτός από αυτούς που καθορίζονται ()

Παράδειγμα

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name SIMILAR to "8.[^012]%"//δεν περιλαμβάνουν 8.0,8.1,8.2

Αποτέλεσμα: όλα ξεκινούν με "8." εξαιρουμένων αυτών που αναφέρονται

ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ - εντολή για τον καθορισμό των χαρακτήρων που καταχωρήθηκαν παραπάνω στο αίτημα

Ως σύμβολο υπηρεσίας, είναι αποδεκτή η χρήση τουλάχιστον: #,~,/,\

Παράδειγμα:

ΕΠΙΛΕΞΤΕ πρώτοι 10
Κλειδιά.Όνομα
ΑΠΟ
Directory.Keys AS Keys
ΟΠΟΥ
Keys.Name LIKE "#_" ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ "#"

Αποτέλεσμα:

Δυνατότητα εφαρμογής σε πλατφόρμες

Λανθασμένες παράμετροι LIKE<>

  • Διαβιβάζεται μια παράμετρος τύπου χωρίς συμβολοσειρά: για παράδειγμα, ο αριθμός 1 αντί για τη συμβολοσειρά "1"
  • Ένα πεδίο τύπου χωρίς συμβολοσειρά συγκρίνεται με μια έγκυρη μάσκα (για παράδειγμα, μια σύνδεση) ή κατά τη σύνδεση, η τιμή δεν ελέγχεται για IsNUL

Δώστε προσοχή στο κείμενο σφάλματος όπου εμφανίζεται η ερώτηση:

Κλειδιά.Όνομα ΟΜΟΙΟ<>&Λ

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

Μετά τον έλεγχο, επιστρέφει το True ή False ανάλογα, χρησιμοποιείται ενεργά σε συνθήκες.
Οι ακόλουθοι χαρακτήρες υπηρεσίας χρησιμοποιούνται για τη δημιουργία ενός προτύπου:

  • % (ποσοστό) - μια ακολουθία που περιέχει οποιονδήποτε αριθμό αυθαίρετων χαρακτήρων
  • _ (υπογράμμιση) - ένας αυθαίρετος χαρακτήρας
  • […] (ένας ή περισσότεροι χαρακτήρες σε αγκύλες) - οποιοσδήποτε μεμονωμένος χαρακτήρας παρατίθεται μέσα στις αγκύλες
    Επίσης, εκτός από διάφορα σύμβολα, μπορείτε να χρησιμοποιήσετε εύρη, για παράδειγμα a-z(A-z), που σημαίνει την παρουσία ενός αυθαίρετου συμβόλου που περιλαμβάνεται στο εύρος, συμπεριλαμβανομένων των άκρων του εύρους.
  • [^...] (σε αγκύλες ένα σύμβολο άρνησης ακολουθούμενο από έναν ή περισσότερους χαρακτήρες) - οποιοσδήποτε μεμονωμένος χαρακτήρας εκτός από αυτούς που αναφέρονται μετά το σύμβολο άρνησης

Τα υπόλοιπα σύμβολα χρησιμοποιούνται για τον προορισμό τους.
Εάν είναι απαραίτητο να μεταδοθεί ένας από τους παραπάνω χαρακτήρες υπηρεσίας ως σύμβολο, τότε πρέπει να προηγείται<Спецсимвол>. Εγώ ο ίδιος<Спецсимвол>(οποιοσδήποτε κατάλληλος χαρακτήρας) ορίζεται στην ίδια πρόταση μετά τη λέξη-κλειδί ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ.
Για παράδειγμα, το μοτίβο "%ABV[abvg]\_abv%" ΕΙΔΙΚΟΣ ΧΑΡΑΚΤΗΡΑΣ "\" σημαίνει μια υποσυμβολοσειρά που αποτελείται από μια ακολουθία χαρακτήρων:
γράμματα Α; γράμματα Β; γράμματα Β; ένα ψηφίο? ένα από τα γράμματα a, b, c ή d. κατω παυλα; γράμματα α; γράμματα β? γράμματα v.
Επιπλέον, αυτή η ακολουθία μπορεί να προηγείται από ένα αυθαίρετο σύνολο χαρακτήρων.

Διαδικασία Επιλέξτε ΣυμφωνίαContainingInNameText(mText)
//Στο αίτημα θα χρησιμοποιήσουμε ένα πρότυπο όπως "%" + mText + "%" Request = New Request; Query.SetParameter("Όνομα", "%" + Κείμενο + "%"); Request.Text = "ΕΠΙΛΟΓΗ | Συμφωνίες. Σύνδεσμος, | Συμφωνίες. Ιδιοκτήτης | ΑΠΟ | Κατάλογος. Συμβάσεις αντισυμβαλλομένων ΩΣ Συμφωνίες | | ΠΟΥ | Συμφωνίες. Όνομα ΠΑΡΟΜΟΙΑ & Όνομα"; Αποτέλεσμα = Query.Run(); Selection = Result.Select(); Report("Συμφωνίες που περιέχουν στο όνομα: " + mText + " έχουν τους ακόλουθους αντισυμβαλλόμενους"); Ενώ Selection.Next() Cycle Report("Counterparty: " + Selection.Owner + "; Agreement: " + Selection. Link EndIf; EndProcedure

Μερικές φορές προκύπτει μια κατάσταση όταν στο 1C 8.3 ή 8.2 πρέπει να κάνετε μια επιλογή, για παράδειγμα, από έναν κατάλογο όλων των στοιχείων που έχουν τη λέξη "glaze" στο όνομά τους. Ή, από τον κατάλογο, επιλέξτε όλους τους εργολάβους των οποίων τα επώνυμα περιέχουν τη λέξη "Ivan". Γενικά, ελέγξτε κάποια τιμή συμβολοσειράς.

Για το σκοπό αυτό, υπάρχει ένας τελεστής στα ερωτήματα 1C 8.3 και 8.2 - "Παρόμοιο". Χρησιμοποιείται, αντίστοιχα, στις ακόλουθες συνθήκες:

Λάβετε 267 μαθήματα βίντεο στο 1C δωρεάν:

Πώς να χρησιμοποιήσετε πρότυπα σε ερωτήματα 1C;

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

Για παράδειγμα, ο χαρακτήρας "%" επιτρέπει οποιαδήποτε ακολουθία αυθαίρετων χαρακτήρων:

Υπάρχουν και άλλοι ειδικοί χαρακτήρες:

  • % (ποσοστό) - επιτρέπει οποιαδήποτε ακολουθία αυθαίρετων χαρακτήρων.
  • _ (υπογράμμιση) - οποιοσδήποτε μεμονωμένος χαρακτήρας.
  • […] – ένας αυθαίρετος χαρακτήρας από αυτούς που αναφέρονται στις αγκύλες. Εκτός από την καταχώριση χαρακτήρων, μπορείτε να χρησιμοποιήσετε εύρη. Παράδειγμα: a-o;
  • [^...] – το ίδιο με το προηγούμενο, αλλά αντίστροφα. Το σύμβολο "^" σημαίνει άρνηση.


Έχετε ερωτήσεις;

Αναφέρετε ένα τυπογραφικό λάθος

Κείμενο που θα σταλεί στους συντάκτες μας: