1s πίνακας συναρτήσεων συγκεντρωτικών SKD. Λειτουργίες της γλώσσας έκφρασης του συστήματος σύνθεσης δεδομένων. Αλλαγή της σειράς των στηλών

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


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

Αντίστοιχα, τώρα είναι απαραίτητο να υπολογιστούν τα σύνολα για τις παραπάνω ομαδοποιήσεις («Αποθήκες», «Τύποι Αποθήκης») και το συνολικό σύνολο.
Για να το κάνετε αυτό, χρησιμοποιήστε τη συνάρτηση CalculateExpressionWithGroupArray:
EVALUATE EXPRESSIONWITHGROUPARRAY (EVALEXPRESIONWITHGROUPARRAY)
Σύνταξη:
EvaluateExpressionWithGroupArray(,)
Περιγραφή:
Η συνάρτηση επιστρέφει έναν πίνακα, κάθε στοιχείο του οποίου περιέχει το αποτέλεσμα της αξιολόγησης μιας παράστασης για ομαδοποίηση με βάση το καθορισμένο πεδίο.
Ο συνθέτης διάταξης, όταν δημιουργεί μια διάταξη, μετατρέπει τις παραμέτρους συνάρτησης σε πεδία διάταξης σύνθεσης δεδομένων. Για παράδειγμα, το πεδίο Λογαριασμός θα μετατραπεί σε DataSet.Account.
Το πρόγραμμα δημιουργίας διάταξης, όταν δημιουργεί παραστάσεις για την έξοδο ενός προσαρμοσμένου πεδίου του οποίου η έκφραση περιέχει μόνο τη συνάρτηση CalculateArrayWithGroupArray(), δημιουργεί την έκφραση εξόδου έτσι ώστε οι πληροφορίες εξόδου να ταξινομούνται. Για παράδειγμα, για ένα προσαρμοσμένο πεδίο με την έκφραση:

CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty")
Το πρόγραμμα δημιουργίας διάταξης θα δημιουργήσει την ακόλουθη έκφραση για έξοδο:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("Προβολή(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

Επιλογές:

Τύπος: String. Η έκφραση που πρέπει να αξιολογηθεί. Συμβολοσειρά, για παράδειγμα, Amount(AmountTurnover).

Τύπος: String. Ομαδοποίηση εκφράσεων πεδίων – εκφράσεις πεδίων ομαδοποίησης, διαχωρισμένες με κόμμα. Για παράδειγμα, ανάδοχος, συμβαλλόμενο μέρος.

Τύπος: String. Μια έκφραση που περιγράφει την επιλογή που εφαρμόζεται σε εγγραφές λεπτομερειών. Η έκφραση δεν υποστηρίζει τη χρήση συγκεντρωτικών συναρτήσεων. Για παράδειγμα, DeletionFlag = False.

Τύπος: String. Μια έκφραση που περιγράφει την επιλογή που εφαρμόζεται σε ομαδικές εγγραφές. Για παράδειγμα, Amount(AmountTurnover) > &Parameter1.
Παράδειγμα:

Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));

Μια λεπτομερής περιγραφή της σύνταξης της συνάρτησης βρίσκεται στη διεύθυνση http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Τώρα, για τον υπολογισμό, αντιγράφουμε το πεδίο "Παραγγελία", με διαφορετικές τιμές "Υπολογισμός κατά...", χρησιμοποιώντας τις ακόλουθες εκφράσεις, σημειώστε ότι σε κάθε υψηλότερο επίπεδο χρησιμοποιούνται οι τιμές των επιπέδων κάτω από τις ομαδοποιήσεις .

Ως αποτέλεσμα, έχουμε την ακόλουθη κατασκευή:

U αυτή τη μέθοδοΜου φαίνεται ότι υπάρχει ένα μείον, αλλά λειτουργεί, αλλά το μείον είναι μεγάλο. Ας δούμε ένα παράδειγμα: στη διαμόρφωση υπάρχει ένα έγγραφο "Παραλαβή αγαθών" με πίνακας τμήματος«Προϊόντα», είναι απαραίτητο να εμφανίζονται στην αναφορά τα έγγραφα και τα ονόματα των παραληφθέντων αγαθών για κάθε έγγραφο.

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

