Προς την ανοίξτε μια φόρμα επιλογής με επιλογή σε 1s 8.2 (κανονικές μορφές), πρέπει να κάνουμε κάποιες ενέργειες. Θα το πάρουμε πρώτοι. Μετά από αυτό, θα ορίσουμε την επιλογή και θα την ανοίξουμε μέσω προγραμματισμού, εδώ είναι ένα παράδειγμα κώδικα:

Επιλογή στη φόρμα στο πεδίο εισαγωγής 1C 8.2 με πολλές τιμές

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

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

Ρύθμιση της επιλογής στο πεδίο εισαγωγής στη φόρμα στο 1C 8.3, το συμβάν StartChoice

Τώρα σκεφτείτε επιλογή στο πεδίο εισαγωγής σε μια διαχειριζόμενη φόρμα στο 1C 8.3. Ας βρούμε στη φόρμα το στοιχείο που μας ενδιαφέρει, στο οποίο θα ορίσουμε την επιλογή, στην περίπτωσή μας αυτό είναι το πεδίο "Οργάνωση". Βρίσκουμε την εκδήλωση «StartChoice», κάνουμε κλικ στον μεγεθυντικό φακό και βρισκόμαστε στη διαδικασία. Βλέπουμε την παράμετρο ChoiceData, αυτή η παράμετρος είναι τύπου ValueList. Για να περιορίσουμε την επιλογή στα απαραίτητα στοιχεία, πρέπει να συμπληρώσουμε τη Λίστα τιμών. Μπορούμε να επιλέξουμε στοιχεία μόνο στον διακομιστή, επομένως δημιουργούμε μια διαδικασία με την οδηγία μεταγλώττισης &AtServer. Σε αυτή τη διαδικασία, συμπληρώνουμε τα Δεδομένα Επιλογής.

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

Κατάλογος Αξιών

Περιγραφή:

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

Στοιχεία συλλογής: ItemListValues

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

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

Ιδιότητες:

Μέθοδοι:

Εισαγωγή (Ευρετήριο, Τιμή, Προβολή, Σήμανση, Εικόνα) Εισαγωγές νέο στοιχείοστη λίστα τιμών στη θέση με τον καθορισμένο δείκτη.SelectElement(Title, Element) Ανοίγει ένα παράθυρο για διαδραστική επιλογήένα από τα στοιχεία στη λίστα τιμών. Στοιχείο- το στοιχείο στο οποίο θα πρέπει αρχικά να τοποθετηθεί η λίστα τιμών κατά τη διαδραστική επιλογή. Εάν η τιμή της παραμέτρου δεν είναι στοιχείο της λίστας τιμών που περιλαμβάνονται σε αυτήν τη λίστα, η τοποθέτηση δεν θα πραγματοποιηθεί.UploadValues()Δημιουργεί έναν πίνακα και αντιγράφει τις τιμές των στοιχείων της λίστας τιμών σε αυτόν.Προσθήκη (Τιμή, Προβολή, Σήμανση, Εικόνα) Προσθέτει ένα νέο στοιχείο στο τέλος της λίστας τιμών.Download Values(Πίνακας τιμών) Φορτώνει μια λίστα τιμών με τιμές από τον πίνακα που πέρασε. Σε αυτήν την περίπτωση, όλα τα προηγούμενα στοιχεία της λίστας διαγράφονται.Συμπληρώστε Σημειώσεις(Ετικέτα) Ορίζει την ετικέτα για όλα τα στοιχεία της λίστας τιμών.Ευρετήριο (Στοιχείο) Παίρνει το ευρετήριο του στοιχείου στη λίστα τιμών. Εάν δεν βρεθεί, τότε επιστρέφεται -1.count() Παίρνει τον αριθμό των στοιχείων της λίστας τιμών.FindByValue(LookupValue) Αναζητά την τιμή ενός στοιχείου μιας λίστας τιμών. Εάν κανένα στοιχείο δεν αποθηκεύει μια τιμή ίση με την επιθυμητή τιμή, τότε η τιμή επιστρέφεται. Απροσδιόριστος. FindByID(ID) Λαμβάνει το στοιχείο της λίστας τιμών κατά αναγνωριστικό. Εάν το στοιχείο δεν βρεθεί, τότε επιστρέφει Απροσδιόριστος. Επισήμανση αντικειμένων(Τίτλος) Ελέγχει ή αποεπιλέγει (διαδραστικά) τα στοιχεία στη λίστα τιμών. επιστρέφει Αληθήςεάν πατηθεί το κουμπί "OK" στο παράθυρο διαλόγου, Ψέμα- σε διαφορετική περίπτωση.Clear() Διαγράφει τη λίστα τιμών αφαιρώντας όλα τα στοιχεία από αυτήν.ShowItemSelection(ClosingAlertDescription, Title, Item) Καλεί ένα παράθυρο για να επιλέξετε διαδραστικά ένα από τα στοιχεία στη λίστα τιμών.ShowMarkItems(DescriptionAlertOnClosing, Header) Σχεδιασμένο για διαδραστική ρύθμιση καταστάσεων σημαίας για στοιχεία της λίστας τιμών.Get(Index) Λαμβάνει την τιμή στο ευρετήριο. Λειτουργεί παρόμοια με τον χειριστή.Μετακίνηση (Στοιχείο, Μετατόπιση) Μετακινεί ένα στοιχείο της λίστας τιμών προς τα εμπρός ή προς τα πίσω κατά τον καθορισμένο αριθμό θέσεων.Copy() Δημιουργεί ένα αντίγραφο της λίστας τιμών.SortByValue(Κατεύθυνση) Ταξινομεί τη λίστα των τιμών σε αύξουσα ή φθίνουσα σειρά των τιμών που αποθηκεύονται από τα στοιχεία. Δείτε παράδειγμα παρακάτω.Προβολή ταξινόμησης κατά(Κατεύθυνση) Ταξινομεί τη λίστα των τιμών σε αύξουσα ή φθίνουσα αλφαβητική σειρά των αναπαραστάσεων των τιμών των μελών στη λίστα. Δείτε παράδειγμα παρακάτω.Remove (Element) Αφαιρεί ένα στοιχείο από τη λίστα τιμών όπου Στοιχείο- το ευρετήριο του στοιχείου που πρόκειται να αφαιρεθεί ή το ίδιο το στοιχείο.

