Πώς να συμπληρώσετε και να ανοίξετε μέσω προγραμματισμού μια νέα φόρμα εγγράφου; Πώς να ανοίξετε μια φόρμα ενός υπάρχοντος αντικειμένου; Ανοίξτε μέσω προγραμματισμού τη φόρμα ενός νέου εγγράφου 1s 8.3
Το άνοιγμα φορμών μέσω προγραμματισμού σε μια διαχειριζόμενη εφαρμογή 1C διαφέρει σημαντικά από το άνοιγμα τους σε μια κανονική εφαρμογή. Ας δούμε πρώτα την παλιά μέθοδο. Αποτελείται από τη λήψη μιας φόρμας και στη συνέχεια το άνοιγμα της σε κανονική ή τροπική λειτουργία (όταν ανοίγει σε τρόπο λειτουργίας, η φόρμα μπλοκάρει το πρόγραμμα).
GetForm() . Ανοιξε()
Αυτή είναι η πιο αργή μέθοδος ανοίγματος φορμών. Ωστόσο, σας επιτρέπει να επεξεργαστείτε μέσω προγραμματισμού τη φόρμα πριν την ανοίξετε. Για να επεξεργαστείτε τον κωδικό πρέπει να αλλάξετε λίγο:
Φόρμα = GetForm( "Έγγραφο. Παραλαβή Αγαθών και Υπηρεσιών. Έντυπο παραστατικού")
;
//Εδώ εκτελούμε ενέργειες με τη φόρμα
Μορφή. Ανοιξε();
Θα πρέπει να ληφθεί υπόψη ότι όταν ληφθεί η φόρμα, θα εκτελεστεί άλλη διαδικασία συμβάντος WhenCreatedOnServer.
Ας δούμε άλλες μεθόδους που σας επιτρέπουν να ανοίγετε φόρμες σε μια διαχειριζόμενη εφαρμογή 1C πιο γρήγορα και πιο άνετα. Ανάλογα με τη συγκεκριμένη κατάσταση, μπορούν να χρησιμοποιηθούν διαφορετικές μέθοδοι.
1. Πώς να ανοίξετε μια φόρμα αντικειμένου σε μια διαχειριζόμενη εφαρμογή εάν υπάρχει σύνδεσμος προς αυτήν.
Σε αυτή την περίπτωση, όλα είναι εξαιρετικά απλά.
RefLink = Κατάλογοι. Ονοματολογία. FindByCode("000000001" );
OpenValue(RefLink) ;
2. Πώς να ανοίξετε τη φόρμα επιλογής και στη συνέχεια να λάβετε την επιλεγμένη τιμή.
Υπάρχει μια λειτουργία για αυτό EnterValue().Η συνάρτηση έχει 3 παραμέτρους:
- Η μεταβλητή στην οποία θα γραφτεί η επιλεγμένη τιμή.
- Μια υπόδειξη που θα εμφανιστεί στο παράθυρο επιλογής.
- Περιγραφή των τύπων επιλεγμένων τιμών. Μπορεί να υπάρχουν διάφοροι τύποι, οπότε θα σας ζητηθεί να επιλέξετε έναν τύπο πριν επιλέξετε μια συγκεκριμένη τιμή.
Ως αποτέλεσμα της εκτέλεσης της συνάρτησης, θα ανοίξει η προεπιλεγμένη φόρμα επιλογής για ένα αντικείμενο του καθορισμένου τύπου.
Μεταβλητή τιμή;
Array= νέος πίνακας;
Πίνακας. Προσθήκη(Τύπος( "DirectoryLink.Nomenclature")
)
;
Πίνακας. Προσθήκη(Τύπος( "DirectoryLink. Αντισυμβαλλόμενοι")
)
;
TypeDescription= new TypeDescription(Array) ;
Res = EnterValue(Value, "Hint" , TypeDescription) ;
Οι προηγούμενες μέθοδοι σάς επέτρεπαν μόνο να ανοίξετε τις προεπιλεγμένες φόρμες για αντικείμενα (φόρμα αντικειμένου ή φόρμα επιλογής). Εάν πρέπει να ανοίξετε μια προσαρμοσμένη φόρμα, μπορείτε να χρησιμοποιήσετε τη συνάρτηση OpenForm().
Αυτή η συνάρτηση έχει αρκετές παραμέτρους. Ας δούμε μερικά από αυτά:
- Όνομα φόρμας— εδώ μπορείτε να επιλέξετε ένα από τα τυπικά σχήματα αντικειμένων, για παράδειγμα, Φόρμα Επιλογήςή Φόρμα λίστας. Ή μια συγκεκριμένη φόρμα που δημιουργήθηκε από τους προγραμματιστές.
- Επιλογές— σας επιτρέπει να το μεταφέρετε στη φόρμα της φόρμας δομέςορισμένες παραμέτρους πριν το ανοίξετε, προσδιορίζοντας έτσι τα δεδομένα εξόδου. Παράμετροι μπορεί να είναι οποιαδήποτε δεδομένα που μπορούν να περάσουν από τον πελάτη στον διακομιστή. Οι παράμετροι που μεταβιβάστηκαν κατά το άνοιγμα της φόρμας μπορούν να υποβληθούν σε επεξεργασία στη διαδικασία WhenCreatingOnServer()στη φόρμα που ανοίγει.
- Λειτουργία ανοίγματος φόρμας— έχει 3 επιλογές: ανεξάρτητη, αποκλεισμός ολόκληρης της διεπαφής, αποκλεισμός της φόρμας κατόχου.
Ας δούμε πώς χρησιμοποιείται η συνάρτηση OpenForm()σε διάφορες καταστάσεις.
3. Πώς να ανοίξετε τη φόρμα ενός υπάρχοντος αντικειμένου
Κάθε φόρμα έχει ένα βασικό χαρακτηριστικό. Επισημαίνεται με έντονη γραφή στη λίστα των λεπτομερειών της φόρμας και συνήθως ονομάζεται Ενα αντικείμενομε τη μορφή στοιχείων βιβλίων αναφοράς και εγγράφων. Άλλα αντικείμενα μπορεί να έχουν διαφορετικό όνομα. Για να ανοίξετε μια φόρμα ενός υπάρχοντος αντικειμένου, πρέπει να περάσετε μια παράμετρο στη φόρμα που ανοίγει Κλειδίμε την τιμή ως αναφορά σε ένα αντικείμενο.
&OnClient
Διαδικασία Εντολή 1 (Εντολή)
Παράμετρος= νέα δομή;
Παράμετρος. Insert("Key" , FindC() );
OpenForm(, Παράμετρος) ;
Τέλος Διαδικασίας
&Στον διακομιστή
Συνάρτηση FindC();
Κατάλογοι επιστροφής. αντισυμβαλλόμενοι. FindByRequisites ("TIN", "745107734623")
EndFunction
4. Πώς να ανοίξετε μια νέα φόρμα αντικειμένου
Μια απλή λειτουργία θα κάνει εδώ OpenForm()χωρίς καμία παράμετρο.
&OnClient
Διαδικασία Εντολή 1 (Εντολή)
OpenForm( "Κατάλογος. Αντισυμβαλλόμενοι. Φόρμα αντικειμένου")
;
Τέλος Διαδικασίας
5. Πώς να ανοίξετε μια νέα φόρμα αντικειμένου και να τη συμπληρώσετε με βάση κάτι
Πρέπει να περάσετε μια παράμετρο Βάση, η τιμή του οποίου θα είναι μια αναφορά στο αντικείμενο βάσης πλήρωσης. Αυτό θα ξεκινήσει τη διαδικασία ProcessFill().
&OnClient
Διαδικασία Εντολή 1 (Εντολή)
Παράμετρος= νέα δομή;
Παράμετρος. Insert("Base", LinkToBuyerAccount) ;
OpenForm( "Έγγραφο. Πωλήσεις αγαθών και υπηρεσιών. Έντυπο αντικειμένου", Παράμετρος) ;
Τέλος Διαδικασίας
Αυτό το παράδειγμα θα δημιουργήσει ένα έγγραφο Πωλήσεις αγαθών και υπηρεσιώνκαι συμπληρώθηκε βάσει τιμολογίου πληρωμής στον αγοραστή, ο σύνδεσμος στον οποίο διαβιβάστηκε.
6. Πώς να ανοίξετε μια φόρμα και να ορίσετε μια επιλογή σε αυτήν
Η επιλογή σε φόρμες 1C μπορεί να είναι απλή ή σύνθετη. Η απλή επιλογή περιλαμβάνει εκφράσεις όπως Οργανισμός = Horns and Hooves LLC.Η σύνθετη επιλογή περιλαμβάνει άλλους τύπους σύγκρισης, π.χ. Στη λίστα. Σε αυτό το άρθρο θα εξετάσουμε την οργάνωση της απλής επιλογής και ένα ξεχωριστό άρθρο θα αφιερωθεί στη σύνθετη επιλογή.
Για να οργανώσετε μια απλή επιλογή, πρέπει να περάσετε μια παράμετρο με ένα κλειδί στη φόρμα που ανοίγει Επιλογή, η τιμή θα είναι μια δομή στην οποία το κλειδί είναι το όνομα του πεδίου της δυναμικής λίστας και η τιμή είναι τα δεδομένα που αναζητούνται.
Για παράδειγμα, ας ανοίξουμε τη φόρμα λίστας καταλόγου Αριθμοί GTDκαι κάντε μια επιλογή εκεί ανά στοιχείο ιδιοκτήτη - καταλόγου Ονοματολογία.
&OnClient
Διαδικασία Εντολή 1 (Εντολή)
Παράμετρος= νέα δομή;
Επιλογή= νέα δομή.
Επιλογή. Insert("Owner", LinkToNomenclature) ;
Παράμετρος. Εισαγωγή ("Επιλογή", Επιλογή) ;
OpenForm( "Directory.GTD numbers.List form", Παράμετρος) ;
Τέλος Διαδικασίας
7. Πώς να ανοίξετε τη φόρμα εγγραφής στο μητρώο πληροφοριών
Για να το κάνετε αυτό, θα χρειαστείτε το κλειδί καταχώρισης του μητρώου πληροφοριών.
Κλειδί εγγραφής— αυτές είναι οι τιμές όλων των μετρήσεων και η περίοδος (εάν το μητρώο είναι περιοδικό). Δηλαδή, ένα κλειδί εγγραφής είναι οι παράμετροι με τις οποίες μπορεί να αναγνωριστεί μοναδικά μια εγγραφή.
Ο αλγόριθμος ανοίγματος είναι ο εξής:
- Εισάγουμε τα δεδομένα κλειδιού εγγραφής με τις απαραίτητες τιμές στη δομή.
- Τοποθετούμε τη δομή που προκύπτει σε έναν πίνακα.
- Δημιουργούμε ένα κλειδί εγγραφής από τον πίνακα.
- Περνάμε μια παράμετρο στη φόρμα που ανοίγει Κλειδίμε το κλειδί εγγραφής από το βήμα 3 ως τιμή.
&OnClient
Διαδικασία Εντολή 1 (Εντολή)
Παράμετρος= νέα δομή;
KeyParameters= νέα δομή.
Βασικές παράμετροι. Insert("Ονοματολογία", LinkToNomenclature) ;
Βασικές παράμετροι. Insert("PriceType", LinkToPriceType) ;
Βασικές παράμετροι. Εισαγωγή ("Περίοδος", Ημερομηνία) ;
KeyArray = Νέος πίνακας;
KeyArray. Add(KeyParameters) ;
EntryKey = Νέο( "Information RegisterRecord Key.PricesNomenclature", KeyArray) ;
Παράμετρος. Insert("Key", RecordKey) ;
OpenForm( "Μητρώο Πληροφοριών. Τιμές Ονοματολογίας. Έντυπο αρχείου", Παράμετρος) ;
Τέλος Διαδικασίας
Πώς να ανοίξετε μια φόρμα ενός υπάρχοντος αντικειμένου;
Όταν ανοίγετε μια φόρμα ενός υπάρχοντος αντικειμένου, εκτός από το όνομα της φόρμας, πρέπει επίσης να υποδείξετε το αντικείμενο του οποίου η φόρμα πρέπει να ανοίξει. Για να το κάνετε αυτό, χρησιμοποιήστε την παράμετρο φόρμας κλειδιού και έναν σύνδεσμο προς το αντικείμενο που μας ενδιαφέρει.
Για παράδειγμα, εάν από τη φόρμα λίστας οργανισμών πρέπει να ανοίξετε τη φόρμα του οργανισμού στον οποίο βρίσκεται ο δρομέας, μπορείτε να το κάνετε με τον ακόλουθο τρόπο:
Περνάμε τις παραμέτρους φόρμας με τη μορφή δομής, όπου το όνομα του στοιχείου δομής αντιστοιχεί στο όνομα της παραμέτρου φόρμας και η τιμή είναι η τιμή στην οποία θέλουμε να ορίσουμε την παράμετρο φόρμας.
Εάν θέλετε να ανοίξετε όχι την κύρια, αλλά μια αυθαίρετη μορφή ενός αντικειμένου που δημιουργήθηκε στον διαμορφωτή, αντί για το τυπικό όνομα της κύριας φόρμας (ObjectForm), υποδείξτε τη λέξη Form ακολουθούμενη από μια τελεία - το όνομα της φόρμας που δημιουργήθηκε στο ο διαμορφωτής.
Για παράδειγμα:
ReferenceToDirectoryElement = Elements.List.CurrentRow; FormParameters = Νέα δομή ("Key", ReferenceToDirectoryElement); OpenForm("Directory.Organizations.Form.UniversalObjectForm",FormParameters);
Θα πρέπει να σημειωθεί ότι στην περίπτωση που, εκτός από έναν σύνδεσμο προς ένα αντικείμενο, δεν χρειάζεται να περάσουν παράμετροι στη φόρμα που ανοίγει και είναι η κύρια μορφή του υπάρχοντος αντικειμένου που χρειάζεται, μπορείτε να χρησιμοποιήσετε μια απλούστερη μέθοδο - ανοίξτε τη φόρμα χρησιμοποιώντας τη διαδικασία OpenValue():
OpenValue(Items.List.CurrentRow);
Αυτή η μέθοδος είναι λιγότερο ευέλικτη, αλλά σε ορισμένες περιπτώσεις εξοικονομεί χρόνο και προσπάθεια. Για παράδειγμα, στην εξεταζόμενη περίπτωση, μια τέτοια γραμμή μπορεί να αντικαταστήσει ολόκληρη τη διαδικασία τριών γραμμών που γράψαμε νωρίτερα.
Ωστόσο, πρέπει να δίνεται προσοχή κατά τη χρήση αυτής της διαδικασίας. Σε ορισμένες περιπτώσεις, μπορεί να προκαλέσει πρόσθετες κλήσεις στον διακομιστή, για παράδειγμα, όταν πρέπει να ανοίξετε μια φόρμα ιεραρχικού στοιχείου καταλόγου. Κατά τη χρήση αυτής της διαδικασίας, η πλατφόρμα θα πραγματοποιήσει μια πρόσθετη κλήση στον διακομιστή για να καθορίσει εάν ένα στοιχείο είναι ομάδα ή όχι, καθώς πρέπει να ανοίξουν διαφορετικές φόρμες για το στοιχείο και για την ομάδα.
Ταυτόχρονα, αυτές οι πληροφορίες μπορούν να είναι γνωστές εκ των προτέρων στον προγραμματιστή στον αλγόριθμό του και, χρησιμοποιώντας τη συνάρτηση OpenForm(), ο προγραμματιστής μπορεί να ανοίξει την επιθυμητή φόρμα χωρίς πρόσθετες κλήσεις στον διακομιστή, καθορίζοντας αμέσως το τυπικό όνομα του κύριου μορφή.