Διακόπτες, κανονική εφαρμογή, διαχειριζόμενες φόρμες. Προσθήκη και αλλαγή στοιχείων διαχειριζόμενων φορμών μέσω προγραμματισμού Ο διακόπτης ορίζει την τιμή στις διαχειριζόμενες φόρμες 1c

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

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

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

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

  • προαπαιτούμενα?
  • τοπικές ομάδες?
  • στοιχεία.

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

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

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

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

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

    Προσθήκη (< ИмяКоманды >)

    Ποσότητα ()

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

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

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

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

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

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

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

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

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

Προσοχή!

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

Ας δημιουργήσουμε ένα νέο χαρακτηριστικό φόρμας με το όνομα Αγοραστής:


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

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

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

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

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

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

    Ποσότητα ()

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Προσοχή!

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

Προσοχή!

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

Klyuev V.V.

http://prof1c.kklab.ru

ΕΡΓΑΣΙΑ ΜΕ ΔΙΑΚΟΠΤΕΣ

Λάβετε υπόψη όλους τους χρήστες της υπηρεσίας του ιστότοπου - δημοσιεύω υλικό στην ενότητα Αρχαρίων!!!

8.2 Διαχειριζόμενες φόρμες

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

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

Λοιπόν, ας δημιουργήσουμε έναν νέο κατάλογο και ας προσθέσουμε το χαρακτηριστικό "Property1", με τον τύπο "Boolean"

Τώρα ας πάμε στην καρτέλα Φόρμες και ας προσθέσουμε μια νέα φόρμα.

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

Τι κάναμε λάθος λοιπόν;
Ας δούμε τις ιδιότητες των στηρίξεων για να δούμε αν υπάρχει αλλαγή στον τύπο ελέγχου.
Και βλέπουμε ότι το πεδίο Switch δεν είναι εδώ (Πού κάναμε λάθος;

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

Τώρα ας επιστρέψουμε στις ιδιότητες του στοιχείου ελέγχου και ας ελέγξουμε αν η προβολή του στοιχείου ελέγχου έχει προστεθεί στις ιδιότητές του - - - Και ώρα, βλέπουμε την προβολή εκεί - Εναλλαγή πεδίου.

Τώρα κοιτάξτε τη φόρμα, αυτό που βλέπουμε:

Βλέπουμε - 3 προεπιλεγμένες τιμές, 3 διακόπτες, αλλά χρειαζόμαστε δύο από αυτούς, μεταβείτε ξανά στις ιδιότητες του χαρακτηριστικού και δείτε τις ιδιότητες "Αριθμός στηλών" εκεί

Για 2 - ορίστε τον αριθμό στηλών - 2.

Αυτό μπορεί να σταματήσει λίγο έναν κουρασμένο προγραμματιστή)), αλλά τώρα τόσο αυτός όσο και εμείς το ξέρουμε!

8.2 Κανονικά έντυπα.

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

Ας δούμε λοιπόν ένα παράδειγμα. Υπάρχει ένα τέτοιο έγγραφο για την προσαρμογή των αποδείξεων στο 1C UPP - σίγουρα υπάρχει. Κάποτε χρειάστηκε να προσθέσουμε διακόπτες σε αυτό, έτσι ώστε να προκύπτουν ελαφρώς διαφορετικές εγγραφές για τη λογιστική. Ποιο είναι το πρόβλημα, φαίνεται ότι πρέπει, πρέπει, θα το κάνουμε. Αλλά αυτή η φόρμα έχει ήδη 2 κουμπιά επιλογής.

Έτσι φαίνεται η φόρμα στην οποία πρέπει να προσθέσουμε περισσότερους διακόπτες


Στην καρτέλα Για προχωρημένους, θα θέλαμε να τοποθετήσουμε δύο ακόμη κουμπιά επιλογής. Το πρώτο βήμα λοιπόν είναι να προσθέσουμε με τόλμη ένα νέο στοιχείο ελέγχου στο σημείο που χρειαζόμαστε και να το εισάγουμε.

