Τι να κάνετε εάν "η χρήση των modal windows σε αυτήν τη λειτουργία απαγορεύεται." Γιατί εμφανίζεται το σφάλμα "Η χρήση των modal windows σε αυτήν τη λειτουργία απαγορεύεται"; Επιτρέψτε τη χρήση των modal windows σε 1s

Υλοποιήθηκε στην έκδοση 8.3.3.641.

1C: Enterprise χρησιμοποιεί modal παράθυρα σε καταστάσεις όπου ο χρήστης απαιτείται να εισαγάγει πληροφορίες, χωρίς τις οποίες η περαιτέρω εκτέλεση του αλγορίθμου είναι αδύνατη. Σε αυτήν την περίπτωση, η υπόλοιπη διεπαφή προγράμματος είναι εντελώς αποκλεισμένη και η εκτέλεση του κώδικα προγράμματος σταματά μέχρι ο χρήστης να κλείσει το παράθυρο τρόπου λειτουργίας.

Με την έλευση του προγράμματος-πελάτη ιστού και τη μετάβαση του 1C: Enterprise σε πλατφόρμες κινητής τηλεφωνίας, τα modal windows αποδείχτηκαν πηγή μεγάλου αριθμού ταλαιπωριών και προβλημάτων, συχνά άλυτα.

Κατά κανόνα, τα προγράμματα περιήγησης "επιτραπέζιου υπολογιστή" είναι καλύτερα ή χειρότερα, αλλά υποστηρίζουν τρόπους λειτουργίας και ανοίγουν σε ένα νέο παράθυρο προγράμματος περιήγησης ως "αναδυόμενο παράθυρο":

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

Ένα άλλο ζήτημα είναι ότι τα προγράμματα περιήγησης για κινητά δεν υποστηρίζουν καθόλου modals. Και για να μπορέσει το 1C:Enterprise να λειτουργήσει σε αυτά, εφαρμόστηκε ένας ειδικός μηχανισμός στο πρόγραμμα-πελάτη ιστού. Αυτός είναι ένας αρκετά περίπλοκος μηχανισμός και, δυστυχώς, δεν καλύπτει όλες τις απαραίτητες καταστάσεις. Ως αποτέλεσμα, οι διαμορφώσεις στο iPad, για παράδειγμα, είναι πολύ δύσκολο να εργαστούν.

Σε μια τέτοια περίπτωση, η παραλλαγή της διεπαφής 1C:Enterprise χωρίς τη χρήση modal windows καταργεί όλα τα προβλήματα που αναφέρονται παραπάνω.

Αυτό δεν εγκαταλείπει τη λειτουργικότητα που παρείχαν προηγουμένως τα modal windows. Αλλά αυτή η λειτουργικότητα υλοποιείται από άλλες τεχνολογίες που δεν εμποδίζουν το 1C:Enterprise να λειτουργεί σε προγράμματα περιήγησης.

Στη νέα λειτουργία της διεπαφής, ένα παράθυρο που θα ήταν προηγουμένως modal σχεδιάζεται μέσα στο γονικό παράθυρο και αποκλείει την υπόλοιπη διεπαφή προγράμματος-πελάτη Ιστού με τον ίδιο τρόπο:

Σαν άποτέλεσμα:

  • Δεν υπάρχει άνοιγμα νέων παραθύρων του προγράμματος περιήγησης, γεγονός που βελτιώνει την απόδοση και τη σταθερότητα του προγράμματος-πελάτη Ιστού.
  • Σε πολλές περιπτώσεις, οι πρόσθετες ρυθμίσεις του προγράμματος περιήγησης καθίστανται περιττές, καθώς το 1C:Enterprise δεν χρησιμοποιεί πλέον αναδυόμενα παράθυρα.
  • οποιαδήποτε διαμόρφωση που χρησιμοποιεί το πρόγραμμα-πελάτη Ιστού μπορεί να λειτουργήσει σε iPad και άλλες κινητές συσκευές.