Κατασκευαστές:

Νέα λίστα αξιών
Διαδικασία &OnClient ExecuteCode(Command) /// Πώς να δημιουργήσετε μια λίστα τιμών σε 1s 8.3, 8.2Λίστα = Νέα λίστα τιμών. /// Πώς να προσθέσετε ένα στοιχείο στη λίστα τιμών σε 1s 8.3, 8.2 // προσθήκη παραμέτρων μεθόδου:// - έννοια // - απόδοση // - σημάδι (προαιρετικό) // - εικόνα (απαιτείται)Λίστα. Προσθήκη (1980, // τιμή στοιχείου "Έτος γέννησης της Βάσια"// απόδοση ) ; Λίστα. Add(1985, "Τα γενέθλια της Γιούλια") ; // οι τιμές μπορούν να είναι ΔΙΑΦΟΡΕΤΙΚΟΙ ΤΥΠΟΙ Λίστα. Add("Polina" , "Child's name" ); /// Πώς να εισαγάγετε ένα στοιχείο στη λίστα τιμών στο 1s 8.3, 8.2 // εισαγωγή στη θέση #2 (τα στοιχεία αριθμούνται από το 0) // στοιχείο με τιμή 2010 και αναπαράσταση // "Έτος γέννησης της κοινής τους κόρης"Λίστα. Επικόλληση(2, 2010, "Έτος γέννησης της κοινής τους κόρης") ; /// Πώς να παρακάμψετε τα στοιχεία της λίστας τιμών σε 1s 8.3, 8.2Για κάθε στοιχείο από αναφορά βρόχου λίστας( Στοιχείο. Προβολή + ": " + Συμβολοσειρά(Στοιχείο. Τιμή) ) ; EndCycle ; /// Πώς να διαγράψετε τη λίστα τιμών σε 1s 8.3, 8.2Λίστα. Σαφή() ; Λίστα. Add("Δευτέρα" ); Λίστα. Add("Τρίτη" ); Λίστα. Add("Τετάρτη" ​​); /// Πώς να μάθετε τον αριθμό των στοιχείων της λίστας τιμών και επίσης /// λάβετε ένα στοιχείο λίστας με βάση το ευρετήριό του σε 1s 8.3, 8.2 // αρίθμηση από το μηδένΓια Ευρετήριο = 0 Κατά Λίστα. Quantity() - 1 Loop 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(SortingDirection. Descending) ; // έγινε: Τετάρτη, Δευτέρα, Τρίτη /// Πώς να αφαιρέσετε ένα στοιχείο από τη λίστα τιμών στο 1s 8.3, 8.2 // αφαιρέστε το πρώτο στοιχείο // παράμετρος: στοιχείο λίστας // ή ευρετήριο στοιχείου// μπορείτε να κάνετε αυτήν τη λίστα. Διαγραφή(Λίστα[ 0 ] ) ; // ή έτσι // List.Delete(0); /// Πώς να μετατοπίσετε ένα στοιχείο της λίστας τιμών σε 1s 8.3, 8.2 // μετατόπιση του μηδενικού στοιχείου μία θέση προς τα εμπρός // ήταν: Δευτέρα ΤρίτηΛίστα. Move(0 , 1 ) ; // έγινε: Τρίτη Δευτέρα /// Πώς να δημιουργήσετε ένα αντίγραφο της λίστας σε 1s 8 ListCopy = Λίστα. Αντίγραφο() ; Χρώματα = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Add("Πράσινο" ); Χρωματιστά. Add("Μπλε" ); /// Πώς να ξεφορτώσετε τις τιμές της λίστας σε έναν πίνακα σε 1s 8.3, 8.2 ArrayColors = Χρώματα. UnloadValues() ; /// Πώς να φορτώσετε τιμές λίστας από έναν πίνακα σε 1s 8.3, 8.2Χρωματιστά. LoadValues(ArrayColors) ; Διαδικασία λήξης /// Πώς να κάνετε μια επιλογή χωρίς τρόπο λειτουργίας μιας τιμής από μια λίστα /// τιμές σε 1s 8.3, 8.2Διαδικασία &OnClient How toMakeModalSelectValue(Command) Colors = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Add("Πράσινο" ); Χρωματιστά. Add("Μπλε" ); // διαδικασία AfterItemSelect ορίζεται ακριβώς παρακάτω AlertAfterItemSelection = New AlertDescription( "AfterElementSelection", ThisObject ) ; Χρωματιστά. ShowItemChoice( AlertAfterItemChoice, "Διαλέξτε το αγαπημένο σας χρώμα") ; EndProcedure &AtClient Procedure AfterElementSelection(Element, Parameters) Export If Element<>Απροσδιόριστο Στη συνέχεια Αναφορά(Αξία στοιχείου) ; Τέλος εαν ; Διαδικασία λήξης /// Πώς να δημιουργήσετε μια μη τροπική ένδειξη τιμών από μια λίστα /// τιμές σε 1s 8.3, 8.2Διαδικασία &OnClient How toMakeModalValueMark(Command) Colors = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Add("Πράσινο" ); Χρωματιστά. Add("Μπλε" ); // η διαδικασία AfterMarkingItems ορίζεται ακριβώς παρακάτω AlertAfterMarkItems = New AlertDescription( "AfterMarking Items", ThisObject ) ; Χρωματιστά. ShowItemMark( NotificationAfterItemMark, "Επιλέξτε τα αγαπημένα σας χρώματα") ; Χρωματιστά. FillRemarks(True) ; EndProcedure &OnClient Procedure AfterMarkingElements(Elements, Parameters) Export If Elements<>Undefined then For Every Color From Elements Loop If Color. Σημαία και στη συνέχεια αναφορά (Χρώμα. Τιμή) ; Τέλος εαν ; EndCycle ; Τέλος εαν ; Διαδικασία λήξης /// Πώς να κάνετε μια τροπική επιλογή μιας τιμής από τη λίστα σε 1s 8.3, 8.2&Στη διαδικασία πελάτη Τρόπος δημιουργίας ModalSelectValue(Command) Colors = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Add("Πράσινο" ); Χρωματιστά. Add("Μπλε" ); Επιλέξτε Χρώμα = Χρώματα. Επιλέξτε αντικείμενο( "Διαλέξτε το αγαπημένο σας χρώμα") ; Εάν επιλέξατε χρώμα<>Undefined then Report(SelectColor. Value) ; Τέλος εαν ; Διαδικασία λήξης /// Πώς να δημιουργήσετε μια τροπική ένδειξη τιμών από μια λίστα /// τιμές σε 1s 8.3, 8.2Διαδικασία &OnClient How toMakeModalValueMark(Command) Colors = New ValueList; Χρωματιστά. Add("Κόκκινο" ); Χρωματιστά. Add("Πράσινο" ); Χρωματιστά. Add("Μπλε" ); Αν τα χρώματα. Επισήμανση αντικειμένων( "Επιλέξτε τα αγαπημένα σας χρώματα") Στη συνέχεια για κάθε χρώμα από τον κύκλο χρωμάτων εάν χρώμα. Σημαία και στη συνέχεια αναφορά (Χρώμα. Τιμή) ; Τέλος εαν ; EndCycle ; Τέλος εαν ; // και έτσι μπορείτε να ορίσετε όλα τα σημάδια ταυτόχρονα // λίστα σε μια συγκεκριμένη τιμήΧρωματιστά. FillRemarks(True) ; Διαδικασία λήξης /// Λήψη και εκτέλεση αυτών των παραδειγμάτων σε έναν υπολογιστή

