1c 8.3 να πάρει τον τρέχοντα χρήστη στον πελάτη. Πώς να μάθετε εάν ένας συγκεκριμένος ρόλος είναι διαθέσιμος στον τρέχοντα χρήστη
Οι παράμετροι που εξετάζονται στο 1C:Enterprise παρουσιάζονται ως αντικείμενο μεταδεδομένων. Ουσιαστικά, δεν είναι τίποτα περισσότερο από μια καθολική μεταβλητή που συνδέεται με την τρέχουσα συνεδρία.
Μια καθολική μεταβλητή είναι η ίδια μεταβλητή με οποιαδήποτε άλλη, αλλά η ιδιαιτερότητά της είναι ότι μπορεί να προσπελαστεί από οποιοδήποτε σημείο του προγράμματος και στην περίπτωση μιας παραμέτρου περιόδου λειτουργίας, αυτό λειτουργεί μόνο εντός της τρέχουσας συνεδρίας.
Επειδή η παράμετρος συνεδρίαςείναι ένα αντικείμενο μεταδεδομένων, έχει ορισμένα χαρακτηριστικά:
- Μπορεί να είναι συγκεκριμένου τύπου.Οι επιτρεπόμενοι τύποι είναι συγκεκριμένοι για την πλατφόρμα. Η λίστα τους είναι αρκετά εκτενής, αλλά ακόμα κι αν αυτή η λίστα δεν περιέχει αυτήν που χρειάζεστε, μπορείτε πάντα να σειριοποιήσετε την τιμή και να την αποθηκεύσετε στην παράμετρο ως συμβολοσειρά.
- Τα δικαιώματα σε αυτό, καθώς και σε οποιοδήποτε άλλο αντικείμενο μεταδεδομένων, μπορούν να περιοριστούν από ρόλους (τόσο για γραφή όσο και για ανάγνωση). Ταυτόχρονα, υπάρχει μια ιδιαιτερότητα κατά τη χρήση του στο RLS, αλλά αυτό θα συζητηθεί παρακάτω.
- Έχει όριο στον όγκο των δεδομένων που τοποθετούνται σε σειριακή μορφή.Ο όγκος τους δεν πρέπει να υπερβαίνει τα 4 GB.
Εάν τύπος παραμέτρου περιόδου λειτουργίας:
- FixedArray
- FixedCollection
- Σταθερή Δομή
Τότε η τιμή του στοιχείου συλλογής μπορεί να είναι Απροσδιόριστος.
Η κύρια περιοχή των παραμέτρων είναι η χρήση των τιμών τους σε αιτήματα RLS (περιορισμός πρόσβασης σε επίπεδο εγγραφής).
Για παράδειγμα, πρέπει να ορίσουμε μια συνθήκη για τον τρέχοντα χρήστη σε ένα αίτημα RLS. Για να γίνει αυτό, ορίζουμε την παράμετρο περιόδου λειτουργίας "Τρέχον Χρήστης", από τον κώδικα της ενσωματωμένης γλώσσας, ορίζουμε την τιμή:
SessionParameters.CurrentUser =<значение>
Πίνακας.Χρήστης = &Τρέχον Χρήστης
Η χρήση της παραμέτρου περιόδου λειτουργίας με αυτόν τον τρόπο δεν λαμβάνει υπόψη τα δικαιώματα ανάγνωσης της παραμέτρου, αλλά μπορείτε να προσπαθήσετε να λάβετε την τιμή τους από την ενσωματωμένη γλώσσα:
CurrentUser = SessionParameters.CurrentUser;
Μπορείτε να ορίσετε μια παράμετρο περιόδου λειτουργίας, δηλαδή την τιμή της, μόνο μέσω προγραμματισμού και μόνο στον διακομιστή. Για να γίνει αυτό, πρέπει να καλέσετε μια διαδικασία διακομιστή από τον πελάτη. Κατά την πρόσβαση σε μια παράμετρο συνεδρίας (ρύθμιση, λήψη), εάν η παράμετρος δεν έχει αρχικοποιηθεί, θα καλείται η διαδικασία SettingSessionParametersστην ενότητα συνεδρίας. Αυτή η διαδικασία έχει μία παράμετρο Απαιτούμενες Επιλογές– μια σειρά από αναγνωριστικά παραμέτρων περιόδου λειτουργίας που πρέπει να οριστεί. SettingSessionParametersκαλείται επίσης κατά τη δημιουργία σύνδεσης με τη βάση πληροφοριών πριν καλέσετε όλους τους άλλους χειριστές. Σε αυτήν την περίπτωση Απαιτούμενες Επιλογέςθα είναι ίσο με Απροσδιόριστος.
Συνιστάται η χρήση της αναβαλλόμενης (τεμπέλης) αρχικοποίησης, δηλαδή η προετοιμασία των παραμέτρων συνεδρίας κατά απαίτηση και όχι κατά την εκκίνηση του συστήματος, καθώς δεν απαιτούνται όλες οι παράμετροι συνεδρίας απευθείας κατά την εκκίνηση του συστήματος. Η Lazy προετοιμασία γίνεται ως εξής:
Διαδικασία SettingSessionParameters(SessionParameterNames) Εάν το SessionParameterNames είναι απροσδιόριστο, τότε IfParameterName = "CurrentUser" Στη συνέχεια SessionParameters.CurrentUser = ; ElseIf ParameterName = " CurrentOrganization" Τότε SessionParameters.CurrentOrganization = ; // και τα λοιπά. Τέλος εαν; Τέλος εαν; EndProcedurevalue>τιμή>>Εφόσον η παράμετρος περιόδου λειτουργίας είναι δεσμευμένη στη συνεδρία, δεν θα είναι δυνατή η πρόσβαση στην παράμετρο περιόδου λειτουργίας από μια μέθοδο που εκτελείται στο παρασκήνιο, καθώς θα είναι διαφορετική περίοδος λειτουργίας. Αυτή η απόχρωση μπορεί να αποτελεί έκπληξη, επομένως είναι καλύτερο να προετοιμαστείτε για αυτήν εκ των προτέρων περνώντας την επιθυμητή τιμή ως παράμετρο μεθόδου και αρχικοποιώντας από μια παράμετρο περιόδου λειτουργίας στην αρχή της διαδικασίας.
5
Όταν απαιτείται μια πιο λεπτομερής ρύθμιση πρόσβασης, ο μηχανισμός RLS - Record Level Security έρχεται να σώσει. Το 1C: Enterprise System Configurations 8 τοποθετήθηκε αρχικά ως πρόγραμμα για λογιστική πολλαπλών εταιρειών και ένα από...
3
Ξεκινώντας από την πλατφόρμα 8.0 του συστήματος 1C Enterprise, είναι δυνατός ο περιορισμός των δικαιωμάτων πρόσβασης χρήστη σε επίπεδο ρεκόρ. Για αυτό, χρησιμοποιείται ο μηχανισμός RLS (Record Level Security). Ένας τέτοιος "ψιλός" συντονισμός μπορεί να είναι...
3
Συχνά συναντώ ερωτήσεις που σχετίζονται με τη δημιουργία μέσω προγραμματισμού και τη ρύθμιση των δικαιωμάτων χρήστη. Σε αυτό το άρθρο, θα δώσω παραδείγματα για τυπικές και διαχειριζόμενες εφαρμογές που δημιουργούν μέσω προγραμματισμού έναν χρήστη σε ...
2
Ερώτηση: Έχω προσθέσει έναν νέο χρήστη. Δημιουργώ μια νέα διεπαφή (αντιγράφοντας την υπάρχουσα) και προσδιορίζω αυτήν τη διεπαφή ως την κύρια για αυτόν τον χρήστη. Το πρόβλημα είναι ότι η διεπαφή που δημιουργήθηκε πρόσφατα...
- ΤΡΕΧΟΥΣΕΣ ΕΚΔΟΣΕΙΣ 1C
- ΠΑΡΑΔΕΙΓΜΑΤΑ ΚΩΔΙΚΟΥ ΣΤΗΝ ΠΛΑΤΦΟΡΜΑ 1C