Επιλέξτε από τη λίστα 1γ κανονικές φόρμες

Πλήρης σύνταξη (κάντε κλικ για ανάπτυξη)

ListValues

Περιγραφή:

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

Είδη συλλογής: ValueListElement

Είναι δυνατό ένα αντικείμενο να παρακάμψει τη συλλογή χρησιμοποιώντας τον τελεστή Για κάθε... Από... Κύκλο. Η διάβαση επιλέγει τα στοιχεία της συλλογής.

Είναι δυνατή η πρόσβαση σε ένα στοιχείο συλλογής χρησιμοποιώντας τον τελεστή [...]. Το ευρετήριο του στοιχείου μεταβιβάζεται ως όρισμα ( αρίθμηση από το 0).

Ιδιότητες:

Μέθοδοι:

Εισαγωγή (Ευρετήριο, Τιμή, Αναπαράσταση, Ετικέτα, Εικόνα) Εισάγει ένα νέο στοιχείο στη λίστα τιμών στη θέση στο καθορισμένο ευρετήριο.SelectElement (Κεφαλίδα, Στοιχείο) Εμφανίζει ένα παράθυρο για διαδραστική επιλογή ενός από τα στοιχεία που περιλαμβάνονται στη λίστα τιμών. Στοιχείο- το στοιχείο στο οποίο θα πρέπει αρχικά να τοποθετηθεί η λίστα τιμών κατά τη διαδραστική επιλογή. Εάν η τιμή της παραμέτρου δεν είναι στοιχείο λίστας τιμών που περιλαμβάνεται στη δεδομένη λίστα, δεν θα πραγματοποιηθεί τοποθέτηση.UnloadValues()Δημιουργεί έναν πίνακα και αντιγράφει τις τιμές της λίστας των στοιχείων τιμών σε αυτόν.Προσθήκη (Τιμή, Αναπαράσταση, Ετικέτα, Εικόνα) Προσθέτει ένα νέο στοιχείο στο τέλος της λίστας τιμών.LoadValues(ArrayValues) Φορτώνει μια λίστα τιμών με τις τιμές από τον πίνακα που πέρασε. Σε αυτήν την περίπτωση, όλα τα προηγούμενα στοιχεία της λίστας διαγράφονται.Συμπληρώστε Σημειώσεις(Mark) Ορίζει ένα σημάδι για όλα τα στοιχεία της λίστας τιμών.Index(Element)Παίρνει το ευρετήριο ενός στοιχείου σε μια λίστα τιμών. Εάν δεν βρεθεί, τότε επιστρέφεται -1.Count() Λαμβάνει τον αριθμό των στοιχείων στη λίστα τιμών.FindByValue(SearchValue) Αναζητά την τιμή ενός στοιχείου σε μια λίστα τιμών. Εάν κανένα στοιχείο δεν αποθηκεύει μια τιμή ίση με την τιμή αναζήτησης, τότε η τιμή επιστρέφεται Απροσδιόριστος. Εύρεση κατά ταυτότητα(Identifier)Ανακτά τη λίστα τιμών στοιχείο ανά αναγνωριστικό. Εάν το στοιχείο δεν βρεθεί, τότε επιστρέφεται Απροσδιόριστος. MarkItems(Κεφαλίδα) Ορίζει ή αποεπιλέγει (διαδραστικά) τα στοιχεία στη λίστα τιμών. Επιστροφές Αληθής, εάν πατηθεί το κουμπί "OK" στο παράθυρο διαλόγου, Ψέμα- σε διαφορετική περίπτωση.Clear() Διαγράφει τη λίστα τιμών, αφαιρώντας όλα τα στοιχεία από αυτήν.ShowElementSelection(DescriptionNotificationsOnClosing, Title, Element) Εμφανίζει ένα παράθυρο για διαδραστική επιλογή ενός από τα στοιχεία που περιλαμβάνονται στη λίστα τιμών.ShowMark Items(Περιγραφή ειδοποιήσεων κλεισίματος, τίτλος) Σχεδιασμένο για διαδραστική ρύθμιση καταστάσεων σήμανσης για στοιχεία της λίστας τιμών.Get(Index)Ανακτά την τιμή ανά ευρετήριο. Λειτουργεί παρόμοια με τον χειριστή.Shift (Στοιχείο, Μετατόπιση) Μετατοπίζει ένα στοιχείο της λίστας τιμών προς τα εμπρός ή προς τα πίσω κατά έναν καθορισμένο αριθμό θέσεων.Copy() Δημιουργεί ένα αντίγραφο μιας λίστας τιμών.SortByValue(Κατεύθυνση) Ταξινομεί μια λίστα τιμών σε αύξουσα ή φθίνουσα σειρά των τιμών που αποθηκεύονται από τα στοιχεία. Δείτε παράδειγμα παρακάτω.SortByView(Κατεύθυνση) Ταξινομεί τη λίστα τιμών σε αύξουσα ή φθίνουσα σειρά με αλφαβητική σειρά των αναπαραστάσεων των στοιχείων που περιλαμβάνονται στη λίστα τιμών. Δείτε παράδειγμα παρακάτω.Remove (Element) Αφαιρεί ένα στοιχείο από μια λίστα τιμών, όπου Στοιχείο- ευρετήριο του προς διαγραφή στοιχείου ή του ίδιου του στοιχείου.

Σχεδιαστές:

Νέα λίστα αξιών
Διαδικασία &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)

Αυτή η επιλογή λειτουργεί παρόμοια, αλλά η διεπαφή φαίνεται διαφορετική.