Εικόνα 1. Ερώτημα συνόλου δεδομένων
Στην καρτέλα "Υπολογιζόμενα πεδία", προσθέστε ένα υπολογισμένο πεδίο που ονομάζεται TabularPart και καθορίστε μια κενή συμβολοσειρά στη στήλη Έκφραση (δείτε Εικόνα 2).
Το υπολογιζόμενο πεδίο μας θα χρησιμοποιηθεί ως πόρος, επομένως στην καρτέλα "Πόροι" ορίζουμε την έκφραση ομαδοποίησης: ConnectRows(Array(Products.Nomenclature),""). Υποδεικνύουμε επίσης ότι αυτός ο πόρος πρέπει να υπολογιστεί χρησιμοποιώντας το πεδίο Link (βλ. Εικόνα 3).
Αποτέλεσμα της έκθεσης:
Το μειονέκτημα είναι η χρήση της ομαδοποίησης· στην περίπτωσή μας, η ομαδοποίηση πραγματοποιείται από το χαρακτηριστικό Link, διαφορετικά δεν θα λειτουργήσει. Η παρουσία μιας ομαδοποίησης επιβάλλει ορισμένους περιορισμούς στη ρύθμιση της εξόδου δεδομένων (βλ. Εικόνα 4).

2) Κλήση της δικής σας συνάρτησης από μια κοινή μονάδα.

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

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


Εικόνα 6. Ερώτημα συνόλου δεδομένων
Ας δημιουργήσουμε μια κοινή λειτουργική μονάδα _Demo Work WITH Reports και ας γράψουμε τη συνάρτηση εξαγωγής Get List of Products for Report(). Κωδικός προγράμματοςλειτουργίες δείτε παρακάτω.
Στην καρτέλα "Υπολογιζόμενα πεδία", προσθέστε ένα υπολογισμένο πεδίο που ονομάζεται TabularPart και στη στήλη Έκφραση υποδεικνύουμε μια κλήση συνάρτησης από τη γενική ενότητα (βλ. Εικόνα 2):
_DemoWorking WITH Reports.Λήψη λίστας προϊόντων για την αναφορά (Σύνδεσμος)

Ας πάμε στην καρτέλα "Ρυθμίσεις" και ας δημιουργήσουμε μια ρύθμιση για την έξοδο δεδομένων - αυτή θα είναι μια λεπτομερής εγγραφή (βλ. Εικόνα 8).
Αποτέλεσμα της έκθεσης:

Λήψη δείγματος αναφοράς

Τι πρέπει να γνωρίζετε όταν χρησιμοποιείτε αυτήν τη μέθοδο:
1) Η έκφραση του κινητήρα σύνθεσης δεδομένων μπορεί να περιέχει κλήσεις σε συναρτήσεις καθολικών μονάδων κοινής διαμόρφωσης. Για παράδειγμα:
AbbreviatedName (Σύνδεσμος, Ημερομηνία, Αριθμός)
2) Κατά τη δημιουργία μιας αναφοράς μέσω προγραμματισμού, η χρήση των λειτουργιών κοινών λειτουργικών μονάδων επιτρέπεται μόνο εάν έχει καθοριστεί η αντίστοιχη παράμετρος του επεξεργαστή σύνθεσης δεδομένων (4η παράμετρος):
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout, DecryptionData, True);
3) Οι συναρτήσεις κοινών λειτουργικών μονάδων δεν μπορούν να χρησιμοποιηθούν σε προσαρμοσμένες εκφράσεις πεδίων.
4) Εάν υπάρχει εξαίρεση κατά τη δημιουργία μιας αναφοράς που υποδεικνύει μια λειτουργία μιας κοινής λειτουργικής μονάδας, ελέγξτε το περιβάλλον εκτέλεσης της λειτουργικής μονάδας (βλ. Εικόνα 9).

