Επιλέξτε από τη λίστα 1γ κανονικές φόρμες
Πλήρης σύνταξη (κάντε κλικ για ανάπτυξη)
ListValues
Περιγραφή:
Μια λίστα τιμών είναι ένα αντικείμενο που δεν αποθηκεύεται στη βάση δεδομένων, το οποίο σας επιτρέπει να δημιουργήσετε δυναμικά σύνολα τιμών για την επίλυση προβλημάτων διεπαφής και να τα χειριστείτε (προσθήκη, επεξεργασία, διαγραφή στοιχείων, ταξινόμηση). Μπορεί να γεμίσει με τιμές οποιουδήποτε τύπου, π.χ. Σε μία λίστα, οι τύποι των αποθηκευμένων τιμών μπορεί να είναι διαφορετικοί. Ένα παράδειγμα χρήσης αυτού του αντικειμένου είναι η οργάνωση της επιλογής ενός συγκεκριμένου εγγράφου από μια λίστα πιθανών εγγράφων που δημιουργούνται χρησιμοποιώντας έναν σύνθετο αλγόριθμο.
Είδη συλλογής: ValueListElement
Είναι δυνατό ένα αντικείμενο να παρακάμψει τη συλλογή χρησιμοποιώντας τον τελεστή Για κάθε... Από... Κύκλο. Η διάβαση επιλέγει τα στοιχεία της συλλογής.
Είναι δυνατή η πρόσβαση σε ένα στοιχείο συλλογής χρησιμοποιώντας τον τελεστή [...]. Το ευρετήριο του στοιχείου μεταβιβάζεται ως όρισμα ( αρίθμηση από το 0).
Ιδιότητες:
Μέθοδοι:
Σχεδιαστές:
Διαδικασία &OnClient ExecuteCode(Command) /// Πώς να δημιουργήσετε μια λίστα τιμών σε 1s 8.3, 8.2 List = New ValueList; /// Πώς να προσθέσετε ένα στοιχείο στη λίστα τιμών σε 1s 8.3, 8.2 // προσθήκη παραμέτρων μεθόδου:// - έννοια // - απόδοση // - σημάδι (απαιτείται) // - εικόνα (απαιτείται)Λίστα. Προσθήκη (1980, // τιμή στοιχείου "Το έτος γέννησης της Βάσια"// απόδοση ) ; Λίστα. Προσθήκη(1985,) ; "Το έτος γέννησης της Γιούλια"// οι τιμές μπορεί να είναι διαφορετικών τύπων Λίστα. Add("Polina" , "Child's name" ); /// Πώς να εισαγάγετε ένα στοιχείο σε μια λίστα τιμών σε 1s 8.3, 8.2 // εισαγωγή στη θέση Νο. 2 (τα στοιχεία αριθμούνται ξεκινώντας από το 0) // στοιχείο με τιμή 2010 και αναπαράσταση// "Η χρονιά που γεννήθηκε η κοινή τους κόρη" Λίστα. Insert(2, 2010,) ; «Η χρονιά που γεννήθηκε η κοινή τους κόρη»/// Πώς να παρακάμψετε στοιχεία της λίστας τιμών σε 1s 8.3, 8.2 Για κάθε στοιχείο από αναφορά βρόχου λίστας( Στοιχείο. Αναπαράσταση + ": " + Συμβολοσειρά(Στοιχείο. Τιμή) ) ; EndCycle ;/// Πώς να διαγράψετε τη λίστα τιμών στα 1s 8.3, 8.2 Λίστα. Σαφή() ; Λίστα. Προσθήκη ("Δευτέρα"); Λίστα. Προσθήκη ("Τρίτη"); Λίστα. Add("Τετάρτη"); // αρίθμηση από την αρχήΓια Ευρετήριο = 0 Κατά Λίστα. Quantity() - 1 Cycle Report(List[Index]) ; EndCycle ; /// Πώς να βρείτε ένα στοιχείο λίστας με βάση την τιμή του σε 1s 8.3, 8.2 ValueTuesday = Λίστα. FindByValue("Τρίτη"); /// Πώς να μάθετε το ευρετήριο ενός στοιχείου σε μια λίστα σε 1s 8.3, 8.2 Report(List. Index(ValueTuesday) ) ; // 1, αφού η αρίθμηση ξεκινά από το μηδέν /// Πώς να ταξινομήσετε μια λίστα με τις τιμές της σε 1s 8.3, 8.2 // ήταν: Δευτέρα, Τρίτη, ΤετάρτηΛίστα. SortByValue(SortDirection.Descending) ; // έγινε: Τετάρτη, Δευτέρα, Τρίτη /// Πώς να αφαιρέσετε ένα στοιχείο από μια λίστα τιμών σε 1s 8.3, 8.2 // αφαιρέστε το πρώτο στοιχείο // παράμετρος: στοιχείο λίστας // ή ευρετήριο στοιχείου// μπορείτε να κάνετε αυτήν τη λίστα. Διαγραφή(Λίστα[ 0 ]) ; // ή έτσι // List.Delete(0); /// Πώς να μετατοπίσετε ένα στοιχείο μιας λίστας τιμών σε 1s 8.3, 8.2 // μετακινήστε το μηδενικό στοιχείο προς τα εμπρός μία θέση // ήταν: Δευτέρα ΤρίτηΛίστα. Μετακίνηση (0, 1); // έγινε: Τρίτη Δευτέρα /// Πώς να δημιουργήσετε ένα αντίγραφο μιας λίστας σε 1s 8 ListCopy = Λίστα. Αντίγραφο() ; Χρώματα = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Προσθήκη("Πράσινο") ; Χρωματιστά. Add("Μπλε" );/// Πώς να ανεβάσετε τιμές λίστας σε έναν πίνακα σε 1s 8.3, 8.2 ArrayColors = Χρώματα. UnloadValues() ;/// Πώς να φορτώσετε τιμές λίστας από έναν πίνακα σε 1s 8.3, 8.2 Χρωματιστά. LoadValues(ArrayColors) ; Τελική Διαδικασία /// Πώς να κάνετε μια επιλογή χωρίς τρόπο λειτουργίας μιας τιμής από μια λίστα/// τιμές σε 1s 8.3, 8.2 &Στη διαδικασία πελάτη Τρόπος δημιουργίας ενός Non-ModalValueSelection(Command) Colors = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Προσθήκη("Πράσινο") ; Χρωματιστά. Add("Μπλε" );// διαδικασία AfterSelectingElement ορίζεται ακριβώς παρακάτω AlertAfterElementSelection = New DescriptionAlerts("AfterElementSelection" , ThisObject ) ; Χρωματιστά. ShowElementSelection( NotificationAfterElementSelection,"Διαλέξτε το αγαπημένο σας χρώμα"<>) ; Τέλος διαδικασίας &Σε διαδικασία πελάτη AfterElementSelection(Στοιχείο, Παράμετροι) Εξαγωγή Εάν Στοιχείο Undefined then Report(Element.Value) ; Τέλος εαν ; /// Πώς να κάνετε μια επιλογή χωρίς τρόπο λειτουργίας μιας τιμής από μια λίσταΤελική Διαδικασία /// Πώς να κάνετε σήμανση τιμών χωρίς τρόπο από μια λίστα&Στη διαδικασία πελάτη Τρόπος δημιουργίας μη-τροπικής σήμανσης τιμών (εντολή) Χρώματα = Νέα λίστα τιμών. Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Προσθήκη("Πράσινο") ; Χρωματιστά. Add("Μπλε" ); // διαδικασία AfterMarkingElements ορίζεται ακριβώς παρακάτω, ThisObject ) ; Χρωματιστά. ShowTagItems( AlertAfterTagItems, "Επιλέξτε τα αγαπημένα σας χρώματα") ; Χρωματιστά. FillNotes(True) ; Τέλος διαδικασίας &Σε διαδικασία πελάτη μετά τη σήμανση στοιχείων (στοιχεία, παράμετροι) Εξαγωγή εάν στοιχεία<>Undefined then For Every Color From Elements Cycle If Color. Σημειώστε στη συνέχεια αναφορά (Color.Value) ; Τέλος εαν ; EndCycle ; Τέλος εαν ;Τελική Διαδικασία , ThisObject ) ; Χρωματιστά. ShowElementSelection( NotificationAfterElementSelection,/// Πώς να κάνετε μια τροπική επιλογή μιας τιμής από μια λίστα σε 1s 8.3, 8.2<>&Στη διαδικασία πελάτη Τρόπος δημιουργίας ModalValueSelection(Command) Colors = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Προσθήκη("Πράσινο") ; Χρωματιστά. Add("Μπλε" ); Επιλέξτε Χρώμα = Χρώματα. Επιλέξτε αντικείμενο( ) ; Εάν Επιλέξτε Χρώμα /// Πώς να κάνετε μια επιλογή χωρίς τρόπο λειτουργίας μιας τιμής από μια λίστα Undefined Τότε Αναφορά(SelectColor.Value) ; Τέλος εαν ; "Επιλέξτε τα αγαπημένα σας χρώματα"Τελική Διαδικασία /// Τρόπος επισήμανσης τιμών από μια λίστα &Στη διαδικασία πελάτη Τρόπος δημιουργίας ενός τροπικού σήματος τιμών (εντολή) Χρώματα = Νέα λίστα τιμών. Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Προσθήκη("Πράσινο") ; Χρωματιστά. Add("Μπλε" ); Αν Χρώματα. MarkItems() Κατόπιν για κάθε χρώμα από τον κύκλο χρωμάτων εάν χρώμα. Σημειώστε στη συνέχεια αναφορά (Color.Value) ; Τέλος εαν ; EndCycle ; Τέλος εαν ; |
// Έτσι μπορείτε να ορίσετε όλα τα σημάδια ταυτόχρονα // λίστα σε μια συγκεκριμένη τιμήΧρωματιστά. FillNotes(True) ; Τελική Διαδικασία
/// Πραγματοποιήστε λήψη και εκτέλεση αυτών των παραδειγμάτων στον υπολογιστή σας
Ωστε να ανοίξτε τη φόρμα επιλογής με επιλογή σε 1s 8.2(κανονικές φόρμες), πρέπει να εκτελέσουμε κάποιες ενέργειες. Θα το πάρουμε πρώτοι. Μετά από αυτό, θα ορίσουμε την επιλογή και θα την ανοίξουμε μέσω προγραμματισμού, εδώ είναι ένα παράδειγμα κώδικα: Επιλογή στη φόρμα στο πεδίο εισαγωγής 1C 8.2 με πολλές τιμέςΣτο παραπάνω παράδειγμα που εξετάσαμε
πώς να ορίσετε την επιλογή στη φόρμα επιλογής ListValuesκατά συγκεκριμένη τιμή. Τώρα, ας δούμε μια κατάσταση όπου πρέπει να αντικαταστήσετε πολλές τιμές, για παράδειγμα, ένας πίνακας ή να ξεφορτωθεί από ένα αποτέλεσμα ερωτήματος.
Ρύθμιση επιλογής στο πεδίο εισαγωγής στη φόρμα στο 1C 8.3, συμβάν Έναρξη επιλογής
Τώρα ας αναλογιστούμε επιλογή στο πεδίο εισαγωγής σε μια διαχειριζόμενη φόρμα στο 1C 8.3. Ας βρούμε στη φόρμα το στοιχείο που μας ενδιαφέρει, στο οποίο θα ορίσουμε την επιλογή, στην περίπτωσή μας αυτό είναι το πεδίο "Οργάνωση". Βρίσκουμε την εκδήλωση «Έναρξη επιλογής», κάνουμε κλικ στον μεγεθυντικό φακό και βρισκόμαστε στη διαδικασία. Βλέπουμε την παράμετρο Selection Data αυτή η παράμετρος είναι τύπου ValueList. Για να περιορίσουμε την επιλογή στα απαραίτητα στοιχεία, πρέπει να συμπληρώσουμε τη Λίστα τιμών. Μπορούμε να επιλέξουμε στοιχεία μόνο στον διακομιστή, επομένως δημιουργούμε μια διαδικασία με την οδηγία μεταγλώττισης &OnServer. Σε αυτή τη διαδικασία, συμπληρώστε τα Δεδομένα Επιλογής.
Πολύ συχνά είναι απαραίτητο να επιτρέπεται στον χρήστη να επιλέξει ρυθμίσεις στη φόρμα (πριν κάνει κλικ στο κουμπί "Εκτέλεση όλων"). Όταν χρειάζεται να επιλέξετε μία τιμή από πολλές προκαθορισμένες, χρησιμοποιείται συχνά μια αναπτυσσόμενη λίστα με τιμές 1C στη φόρμα.
Αναπτυσσόμενη λίστα τιμών 1C στη φόρμα - προσθέστε ένα πεδίο επιλογής στη φόρμα πελάτη παχύ, καθορίστε το όνομά του. Για να αποτρέψετε την αλλαγή της λίστας από τον χρήστη, καταργήστε την επιλογή "Επεξεργασία κειμένου" στις ιδιότητες του πεδίου επιλογής.
Θα προσθέσουμε την ίδια τη λίστα επιλογής μέσω προγραμματισμού στο πρόγραμμα χειρισμού φόρμας «On Opening». Το πεδίο επιλογής έχει μια δευτερεύουσα λίστα τιμών, FormItems.SelectionFieldName.ChoiceList, και για τον ορισμό της προεπιλεγμένης τιμής και για τον καθορισμό της επιλεγμένης τιμής, FormItems.SelectionFieldName.Value:
Διαδικασία OnOpen()
FormElements.ValueSelection.SelectionList.Clear();
Form Elements.Value Selection.Selection List.Add(0, "Create Document");
FormElements.ValueSelection.SelectionList.Add(1, "Επεξεργασία εγγράφου");
Form Elements.Value Selection.Selection List.Add(2, "Delete document");
FormElements.ValueSelection.Value = 0;
Τελική Διαδικασία
Αναπτυσσόμενη λίστα τιμών 1C στη φόρμα - στον thin client στη φόρμα πρέπει να δημιουργήσετε ένα χαρακτηριστικό φόρμας στο οποίο θα αποθηκεύσουμε το αποτέλεσμα, για παράδειγμα με τη συμβολοσειρά τύπου. Σύρετε το στη φόρμα.
Αναπτυσσόμενη λίστα τιμών 1C στη φόρμα - Επιλογή 1)
- Ενεργοποιήστε το κουμπί επιλογής λίστας
- Στην ιδιότητα "Λίστα Επιλογών", κάντε κλικ στο "..." και εισαγάγετε τις επιλογές
- Το αποτέλεσμα της επιλογής θα αποθηκευτεί στο επιλεγμένο χαρακτηριστικό
Αναπτυσσόμενη λίστα τιμών 1C στη φόρμα - Επιλογή 2)
- Ενεργοποιήστε το κουμπί επιλογής λίστας
- Ας προσθέσουμε έναν χειριστή για "Έναρξη επιλογής από λίστα"
&OnClient
Procedure SelectedValueStartSelectionFromList(Στοιχείο, ΤυπικήΕπεξεργασία)
Items.SelectedValue.SelectionList.Add("Προσθήκη εγγράφου");
Items.SelectedValue.SelectionList.Add("Επεξεργασία εγγράφου");
Items.SelectedValue.SelectionList.Add("Διαγραφή εγγράφου");
Τελική Διαδικασία
Το αποτέλεσμα είναι παρόμοιο. Απαιτείται εάν η λίστα πρόκειται να συμπληρωθεί με αναφορές σε βιβλία αναφοράς/έγγραφα που δεν είναι προκαθορισμένα.
Αναπτυσσόμενη λίστα τιμών 1C στη φόρμα - Επιλογή 3)
Αυτή η επιλογή λειτουργεί παρόμοια, αλλά η διεπαφή φαίνεται διαφορετική.