Φαίνεται ότι όλα είναι απλά. Δημιουργούμε ένα νέο χαρακτηριστικό με τον τύπο "Αριθμός" και εισάγουμε 2 διακόπτες, ο ένας από τους οποίους θα μπορεί να γράψει δεδομένα στο χαρακτηριστικό και ο άλλος όχι.

Προσθέστε ένα νέο στοιχείο ελέγχου - Διακόπτης, προσθέστε τον διακόπτη2 στον πίνακα με τον αριθμό και την περιγραφή των διακοπτών, ορίστε πρώτα τον διακόπτη1 στην ομάδα και πατήστε OK. Τοποθετήστε τα στοιχεία ελέγχου που δημιουργήσατε στη φόρμα. Ενημερώνουμε τη διαμόρφωση της βάσης δεδομένων (F7) και την εκτελούμε για εντοπισμό σφαλμάτων.

Κατά την εκτέλεση (κατά τη δημιουργία ενός νέου εγγράφου σε λειτουργία 1C:Enterprise), βλέπουμε ότι όσο και να προσπαθούμε να κάνουμε κλικ στο Switch2, δεν συμβαίνει τίποτα. Τα στοιχεία δεν λειτουργούν όπως θα έπρεπε. Υπάρχει ένα κόλπο εδώ.
Επιστρέψτε στον διαμορφωτή. Επιλέξτε το στοιχείο μενού Φόρμα -> Ορισμός σειράς διέλευσης... (είναι σημαντικό η φόρμα να είναι ανοιχτή στην οθόνη)


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

ΕΝΤΑΞΕΙ. Ενημερώστε τη διαμόρφωση και δοκιμάστε να την εκτελέσετε.
Εξαιρετική. Όλα λειτούργησαν.

Επιπλέον - βίντεο (χωρίς ήχο, ώστε όλα να είναι ξεκάθαρα)


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

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

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

Και η ίδια η τιμή του διακόπτη εισάγεται στο 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;

τέλος εαν;

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

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.

Διάβασα πολλά φόρουμ και πουθενά δεν είδα μια κατανοητή περιγραφή της εργασίας με το "Switch". Αποφάσισα λοιπόν να το γράψω μόνος μου.

Κατά τη γνώμη ΜΟΥ, το πιο συνηθισμένο λάθος είναι η λανθασμένη αντίληψη για τον «Διακόπτη». Όταν τοποθετείτε πολλούς «διακόπτες», για παράδειγμα 3, σε μια φόρμα, πολλοί άνθρωποι πιστεύουν ότι στη λογική του προγράμματος αυτά είναι 3 διαφορετικά αντικείμενα που επηρεάζουν το ένα το άλλο. Αλλά, στην πραγματικότητα, το πρόγραμμα αντιλαμβάνεται και τους 3 "διακόπτες" ως ένα αντικείμενο. Και η επιλογή ενός από αυτά αλλάζει την κατάσταση αυτού του αντικειμένου. Ας δούμε ένα παράδειγμα.

