1s 8 διακόπτη σε ελεγχόμενη φόρμα. Διακόπτες, κανονική εφαρμογή, διαχειριζόμενες φόρμες. Προσαρμογή της εμφάνισης μιας διαχειριζόμενης φόρμας

Η πλατφόρμα 1C:Enterprise σάς επιτρέπει να προσθέτετε και να αλλάζετε στοιχεία μέσω προγραμματισμού ελεγχόμενη μορφή. Ας καταλάβουμε γιατί μπορεί να χρειαστεί αυτό.

Τροποποίηση λογισμικού της φόρμας ενδέχεται να απαιτείται σε διάφορες περιπτώσεις:

  • Κατά την οριστικοποίηση τυπικές διαμορφώσειςγια τη διευκόλυνση της επακόλουθης διαδικασίας ενημέρωσης. Σε αυτήν την περίπτωση, θα αλλάξει μόνο η ενότητα φόρμας. Οι ενότητες ενημερώνονται πολύ πιο εύκολα από τις φόρμες.
  • Κατά την εφαρμογή ορισμένων κοινών αλγορίθμων. Για παράδειγμα, στο υποσύστημα «Απαγόρευση επεξεργασίας λεπτομερειών αντικειμένου», όλα τα αντικείμενα που συνδέονται με το υποσύστημα έχουν δημιουργία λογισμικούκουμπιά για να ενεργοποιήσετε τη δυνατότητα επεξεργασίας λεπτομερειών.
  • Κατά την εφαρμογή ορισμένων συγκεκριμένων αλγορίθμων. Για παράδειγμα, στον κατάλογο Ονοματολογία, δημιουργούνται πεδία για την επεξεργασία πρόσθετων λεπτομερειών.

Σε μια διαχειριζόμενη φόρμα, μπορείτε να προσθέσετε, να αλλάξετε και να διαγράψετε μέσω προγραμματισμού:

  • καθέκαστα;
  • τοπικές ομάδες?
  • στοιχεία.

Όλες αυτές οι λειτουργίες είναι δυνατές μόνο στον διακομιστή.

Η αναμόρφωση μέσω προγραμματισμού έχει περιορισμούς:

  • Μπορείτε να διαγράψετε μόνο λεπτομέρειες/εντολές/στοιχεία που προστέθηκαν μέσω προγραμματισμού. Δεν μπορείτε να διαγράψετε μέσω προγραμματισμού αντικείμενα που έχουν δημιουργηθεί στο πρόγραμμα διαμόρφωσης.
  • Δεν μπορείτε να εκχωρήσετε ένα χαρακτηριστικό ως κύριο.

Αλλαγή εντολών φόρμας

Για να διαχειριστείτε τη σύνθεση εντολών για ένα αντικείμενο Διαχειριζόμενη Φόρμαυπάρχει μια συλλογή Ομάδες

    Προσθέτω (< ИмяКоманды >)

    Ποσότητα ()

    Εύρημα (< ИмяКоманды >)

    Διαγράφω (< Команда >)

Η συλλογή Teams είναι διαθέσιμη τόσο στον πελάτη όσο και στον διακομιστή. Μπορείτε να αλλάξετε τη συλλογή (μέθοδοι Add() και Delete()) μόνο στον διακομιστή. Μπορείτε να αναζητήσετε και να λάβετε τον αριθμό των στοιχείων (οι μέθοδοι Εύρεση () και Καταμέτρηση ()) τόσο στον πελάτη όσο και στον διακομιστή.

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

&Στον διακομιστή
Διαδικασία WhenCreatingOnServer (Αποτυχία, ΤυπικήΕπεξεργασία)
Ομάδα = Ομάδες. Προσθέτω( "Ιστορία των Αλλαγών");
Ομάδα . Δράση = ;
Ομάδα . Τίτλος = "Ιστορία των αλλαγών...";
Τέλος Διαδικασίας
&OnClient
Διαδικασία Connectable_DisplayHistory(Εντολή)
// Ενέργειες εντολών
Τέλος Διαδικασίας

Ο χειριστής εντολών πρέπει να βρίσκεται σε μια φόρμα και να διαθέτει οδηγία μεταγλώττισης &OnClient.

Αλλαγή στοιχείων φόρμας

Η ανάγνωση της σύνθεσης των λεπτομερειών της φόρμας εκτελείται από τη συνάρτηση Λάβετε λεπτομέρειες(< Путь >) επιστρέφοντας έναν πίνακα τύπου FormAttributes. Η παράμετρος συνάρτησης καθορίζει τη διαδρομή προς το γονικό χαρακτηριστικό (ως συμβολοσειρά). Εάν η παράμετρος παραλειφθεί ή έχει καθοριστεί μια κενή συμβολοσειρά, επιστρέφονται οι λεπτομέρειες ανώτατου επιπέδου.

