Υπολογισμένα πεδία στο SKD. Γλώσσα έκφρασης συστήματος σύνθεσης δεδομένων (1Cv8)

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

Πρόσθετες ρυθμίσεις για πεδία ACS.

Στήλη "Τύπος τιμής"Σας επιτρέπει να καθορίσετε τον τύπο δεδομένων για το πεδίο διάταξης. Γιατί να καθορίσετε τον τύπο, για παράδειγμα, για το πεδίο "Ονοματολογία", εάν γνωρίζετε ήδη τι τύπο είναι; Αυτό είναι απαραίτητο εάν το πεδίο διάταξης είναι σύνθετου τύπου. Μπορείτε να επιλέξετε έναν συγκεκριμένο τύπο και, στη συνέχεια, κατά την επιλογή από αυτό το πεδίο, θα επιλεγούν τιμές αυτού του τύπου.

Στήλη "Διαθέσιμες τιμές"σας επιτρέπει να καθορίσετε τις τιμές που είναι διαθέσιμες για επιλογή και να περιορίσετε την επιλογή του χρήστη σε ορισμένα όρια.

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

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

Υπολογισμένα πεδία

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

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

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

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

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

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

1. Ρυθμίστε ένα αίτημα στο σύστημα ελέγχου πρόσβασης.

2. Ρυθμίστε τα υπολογισμένα πεδία στο σύστημα ελέγχου πρόσβασης

3. Διαμορφώστε τη διάταξη δεδομένων στην καρτέλα ρυθμίσεων

4. Εκκινήστε το 1C Enterprise 8.2.14. Ανοίξτε την αναφορά. Σχηματίζουμε, λαμβάνουμε.

Περιγραφή των ίδιων των νέων λειτουργιών:

1. Η τρέχουσα ημερομηνία()

Επιστρέφει την ημερομηνία συστήματος. Κατά τη σύνθεση μιας διάταξης διάταξης, σε όλες τις εκφράσεις που υπάρχουν στη διάταξη, η συνάρτηση CurrentDate() αντικαθίσταται με την τιμή της τρέχουσας ημερομηνίας.

2. COMPUTEEXPRESSION()

Σύνταξη:

CalculateExpression(,)

Περιγραφή:

Η συνάρτηση έχει σχεδιαστεί για να αξιολογεί μια έκφραση στο πλαίσιο κάποιας ομαδοποίησης.

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

Η συνάρτηση δεν μπορεί να εφαρμοστεί σε μια ομαδοποίηση στην επιλογή ομάδας αυτής της ομαδοποίησης. Για παράδειγμα, κατά την επιλογή της ομαδοποίησης Ονοματολογίας, δεν μπορείτε να χρησιμοποιήσετε την έκφραση CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Αλλά μια τέτοια έκφραση μπορεί να χρησιμοποιηθεί στην ιεραρχική επιλογή.

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

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

Σύνδεση διάταξης κατά τη δημιουργία μιας έκφρασης συνάρτησης CalculateExpression, εάν η παράσταση σειράς περιέχει πεδία που δεν μπορούν να χρησιμοποιηθούν στην ομαδοποίηση, αντικαθιστά τη συνάρτηση CalculateExpressionεπί ΜΗΔΕΝΙΚΟ.

Επιλογές

Τύπος: Γραμμή. Η έκφραση που πρέπει να αξιολογηθεί.

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

Για παράδειγμα:

Sum(Sales.SumTurnover)/Calculate("Sum(Sales.SumTurnover)", "Total")

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

Τύπος: Γραμμή. Η παράμετρος μπορεί να λάβει τις ακόλουθες τιμές:

· σύνολο— η έκφραση θα υπολογιστεί για όλες τις εγγραφές ομαδοποίησης.

· Ιεραρχία— η έκφραση θα αξιολογηθεί για τη γονική ιεραρχική εγγραφή, εάν υπάρχει, και για ολόκληρη την ομαδοποίηση, εάν δεν υπάρχει γονική ιεραρχική εγγραφή.

· Ομαδοποίηση— η έκφραση θα αξιολογηθεί για την τρέχουσα εγγραφή ομαδοποίησης.

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

Κατά τον υπολογισμό μιας συνάρτησης CalculateExpression() με νόημα GroupingNonResourceγια ομαδικές εγγραφές που δεν ομαδοποιούνται κατά πόρους, η συνάρτηση υπολογίζεται με τον ίδιο τρόπο που θα υπολογίζονταν εάν η τιμή της παραμέτρου ήταν ίση με την τιμή Ομαδοποίηση.

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

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

· Πρώτα

· Τελευταίο (Τελευταίο)

· Προηγούμενος

· Επόμενο (Επόμενο)

· Ρεύμα

· LimitingValue(BoundaryValue) LimitingValue

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

· Πρώτα. Είναι απαραίτητο να αποκτήσετε την πρώτη εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από την αρχή της ομαδοποίησης. Η τιμή που προκύπτει πρέπει να είναι ακέραιος μεγαλύτερος από το μηδέν. Για παράδειγμα, First(3) - λήψη της τρίτης εγγραφής από την αρχή της ομαδοποίησης.

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

· Τελευταίο (Τελευταίο). Πρέπει να λάβετε την τελευταία εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από το τέλος της ομαδοποίησης. Η τιμή που προκύπτει πρέπει να είναι ακέραιος μεγαλύτερος από το μηδέν. Για παράδειγμα, Last(3) - λήψη της τρίτης εγγραφής από το τέλος της ομάδας.

Εάν η τελευταία εγγραφή είναι εκτός ομαδοποίησης, τότε θεωρείται ότι δεν υπάρχουν εγγραφές. Για παράδειγμα, εάν υπάρχουν 3 εγγραφές και θέλετε να πάρετε το Last(4), τότε θεωρείται ότι δεν υπάρχουν εγγραφές.

· Προηγούμενος. Πρέπει να λάβετε την προηγούμενη εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από την τρέχουσα εγγραφή ομαδοποίησης. Για παράδειγμα, Προηγούμενο(2) - λήψη του προηγούμενου από την προηγούμενη εγγραφή.

Εάν η προηγούμενη εγγραφή υπερβαίνει την ομαδοποίηση (για παράδειγμα, για τη δεύτερη εγγραφή ομαδοποίησης πρέπει να λάβετε το Previous(3)), τότε λαμβάνεται η πρώτη εγγραφή ομαδοποίησης.

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

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

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

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

· Ρεύμα. Πρέπει να λάβετε την τρέχουσα εγγραφή.

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

· LimitingValue(BoundaryValue). Η ανάγκη λήψης μιας εγγραφής με την καθορισμένη τιμή. Μετά τη λέξη LimitingValueσε αγκύλες πρέπει να υποδείξετε την έκφραση με την τιμή της οποίας θέλετε να ξεκινήσετε το τμήμα, το πρώτο πεδίο παραγγελίας.

Η πρώτη εγγραφή της οποίας η τιμή του πεδίου παραγγελίας είναι μεγαλύτερη ή ίση με την καθορισμένη τιμή θα επιστραφεί ως εγγραφή. Για παράδειγμα, εάν το πεδίο Περίοδος χρησιμοποιείται ως πεδίο παραγγελίας και έχει τις τιμές 01/01/2010, 02/01/2010, 03/01/2010 και θέλετε να λάβετε LimitingValue(DateTime(2010, 1, 15)), τότε θα ληφθεί ένα αρχείο με ημερομηνία 02/01/2010.

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

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

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

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

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

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

ημερομηνία Πλήρες όνομα Εννοια
1 1 Ιανουαρίου 2001

Ιβάνοφ Μ.