1. Δημιουργήστε τρία κουμπιά επιλογής στη φόρμα. Για ευκολία, δεν θα αλλάξουμε τα ονόματα.
2. Επισημάνετε τον διακόπτη1. Στις ιδιότητές του, στην ενότητα "BASIC", επιλέξτε το πλαίσιο πρώτο στην ομάδα. "ΤΥΠΟΣ ΑΞΙΑΣ" επιλέξτε έναν αριθμό. (Στη συνέχεια θα δούμε γιατί ακριβώς ο αριθμός). Το μήκος μπορεί να οριστεί σε ένα, αλλά αυτό δεν παρέχει καμία ειδική λειτουργικότητα.
3. Επιλέξτε «Διακόπτης2» στη στήλη «ΕΠΙΛΕΓΜΕΝΗ ΤΙΜΗ» και βάλτε 1.
4. Επιλέξτε «Switch3» στη στήλη «ΕΠΙΛΕΓΜΕΝΗ ΤΙΜΗ» και βάλτε 2.
Ουσιαστικά, με τις ενέργειες 3 και 4, ορίζετε μια σημαία που θα αλλάξει όταν επιλέξετε το αντίστοιχο “Switch”. Στο "Switch1" η προεπιλεγμένη "ΕΠΙΛΕΓΜΕΝΗ ΤΙΜΗ" είναι μηδέν.
5. Ελέγξτε εάν οι διακόπτες βρίσκονται στη σειρά "WALKING ORDER". (για παράδειγμα: 13,14,15)(Εικ. 1). απαιτείται συνεχής σειρά διέλευσης με διακόπτη. Η εντολή αυτόματης παράκαμψης είναι ενεργοποιημένη (οι θέσεις αριθμούνται 13, 15, 20) (Εικ. 2) σε αυτήν την περίπτωση, οι διακόπτες ο ένας κάτω από τον άλλο δεν θα λειτουργήσουν Θα πρέπει να αφαιρέσετε τη χρήση της αυτόματης παραγγελίας από τη φόρμα και, εάν απαραίτητο, καθορίστε χειροκίνητα την παραγγελία.

Πώς να ορίσετε τη σειρά διέλευσης για λεπτομέρειες.Ενώ βρίσκεστε στη φόρμα, στο μενού "Διάλογος", πρέπει να καταργήσετε την επιλογή του πλαισίου ελέγχου "Αυτόματη παραγγελία διέλευσης". Μετά από αυτό, μπορείτε είτε να χρησιμοποιήσετε το "Διάλογος" -> "Ρύθμιση της σειράς διέλευσης" ή το "Διάλογος" -> "Ταξιδιωτική παραγγελία". Η δεύτερη μέθοδος μου φαίνεται ότι είναι η πιο βολική. Με αυτήν τη μέθοδο, εμφανίζεται μια εικόνα με τον αριθμό στηρίγματος για κάθε στηρίγμα. Το μόνο που έχετε να κάνετε είναι να κάνετε κλικ στους αριθμούς, επιλέγοντας τα στοιχεία με τη σειρά που χρειάζεστε.

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

6. Επιλέξτε “Switch1” και γράψτε τη διαδικασία που χρειαζόμαστε για αυτό.
Για παράδειγμα:

EF=FormElements; Αν Switch1=0 Τότε EF.Payment Status.Value = "Μη πληρωμένη"; ΔιαφορετικάΕάν Switch1=1 Τότε EF.Payment Status.Value = "Μερικώς πληρωμένη"; ΔιαφορετικάIf Switch1=2 Τότε EF.Payment Status.Value = "Paid"; τέλος εαν;

7. Πατήστε F7. Πατήστε F5. Ας δούμε ότι όλα λειτουργούν, είμαστε υπέροχοι. Και το μεγάλο BOSS μας δίνει ένα μπόνους.

ΕΞΗΓΗΣΗ ΓΙΑ ΤΟΝ ΚΩΔ

Γιατί υπάρχει το "Switch1" παντού; Δεδομένου ότι έχει ήδη ειπωθεί, το πρόγραμμα αντιλαμβάνεται και τα τρία στοιχεία ως ένα, και εφόσον το "Switch1" είναι το πρώτο στην ομάδα, τότε το πρόγραμμα το αντιλαμβάνεται ως ολόκληρο το στοιχείο εάν κάνετε το "Switch2" το κύριο στοιχείο της ομάδας , τότε ο έλεγχος ορθότητας θα πρέπει να πραγματοποιηθεί σύμφωνα με το "Switch2".
Λοιπόν, από πού προέρχεται το «0», «1», «2»; Ορίζουμε εκείνες τις τιμές που λαμβάνει το αντικείμενο κατά την εναλλαγή των "Διακόπτες" στις παραγράφους 3 και 4.