Η αλλαγή των λεπτομερειών γίνεται χρησιμοποιώντας τη μέθοδο Αλλαγή Στοιχείων(<Προστέθηκαν λεπτομέρειες>, <Αφαιρούμενες λεπτομέρειες>) αντικείμενο Διαχειριζόμενη Φόρμα. Στις παραμέτρους Προστέθηκαν λεπτομέρειεςΚαι Αφαιρούμενες λεπτομέρειεςΜεταδίδονται πίνακες με στοιχεία του τύπου Form Attributes.

Προσοχή!

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

Ας δημιουργήσουμε νέα στηρίγματαέντυπα με το όνομα Αγοραστής:


AddedDetails = Νέος πίνακας;
Προστέθηκαν λεπτομέρειες. Add(New Form Attributes("Αγοραστής", Περιγραφή νέου τύπου ("DirectoryLink. Αντισυμβαλλόμενοι"), "Πελάτης"));

// Αλλαγές στη σύνθεση των λεπτομερειών
);

Αλλαγή στοιχείων μορφής

Για τον έλεγχο της σύνθεσης των στοιχείων ενός αντικειμένου Διαχειριζόμενη Φόρμαυπάρχει μια συλλογή Στοιχεία. Η συλλογή έχει διάφορες μεθόδους:

    Εισάγω (< Имя>, < ТипЭлемента>, < Родитель>, < Элемент >)

    Προσθέτω (< Имя>, < ТипЭлемента>, < Родитель >)

    Ποσότητα ()

    Εύρημα (< Имя >)

    Κίνηση(< Элемент>, < Родитель>, < МестоРасположения >)

    Διαγράφω (< Элемент >)

Η συλλογή αντικειμένων είναι διαθέσιμη τόσο στον πελάτη όσο και στον διακομιστή. Τροποποίηση συλλογής (Εισαγωγή μεθόδων () , Προσθήκη () , Μετακίνηση () και Διαγραφή () ) είναι διαθέσιμα μόνο στον διακομιστή. Μπορείτε να αναζητήσετε και να λάβετε τον αριθμό των στοιχείων (οι μέθοδοι Εύρεση () και Καταμέτρηση ()) τόσο στον πελάτη όσο και στον διακομιστή. Τα στοιχεία της συλλογής μπορεί να είναι:

  • FormGroup;
  • FormTable;
  • FormField;
  • Κουμπί φόρμας.

Μπορείτε να εκχωρήσετε μέσω προγραμματισμού χειριστές συμβάντων για στοιχεία φόρμας. Η μέθοδος προορίζεται για αυτούς τους σκοπούς SetAction(< ИмяСобытия>, < Действие >) .

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

Προσθήκη εντολής και κουμπιού που σχετίζεται με αυτήν:

// Δημιουργία εντολής
Ομάδα = Ομάδες. Προσθέτω( "Ιστορία των Αλλαγών");
Ομάδα . Δράση = "Plug-in_Display History"; // Η φόρμα πρέπει να περιέχει μια διαδικασία με το καθορισμένο όνομα
Ομάδα . Επικεφαλίδα = "Ιστορία των αλλαγών...";
// Δημιουργήστε ένα κουμπί και συσχετίστε το με μια εντολή
Στοιχείο = Είδη. Προσθέτω( "Ιστορία των Αλλαγών", Type("FormButton" ));
Element.CommandName = "Ιστορία των Αλλαγών";

Προσθήκη ενός χαρακτηριστικού και του σχετικού πεδίου εισαγωγής:

// Περιγραφή των πρόσθετων λεπτομερειών
AddedDetails = Νέος πίνακας;
Προστέθηκαν λεπτομέρειες. Προσθέτω(New Form Props ("Αγοραστής", Περιγραφή νέου τύπου ( "DirectoryLink. Αντισυμβαλλόμενοι"), "Πελάτης" ));
// Αλλαγή της σύνθεσης των λεπτομερειών
Αλλαγή Λεπτομέρειες (Προστέθηκαν Λεπτομέρειες);
// Δημιουργία πεδίου εισαγωγής και σύνδεση με το χαρακτηριστικό
Στοιχείο = Είδη. Add("Buyer" , Type("FormField" ));
Στοιχείο . Προβολή = FormFieldView. InputField;
Στοιχείο . PathToData= "Αγοραστής" ;

Εκχώρηση ενός προγράμματος χειρισμού συμβάντων σε ένα στοιχείο φόρμας:

ΑντικείμενοΠελάτης. SetAction("Περί αλλαγής", "Connected_BuyerOnChange");

&OnClient
Διαδικασία Connected_BuyerOnChange(Στοιχείο)
// Ενέργειες συμβάντος
Τέλος Διαδικασίας

Προσοχή!

Διαδικασίες που ορίζονται ως χειριστές συμβάντων από κώδικα χρησιμοποιώντας τη μέθοδο SetAction(), συνιστάται να ορίσετε το πρόθεμα Connectable_.

Προσοχή!

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

1C δημιουργούνται αυτόματα από το σύστημα κατά τη χρήση της λύσης εφαρμογής. Αποτελούν τη βάση για την παρουσίαση (εμφάνιση) πληροφοριών στο σύστημα 1C:Enterprise.

Δομή του εντύπου 1C

Η μορφή Β είναι μια λογική περιγραφή της σύνθεσης της φόρμας. στοιχεία περιγράφει πώς θα μοιάζει η φόρμα. Η τοποθέτηση των στοιχείων της φόρμας εκτελείται αυτόματα από το σύστημα όταν εμφανίζεται.

Το εμφανιζόμενο τμήμα της φόρμας (ορατό στον χρήστη) περιγράφεται ως δέντρο που περιλαμβάνει στοιχεία φόρμας (δείτε την παρακάτω εικόνα, το πεδίο "Στοιχεία φόρμας"):

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

"Στοιχεία μορφής 1C"

[κατάρρευση]

Μια ομάδα στοιχείων φόρμας μπορεί να αναπαρασταθεί ως

  1. πάνελ με πλαίσιο,
  2. πίνακας με σελίδες (σελιδοδείκτες),
  3. η ίδια η σελίδα,
  4. πίνακα εντολών.

Όλες οι λειτουργίες της φόρμας περιγράφονται ως εξής:

  • λεπτομέρειες (δεδομένα με τα οποία λειτουργεί η φόρμα).
  • εντολές (ενέργειες που εκτελούνται).

Προσαρμογή της εμφάνισης μιας διαχειριζόμενης φόρμας

Προσαρμογή της εμφάνισης μιας διαχειριζόμενης φόρμας από τον χρήστη

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

"Περισσότερα" - "Αλλαγή σχήματος"

Εντολή "Περισσότερα" - "Αλλαγή σχήματος":

Αφού κάνετε κλικ στο "Αλλαγή φόρμας", εμφανίζεται το παράθυρο ρυθμίσεων φόρμας 1C:

[κατάρρευση]

Επιπλέον, στη λειτουργία χρήστη είναι δυνατό να:


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

Εάν χρησιμοποιούνται ενότητες, τότε όταν καλείτε μια εντολή στον πίνακα πλοήγησης, εμφανίζεται η αντίστοιχη λίστα στην περιοχή εργασίας, αντικαθιστώντας τα προηγούμενα περιεχόμενα της περιοχής εργασίας.

Προσαρμογή της εμφάνισης μιας διαχειριζόμενης φόρμας από έναν προγραμματιστή

Ο προγραμματιστής μπορεί να επηρεάσει τη διάταξη των στοιχείων με διάφορες ρυθμίσεις. Μπορεί να καθορίσει τη σειρά των στοιχείων, να καθορίσει το πλάτος και το ύψος τους και επίσης να χρησιμοποιήσει:

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

Εικόνα (αλλαγή φόρμας 1C ανά προγραμματιστή)

[κατάρρευση]