10
2 02 Ιανουαρίου 2001 Πετρόφ Σ. 20
3 03 Ιανουαρίου 2001 Σιντόροφ Ρ. 30
4 04 Ιανουαρίου 2001 Πετρόφ Σ. 40

Χωριστά, Οτι:

§ η προηγούμενη καταχώρηση στην καταχώρηση 3 θα είναι η καταχώριση 2.

Τρέχον, Τρέχον(ανάλογα, παράμετροι ΑρχήΚαι Τέλος), τότε για την εγγραφή 2 αυτό το κομμάτι θα αποτελείται από μία εγγραφή 2. Η έκφραση θα είναι ίση με 20.

Εάν η τιμή της παραμέτρου είναι Μαζί, Οτι:

§ η προηγούμενη καταχώρηση στην καταχώρηση 3 θα είναι η καταχώριση 1.

§ εάν το τμήμα υπολογισμού ορίζεται ως Τρέχον, Τρέχον(ανάλογα, παράμετροι ΑρχήΚαι Τέλος), τότε για την εγγραφή 2 αυτό το τμήμα θα αποτελείται από τις εγγραφές 2 και 3. Έκφραση CalculateExpression("Sum(Value)", Current, Current)θα είναι ίσο με 50.

Όταν καθορίζετε μια τιμή παραμέτρου ίση με Μαζί, σε παραμέτρους ΑρχήΚαι Τέλοςδεν μπορείτε να καθορίσετε μια μετατόπιση για θέσεις Πρώτο, Τελευταίο, Προηγούμενο, Επόμενο.

CalculateExpression("Sum(SumTurnover)", "First", "Current")

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

CalculateExpression("Rate", "Previous")

Λίστα νέοςλειτουργίες:

CalculateExpressionWithGroupArray(,) -

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

CalculateExpressionWithGroupValueTable(,) -

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

ValueFilled() - Επιστρέφει True εάν η τιμή είναι διαφορετική από την προεπιλεγμένη τιμή αυτού του τύπου, εκτός από το NULL, εκτός από μια κενή αναφορά, εκτός από την Undefined. Οι τιμές Boole ελέγχονται για τιμές NULL. Οι συμβολοσειρές ελέγχονται για την απουσία χαρακτήρων χωρίς κενά

Μορφή(, ) - Λήψη μιας μορφοποιημένης συμβολοσειράς της τιμής που πέρασε. Η συμβολοσειρά μορφοποίησης ορίζεται σύμφωνα με τη συμβολοσειρά μορφοποίησης του συστήματος 1C:Enterprise.

Υποσυμβολοσειρά(, , ) - Αυτή η συνάρτηση έχει σχεδιαστεί για να εξάγει μια υποσυμβολοσειρά από μια συμβολοσειρά.

Μήκος γραμμής() - Η συνάρτηση έχει σχεδιαστεί για να προσδιορίζει το μήκος μιας συμβολοσειράς. Η παράμετρος είναι μια έκφραση συμβολοσειράς

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

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

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

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

1. Ρυθμίστε ένα αίτημα στο σύστημα ελέγχου πρόσβασης.

2. Ρυθμίστε τα υπολογισμένα πεδία στο σύστημα ελέγχου πρόσβασης

3. Διαμορφώστε τη διάταξη δεδομένων στην καρτέλα ρυθμίσεων

4. Εκκινήστε το 1C Enterprise 8.2.14. Ανοίξτε την αναφορά. Σχηματίζουμε, λαμβάνουμε.

Περιγραφή των ίδιων των νέων λειτουργιών:

1. Η τρέχουσα ημερομηνία()

Επιστρέφει την ημερομηνία συστήματος. Κατά τη σύνθεση μιας διάταξης διάταξης, σε όλες τις εκφράσεις που υπάρχουν στη διάταξη, η συνάρτηση CurrentDate() αντικαθίσταται με την τιμή της τρέχουσας ημερομηνίας.

2. COMPUTEEXPRESSION()

Σύνταξη:

CalculateExpression(,)

Περιγραφή:

Η συνάρτηση έχει σχεδιαστεί για να αξιολογεί μια έκφραση στο πλαίσιο κάποιας ομαδοποίησης.

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

Η συνάρτηση δεν μπορεί να εφαρμοστεί σε μια ομαδοποίηση στην επιλογή ομάδας αυτής της ομαδοποίησης. Για παράδειγμα, κατά την επιλογή της ομαδοποίησης Ονοματολογίας, δεν μπορείτε να χρησιμοποιήσετε την έκφραση CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000. Αλλά μια τέτοια έκφραση μπορεί να χρησιμοποιηθεί στην ιεραρχική επιλογή.

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

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

Σύνδεση διάταξης κατά τη δημιουργία μιας έκφρασης συνάρτησης CalculateExpression, εάν η παράσταση σειράς περιέχει πεδία που δεν μπορούν να χρησιμοποιηθούν στην ομαδοποίηση, αντικαθιστά τη συνάρτηση CalculateExpressionεπί ΜΗΔΕΝΙΚΟ.

Επιλογές

Τύπος: Γραμμή. Η έκφραση που πρέπει να αξιολογηθεί.

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

Για παράδειγμα:

Sum(Sales.SumTurnover)/Calculate("Sum(Sales.SumTurnover)", "Total")

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

Τύπος: Γραμμή. Η παράμετρος μπορεί να λάβει τις ακόλουθες τιμές:

· σύνολο— η έκφραση θα υπολογιστεί για όλες τις εγγραφές ομαδοποίησης.

· Ιεραρχία— η έκφραση θα αξιολογηθεί για τη γονική ιεραρχική εγγραφή, εάν υπάρχει, και για ολόκληρη την ομαδοποίηση, εάν δεν υπάρχει γονική ιεραρχική εγγραφή.

· Ομαδοποίηση— η έκφραση θα αξιολογηθεί για την τρέχουσα εγγραφή ομαδοποίησης.

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

Κατά τον υπολογισμό μιας συνάρτησης CalculateExpression() με νόημα GroupingNonResourceγια ομαδικές εγγραφές που δεν ομαδοποιούνται κατά πόρους, η συνάρτηση υπολογίζεται με τον ίδιο τρόπο που θα υπολογίζονταν εάν η τιμή της παραμέτρου ήταν ίση με την τιμή Ομαδοποίηση.

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

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

· Πρώτα

· Τελευταίο (Τελευταίο)

· Προηγούμενος

· Επόμενο (Επόμενο)

· Ρεύμα

· LimitingValue(BoundaryValue) LimitingValue

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

· Πρώτα. Είναι απαραίτητο να αποκτήσετε την πρώτη εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από την αρχή της ομαδοποίησης. Η τιμή που προκύπτει πρέπει να είναι ακέραιος μεγαλύτερος από το μηδέν. Για παράδειγμα, First(3) - λήψη της τρίτης εγγραφής από την αρχή της ομαδοποίησης.

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

· Τελευταίο (Τελευταίο). Πρέπει να λάβετε την τελευταία εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από το τέλος της ομαδοποίησης. Η τιμή που προκύπτει πρέπει να είναι ακέραιος μεγαλύτερος από το μηδέν. Για παράδειγμα, Last(3) - λήψη της τρίτης εγγραφής από το τέλος της ομάδας.

Εάν η τελευταία εγγραφή είναι εκτός ομαδοποίησης, τότε θεωρείται ότι δεν υπάρχουν εγγραφές. Για παράδειγμα, εάν υπάρχουν 3 εγγραφές και θέλετε να πάρετε το Last(4), τότε θεωρείται ότι δεν υπάρχουν εγγραφές.

· Προηγούμενος. Πρέπει να λάβετε την προηγούμενη εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από την τρέχουσα εγγραφή ομαδοποίησης. Για παράδειγμα, Προηγούμενο(2) - λήψη του προηγούμενου από την προηγούμενη εγγραφή.