Περιγραφή των λειτουργιών που χρησιμοποιούνται

ConnectRows (Τιμή, Διαχωριστικό στοιχείου, Διαχωριστικό στηλών)- σχεδιασμένο να συνδυάζει χορδές σε μία γραμμή.
  • Τιμή - εκφράσεις που πρέπει να συνδυαστούν σε μία γραμμή. Εάν είναι πίνακας, τότε τα στοιχεία του πίνακα θα συνδυαστούν σε μια συμβολοσειρά. Εάν πρόκειται για ValueTable, τότε όλες οι στήλες και οι σειρές του πίνακα θα συνδυαστούν σε μια γραμμή.
  • Διαχωριστής στοιχείων - Μια συμβολοσειρά που περιέχει κείμενο που θα χρησιμοποιηθεί ως διαχωριστικό μεταξύ στοιχείων πίνακα και σειρών πίνακα τιμών. Προεπιλογή – χαρακτήρας τροφοδοσίας γραμμής.
  • Διαχωριστικά στηλών - μια συμβολοσειρά που περιέχει κείμενο που θα χρησιμοποιηθεί ως διαχωριστικό μεταξύ στηλών του πίνακα τιμών. Προκαθορισμένο "; ".
Πίνακας ([Διάφορες] εκφράσεις)- μπορείτε να χρησιμοποιήσετε έναν πίνακα τιμών ως παράμετρο. Σε αυτήν την περίπτωση, το αποτέλεσμα της συνάρτησης θα είναι ένας πίνακας που περιέχει τις τιμές της πρώτης στήλης του πίνακα τιμών που μεταβιβάζεται ως παράμετρος. Εάν μια παράσταση περιέχει μια συνάρτηση Array, τότε η παράσταση θεωρείται ότι είναι μια αθροιστική παράσταση. Εάν ορίζεται λέξη-κλειδίΔιαφορετικό, τότε ο πίνακας που προκύπτει δεν θα περιέχει διπλότυπες τιμές.

Λήψη λίστας προϊόντων για αναφορά (DocumentLink)- η συνάρτηση δημιουργεί μια γραμμή με μια λίστα εισερχόμενων αγαθών.
// Επιλογές:
// DocumentLink - DocumentLink.Goods Receipt - Document "Goods Receipt".
// Επιστρεφόμενη τιμή:
// String - μια συμβολοσειρά με μια λίστα προϊόντων.
Συνάρτηση Λήψη λίστας προϊόντων για εξαγωγή αναφοράς (DocumentLink).

Λίστα προϊόντων = "";

Για κάθε γραμμή PM από το DocumentLink.Products Cycle
Κατάλογος προϊόντων = Κατάλογος προϊόντων + Γραμμή TC.Ονοματολογία;
List of Products = List of Products + Symbols.PS;
EndCycle;

Επιστροφή Λίστα προϊόντων?

EndFunction // Λήψη λίστας προϊόντων για αναφορά()

1. Υπολογίστε (Eval)- προορίζεται για την αξιολόγηση μιας έκφρασης στο πλαίσιο κάποιας ομαδοποίησης. Αυτή η λειτουργία χρησιμοποιείται για συμβατότητα με ΠΡΟΗΓΟΥΜΕΝΕΣ ΕΚΔΟΣΕΙΣπλατφόρμες. Συνιστάται η χρήση της συνάρτησης CalculateExpression.

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