Κατά την ανάπτυξη της Φόρμας 1C πρέπει:

  1. Στο πρόγραμμα επεξεργασίας φόρμας, συμπεριλάβετε τις απαραίτητες λεπτομέρειες και εντολές στη φόρμα.
  2. δημιουργήστε στοιχεία φόρμας που τα εμφανίζουν, προσδιορίστε τη σειρά των στοιχείων, καθορίστε το πλάτος και το ύψος (εάν είναι απαραίτητο).
  3. τακτοποιήστε τα στοιχεία σε ομάδες (εάν είναι απαραίτητο).
  1. Χρησιμοποιήστε ρυθμίσεις ορατότητας βάσει ρόλων σε στοιχεία φόρμας (προβολή και επεξεργασία λεπτομερειών από , προσαρμοσμένη ορατότητα πεδίων φόρμας ανά ρόλο, χρήση εντολών ανά ρόλους) σε περίπτωση που μεγάλες ποσότητεςρόλοι στη διαμόρφωση (από αρκετές δεκάδες). Αντίθετα, θα πρέπει να ακολουθηθούν οι ακόλουθες προσεγγίσεις:
    • όταν υπάρχουν έντονες διαφορές στην εμφάνιση και τη λειτουργικότητα της φόρμας ανάλογα με την παρουσία ορισμένων ρόλων για τον χρήστη – αναπτύξτε ξεχωριστές μορφές, εξειδικευμένο για ένα συγκεκριμένο σύνολο δικαιωμάτων χρήστη.
    • με μικρές διαφορές - πραγματοποιήστε ελέγχους αδειών στον κώδικα. Θα πρέπει να ληφθεί υπόψη ότι έλεγχος λογισμικούΗ ορατότητα μπορεί να μειώσει την ταχύτητα ανοίγματος της φόρμας, η οποία πρέπει να λαμβάνεται υπόψη κατά την επιλογή μεταξύ των προτεινόμενων προσεγγίσεων.
  2. Χρησιμοποιήστε ρυθμίσεις ορατότητας βάσει ρόλων στη διεπαφή εντολών διαμόρφωσης, στη διεπαφή εντολών της κύριας ενότητας και στην περιοχή εργασίας της αρχικής σελίδας. Αντίθετα, θα πρέπει να ορίσετε δικαιώματα σε ενότητες της διεπαφής εντολών και σε αντικείμενα που περιλαμβάνονται στη διεπαφή εντολών ή στο χώρο εργασίας. Αυτό επιτρέπει αυξημένη προβλεψιμότητα της συμπεριφοράς διαχειριζόμενη διεπαφήγια τον χρήστη, καθώς και απλοποίηση της διερεύνησης σφαλμάτων.

Περισσότερο λεπτομερείς πληροφορίεςσχετικά με την εργασία με φόρμες στο μάθημα "Εργασία με φόρμες στο 1C:Enterprise 8.3", http://www.1c.ru/rus/partners/training/uc1/course.jsp?id=161.

Προσθέστε ένα πλαίσιο ομάδας στη φόρμα και τοποθετήστε τους διακόπτες σε αυτό μέσω του στοιχείου μενού Φόρμα -> Εισαγωγή ελέγχου... και επιλέξτε τους διακόπτες στο παράθυρο που ανοίγει:

Στο δεξί μέρος του παραθύρου, προσθέστε την τιμή του διακόπτη όσο χρειαζόμαστε, βάλτε ένα σημάδι επιλογής στο «Μετοχές - πρώτα στην ομάδα» ώστε αυτός ο διακόπτης να επιλέγεται αυτόματα.

Αφού προσθέσουμε τους διακόπτες, επιλέγουμε τον τύπο δεδομένων για την πρώτη τιμή «Μετοχές», στην περίπτωσή μας εκχωρούμε την τιμή «Τύπος Τίτλων»:

Και η ίδια η τιμή του διακόπτη εισάγεται στο Data -> Selected value. Για Μετοχές αυτό είναι 0, Ομόλογα - 1, Γραμμάτια - 2 και Μονάδες - 3. Αλλά πριν εισαγάγετε αυτά τα δεδομένα, πρέπει να ελέγξετε την παραγγελία.

Εάν οι διακόπτες δεν είναι σε τάξη, τότε δεν θα γίνει η εναλλαγή, δηλαδή δεν θα μπορούμε να επιλέξουμε την τιμή του δεσμού. Για να ενεργοποιήσετε αυτήν τη δυνατότητα, πρέπει να επιλέξετε το μενού Φόρμα -> Ρύθμιση σειράς διέλευσης και να τοποθετήσετε όλους τους διακόπτες στη σειρά.

Ελέγξτε την επιλέξιμη τιμή των διακοπτών μετά τη διόρθωση της παραγγελίας.

Το μόνο που μένει είναι να γράψετε τον κωδικό του προγράμματος στο συμβάν διακόπτη "ενέργεια" "Ενεργοποίηση":

Αν Τύπος CB = 0 Τότε

ΔιαφορετικάIfCBType = 1 Τότε

ThisForm.FormElements.Receipt.Columns.NCD.Availability = 1; // μόνο για ομόλογα επιτρέπουμε το NKD

ΔιαφορετικάIfCBType = 2 Τότε

ThisForm.FormElements.Receipt.Columns.NCD.Availability = 0;

ΔιαφορετικάIfCBType = 3 Τότε

ThisForm.FormElements.Receipt.Columns.NCD.Availability = 0;

endIf;

Τώρα, όταν επιλέγετε τον διακόπτη "Ομολογίες", μπορείτε να επεξεργαστείτε την τιμή της στήλης του στοιχείου.

WiFi