Εάν η προηγούμενη εγγραφή υπερβαίνει την ομαδοποίηση (για παράδειγμα, για τη δεύτερη εγγραφή ομαδοποίησης πρέπει να λάβετε το Previous(3)), τότε λαμβάνεται η πρώτη εγγραφή ομαδοποίησης.

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

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

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

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

· Ρεύμα. Πρέπει να λάβετε την τρέχουσα εγγραφή.

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

· LimitingValue(BoundaryValue). Η ανάγκη λήψης μιας εγγραφής με την καθορισμένη τιμή. Μετά τη λέξη LimitingValueσε αγκύλες πρέπει να υποδείξετε την έκφραση με την τιμή της οποίας θέλετε να ξεκινήσετε το τμήμα, το πρώτο πεδίο παραγγελίας.

Η πρώτη εγγραφή της οποίας η τιμή του πεδίου παραγγελίας είναι μεγαλύτερη ή ίση με την καθορισμένη τιμή θα επιστραφεί ως εγγραφή. Για παράδειγμα, εάν το πεδίο Περίοδος χρησιμοποιείται ως πεδίο παραγγελίας και έχει τις τιμές 01/01/2010, 02/01/2010, 03/01/2010 και θέλετε να λάβετε LimitingValue(DateTime(2010, 1, 15)), τότε θα ληφθεί ένα αρχείο με ημερομηνία 02/01/2010.

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

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

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

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

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

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

ημερομηνία Πλήρες όνομα Εννοια
1 1 Ιανουαρίου 2001

Ιβάνοφ Μ.

10
2 02 Ιανουαρίου 2001 Πετρόφ Σ. 20
3 03 Ιανουαρίου 2001 Σιντόροφ Ρ. 30
4 04 Ιανουαρίου 2001 Πετρόφ Σ. 40

Χωριστά, Οτι:

§ η προηγούμενη καταχώρηση στην καταχώρηση 3 θα είναι η καταχώριση 2.

Τρέχον, Τρέχον(ανάλογα, παράμετροι ΑρχήΚαι Τέλος), τότε για την εγγραφή 2 αυτό το κομμάτι θα αποτελείται από μία εγγραφή 2. Η έκφραση θα είναι ίση με 20.

Εάν η τιμή της παραμέτρου είναι Μαζί, Οτι:

§ η προηγούμενη καταχώρηση στην καταχώρηση 3 θα είναι η καταχώριση 1.

§ εάν το τμήμα υπολογισμού ορίζεται ως Τρέχον, Τρέχον(ανάλογα, παράμετροι ΑρχήΚαι Τέλος), τότε για την εγγραφή 2 αυτό το τμήμα θα αποτελείται από τις εγγραφές 2 και 3. Έκφραση CalculateExpression("Sum(Value)", Current, Current)θα είναι ίσο με 50.

Όταν καθορίζετε μια τιμή παραμέτρου ίση με Μαζί, σε παραμέτρους ΑρχήΚαι Τέλοςδεν μπορείτε να καθορίσετε μια μετατόπιση για θέσεις Πρώτο, Τελευταίο, Προηγούμενο, Επόμενο.

CalculateExpression("Sum(SumTurnover)", "First", "Current")

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

CalculateExpression("Rate", "Previous")

Λίστα νέοςλειτουργίες:

CalculateExpressionWithGroupArray(,) -

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

CalculateExpressionWithGroupValueTable(,) -

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

ValueFilled() - Επιστρέφει True εάν η τιμή είναι διαφορετική από την προεπιλεγμένη τιμή αυτού του τύπου, εκτός από το NULL, εκτός από μια κενή αναφορά, εκτός από την Undefined. Οι τιμές Boole ελέγχονται για τιμές NULL. Οι συμβολοσειρές ελέγχονται για την απουσία χαρακτήρων χωρίς κενά

Μορφή(, ) - Λήψη μιας μορφοποιημένης συμβολοσειράς της τιμής που πέρασε. Η συμβολοσειρά μορφοποίησης ορίζεται σύμφωνα με τη συμβολοσειρά μορφοποίησης του συστήματος 1C:Enterprise.

Υποσυμβολοσειρά(, , ) - Αυτή η συνάρτηση έχει σχεδιαστεί για να εξάγει μια υποσυμβολοσειρά από μια συμβολοσειρά.

Μήκος γραμμής() - Η συνάρτηση έχει σχεδιαστεί για να προσδιορίζει το μήκος μιας συμβολοσειράς. Η παράμετρος είναι μια έκφραση συμβολοσειράς

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

1. Υπολογίστε (Eval)- προορίζεται για την αξιολόγηση μιας έκφρασης στο πλαίσιο κάποιας ομαδοποίησης. Η λειτουργία χρησιμοποιείται για συμβατότητα με προηγούμενες εκδόσεις της πλατφόρμας. Συνιστάται η χρήση της συνάρτησης CalculateExpression.

Σύνταξη:
Υπολογισμός (Έκφραση, Ομαδοποίηση, Τύπος Υπολογισμού)

Επιλογές:

  • Εκφραση(Γραμμή). Περιέχει μια υπολογισμένη έκφραση.
  • Ομαδοποίηση(Γραμμή). Περιέχει το όνομα της ομάδας στο πλαίσιο της οποίας θα αξιολογηθεί η έκφραση. Εάν χρησιμοποιείται μια κενή συμβολοσειρά ως όνομα ομαδοποίησης, ο υπολογισμός θα εκτελεστεί στο πλαίσιο της τρέχουσας ομαδοποίησης. Εάν η συμβολοσειρά GrandTotal χρησιμοποιείται ως όνομα ομάδας, ο υπολογισμός θα εκτελεστεί στο πλαίσιο του γενικού συνόλου. Διαφορετικά, ο υπολογισμός θα εκτελεστεί στο πλαίσιο της γονικής ομάδας με το ίδιο όνομα.
    Για παράδειγμα:
    Sum(Sales.SumTurnover) / Υπολογισμός("Sum(Sales.SumTurnover)", "Total").
    Σε αυτό το παράδειγμα, το αποτέλεσμα θα είναι η αναλογία του ποσού για το πεδίο "Sales.AmountTurnover" της εγγραφής ομαδοποίησης προς το ποσό του ίδιου πεδίου σε ολόκληρη τη διάταξη.
  • Τύπος υπολογισμού(Γραμμή). Εάν αυτή η παράμετρος οριστεί σε "TotalTotal", η έκφραση θα υπολογιστεί για όλες τις εγγραφές ομαδοποίησης. Εάν η τιμή της παραμέτρου είναι "Ομαδοποίηση", οι τιμές θα υπολογιστούν για την τρέχουσα εγγραφή ομάδας ομαδοποίησης.
2. Αξιολόγηση έκφρασης (EvalExpression) - προορίζεται για την αξιολόγηση μιας έκφρασης στο πλαίσιο κάποιας ομαδοποίησης. Η συνάρτηση λαμβάνει υπόψη την επιλογή των ομαδοποιήσεων, αλλά δεν λαμβάνει υπόψη τις ιεραρχικές επιλογές. Η συνάρτηση δεν μπορεί να εφαρμοστεί σε μια ομαδοποίηση στην επιλογή ομάδας αυτής της ομαδοποίησης.

Σύνταξη:
CalculateExpression(Expression, Grouping, CalculationType, Start, End, Sort, HierarchicalSort, ProcessingIdenticalOrderValues)