Επιλογές:

  • Εκφραση(Γραμμή). Περιέχει μια υπολογισμένη έκφραση.
  • Ομαδοποίηση(Γραμμή). Περιέχει το όνομα της ομάδας στο πλαίσιο της οποίας θα αξιολογηθεί η έκφραση. Εάν χρησιμοποιείται το όνομα της ομάδας κενή γραμμή, ο υπολογισμός θα γίνει στο πλαίσιο της τρέχουσας ομαδοποίησης. Εάν η συμβολοσειρά GrandTotal χρησιμοποιείται ως όνομα ομάδας, ο υπολογισμός θα εκτελεστεί στο πλαίσιο του γενικού συνόλου. Διαφορετικά, ο υπολογισμός θα εκτελεστεί στο πλαίσιο της γονικής ομάδας με το ίδιο όνομα.
    Για παράδειγμα:
    Sum(Sales.SumTurnover) / Υπολογισμός("Sum(Sales.SumTurnover)", "Total").
    ΣΕ σε αυτό το παράδειγμαΤο αποτέλεσμα θα είναι η αναλογία του ποσού για το πεδίο "Sales.SumTurnover" της εγγραφής ομαδοποίησης προς το ποσό του ίδιου πεδίου σε ολόκληρη τη διάταξη.
  • Τύπος υπολογισμού(Γραμμή). Εάν αυτή η παράμετρος οριστεί σε "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. 2010.
  • Τέλος. Υποδεικνύει σε ποια εγγραφή πρέπει να συνεχιστεί το θραύσμα, στην οποία θα πρέπει να υπολογιστεί η συγκεντρωτική έκφραση. Μια συμβολοσειρά που περιέχει ένα από τα:
    • "Πρώτα"
    • "Τελευταίος"
    • "Προηγούμενος"
    • "Επόμενο"
    • "Ρεύμα".
    • "BoundaryValue".
  • Ταξινόμηση. Μια συμβολοσειρά που παραθέτει τις εκφράσεις, διαχωρισμένες με κόμμα, προς την κατεύθυνση της οποίας πρέπει να ταξινομηθεί η ακολουθία. Εάν δεν καθορίζεται, τότε η σειρά εκτελείται με τον ίδιο τρόπο όπως για την ομαδοποίηση για την οποία αξιολογείται η έκφραση. Μετά από κάθε έκφραση, μπορείτε να καθορίσετε τη λέξη-κλειδί Αύξουσα, για ταξινόμηση με αύξουσα σειρά, Φθίνουσα, για ταξινόμηση με φθίνουσα σειρά, Αυτόματη σειρά, για ταξινόμηση των πεδίων αναφοράς κατά τα πεδία με τα οποία θέλετε να ταξινομήσετε το αντικείμενο στο οποίο αναφέρεται. Η λέξη Auto Order μπορεί να χρησιμοποιηθεί τόσο με τη λέξη Αύξουσα όσο και με τη λέξη Φθίνουσα.
  • Ιεραρχική Ταξινόμηση. Παρόμοια με τη διαλογή. Χρησιμοποιείται για την οργάνωση ιεραρχικών εγγραφών. Εάν δεν καθορίζεται, ο συνθέτης διάταξης δημιουργεί τη σειρά σύμφωνα με τη σειρά που καθορίζεται στην παράμετρο Ταξινόμηση.
  • Επεξεργασία ίδιων τιμών παραγγελίας. Μια συμβολοσειρά που περιέχει ένα από τα:
    • "Μαζί" σημαίνει ότι χρησιμοποιείται μια ακολουθία διατεταγμένων εγγραφών για τον προσδιορισμό της προηγούμενης και της επόμενης εγγραφής.
    • "Ξεχωριστά" σημαίνει ότι η προηγούμενη και η επόμενη εγγραφή καθορίζονται με βάση τις τιμές των εκφράσεων σειράς.
    Για παράδειγμα, εάν η ακολουθία που προκύπτει είναι ταξινομημένη κατά ημερομηνία:
    1. 1 Ιανουαρίου 2001 Ivanov M. 10
    2. 2 Ιανουαρίου 2001 Petrov S. 20
    3. 2 Ιανουαρίου 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".
Παράδειγμα:
Υπολογισμός έκφρασης με ομαδοποίηση πίνακα τιμών ("Λογαριασμός AS Αντισυμβαλλόμενος, Ποσό (Κύκλος Ποσού) AS Όγκος Πωλήσεων", "Λογαριασμός")

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

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

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

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

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

Σύνταξη:
NumberByOrder()

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

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

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

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

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

Επιλογές:

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

9. BeginOfPeriod

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