Φυσικά, θαύματα δεν γίνονται και ο νέος τρόπος λειτουργίας δεν μπορεί να ενεργοποιηθεί «κουνώντας ένα μαγικό ραβδί». Απαιτείται αλλαγή στη λογική της εργασίας με νέα, μπλοκαρισμένα παράθυρα. Τα καλά νέα όμως είναι ότι αυτές οι αλλαγές δεν είναι δύσκολες και είναι δυνατό να ελέγχονται όλα τα «ύποπτα» σημεία του προγράμματος. Η πλατφόρμα εφαρμόζει έναν ειδικό μηχανισμό που σας επιτρέπει να ελέγχετε στο στάδιο της ανάπτυξης ότι ολόκληρη η διαμόρφωση χρησιμοποιεί νέους μηχανισμούς και θα λειτουργεί χωρίς παράθυρα modal.

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

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

Η ουσία αυτών των αλλαγών φαίνεται πιο εύκολα με ένα παράδειγμα. Η παλιά διαδικασία που άνοιξε ένα παράθυρο και επεξεργαζόταν τα δεδομένα που έλαβε θα μπορούσε να μοιάζει με αυτό:

Στη νέα έκδοση για τη φόρμα FormInputText (το οποίο θα ανοίξει σε ένα παράθυρο αποκλεισμού) πρέπει να ορίσετε την ιδιότητα Λειτουργία ανοίγματος παραθύρου σε νόημα BlockAllInterface . Αυτό θα παρέχει τη δυνατότητα στον χρήστη:

Και ο κώδικας προγράμματος, αντί για μία διαδικασία, όπως πριν, θα περιέχει ήδη δύο διαδικασίες:

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

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

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

Η χρήση τέτοιων μεθόδων σε modeless mode είναι ακόμα πιο εύκολη. Για όλες αυτές τις μεθόδους, η πλατφόρμα έχει διπλότυπες μεθόδους, όταν καλείται, πρέπει επίσης να καθορίσετε τη θέση της διαδικασίας που θα εκτελεστεί αφού ο χρήστης κλείσει το παράθυρο.

Για παράδειγμα, το παρακάτω δείχνει τη χρήση της παλιάς μεθόδου EnterValue() και η νέα του μέθοδος stand-in ShowInputValues() :

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

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

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

Εάν κατά τη διαδικασία των μαθημάτων έχετε ένα τέτοιο σφάλμα, είναι πολύ εύκολο να το διορθώσετε.

Επιστρέψτε στο πρόγραμμα διαμόρφωσης και επιλέξτε το στοιχείο μενού "Configuration" -> "Open configuration":

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

Θα ανοίξει ένα παράθυρο με ιδιότητες διαμόρφωσης (στα δεξιά):

Κάντε κύλιση στο κάτω μέρος και βρείτε το στοιχείο "Modality use mode" εκεί:

Ορίστε την τιμή του σε "Χρήση":

Προσοχή!Λάβετε υπόψη ότι εάν χρησιμοποιείτε μια πλατφόρμα 1C διαφορετική από αυτή που κατεβάσαμε στο πρώτο μάθημα (μεταγενέστερη έκδοση), τότε θα έχετε επίσης το πεδίο "Λειτουργία χρήσης σύγχρονων κλήσεων ...". Πρέπει επίσης να ρυθμιστεί σε "Χρήση".

Τέλος, επιλέξτε το στοιχείο μενού "Configuration" -> "Save configuration":

Ετοιμος! Τώρα το σφάλμα δεν θα εμφανίζεται πλέον.

Επεξηγήσεις παρακάτω - για όσους ενδιαφέρονται για αυτό που κάναμε.

Έχουμε ενεργοποιήσει τη λειτουργία modality στη διαμόρφωσή μας. Από προεπιλογή, αυτή η λειτουργία είναι απενεργοποιημένη και δεν μας επιτρέπει να χρησιμοποιούμε εντολές όπως EnterNumber, EnterString, EnterDate, OpenValue.