Επιλογές:

  • Εκφραση(Γραμμή). Περιέχει μια υπολογισμένη έκφραση.
  • Ομαδοποίηση(Γραμμή). Περιέχει το όνομα της ομάδας στο πλαίσιο της οποίας θα αξιολογηθεί η έκφραση. Εάν χρησιμοποιείται μια κενή συμβολοσειρά ως όνομα ομαδοποίησης, ο υπολογισμός θα εκτελεστεί στο πλαίσιο της τρέχουσας ομαδοποίησης. Εάν η συμβολοσειρά GrandTotal χρησιμοποιείται ως όνομα ομάδας, ο υπολογισμός θα εκτελεστεί στο πλαίσιο του γενικού συνόλου. Διαφορετικά, ο υπολογισμός θα εκτελεστεί στο πλαίσιο της γονικής ομαδοποίησης με αυτό το όνομα.
  • Τύπος υπολογισμού(Γραμμή). Εάν αυτή η παράμετρος οριστεί σε "TotalTotal", η έκφραση θα υπολογιστεί για όλες τις εγγραφές ομαδοποίησης. Εάν η τιμή της παραμέτρου είναι "Ομαδοποίηση", οι τιμές θα υπολογιστούν για την τρέχουσα εγγραφή ομάδας ομαδοποίησης. Εάν η παράμετρος έχει οριστεί σε "Ομαδοποίηση μη πόρων", τότε κατά τον υπολογισμό της συνάρτησης για μια εγγραφή ομάδας ανά πόρο, η έκφραση θα αξιολογηθεί για την πρώτη εγγραφή ομάδας της αρχικής ομαδοποίησης. Κατά την αξιολόγηση της συνάρτησης CalculateExpression με την τιμή "GroupingNonResource" για εγγραφές ομάδας που δεν είναι ομαδοποιήσεις κατά πόρο, η συνάρτηση αξιολογείται με τον ίδιο τρόπο όπως θα αξιολογούνταν με την τιμή της παραμέτρου "Grouping". Το εργαλείο δημιουργίας διάταξης σύνθεσης δεδομένων, όταν δημιουργεί μια διάταξη σύνθεσης δεδομένων κατά την έξοδο ενός πεδίου - ένας πόρος με τον οποίο εκτελείται η ομαδοποίηση, στη διάταξη, εξάγει στη διάταξη μια παράσταση που υπολογίζεται χρησιμοποιώντας τη συνάρτηση CalculateExpression με την καθορισμένη παράμετρο "GroupingNon-Resource". Για άλλους πόρους που ομαδοποιούνται ανά πόρο, επιστρέφονται οι κανονικές εκφράσεις πόρων. Εάν η παράμετρος έχει οριστεί σε "Ιεραρχία", τότε η έκφραση πρέπει να αξιολογηθεί για τη γονική ιεραρχική εγγραφή, εάν υπάρχει, και για ολόκληρη την ομαδοποίηση, εάν δεν υπάρχει γονική ιεραρχική εγγραφή. Το εργαλείο δημιουργίας διάταξης, όταν δημιουργεί μια έκφραση για το % στο πεδίο Ομάδα ιεραρχίας, δημιουργεί μια παράσταση που περιέχει τη σχέση της έκφρασης του πόρου με τη συνάρτηση CalculateExpression για την έκφραση πόρων που υπολογίζεται για την τρέχουσα ομαδοποίηση με τύπο υπολογισμού Ιεραρχία.
  • Αρχή. Υποδεικνύει από ποια εγγραφή θα πρέπει να ξεκινά το θραύσμα, σε ποιες συναρτήσεις έκφρασης συγκεντρωτικών θα πρέπει να υπολογίζονται και από ποια εγγραφή να λαμβάνονται τιμές πεδίου εκτός των συναρτήσεων συγκεντρωτικών. Μια συμβολοσειρά που περιέχει ένα από:
    • "Πρώτα" Είναι απαραίτητο να αποκτήσετε την πρώτη εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από την αρχή της ομαδοποίησης. Η τιμή που προκύπτει πρέπει να είναι ακέραιος μεγαλύτερος από το μηδέν. Για παράδειγμα, First(3) – λήψη της τρίτης εγγραφής από την αρχή της ομαδοποίησης. Εάν η πρώτη εγγραφή είναι εκτός ομαδοποίησης, τότε θεωρείται ότι δεν υπάρχουν εγγραφές. Για παράδειγμα, εάν υπάρχουν 3 εγγραφές και θέλετε να πάρετε το First(4), τότε θεωρείται ότι δεν υπάρχουν εγγραφές.
    • "Τελευταίος" Πρέπει να λάβετε την τελευταία εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από το τέλος της ομαδοποίησης. Η τιμή που προκύπτει πρέπει να είναι ακέραιος μεγαλύτερος από το μηδέν. Για παράδειγμα, Last(3) – λήψη της τρίτης εγγραφής από το τέλος της ομάδας. Εάν η τελευταία εγγραφή είναι εκτός ομαδοποίησης, τότε θεωρείται ότι δεν υπάρχουν εγγραφές. Για παράδειγμα, εάν υπάρχουν 3 εγγραφές και θέλετε να πάρετε το Last(4), τότε θεωρείται ότι δεν υπάρχουν εγγραφές.
    • "Προηγούμενος" Πρέπει να λάβετε την προηγούμενη εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση από την τρέχουσα εγγραφή ομαδοποίησης. Για παράδειγμα, Previous(2) – λήψη του προηγούμενου από την προηγούμενη εγγραφή. Εάν η προηγούμενη εγγραφή βρίσκεται εκτός της ομαδοποίησης (για παράδειγμα, η δεύτερη εγγραφή ομαδοποίησης απαιτεί τη λήψη Previous(3)), τότε λαμβάνεται η πρώτη εγγραφή ομαδοποίησης. Κατά τη λήψη της προηγούμενης εγγραφής για το σύνολο της ομαδοποίησης, λαμβάνεται η πρώτη εγγραφή.
    • "Επόμενο" Πρέπει να λάβετε την επόμενη εγγραφή ομαδοποίησης. Μετά τη λέξη σε αγκύλες, μπορείτε να καθορίσετε μια έκφραση, το αποτέλεσμα της οποίας θα χρησιμοποιηθεί ως μετατόπιση προς τα εμπρός από την τρέχουσα εγγραφή ομαδοποίησης. Για παράδειγμα, Next(2) – λήψη του επόμενου από την επόμενη εγγραφή. Εάν η επόμενη εγγραφή υπερβαίνει την ομαδοποίηση, τότε θεωρείται ότι δεν υπάρχουν εγγραφές. Για παράδειγμα, εάν υπάρχουν 3 καταχωρήσεις και η τρίτη καταχώρηση λάβει Επόμενο, τότε θεωρείται ότι δεν υπάρχουν καταχωρήσεις. Όταν ληφθεί η επόμενη εγγραφή για το σύνολο της ομαδοποίησης, θεωρείται ότι δεν υπάρχει εγγραφή.
    • "Ρεύμα". Πρέπει να λάβετε την τρέχουσα εγγραφή. Κατά την ανάκτηση για ένα σύνολο ομαδοποίησης, λαμβάνεται η πρώτη εγγραφή.
    • "BoundaryValue". Η ανάγκη λήψης μιας εγγραφής με την καθορισμένη τιμή. Μετά τη λέξη LimitingValue σε παρένθεση, πρέπει να υποδείξετε την έκφραση με την τιμή της οποίας θέλετε να ξεκινήσετε το τμήμα, το πρώτο πεδίο παραγγελίας. Η πρώτη εγγραφή της οποίας η τιμή του πεδίου παραγγελίας είναι μεγαλύτερη ή ίση με την καθορισμένη τιμή θα επιστραφεί ως εγγραφή. Για παράδειγμα, εάν το πεδίο Περίοδος χρησιμοποιείται ως πεδίο παραγγελίας και έχει τις τιμές 01/01/2010, 02/01/2010, 03/01/2010 και θέλετε να λάβετε το LimitingValue(DateTime(2010 , 1, 15)), τότε θα ληφθεί ένα αρχείο με την ημερομηνία 02/01.
  • Τέλος. Υποδεικνύει σε ποια εγγραφή πρέπει να συνεχιστεί το θραύσμα, στην οποία θα πρέπει να υπολογιστεί η συγκεντρωτική έκφραση. Μια συμβολοσειρά που περιέχει ένα από:
    • "Πρώτα"
    • "Τελευταίος"
    • "Προηγούμενος"
    • "Επόμενο"
    • "Ρεύμα".
    • "BoundaryValue".
  • Ταξινόμηση. Μια συμβολοσειρά που παραθέτει τις εκφράσεις, διαχωρισμένες με κόμμα, προς την κατεύθυνση της οποίας πρέπει να ταξινομηθεί η ακολουθία. Εάν δεν καθορίζεται, τότε η σειρά εκτελείται με τον ίδιο τρόπο όπως για την ομαδοποίηση για την οποία αξιολογείται η έκφραση. Μετά από κάθε έκφραση, μπορείτε να καθορίσετε τη λέξη-κλειδί Αύξουσα, για ταξινόμηση με αύξουσα σειρά, Φθίνουσα, για ταξινόμηση με φθίνουσα σειρά, Αυτόματη σειρά, για ταξινόμηση των πεδίων αναφοράς κατά τα πεδία με τα οποία θέλετε να ταξινομήσετε το αντικείμενο στο οποίο αναφέρεται. Η λέξη Auto Order μπορεί να χρησιμοποιηθεί τόσο με τη λέξη Αύξουσα όσο και με τη λέξη Φθίνουσα.
  • Ιεραρχική Ταξινόμηση. Παρόμοια με τη διαλογή. Χρησιμοποιείται για την οργάνωση ιεραρχικών εγγραφών. Εάν δεν καθορίζεται, ο συνθέτης διάταξης δημιουργεί τη σειρά σύμφωνα με τη σειρά που καθορίζεται στην παράμετρο Ταξινόμηση.
  • Επεξεργασία ίδιων τιμών παραγγελίας. Μια συμβολοσειρά που περιέχει ένα από τα:
    • "Μαζί" σημαίνει ότι χρησιμοποιείται μια ακολουθία διατεταγμένων εγγραφών για τον προσδιορισμό της προηγούμενης και της επόμενης εγγραφής.
    • "Ξεχωριστά" σημαίνει ότι η προηγούμενη και η επόμενη εγγραφή καθορίζονται με βάση τις τιμές των εκφράσεων σειράς.
    Για παράδειγμα, εάν η ακολουθία που προκύπτει είναι ταξινομημένη κατά ημερομηνία:
    1. 1 Ιανουαρίου 2001 Ivanov M. 10
    2. 2 Ιανουαρίου 2001 Petrov S. 20
    3. 02 Ιανουαρίου 2001 Sidorov R. 30
    4. 03 Ιανουαρίου 2001 Petrov S. 40
    Όταν χρησιμοποιείτε την επεξεργασία πανομοιότυπων τιμών της σειράς "Ξεχωριστά", η προηγούμενη για την εγγραφή 3 θα είναι η εγγραφή 2 και όταν χρησιμοποιείτε το "Μαζί" - η εγγραφή 1. Και το θραύσμα για την τρέχουσα εγγραφή για την εγγραφή 2 για "Ξεχωριστά" θα είναι η εγγραφή 2 και για το "Μαζί" - οι εγγραφές 2 και 3. Έτσι, το σύνολο για την τρέχουσα εγγραφή για το "Ξεχωριστά" θα είναι 20 και για το "Μαζί" - 50. Όταν το "Μαζί" καθορίζεται στο Start και Παράμετροι τέλους, δεν μπορείτε να καθορίσετε μια μετατόπιση για τις θέσεις "Πρώτο", "Τελευταίο", "Προηγούμενο", "Επόμενο". Η προεπιλεγμένη τιμή είναι "Separate".