ΜΕΤΑΛΟΓΟ:

Αυτός ο κωδικός δίνεται ως παράδειγμα εργασίας με διακόπτες. Κατά τη γνώμη μου, αυτό είναι πιο ξεκάθαρο και κατανοητό. Αξίζει όμως να αναφέρουμε ότι στο "Value Type" μπορείτε να επιλέξετε αμέσως αυτό που χρειάζεστε - μια προκαθορισμένη τιμή από έναν κατάλογο, μια απαρίθμηση, για παράδειγμα, ή μια τιμή συμβολοσειράς. Δηλαδή, στο παραπάνω παράδειγμα, ήταν δυνατή η άμεση αντιστοίχιση των διακοπτών ως τιμές όχι 0,1,2, αλλά αμέσως "Μη πληρωμένη", "Μερική πληρωμή", "Πληρωμή". Και τότε ο κωδικός θα μειωθεί σε μία γραμμή:

Στοιχεία φόρμας.Κατάσταση πληρωμής.Αξία = Διακόπτης1;

Το αποτέλεσμα θα είναι το ίδιο.

//////////////////////////////////////////////////////////////////////////////////////////

Οι διακόπτες σε ελεγχόμενες μορφές (UF) έχουν γίνει πιο έξυπνοι.

Κατά τη δημιουργία ενός διακόπτη, πρέπει να θυμάστε το duo Attributes, Form Element.
Πρώτα απ 'όλα, πρέπει να δημιουργήσετε χαρακτηριστικά φόρμας. Ορίζετε τον τύπο του χαρακτηριστικού σε ποιες τιμές θα δέχεται ο διακόπτης σας. Διάλεξα τον τύπο String. Εδώ έχετε δύο επιλογές: εάν δημιουργήσατε ένα χαρακτηριστικό Object, τότε η τιμή που αποδέχεται ο διακόπτης σας θα αποθηκευτεί στη βάση δεδομένων, εάν απλώς προσθέσετε στη λίστα των λεπτομερειών της φόρμας, τότε το αποτέλεσμα που έγινε αποδεκτό από τον διακόπτη σας δεν θα αποθηκευτεί.

Στη συνέχεια, σύρετε και αποθέστε τα Χαρακτηριστικά που χρειαζόμαστε στα στοιχεία φόρμας. Κατά τη δημιουργία ενός στοιχείου φόρμας, το στοιχείο στις ιδιότητες "Προβολή" θα έχει τον τύπο "Πεδίο εισαγωγής". Επιλέξτε "Διακόπτης πεδίου" από τη λίστα. Ως αποτέλεσμα, θα λάβετε μια φόρμα κάπως έτσι:


Συμπληρώνουμε τον τίτλο του στοιχείου φόρμας, χρώμα, γραμματοσειρά, τοποθεσία και άλλες ομορφιές σύμφωνα με το γούστο σας.
Υπάρχει ένα στοιχείο στις ιδιότητες του στοιχείου φόρμας. "Λίστα Επιλογών" - σε αυτήν εισάγετε τις Τιμές που θα λάβει ο διακόπτης σας όταν επιλέγετε ένα ή άλλο στοιχείο. Στο παράδειγμά μου, πρόσθεσα γραμμές με τις τιμές "Record", "Cancel Post", "Post".

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

Ανάλογα με το αν ο διακόπτης σας είναι χαρακτηριστικό Object ή Form, χρησιμοποιείτε τον ακόλουθο κώδικα για να λάβετε την τιμή που είναι αποθηκευμένη σε αυτόν:

SwitchFormElementFormElement // πρόσβαση απευθείας εάν αυτό είναι χαρακτηριστικό της φόρμας Object.SwitchInsideDB // πρόσβαση μέσω του στοιχείου Object. στα στοιχεία σας.