Πολύ συχνά είναι απαραίτητο στη φόρμα να επιτρέπεται στον χρήστη να επιλέξει τις ρυθμίσεις στη φόρμα (πριν κάνει κλικ στο κουμπί "Εκτέλεση όλων"). Όταν χρειάζεται να επιλέξετε μία τιμή από πολλές προκαθορισμένες, χρησιμοποιείται συχνά μια αναπτυσσόμενη λίστα με τιμές 1C στη φόρμα.

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

Θα προσθέσουμε την ίδια τη λίστα επιλογής μέσω προγραμματισμού στο πρόγραμμα χειρισμού της φόρμας "On Opening". Το πεδίο επιλογής έχει μια υπολίστα με τιμές FormElements.SelectionFieldName.SelectionList και για να ορίσετε την προεπιλεγμένη τιμή και να καθορίσετε την επιλεγμένη τιμή FormElements.SelectionFieldName.Value:
Διαδικασία OnOpen()

FormElements.ChoiceValues.ChoiceList.Clear();
FormElements.ChoiceValues.ChoiceList.Add(0, "Δημιουργία εγγράφου");
FormElements.ChoiceValues.ChoiceList.Add(1, "Change Document");
FormElements.ChoiceValues.ChoiceList.Add(2, "Διαγραφή εγγράφου");
FormElements.SelectValues.Value = 0;