Παράδειγμα:
Λήψη της αναλογίας του ποσού για το πεδίο "Sales.AmountTurnover" μιας εγγραφής ομαδοποίησης προς το ποσό του ίδιου πεδίου σε ολόκληρη τη διάταξη:
Sum(Sales.SumTurnover) / CalculateExpression("Sum(Sales.SumTurnover)", "Total").

Αυτό το παράδειγμα υπολογίζει την τιμή της τρέχουσας ιεραρχίας:
Επιλογή
Όταν Level() > 0
Στη συνέχεια, EvaluateExpression ("Αναφορά", "Ιεραρχία")
Διαφορετικά Null
Τέλος

Σημειώσεις:
Η συνάρτηση λαμβάνει υπόψη την επιλογή των ομαδοποιήσεων, αλλά δεν λαμβάνει υπόψη τις ιεραρχικές επιλογές. Η συνάρτηση δεν μπορεί να εφαρμοστεί σε μια ομαδοποίηση στην επιλογή ομάδας αυτής της ομαδοποίησης. Για παράδειγμα, κατά την επιλογή της ομαδοποίησης Ονοματολογίας, δεν μπορείτε να χρησιμοποιήσετε την έκφραση CalculateExpression("Sum(SumTurnover)", "TotalTotal") > 1000 . Αλλά μια τέτοια έκφραση μπορεί να χρησιμοποιηθεί στην ιεραρχική επιλογή. Εάν η εγγραφή τέλους προηγείται της εγγραφής έναρξης, τότε θεωρείται ότι δεν υπάρχουν εγγραφές για τον υπολογισμό λεπτομερών δεδομένων και τον υπολογισμό συναρτήσεων συγκεντρωτικών στοιχείων. Κατά τον υπολογισμό παραστάσεων διαστήματος για ένα γενικό σύνολο (η παράμετρος Ομαδοποίηση έχει οριστεί σε "GrossTotal"), θεωρείται ότι δεν υπάρχουν εγγραφές για τον υπολογισμό λεπτομερών δεδομένων και τον υπολογισμό συναρτήσεων συγκεντρωτικών στοιχείων. Κατά τη δημιουργία μιας παράστασης για τη συνάρτηση CalculateExpression, ο συνθέτης διάταξης, εάν η παράσταση σειράς περιέχει πεδία που δεν μπορούν να χρησιμοποιηθούν στην ομαδοποίηση, αντικαθιστά τη συνάρτηση CalculateExpression με NULL.

3. Αξιολόγηση έκφρασης με ομαδικό πίνακα (EvalExpression με πίνακα ομάδας) - η συνάρτηση επιστρέφει έναν πίνακα, κάθε στοιχείο του οποίου περιέχει το αποτέλεσμα του υπολογισμού μιας παράστασης για ομαδοποίηση βάσει του καθορισμένου πεδίου.

Σύνταξη:
CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Επιλογές:

  • Εκφραση(String) - η έκφραση που πρέπει να αξιολογηθεί. Για παράδειγμα, "Amount(AmountTurnover)";
  • FieldExpressionsGroups
  • Επιλογή Εγγραφών
  • Επιλογή Ομαδοποιήσεων- επιλογή που εφαρμόζεται σε ομαδικές εγγραφές. Για παράδειγμα: "Amount(AmountTurnover) > &Parameter1".
Παράδειγμα:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));