Το γεγονός είναι ότι αυτές οι εντολές είναι modal. Η κλήση τους οδηγεί στο γεγονός ότι εμφανίζεται ένα παράθυρο μπροστά στον χρήστη (για παράδειγμα, για την εισαγωγή πληροφοριών), το οποίο αποκλείει τη δυνατότητα εργασίας με το πρόγραμμα μέχρι να κλείσει το παράθυρο.

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

Μπορούμε να το συμπεριλάβουμε με ασφάλεια, καθώς γράφουμε παραδείγματα εκπαίδευσης που δεν έχουν σχεδιαστεί για να λειτουργούν στο Διαδίκτυο.

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

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

Οι διάλογοι συνήθως δεν προκαλούν προβλήματα στη λειτουργία εκκίνησης με λεπτό και παχύ πρόγραμμα-πελάτη, αλλά μπορεί να προκύψουν προβλήματα κατά την εργασία με το πρόγραμμα-πελάτη Ιστού. Αυτό οφείλεται στο γεγονός ότι τα ίδια στοιχεία συστήματος στο Διαδίκτυο χρησιμοποιούνται ως διαφημιστικά μέσα και οι χρήστες συχνά απενεργοποιούν την προβολή τους στις ρυθμίσεις του προγράμματος περιήγησης. Αντίστοιχα, η εργασία τους μπλοκάρεται επίσης σε ένα πρόγραμμα που εκτελείται μέσω ενός προγράμματος περιήγησης ιστού. Επομένως, όταν εργάζεστε με το 1C μέσω ενός προγράμματος-πελάτη ιστού ή σε μια πλατφόρμα για κινητά, δεν πρέπει να ξεχάσετε να εκτελέσετε πρόσθετες ρυθμίσεις προγράμματος περιήγησης και να θυμάστε ότι το πρόγραμμα περιήγησης για κινητά δεν υποστηρίζει καθόλου αναδυόμενα μηνύματα.

Πώς να διορθώσετε ένα σφάλμα στο 1C: "Η χρήση των modal windows σε αυτήν τη λειτουργία απαγορεύεται"

Ένα τέτοιο σφάλμα άρχισε να εμφανίζεται μετά τη μετάβαση του 1C στη νέα διεπαφή της πλατφόρμας 1C 8.3 - Taxi. Αυτό οφείλεται στο γεγονός ότι οι προγραμματιστές περιέλαβαν την εργασία με Windows, αλλά χωρίς τη λειτουργία modality.

Εικ.1

Ας ανοίξουμε τη βάση πληροφοριών στη λειτουργία "Configurator" και ας δούμε τις ιδιότητες της διαμόρφωσης μας κάνοντας δεξί κλικ και επιλέγοντας την εντολή "Properties". Κάνοντας κύλιση προς τα κάτω στην παρακάτω γραμμή, βλέπουμε την ενότητα "Συμβατότητα", όπου βρίσκεται η παράμετρος λειτουργίας που μας ενδιαφέρει και παρατίθενται οι επιλογές - "Χρήση / Χρήση με προειδοποίηση / Μη χρήση".



Εικ.2

Μετά από αυτό, πρέπει να αποθηκεύσετε και να ενημερώσετε τις αλλαγές στη διαμόρφωση. Το σφάλμα για το οποίο μιλάμε εμφανίζεται όταν υπάρχει ένα πλαίσιο ελέγχου για τη μη χρήση της λειτουργίας modality. Αυτή η δυνατότητα είναι διαθέσιμη από την πλατφόρμα 8.3.3.721, που κυκλοφόρησε τον Σεπτέμβριο του 2013. Δηλαδή, οι χρήστες που εργάζονται σε παλαιότερες εκδόσεις της πλατφόρμας δεν χρειάζεται να εξαιρεθούν από τη λειτουργία. Σε άλλες εκδόσεις, για να μην εμφανίζεται το παράθυρο σφάλματος, μπορείτε απλώς να το ρυθμίσετε σε "Χρήση".