Επιλογές:

  • ημερομηνία(Ημερομηνία). Καθορισμένη ημερομηνία.
  • Τύπος περιόδου
Παράδειγμα:
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)
Αποτέλεσμα: 12/11/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. Ημέρα- αυτή η λειτουργία έχει σχεδιαστεί για να λαμβάνει την ημέρα του μήνα από μια τιμή τύπου Date. Η ημέρα του μήνα κυμαίνεται κανονικά από 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 (Έκφραση)

Παράμετρος:

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

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

Παράμετρος:

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

Σύνταξη:
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(). Με τη βοήθειά του, ειδικότερα, μπορείτε να υπολογίσετε τις αποκλίσεις στο κόστος μεταξύ της τρέχουσας και των προηγούμενων γραμμών, το σωρευτικό υπόλοιπο κ.λπ.

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

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

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

Εμφάνιση ενός παραδείγματος αναφοράς 1C που χρησιμοποιεί δύο λειτουργίες ACS ΠίνακαςΚαι ConnectRowsΕπόμενο:

Δήλωση του προβλήματος για τη χρήση των συναρτήσεων ACS Array και JoinStrings

Εργασία: Πρέπει να εισαγάγετε όλους τους αριθμούς πωλήσεων για ένα προϊόν σε ένα κελί.

Κάτι σαν: ονοματολογία | ποσότητα | 001, 002, κ.λπ. |

Θα χρησιμοποιήσουμε ένα αίτημα στο μητρώο συσσώρευσης "Realization of TMZ".

ΕΠΙΛΕΓΩ
Υλοποίηση TMZ. Ληξίαρχος. Αριθμός,
Υλοποίηση TMZ. Ονοματολογία,
Υλοποίηση TMZ. Ληξίαρχος,
Υλοποίηση TMZ. ΠοσότηταΚύκλος εργασιών
ΑΠΟ
Μητρώο συσσώρευσης. Υλοποίηση TMZ. Επαναστάσεις
(, , Καταχωρητής, ) ΠΩΣ ΝΑ ΥΛΟΠΟΙΗΣΕΤΕ ΤΟ TMZ

Ο καταχωρητής συσσώρευσης "Realization of TMZ" υπάρχει τόσο στη διαμόρφωση Λογιστικής όσο και στη διαμόρφωση Trade Enterprise Management (UTP). Μάθετε πώς να ρυθμίσετε τις παραμέτρους του USP στο στοιχείο καταλόγου "Ονοματολογία". Επομένως, μετά τη λήψη, μπορείτε να εκτελέσετε αυτήν την αναφορά και στις δύο διαμορφώσεις για να ελέγξετε τη λειτουργικότητά της.

Υλοποίηση της εργασίας χρησιμοποιώντας τις συναρτήσεις SKD Array και ConnectRows


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

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

JoinStrings

Χρησιμοποιείται για τη σύνδεση χορδών σε μια συμβολοσειρά.

Σύνταξη:

ConnectRows (Τιμή, Διαχωριστικό στοιχείου, Διαχωριστικό στηλών)

Επιλογές:

  1. Εννοια— εκφράσεις που πρέπει να συνδυαστούν σε μία γραμμή.
    Εάν είναι πίνακας, τότε τα στοιχεία του πίνακα θα συνδυαστούν σε μια συμβολοσειρά.
    Εάν πρόκειται για ValueTable, τότε όλες οι στήλες και οι σειρές του πίνακα θα συνδυαστούν σε μια γραμμή.
  2. Διαχωριστής στοιχείων- μια συμβολοσειρά που περιέχει το κείμενο που θα χρησιμοποιηθεί ως
    διαχωριστικό μεταξύ στοιχείων πίνακα και σειρών πίνακα τιμών. Προεπιλογή – χαρακτήρας τροφοδοσίας γραμμής.
  3. Διαχωριστές στηλών-μια συμβολοσειρά που περιέχει το κείμενο που θα χρησιμοποιηθεί ως οριοθέτης
    μεταξύ των στηλών του πίνακα τιμών. Προκαθορισμένο ";".