Το πρόγραμμα δημιουργίας διάταξης, όταν δημιουργεί παραστάσεις για την εμφάνιση ενός προσαρμοσμένου πεδίου του οποίου η έκφραση περιέχει μόνο τη συνάρτηση CalculateArrayWithGroup, δημιουργεί την παράσταση εμφάνισης έτσι ώστε τα δεδομένα που εμφανίζονται από τις προβολές και τα δεδομένα να ταξινομούνται.
Για παράδειγμα, για ένα προσαρμοσμένο πεδίο με την έκφραση:
CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty")
Το πρόγραμμα δημιουργίας διάταξης θα δημιουργήσει την ακόλουθη έκφραση για έξοδο:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2"))

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

Σύνταξη:
CalculateExpressionWithGroupValueTable (έκφραση, εκφράσεις πεδίου ομάδας, επιλογή εγγραφών, επιλογή ομάδας)

Επιλογές:

  • Εκφραση(String) - η έκφραση που πρέπει να αξιολογηθεί. Μια γραμμή μπορεί να περιέχει πολλές εκφράσεις που χωρίζονται με κόμμα. Μετά από κάθε έκφραση μπορεί να υπάρχει μια προαιρετική λέξη-κλειδί AS και το όνομα της στήλης του πίνακα τιμών. Για παράδειγμα: "Αντισυμβαλλόμενος, Ποσό (Ποσό κύκλο εργασιών) ως όγκος πωλήσεων."
  • FieldExpressionsGroups- εκφράσεις πεδίων ομαδοποίησης, διαχωρισμένες με κόμμα. Για παράδειγμα, "Αντισυμβαλλόμενος, Κόμμα".
  • Επιλογή Εγγραφών- μια έκφραση που εφαρμόζεται σε εγγραφές λεπτομερειών. Για παράδειγμα, "Σημαία διαγραφής = Λάθος". Εάν αυτή η παράμετρος χρησιμοποιεί μια συνάρτηση συγκεντρωτικών στοιχείων, θα προκύψει σφάλμα κατά τη σύνθεση των δεδομένων.
  • Επιλογή Ομαδοποιήσεων- επιλογή που εφαρμόζεται σε ομαδικές εγγραφές. Για παράδειγμα: "Amount(AmountTurnover) > &Parameter1".
Παράδειγμα:
CalculateExpressionWithGroupValueTable("Account AS Counterparty, Amount(AmountTurnover) AS SalesVolume", "Account")

Το αποτέλεσμα αυτής της συνάρτησης θα είναι ένας πίνακας τιμών με στήλες Αντισυμβαλλόμενος και Όγκος Πωλήσεων, οι οποίοι θα περιέχουν αντισυμβαλλόμενους με τους όγκους πωλήσεών τους.
Ο συνθέτης διάταξης, όταν δημιουργεί μια διάταξη, μετατρέπει τις παραμέτρους συνάρτησης σε πεδία διάταξης σύνθεσης δεδομένων. Για παράδειγμα, το πεδίο Λογαριασμός θα μετατραπεί σε DataSet.Account.
Για παράδειγμα, ένα προσαρμοσμένο πεδίο με την έκφραση:
CalculateExpressionWithGroupValueTable("Account, Amount(AmountTurnover)", "Account")
Το πρόγραμμα δημιουργίας διάταξης θα δημιουργήσει την ακόλουθη έκφραση για έξοδο:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet."DataSet.Account.5", "DataSet. ), "2, 4"))

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

Σύνταξη:
Επίπεδο()

Παράδειγμα:
Επίπεδο()

6. Αριθμός ακολουθίας - λάβετε τον επόμενο σειριακό αριθμό.

Σύνταξη:
NumberByOrder()

Παράδειγμα:
NumberByOrder()

7. SequenceNumberInGrouping - επιστρέφει τον επόμενο αριθμό σειράς στην τρέχουσα ομαδοποίηση.

Παράδειγμα:
NumberByOrderInGroup()

8. Μορφοποίηση - λάβετε μια μορφοποιημένη συμβολοσειρά της τιμής που πέρασε.

Σύνταξη:
Μορφή (Τιμή, FormatString)

Επιλογές:

  • Εννοια- την έκφραση που πρέπει να μορφοποιηθεί.
  • FormatString- η συμβολοσειρά μορφής ορίζεται σύμφωνα με τη συμβολοσειρά μορφής 1C:Enterprise.
Παράδειγμα:
Μορφή (Αναλώσιμα τιμολόγια. Ποσό εγγράφου, "NPV=2")

9. BeginOfPeriod

Σύνταξη:
StartPeriod (Ημερομηνία, Τύπος περιόδου)

Επιλογές:

  • ημερομηνία(Ημερομηνία). Καθορισμένη ημερομηνία.
  • Τύπος περιόδου
Παράδειγμα:
StartPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Month")
Αποτέλεσμα: 10/01/2002 0:00:00

10. EndOfPeriod - η λειτουργία έχει σχεδιαστεί για να επιλέγει μια συγκεκριμένη ημερομηνία από μια δεδομένη ημερομηνία.

Σύνταξη:
EndPeriod (Ημερομηνία, Τύπος περιόδου)

Επιλογές:

  • ημερομηνία(Ημερομηνία). Καθορισμένη ημερομηνία.
  • Τύπος περιόδου(Γραμμή). Περιέχει μία από τις ακόλουθες τιμές: Minute; Ωρα; Ημέρα; Μια εβδομάδα; Μήνας; Τέταρτο; Ετος; Δεκαετία; Μισός χρόνος.
Παράδειγμα:
EndPeriod(DateTime(2002, 10, 12, 10, 15, 34), "Week")
Αποτέλεσμα: 13/10/2002 23:59:59

11. AddKDate (DateAdd) - η συνάρτηση έχει σχεδιαστεί για να προσθέτει μια συγκεκριμένη τιμή στην ημερομηνία.

Σύνταξη:
AddToDate (Έκφραση, IncrementType, Magnitude)

Επιλογές:

  • Εκφραση(Ημερομηνία). Αρχική ημερομηνία.
  • Τύπος Μεγέθυνση(Γραμμή). Περιέχει μία από τις ακόλουθες τιμές: Minute; Ωρα; Ημέρα; Μια εβδομάδα; Μήνας; Τέταρτο; Ετος; Δεκαετία; Μισός χρόνος.
  • Μέγεθος(Αριθμός). Κατά πόσο πρέπει να αυξηθεί η ημερομηνία, το κλασματικό μέρος αγνοείται.
Παράδειγμα:
AddToDate(DateTime(2002, 10, 12, 10, 15, 34), "Month", 1)
Αποτέλεσμα: 11/12/2002 10:15:34

12. Διαφορά ημερομηνίας - η λειτουργία έχει σχεδιαστεί για να λαμβάνει τη διαφορά μεταξύ δύο ημερομηνιών.

Σύνταξη:
DifferenceDate(Expression1, Expression2, DifferenceType)

Επιλογές:

  • Έκφραση 1(Ημερομηνία). Ημερομηνία αφαίρεσης.
  • Έκφραση 2(Ημερομηνία). Αρχική ημερομηνία.
  • Διαφορά τύπου(Γραμμή). Περιέχει μία από τις τιμές: Second; Λεπτό; Ωρα; Ημέρα; Μήνας; Τέταρτο; Ετος.
Παράδειγμα:
DATEDIFFERENCE(DATETIME(2002, 10, 12, 10, 15, 34),
DATETIME(2002, 10, 14, 9, 18, 06), "DAY")
Αποτέλεσμα: 2

13. Υποσυμβολοσειρά - αυτή η συνάρτηση έχει σχεδιαστεί για να εξάγει μια υποσυμβολοσειρά από μια συμβολοσειρά.

Σύνταξη:
Υποσυμβολοσειρά (Συμβολοσειρά, Θέση, Μήκος)