Στο παράδειγμά μας, έχει οριστεί η επιλογή προειδοποίησης. Φυσικά, στο μέλλον, οι προγραμματιστές θα οριστικοποιήσουν τη διαμόρφωση ώστε να χρησιμοποιούν άλλες λειτουργίες παρακάμπτοντας τα modal windows. Αλλά σήμερα, η λειτουργία από το παράδειγμά μας χρησιμοποιείται απλώς από τον προγραμματιστή κατά τη μετάβαση, όταν δεν έχει γίνει ακόμη όλη η διαμόρφωση στη λειτουργία χωρίς λειτουργία. Ως εκ τούτου, το πρόγραμμα θα εκδώσει επίσης μηνύματα σχετικά με την απαγόρευση παραθύρων με τροπικά χαρακτηριστικά.



Εικ.3

Οι εφαρμογές που χρησιμοποιούνται μέσω του προγράμματος-πελάτη ιστού, στο iPad, στο cloud, για παράδειγμα, στο "1cfresh.com", δεν χρησιμοποιούν αυτήν τη λειτουργία. Όλες οι νέες διαμορφώσεις χρησιμοποιούν τον τρόπο λειτουργίας της διεπαφής.

Απόρριψη της τροπικότητας

Οι προγραμματιστές του προγράμματος 1C, υποστηρίζοντας τις παγκόσμιες τάσεις, προσπαθούν να φέρουν τη διεπαφή προγράμματος πιο κοντά σε δείγματα ιστού και να την φέρουν σε ένα ενιαίο πρότυπο, δίνοντας έτσι στους χρήστες την ευκαιρία να εργαστούν στο ίδιο παράθυρο με το συνηθισμένο "έξω".

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

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

Στην έκδοση 8.3 της πλατφόρμας 1C, εμφανίστηκε ένας νέος τρόπος λειτουργίας του προγράμματος - χωρίς τη χρήση τροπικότητας. Πιο συγκεκριμένα, εμφανίστηκαν 2 νέες λειτουργίες: χωρίς χρήση modality και χρήση modality, αλλά με προειδοποίηση. Και ο παλιός τρόπος λειτουργίας υποδεικνύεται ότι χρησιμοποιεί τον τρόπο λειτουργίας.

Τι σημαίνουν όλα αυτά;Στις πρώτες εκδόσεις της πλατφόρμας, χρησιμοποιούσαμε διάφορα modal παράθυρα και δεν το σκεφτόμασταν πραγματικά. Για παράδειγμα, πρέπει να εμφανίσετε μια προειδοποίηση στον χρήστη ή πρέπει να κάνετε μια ερώτηση ή να εισαγάγετε κάποια τιμή ή να επιλέξετε ένα αρχείο. Όλα αυτά είναι modal windows.

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

&AtClient

StandardProcessing = False;




If Dialog.Edit() Στη συνέχεια //Καλέστε τη φόρμα modal. Η εκτέλεση του κώδικα θα συνεχιστεί μόνο μετά το κλείσιμο της φόρμας.
Elements.Services.CurrentData.StartDate = Dialog.Period.StartDate;
Elements.Services.CurrentData.EndDate = Dialog.Period.EndDate;
Τέλος εαν;

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


Όπως μπορούμε να δούμε, μια διαδικασία είναι αρκετή για την επεξεργασία της κλήσης του παραθύρου επιλογής περιόδου.