Διαδικασία λήξης

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

  • Κουμπί ενεργοποίησης επιλογής λίστας
  • Στην ιδιότητα "Λίστα επιλογής", κάντε κλικ στο "..." και εισαγάγετε τις επιλογές
  • Το αποτέλεσμα της επιλογής θα αποθηκευτεί στο επιλεγμένο χαρακτηριστικό


Αναπτυσσόμενη λίστα τιμών 1C στη φόρμα - Επιλογή 2)

  • Κουμπί ενεργοποίησης επιλογής λίστας
  • Προσθήκη προγράμματος χειρισμού "Έναρξη επιλογής από λίστα"

&AtClient
Procedure SelectedValueStartSelectionFromList(Στοιχείο, ΤυπικήΕπεξεργασία)

Elements.SelectedValue.SelectionList.Add("Add Document");
Elements.SelectedValue.SelectionList.Add("Επεξεργασία εγγράφου");
Elements.SelectedValue.SelectionList.Add("Διαγραφή εγγράφου");

Διαδικασία λήξης

Το αποτέλεσμα είναι παρόμοιο. Απαιτείται εάν η λίστα πρέπει να συμπληρώνεται με αναφορές σε καταλόγους/έγγραφα που δεν είναι προκαθορισμένα.

Αναπτυσσόμενη λίστα τιμών 1C στη φόρμα - Επιλογή 3)

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