Επιλογές:

  • Γραμμή(Γραμμή). Η συμβολοσειρά από την οποία εξάγεται η υποσυμβολοσειρά.
  • Θέση(Αριθμός). Η θέση του χαρακτήρα από την οποία ξεκινά η υποσυμβολοσειρά που θα εξαχθεί από τη συμβολοσειρά.
  • Μήκος(Αριθμός). Μήκος της εκχωρημένης υποσυμβολοσειράς.
Παράδειγμα:
SUBSTRING(Λογαριασμοί.Διεύθυνση, 1, 4)

14. Μήκος χορδής - η συνάρτηση έχει σχεδιαστεί για να προσδιορίζει το μήκος μιας συμβολοσειράς.

Σύνταξη:
Μήκος συμβολοσειράς (String)

Παράμετρος:

  • Γραμμή(Γραμμή). Μια συμβολοσειρά της οποίας το μήκος καθορίζεται.
Παράδειγμα:
Γραμμή (Αντισυμβαλλόμενοι. Διεύθυνση)

15. Έτος- αυτή η συνάρτηση έχει σχεδιαστεί για να εξάγει το έτος από μια τιμή τύπου Ημερομηνίας.

Σύνταξη:
Έτος (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται το έτος.
Παράδειγμα:
ΕΤΟΣ (Έξοδα. Ημερομηνία)

16. τέταρτο - αυτή η συνάρτηση προορίζεται για την εξαγωγή του αριθμού τριμήνου από μια τιμή τύπου Ημερομηνίας. Ο αριθμός τριμήνου συνήθως κυμαίνεται από 1 έως 4.

Σύνταξη:
Τρίμηνο (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται το τρίμηνο
Παράδειγμα:
ΤΡΙΜΗΝΟ (Έξοδα. Ημερομηνία)

17. Μήνας - αυτή η λειτουργία έχει σχεδιαστεί για να εξάγει τον αριθμό μήνα από μια τιμή τύπου Ημερομηνίας. Ο αριθμός του μήνα κυμαίνεται συνήθως από 1 έως 12.

Σύνταξη:
Μήνας (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται ο μήνας.
Παράδειγμα:
MONTH(Έξοδα.Ημερομηνία)

18. Ημέρα του χρόνου (DayOfYear) - αυτή η συνάρτηση έχει σχεδιαστεί για να λαμβάνει την ημέρα του έτους από μια τιμή τύπου Date. Η ημέρα του έτους κυμαίνεται κανονικά από 1 έως 365 (366).

Σύνταξη:
Ημέρα του έτους (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται η ημέρα του έτους.
Παράδειγμα:
DAYYEAR (Έξοδα. Ημερομηνία)

19. Ημέρα- αυτή η λειτουργία έχει σχεδιαστεί για να λαμβάνει την ημέρα του μήνα από μια τιμή τύπου Ημερομηνίας. Η ημέρα του μήνα κυμαίνεται κανονικά από 1 έως 31.

Σύνταξη:
Ημέρα (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται η ημέρα του μήνα.
Παράδειγμα:
DAY(Έξοδα.Ημερομηνία)

20. Εβδομάδα - αυτή η συνάρτηση έχει σχεδιαστεί για να λαμβάνει τον αριθμό εβδομάδας του έτους από μια τιμή τύπου Ημερομηνίας. Οι εβδομάδες του έτους αριθμούνται ξεκινώντας από το 1.

Σύνταξη:
Εβδομάδα (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζονται οι αριθμοί της εβδομάδας.
Παράδειγμα:
ΕΒΔΟΜΑΔΑ (Έξοδα.Ημερομηνία)

21. Εβδομάδα - αυτή η λειτουργία έχει σχεδιαστεί για να λαμβάνει την ημέρα της εβδομάδας από μια τιμή τύπου Ημερομηνίας. Η κανονική ημέρα της εβδομάδας κυμαίνεται από 1 (Δευτέρα) έως 7 (Κυριακή).

Σύνταξη:
Ημέρα της εβδομάδας (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται η ημέρα της εβδομάδας.
Παράδειγμα:
ΗΜΕΡΑ ΤΗΣ ΕΒΔΟΜΑΔΑΣ (Έξοδα. Ημερομηνία)

22. Ώρα- αυτή η λειτουργία έχει σχεδιαστεί για να λαμβάνει την ώρα της ημέρας από μια τιμή τύπου Ημερομηνίας. Η ώρα της ημέρας κυμαίνεται από 0 έως 23.

Σύνταξη:
Ώρα (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται η ώρα της ημέρας.
Παράδειγμα:
HOUR(Έξοδα.Ημερομηνία)

23. Λεπτό - αυτή η λειτουργία έχει σχεδιαστεί για να λαμβάνει τα λεπτά της ώρας από μια τιμή τύπου Ημερομηνίας. Το λεπτό της ώρας κυμαίνεται από 0 έως 59.

Σύνταξη:
Λεπτό (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζεται το λεπτό της ώρας.
Παράδειγμα:
MINUTE(Έξοδα.Ημερομηνία)

24. Δεύτερον - αυτή η λειτουργία έχει σχεδιαστεί για να λαμβάνει το δευτερόλεπτο του λεπτού από μια τιμή τύπου Ημερομηνίας. Το δευτερόλεπτο του λεπτού κυμαίνεται από 0 έως 59.

Σύνταξη:
Δεύτερη (Ημερομηνία)

Παράμετρος:

  • ημερομηνία(Ημερομηνία). Η ημερομηνία κατά την οποία καθορίζονται τα δευτερόλεπτα του λεπτού.
Παράδειγμα:
SECOND (Έξοδα.Ημερομηνία)

25. Καστ - αυτή η συνάρτηση έχει σχεδιαστεί για να εξάγει έναν τύπο από μια έκφραση που μπορεί να περιέχει έναν σύνθετο τύπο. Εάν η παράσταση περιέχει έναν τύπο διαφορετικό από τον απαιτούμενο τύπο, θα επιστραφεί NULL.

Σύνταξη:
Express (Έκφραση, Τύπος Ένδειξη)

Επιλογές:

  • Εκφραση- την έκφραση που πρόκειται να μετατραπεί·
  • Ένδειξη τύπου(Γραμμή). Περιέχει μια συμβολοσειρά τύπου. Για παράδειγμα, "Αριθμός", "Συμβολοσειρά" κ.λπ. Εκτός από τους αρχέγονους τύπους, αυτή η γραμμή μπορεί να περιέχει το όνομα του πίνακα. Σε αυτή την περίπτωση, θα γίνει προσπάθεια έκφρασης αναφοράς στον καθορισμένο πίνακα.
Παράδειγμα:
Express(Data.Props1, "Number(10,3)")

26. IsNull (IsNull) - αυτή η συνάρτηση επιστρέφει την τιμή της δεύτερης παραμέτρου εάν η τιμή της πρώτης παραμέτρου είναι NULL. Διαφορετικά, θα επιστραφεί η τιμή της πρώτης παραμέτρου.

Σύνταξη:
IsNull(Έκφραση1, Έκφραση2)

Επιλογές:

  • Έκφραση 1- τιμή που πρέπει να ελεγχθεί.
  • Έκφραση 2- επιστρέψτε την τιμή εάν η Έκφραση1 είναι NULL.
Παράδειγμα:
YesNULL(Ποσό(Πωλήσεις.ΠοσόΚύκλος), 0)

27.ACos- υπολογίζει το συνημίτονο τόξου σε ακτίνια.

Σύνταξη:
ACos (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Η τιμή συνημιτόνου (στην περιοχή -1 ... 1) με την οποία προσδιορίζεται η γωνία.
28.ASin- υπολογίζει το τόξο σε ακτίνια.

Σύνταξη:
ASin (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Η ημιτονοειδής τιμή (στην περιοχή -1 ... 1) με την οποία προσδιορίζεται η γωνία.
29.ATan- υπολογίζει την εφαπτομένη σε ακτίνια.

Σύνταξη:
ATan (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Η τιμή της εφαπτομένης με την οποία προσδιορίζεται η γωνία.
30.Κοσ- υπολογίζει το συνημίτονο.

Σύνταξη:
Cos (Έκφραση)

Παράμετρος:

  • Εκφραση
31. Έκπ- αύξηση του αριθμού e σε δύναμη.

Σύνταξη:
Exp (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Η έννοια του πτυχίου.
32.Μητρώο- υπολογίζει τον φυσικό λογάριθμο.

Σύνταξη:
Αρχείο καταγραφής (Έκφραση)

Παράμετρος:

  • Εκφραση
33.Ημερολόγιο10- υπολογίζει τον λογάριθμο του Χ στη βάση 10.

Σύνταξη:
Log10 (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Ο αρχικός αριθμός είναι μεγαλύτερος από 0.
34. Πόου- εκθεσιμότητα.

Σύνταξη:
Pow (Βάση, Ένδειξη)

Επιλογές:

  • Βάση(Αριθμός). Η βάση της λειτουργίας της εκθέσεως.
  • Δείκτης(Αριθμός). Εκθέτης.
35. Αμαρτία- υπολογίζει το ημίτονο.

Σύνταξη:
Αμαρτία (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Καθορίζεται σε ακτίνια.
36. Τμ- υπολογίζει την τετραγωνική ρίζα.

Σύνταξη:
Sqrt (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Μη αρνητικός αριθμός.
37. Ταν- υπολογίζει την εφαπτομένη.

Σύνταξη:
Μαύρισμα (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Η τιμή του ημιτόνου με την οποία προσδιορίζεται η γωνία.
38. Στρογγυλό- στρογγυλοποιεί τον αρχικό αριθμό στο απαιτούμενο βάθος bit. Η λειτουργία στρογγυλοποίησης είναι στάνταρ (1,5 ως 2).

Σύνταξη:
Env (έκφραση, βάθος bit)

Επιλογές:

  • Εκφραση(Αριθμός). Πρωτότυπος αριθμός.
  • Λίγο βάθος(Αριθμός). Ο αριθμός των δεκαδικών ψηφίων προς στρογγυλοποίηση.
39. Ενθ- κόβει το κλασματικό μέρος ενός αριθμού.

Σύνταξη:
Αντικείμενο (Έκφραση)

Παράμετρος:

  • Εκφραση(Αριθμός). Ένας κλασματικός αριθμός.
40. Λειτουργίες κοινών ενοτήτων

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

Παράδειγμα:
AbbreviatedName(Documents.Link, Documents.Date, Documents.Number)

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

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

<Пустое значение>".

Παράδειγμα:
Παρουσίαση (Αντισυμβαλλόμενος)

42. Χορδή - αυτή η συνάρτηση μετατρέπει την τιμή που πέρασε σε συμβολοσειρά.

Εάν ένας πίνακας ή ένας πίνακας τιμών χρησιμοποιείται ως παράμετρος, η συνάρτηση επιστρέφει μια συμβολοσειρά που περιέχει μια αναπαράσταση συμβολοσειράς όλων των στοιχείων του πίνακα, διαχωρισμένα με τους χαρακτήρες "; ". Εάν οποιοδήποτε στοιχείο έχει μια κενή παράσταση συμβολοσειράς, τότε η συμβολοσειρά "<Пустое значение>".

Παράδειγμα:
Σειρά (Ημερομηνία πώλησης)

43. ValueIsFilled

Για τιμές NULL, το Undefined επιστρέφει πάντα False.
Για τιμές Boolean, επιστρέφει πάντα True.
Για άλλους τύπους, επιστρέφει True εάν η τιμή διαφέρει από την προεπιλεγμένη τιμή για τον συγκεκριμένο τύπο.

Παράδειγμα:
ValueFilled (Ημερομηνία παράδοσης)

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

Μπορεί να χρησιμοποιηθεί για να ληφθεί το επίπεδο ένθεσης μιας εγγραφής σε μια ιεραρχική ομαδοποίηση.

Παράδειγμα:
LevelInGroup()

45. ValueType

Σύνταξη:
ValueType (Έκφραση)

Παράμετρος:

  • Εκφραση(Γραμμή). Τύπος τιμής συμβολοσειράς.
Επιστρέφει μια τιμή τύπου Type που περιέχει τον τύπο τιμής της παραμέτρου συνάρτησης.

Η σωστή χρήση ενός σχήματος σύνθεσης δεδομένων (DCS) σάς επιτρέπει:

  • να μειώσει σημαντικά τον χρόνο που απαιτείται για την ανάπτυξη μιας έκθεσης·
  • εξαλείψει την ανάγκη δημιουργίας ενός διαχειριστή διαχειριζόμενης φόρμας.
  • αποκτήστε ένα όμορφο αποτέλεσμα με δυνατότητα επιπλέον προσαρμογής από τον χρήστη.

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

Τι είναι ένα υπολογισμένο πεδίο

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

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

Τα υπολογισμένα πεδία σάς επιτρέπουν να εκτελέσετε ορισμένες ενέργειες με το σύνολο δεδομένων που δημιουργείται:

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

Ας περάσουμε από αυτή τη λίστα.

Πίνακας τιμών σε ένα κελί

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


Έτσι, δημιουργήσαμε ένα πρόσθετο πεδίο υπολογισμού στο σχήμα μας.


Όπως μπορείτε να δείτε από το παραπάνω παράδειγμα, δεν υπάρχουν δυσκολίες στην προσθήκη και επεξεργασία των υπολογισμένων πεδίων. Χρησιμοποιήσαμε δύο συναρτήσεις: Array() και ConnectRows().

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

  1. Διαχωριστής στοιχείων - υποδεικνύει ποιος χαρακτήρας θα διαχωρίσει ένα στοιχείο πίνακα ή μια σειρά από έναν πίνακα τιμών από μια άλλη (στην περίπτωσή μας, παραλείψαμε αυτήν την παράμετρο και μια αλλαγή γραμμής εκχωρήθηκε από προεπιλογή).
  2. Column Separator – ένας χαρακτήρας που χρησιμοποιείται για τον διαχωρισμό στηλών ενός πίνακα τιμών (η ερωτηματικό χρησιμοποιείται από προεπιλογή).

Πρόσβαση στις λειτουργίες εξαγωγής μιας κοινής μονάδας

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

Μερικά σημαντικά σημεία:

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

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


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

Διάταξη γλωσσικών εκφράσεων

Αρκετά συχνά στην εργασία ενός προγραμματιστή προκύπτει μια κατάσταση όταν είναι απαραίτητο να εμφανιστεί το αποτέλεσμα της διαίρεσης στο πεδίο ACS:

  1. Υπολογίστε το μέσο κόστος του αντικειμένου.
  2. Όλα τα είδη ενδιαφέροντος?
  3. Υπολογισμοί των μέσων αποδοχών κ.λπ.

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

Αυτό μπορεί να γίνει χρησιμοποιώντας την κατασκευή «Επιλογή Όταν….Στη συνέχεια… Διαφορετικά… Τέλος».

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

Ας υποθέσουμε ότι μπορείτε να λάβετε το άθροισμα εγγράφου από την προηγούμενη γραμμή του αιτήματός μας, καθορίζοντας την τιμή Υπολογισμός έκφρασης ("Άθροισμα εγγράφου", "Προηγούμενο άθροισμα") στο πεδίο "Έκφραση".