Γιατί τα modals είναι κακά;Τώρα ας καταλάβουμε γιατί η 1C αποφάσισε να σταματήσει να χρησιμοποιεί modal windows. Λοιπόν, πρώτα απ 'όλα, αυτό είναι συνέπεια του γεγονότος ότι η πλατφόρμα 1C μπορεί να χρησιμοποιηθεί όχι μόνο στη συνηθισμένη της μορφή - ως εφαρμογή επιτραπέζιου υπολογιστή, αλλά μπορεί επίσης να εκκινηθεί σε πρόγραμμα περιήγησης και μπορεί να εκκινηθεί ως εφαρμογή για κινητά.

Το πρόβλημα είναι με τα προγράμματα περιήγησης. Ο τρόπος λειτουργίας των παραθύρων σε αυτά υλοποιείται χρησιμοποιώντας αναδυόμενα μεμονωμένα παράθυρα προγράμματος περιήγησης. Υποστηρίζονται σχεδόν από όλα τα προγράμματα περιήγησης, αλλά λόγω της συχνής χρήσης τέτοιων παραθύρων για διαφήμιση, σχεδόν όλοι οι προγραμματιστές του προγράμματος περιήγησης παλεύουν μαζί τους και απενεργοποιούν τη δυνατότητα χρήσης τέτοιων παραθύρων από προεπιλογή. Ως αποτέλεσμα, για να διασφαλίσετε ότι ο χρήστης 1s μπορεί να εργαστεί στο πρόγραμμα περιήγησης, πρέπει να τον αναγκάσετε να επιτρέψει αυτά τα παράθυρα, να αφιερώσει σε όλες τις περιπλοκές του 1s και τα προγράμματα περιήγησης και γενικά να υπερφορτώσει με περιττές πληροφορίες.

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

Και τέλος, η εφαρμογή για κινητά 1C δεν είναι επίσης αρκετά φιλική με τα modal windows.

Εξ ου και το συμπέρασμα:μην χρησιμοποιείτε modal windows. Και τι να χρησιμοποιήσετε αντί για αυτά; Αντίθετα, πρέπει να χρησιμοποιήσετε τα ίδια παράθυρα, αλλά χωρίς τη λειτουργία modality. Στη νέα πλατφόρμα, η 1C ανέπτυξε επίσης μια τέτοια λειτουργία για κάθε παράθυρο. Υλοποιείται ως ξεχωριστή μέθοδος για κάθε διάλογο. Αυτή η λειτουργία σάς επιτρέπει να καλέσετε το παράθυρο, αλλά όχι να σταματήσετε την εκτέλεση του κώδικα προγράμματος. Τεχνικά, στα προγράμματα περιήγησης, αυτό υλοποιείται ως ψευδοπαράθυρο που εμφανίζεται μέσα στο γονικό παράθυρο, αλλά το επικαλύπτει. Το γεγονός ότι ο κώδικας συνεχίζει να εκτελείται μετά το άνοιγμα του παραθύρου σημαίνει ότι δεν θα μπορείτε να λάβετε τις τιμές που έχουν επιλεγεί σε αυτόν αμέσως μετά τον κωδικό κλήσης παραθύρου. Δεν έχουν επιλεγεί ακόμα. Επομένως, η λήψη και η επεξεργασία αυτών των τιμών πραγματοποιείται σε ξεχωριστή διαδικασία, η οποία καλείται όταν ένα τέτοιο παράθυρο είναι κλειστό και αυτή η διαδικασία καθορίζεται κατά την κλήση της μεθόδου ανοίγματος παραθύρου. Ας δούμε το παράδειγμα του παραθύρου επιλογής της ίδιας περιόδου.

&AtClient
Διαδικασία υπηρεσίαςStartDateSelectionStart(Item, ChoiceData, StandardProcessing)

StandardProcessing = False;

Dialog = New DialogEditStandardPeriod();
StandardPeriod = New StandardPeriod();

StartDate = Items.Services.CurrentData.StartDate;
EndDate = Items.Services.CurrentData.EndDate;

StandardPeriod.StartDate = Ημερομηνία έναρξης;
StandardPeriod.EndDate = Ημερομηνία λήξης;
Dialog.Period = StandardPeriod;

AlertDescription = New AlertDescription("ProcessingPeriodSelect",ThisForm);

Dialog.Show(DescriptionAlerts)

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

&AtClient
Διαδικασία ΕπεξεργασίαΠερίοδοςΕπιλογή(Περίοδος,Παράμετροι) Εξαγωγή

Αν Περίοδος<>Απροσδιόριστο Τότε

Items.Services.CurrentData.StartDate = Period.StartDate;
Items.Services.CurrentData.EndDate = Period.EndDate;

Τέλος εαν;

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


Όπως μπορούμε να δούμε, η Show() καλείται αντί της Edit(). Και χειρισμός ενός συμβάντος επιλογής ήδη σε άλλη διαδικασία.

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

Λοιπόν, εγκαταλείπουμε τον τρόπο λειτουργίας και κυριαρχούμε στις νέες τεχνολογίες για την εργασία 1C σε προγράμματα περιήγησης και φορητούς υπολογιστές.

15
Οι ακόλουθοι διακόπτες χρησιμοποιούνται για την επιβολή της έναρξης μιας επιχείρησης σε μια κανονική ή διαχειριζόμενη εφαρμογή: /RunModeOrdinaryApplication ξεκινά έναν παχύ πρόγραμμα-πελάτη σε κανονική λειτουργία, ανεξάρτητα από τις ρυθμίσεις διαμόρφωσης και τον χρήστη για λογαριασμό του οποίου 3
Είναι απαραίτητο οι χρήστες να μην μπορούν να αλλάξουν τη διεπαφή που έχει ρυθμιστεί για αυτούς! Λύση: Για να το απενεργοποιήσετε, πρέπει να καταργήσετε το "Αποθήκευση δεδομένων χρήστη" απευθείας από το στοιχείο διαμόρφωσης ρίζας στα δικαιώματα πρόσβασης. Οι ρυθμίσεις του πίνακα και το στοιχείο μενού θα απενεργοποιηθούν. 2
Στην τρέχουσα εργασία, ο χρήστης συνήθως ανοίγει πολλά αντικείμενα. Μπορεί να είναι έγγραφο, βιβλίο αναφοράς, έκθεση κ.λπ. Στην προηγούμενη διεπαφή, δεν υπήρχαν προβλήματα με τη γρήγορη εύρεση ενός ανοιχτού αντικειμένου και την ενημέρωση του για περαιτέρω εργασία χρησιμοποιώντας παράθυρα ή 2
Στο τελευταίο άρθρο: Εγκατάσταση του ταξινομητή διευθύνσεων (KLADR) σε 1C, σας είπα τι είναι το Kladr και πώς να το φορτώσετε στο 1C με κανονικές φόρμες (8.0-8.2). Σε αυτό το άρθρο, θα εξηγήσω πώς να φορτώσετε τον ταξινομητή διευθύνσεων (KLADR) στη διαχειριζόμενη διεπαφή και 2
Συχνά, όταν αναπτύσσουν μια συγκεκριμένη διαμόρφωση, οι χρήστες θέλουν να επισυνάψουν φωτογραφίες σε ένα στοιχείο του καταλόγου και να τις αποθηκεύσουν στη βάση δεδομένων. Σε αυτό το άρθρο θα σας πω πώς να συνδέσετε μια αποθήκευση φωτογραφιών με τη μορφή βιβλίου αναφοράς στο βιβλίο αναφοράς των αντικειμένων κατασκευής.

Συνεχίζοντας το θέμα:
Windows

Σήμερα θα μάθουμε πού να βρείτε ένα άψογο ρουμπίνι στο skyrim και σε τι χρησιμεύει καθόλου. Η καλύτερη επιλογή είναι να κάνετε την αποστολή που ονομάζεται "The Only Cure" (The Only...

Νέα άρθρα
/
Δημοφιλής