1γ εξωτερικές αναφορές και επεξεργασία. Προσθήκη εξωτερικής επεξεργασίας στη βάση δεδομένων

Ηλεκτρονική 29.06.2020

Επισκόπηση προγράμματος Η έκδοση υπολογιστή του Microsoft Excel Viewer θα επιτρέψει...
Chercher

Επιλογή και επεξεργασία αντικειμένων. (Παγκόσμιος)

Αναζητά αντικείμενα σε έγγραφα και καταλόγους που πληρούν ορισμένες προϋποθέσεις. Επεξεργάζεται τα αποτελέσματα αναζήτησης.

Συνέλιξη της βάσης πληροφοριών. (Παγκόσμιος)

Εκτελεί συνάθροιση ασφάλειας πληροφοριών τυπικών διαμορφώσεων:

  • UPP 3.1.
  • BP 1.6.
  • UT 10.3.

Καταχώρηση αλλαγών για ανταλλαγή. (Παγκόσμιος)

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

Μετατροπή αρχείου καταγραφής δραστηριότητας χρήστη. (Παγκόσμιος)

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

Αναζήτηση πλήρους κειμένου σε δεδομένα. (Παγκόσμιος)

Ευρετηρίαση και αναζήτηση δεδομένων.

Εύρεση και αντικατάσταση τιμών. (Παγκόσμιος)

Αναζητά και αντικαθιστά τιμές αναφοράς σε αντικείμενα ασφάλειας πληροφοριών.

Δημιουργία τεχνολογικού αρχείου καταγραφής. (Παγκόσμιος)

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

Κονσόλα εργασίας. (Παγκόσμιος)

Παρακολουθεί το παρασκήνιο και τις εργασίες ρουτίνας. Διαγράφει, δημιουργεί νέα.

Μετατροπή εξωτερικής επεξεργασίας. (Παγκόσμιος)

Αλλαγή εμπιστευτικών πληροφοριών. (Παγκόσμιος)

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

Αλλαγή ομαδικών στοιχείων. (Παγκόσμιος)

Αλλάζει λεπτομέρειες και τμήματα πίνακα σε έγγραφα και βιβλία αναφοράς.

Μεταφόρτωση και φόρτωση χρηστών. (Παγκόσμιος)

Ανεβάζει και φορτώνει χρήστες ασφάλειας πληροφοριών σε ένα αρχείο XML.

Μεταφόρτωση δεδομένων σε εξωτερικές βάσεις δεδομένων. (Παγκόσμιος)

Μεταφορτώνει δομές δεδομένων σε εξωτερικά DBMS χρησιμοποιώντας ADO σε δύο τρόπους:

  • Ξεφορτώστε όλα
  • Μεταφόρτωση αλλαγών (χρησιμοποιείται για τον συγχρονισμό αλλαγών στο λειτουργικό IS με το IS λήψης). Αυτή η λειτουργία χρησιμοποιεί μηχανισμούς σχεδίου ανταλλαγής.

Υποστηρίζει το ακόλουθο DBMS:

  • Microsoft SQL
  • IBM DB2
  • Μαντείο
  • PostgreSQL
  • MySQL

Μεταφόρτωση και φόρτωση δεδομένων XML. (Παγκόσμιος)

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

Φόρτωση δεδομένων από έγγραφο υπολογιστικού φύλλου. (Παγκόσμιος)

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

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

Αίτημα κονσόλας. (Παγκόσμιος)

Παρέχει μεγάλη βοήθεια στη δημιουργία αναφορών και ερωτημάτων.

Για τη σύνδεση εξωτερικής επεξεργασίας, αναφορών και έντυπων φορμών για την πλατφόρμα 1C:Enterprise 8.2, έχει αναπτυχθεί ένα νέο πρότυπο για εργασία σε διαχειριζόμενη εφαρμογή (ένα πρότυπο από το τυπικό υποσύστημα βιβλιοθήκης 8.2). Έχουν εμφανιστεί «τσιπ» που δεν υπήρχαν πριν, και συγκεκριμένα:

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

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

    Μπορείτε να εισαγάγετε με βάση και να γεμίσετε αντικείμενα που βασίζονται σε πολλά αντικείμενα ταυτόχρονα, και όχι μόνο σε ένα

    Μπορείτε να ορίσετε ένα χρονοδιάγραμμα για την εκτέλεση εντολών διακομιστή (στον διακομιστή).

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

    Μπορείτε να ορίσετε τη λειτουργία χρήσης: Μη χρήση, εντοπισμός σφαλμάτων, χρήση. "Να μην χρησιμοποιείται" - δεν είναι σε λειτουργία, "Εντοπισμός σφαλμάτων" - ορατό μόνο στους διαχειριστές, "Χρήση σε λειτουργία".

    Μπορεί να χρησιμοποιηθεί σε φόρμες αντικειμένων και σε φόρμες λίστας

    Μπορείτε να συνδέσετε μια επεξεργασία ή μια αναφορά σε όλα τα αντικείμενα ταυτόχρονα.

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

    Μπορείτε να καθορίσετε σε ποιες ενότητες της διεπαφής θα πρέπει να εμφανίζονται πρόσθετη επεξεργασία και αναφορές.

Τι μπορεί λοιπόν να συνδεθεί με τυπικές διαμορφώσεις;

Από την άποψη της πλατφόρμας, μπορείτε να συνδέσετε:

  • εξωτερική επεξεργασία (αρχεία με την επέκταση "epf").
  • εξωτερικές αναφορές (αρχεία με την επέκταση «erf»).

Από την άποψη της περιοχής εφαρμογής (διαμόρφωση), μπορείτε να συνδέσετε εξωτερική επεξεργασία και αναφορές με τη φόρμα*:

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

*χρησιμοποιώντας το παράδειγμα της σύνταξης «Διοίκηση μικρής εταιρείας εκδ. 1,2"

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

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

Λειτουργία InformationOnExternalProcessing() Εξαγωγή
RegistrationData = Νέα δομή;
Registration Data.Insert("Name", "Example of use external processing 8.2.");
RegistrationData.Insert("SafeMode", True);
RegistrationData.Insert("Version", "1.0");

//Πρόσθετη επεξεργασία
//Πρόσθετη αναφορά
//Γεμίζοντας το αντικείμενο
//Εκθεση
//PrintForm
//Δημιουργία σχετικών αντικειμένων
RegistrationData.Insert("View", "AdditionalProcessing");

Registration Data.Insert("Information", "Processing done σύμφωνα με το νέο πρότυπο για τη σύνδεση εξωτερικής επεξεργασίας 8.2. Παράδειγμα επεξεργασίας ""Hello Word"" ");

///////////// εντολές /////////////////////////
tzCommand = New ValueTable;
tzCommand.Columns.Add("Identifier");
tzCommand.Columns.Add("Προβολή");
tzCommand.Columns.Add("Modifier");
tzCommand.Columns.Add("Show Alert");
tzCommand.Columns.Add("Χρήση");


stringCommands.Identifier = "1";
stringCommands.View = "εντολή ""Hello Word"" (OpenForm)";

stringCommands.Use = "OpenForm";

CommandString = tzCommand.Add();
stringCommands.Identifier = "2";
stringCommands.View = "command""Hello Word""(CallClientMethod)";
stringCommands.ShowAlert = True;
stringCommand.Use = "CallClientMethod";

CommandString = tzCommand.Add();
stringCommands.Identifier = "3";
stringCommands.View = "command""Hello Word""(CallServerMethod)";
stringCommands.ShowAlert = True;
stringCommand.Usage = "CallServerMethod";

RegistrationData.Insert("Commands", tzCommands);

////////////// σκοπός (σε ποια αντικείμενα χρησιμοποιείται) ////////////////////////
//για εκτύπωση φορμών, συμπλήρωση, εισαγωγή σχετικών αντικειμένων
//ArrayAssignments = Νέος πίνακας;
//Array of Assignments.Add("Document.*"); // εκχωρούνται όλα τα έγγραφα
//Array of Assignments.Add("Document.Advance Report");
//Array of Assignments.Add("Document.Buyer's Order");
//Registration Data.Insert("Destination", Array of Destination);

Δεδομένα εγγραφής επιστροφής.

EndFunction

Έτσι, όπως μπορείτε να δείτε, η συνάρτηση γεμίζει τη δομή Registration Data, η οποία έχει τα ακόλουθα στοιχεία (παραμέτρους):

    Όνομα – σύντομη ονομασία της θεραπείας

    Έκδοση - πληροφορίες σχετικά με την έκδοση επεξεργασίας

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

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

  • Εντολές – ένας πίνακας τιμών που παραθέτει τις εντολές που χρησιμοποιήθηκαν. Στήλες πίνακα τιμών:
    • Αναγνωριστικό – οποιαδήποτε συμβολοσειρά (αναγνωριστικό εντολής)
    • Προβολή - περιγραφή εντολής
    • Τροποποιητής - συμβολοσειρά (χρησιμοποιείται για πρόσθετες έντυπες φόρμες)
    • Εμφάνιση ειδοποίησης – το παράθυρο ειδοποίησης θα εμφανιστεί πριν από την έναρξη και μετά το τέλος της εκτέλεσης (για εντολές πελάτη και διακομιστή χωρίς φόρμα)
    • Χρήση – λειτουργία έναρξης επεξεργασίας:
      • OpenForm – θα ανοίξει η φόρμα επεξεργασίας
      • CallClientMethod – καλέστε τη μέθοδο εξαγωγής πελάτη της φόρμας
      • Call ServerMethod – καλέστε τη μέθοδο εξαγωγής από τη μονάδα επεξεργασίας

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

Μεταβείτε στο επάνω μενού Υπηρεσία->->.

Εμφανίζεται η φόρμα λίστας καταλόγου εξωτερικής επεξεργασίας. Στο επάνω μενού πατήστε το κουμπί Προσθέτω.

Θα εμφανιστεί η φόρμα Προσθήκη νέου αντικειμένου. Κάντε κλικ στο κουμπί άνοιγμα και επιλέξτε το αρχείο με την επιθυμητή επεξεργασία. Αφού επιλέξετε το επιθυμητό αρχείο, εάν είναι απαραίτητο, καθορίστε ένα όνομα επεξεργασίας (πεδίο Όνομα). Μετά από αυτό, πρέπει να κάνετε κλικ στο OK για να αποθηκεύσετε τις αλλαγές που έγιναν.

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

Αυτό είναι όλο! Η διαδικασία προσθήκης επεξεργασίας στη διαμόρφωση έχει ολοκληρωθεί. Για να ανοίξετε αυτήν την επεξεργασία αργότερα, ακολουθήστε την παλιά διαδρομή: Υπηρεσία->Πρόσθετες αναφορές και επεξεργασία->Πρόσθετη εξωτερική επεξεργασία.

Για BP 3.0, ZUP 3.0, UT 11, ERP 2.0.

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

Για την πρώτη περίπτωση, θα προσθέσουμε επεξεργασία για τη συμπλήρωση του καταλόγου ονοματολογίας από το Excel.

Ας πάμε στην κατάλληλη ενότητα του προγράμματος:


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

Στη λίστα κάντε κλικ Δημιουργώ:


Στο παράθυρο διαλόγου που ανοίγει, επιλέξτε το επιθυμητό αρχείο για επεξεργασία:


Η κάρτα για το νέο εξωτερικό αντικείμενο στο πρόγραμμα έχει συμπληρωθεί, το μόνο που μένει είναι να το ρυθμίσετε κατάλυμα(ενότητες του προγράμματος από τις οποίες θα είναι διαθέσιμη η επεξεργασία):


Επιλέξτε μια αυθαίρετη ενότητα (ή πολλές) για τοποθέτηση:


Γράψτε και κλείστε την κάρτα εξωτερικού αντικειμένου:


Τώρα ας ανοίξουμε την επεξεργασία από τη διεπαφή:


Η λίστα είναι κενή, κάντε κλικ Προσαρμόστε τη λίστα:


Επιλέξτε την επεξεργασία μας:


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


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


Εάν θέλετε, η λίστα τοποθετήσεων μπορεί να προσαρμοστεί ( Μην προσθέσετε πρόσθετη τοποθέτηση, αλλά αφαιρέστε τα περιττά):


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

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

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

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

Το άρθρο θα συζητήσει τις ακόλουθες επιλογές για πρόσθετα εξωτερικά συνδεόμενα αντικείμενα:

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

Τι είναι η πρόσθετη εξωτερική επεξεργασία, οι αναφορές και τα έντυπα;




Αρχικά, θα ήθελα να μιλήσω γενικά ποιες είναι αυτές οι εξωτερικές επεξεργασίες, οι αναφορές και τα έντυπα;. Πολύ συχνά, όταν εργάζεστε με μια τυπική διαμόρφωση, είτε πρόκειται για 1C ZUP είτε για 1C Enterprise Accounting ή κάποια άλλη διαμόρφωση, υπάρχει ανάγκη για κάποια λειτουργικότητα που δεν παρέχεται από προγραμματιστές 1C. Για παράδειγμα, μπορεί να χρειαστείτε έντυπη μορφή, το οποίο δεν ρυθμίζεται, αλλά χρησιμοποιείται για τις εσωτερικές ανάγκες του οργανισμού. Ή απαιτείται με συγκεκριμένο τρόπο διαδικασία (αλλαγή, προσαρμογή)δεδομένα που είναι διαθέσιμα στη βάση δεδομένων. Για παράδειγμα, αλλαγή ορισμένων λεπτομερειών στα έγγραφα για την απαιτούμενη περίοδο, κάτι που δεν είναι βολικό να γίνει χειροκίνητα με μεγάλο όγκο πληροφοριών.

Σε αυτή την περίπτωση, υπάρχουν δύο επιλογές. Πρώτα, μπορούμε να τροποποιήσουμε την ίδια τη διαμόρφωση, το ίδιο το πρόγραμμα. Μετά από αυτό, θα πάψει να είναι τυπικό και δεν θα είναι δυνατό να το ενημερώσετε χρησιμοποιώντας τις μάλλον απλές μεθόδους για τις οποίες έγραψα. Η ενημέρωση μιας μη τυπικής διαμόρφωσης είναι μια μεγαλύτερη και πιο σοβαρή διαδικασία, επομένως με αυτήν την προσέγγιση πιθανότατα θα πρέπει να πληρώνετε έναν ειδικό 1C μηνιαίως για την ενημέρωση του προγράμματος. ΔεύτεροςΜια επιλογή είναι να αναπτύξετε ή να ζητήσετε να αναπτύξετε μια εξωτερική επεξεργασία ή έντυπη φόρμα (αναφορά). Αυτή είναι ουσιαστικά μια εξωτερική μονάδα, η οποία αναπτύσσεται επίσης στη γλώσσα προγραμματισμού 1C στο Configurator, αλλά δεν κάνει αλλαγές στην τυπική διαμόρφωση. Υπάρχει ανεξάρτητα από την ίδια τη διαμόρφωση. Για την αποθήκευσή τους, χρησιμοποιούνται ειδικοί κατάλογοι: στοιχείο κύριου μενού "Υπηρεσία" -> "Πρόσθετες αναφορές και επεξεργασία".

Πρόσθετη εξωτερική επεξεργασία για τη συμπλήρωση τμημάτων σε πίνακα

Σεμινάριο “Lifehacks for 1C ZUP 3.1”
Ανάλυση 15 life hacks για λογιστική στο 1C ZUP 3.1:

ΛΙΣΤΑ ΕΛΕΓΧΟΥ για τον έλεγχο των υπολογισμών μισθοδοσίας στο 1C ZUP 3.1
ΒΙΝΤΕΟ - μηνιαίος αυτοέλεγχος λογιστικής:

Υπολογισμός μισθοδοσίας σε 1C ZUP 3.1
Οδηγίες βήμα προς βήμα για αρχάριους:

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

Για να γίνει πιο σαφές, θα δώσω ένα συγκεκριμένο παράδειγμα από την πρακτική μου, στο οποίο θα λύσω το πρόβλημα που χρησιμοποίησα εξωτερική επεξεργασία τμημάτων σε πίνακα. Στη διαμόρφωση "1C Μισθός και Διαχείριση Προσωπικού" έκδοση 2.5 υπάρχει ένα έγγραφο "Πληρωμή για αργίες και Σαββατοκύριακα"(Το έγγραφο αυτό έχει γραφτεί λεπτομερώς). Στην τυπική του μορφή, αυτό το έγγραφο παρέχει τη δυνατότητα αυτόματης συμπλήρωσης του τμήματος πίνακα από τους υπαλλήλους «Εργασία στις αργίες».

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

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

Ως αποτέλεσμα της προσθήκης αυτής της επεξεργασίας στον κατάλογο «Πρόσθετη εξωτερική επεξεργασία για συμπλήρωση τμημάτων πίνακα»στο ίδιο το έγγραφο «Πληρωμή για διακοπές και μέρη Σαββατοκύριακου», θα εμφανιστεί ένα κουμπί «Συμπλήρωση» με μια αναπτυσσόμενη λίστα στην οποία θα είναι δυνατή η έναρξη αυτής της επεξεργασίας. Στην περίπτωσή μας, το κουμπί «Γέμισμα Κυριακών» είναι διαθέσιμο στην αναπτυσσόμενη λίστα. Πατώντας το εκκινεί ο αλγόριθμος που περιέχεται στην επεξεργασία. Σε αυτό το παράδειγμα, το τμήμα του πίνακα θα συμπληρωθεί με υπαλλήλους των οποίων οι εργάσιμες ημέρες ήταν ρεπό. Λάβετε υπόψη ότι αυτό το κουμπί δεν υπήρχε στο παρελθόν (στιγμιότυπο οθόνης παραπάνω).

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

Προαιρετικές εξωτερικές εκτυπωτικές πλάκες

Σεμινάριο “Lifehacks for 1C ZUP 3.1”
Ανάλυση 15 life hacks για λογιστική στο 1C ZUP 3.1:

ΛΙΣΤΑ ΕΛΕΓΧΟΥ για τον έλεγχο των υπολογισμών μισθοδοσίας στο 1C ZUP 3.1
ΒΙΝΤΕΟ - μηνιαίος αυτοέλεγχος λογιστικής:

Υπολογισμός μισθοδοσίας σε 1C ZUP 3.1
Οδηγίες βήμα προς βήμα για αρχάριους:

Αυτή η επιλογή είναι πολύ παρόμοια με την προηγούμενη. Πιθανότατα έχετε δει και γνωρίζετε ότι σχεδόν κάθε έγγραφο, ακόμη και ορισμένα στοιχεία βιβλίων αναφοράς έχουν έντυπα έντυπα. Βρίσκονται, κατά κανόνα, στην κάτω δεξιά γωνία της φόρμας ενός στοιχείου καταλόγου ή ενός εγγράφου. Μερικές φορές οι τυπικές έντυπες φόρμες δεν αρκούν. Για παράδειγμα, ένας οργανισμός μπορεί να έχει τη δική του μορφή σύμβασης εργασίας. Να σας υπενθυμίσω ότι η τυπική έντυπη φόρμα «Σύμβαση Εργασίας» περιλαμβάνεται στη φόρμα καταλόγου «Εργαζόμενοι».

Μπορείτε να προσθέσετε τη δική σας σε αυτές τις έντυπες φόρμες του καταλόγου. Για το σκοπό αυτό δημιουργείται μια εξωτερική έντυπη φόρμα με την κατάληξη “.epf”. Στη συνέχεια δημιουργείται ένα στοιχείο καταλόγου για αυτό "Πρόσθετες εξωτερικές εκτυπωτικές πλάκες"(στοιχείο μενού "Εργαλεία" -> "Πρόσθετες αναφορές και επεξεργασία") και ένα αρχείο με την επέκταση ".epf" προστίθεται σε αυτό το στοιχείο καταλόγου. Είναι επίσης απαραίτητο να αναφέρετε για ποιο έγγραφο ή βιβλίο αναφοράς προστίθεται η επεξεργασία.

Ως αποτέλεσμα, ως μέρος των έντυπων εντύπων των στοιχείων του καταλόγου "Εργαζόμενοι", θα εμφανιστεί μια άλλη φόρμα - "Σύμβαση Εργασίας (Alpha LLC)", η οποία δεν υπήρχε πριν. Και η εμφάνισή του και η συμπλήρωση δεδομένων καθορίζεται από τον προγραμματιστή στο αρχείο ".epf".

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

Πρόσθετες εξωτερικές αναφορές

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

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

Με αυτήν την επιλογή αποθήκευσης, η αναφορά εκκινείται από τον ίδιο κατάλογο (με διπλό κλικ).

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

Πρόσθετη εξωτερική επεξεργασία

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

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

θα σου φέρω άλλο παράδειγμαμια εντελώς απλή, αλλά αρκετά δημοφιλής θεραπεία. Εάν στο 1C ZUP δεν διατηρείτε το έγγραφο "Μεταφορά φόρου εισοδήματος φυσικών προσώπων στον προϋπολογισμό" κατά τη διάρκεια του έτους, τότε όταν δημιουργείτε φόρο εισοδήματος 2 φυσικών προσώπων για το έτος, το πεδίο "Μεταφέρθηκε" για κάθε εργαζόμενο θα είναι μηδέν, το οποίο είναι συνήθως λανθασμένα πραγματικά. Η εισαγωγή του παραστατικού "Μεταφορά φόρου εισοδήματος φυσικών προσώπων στον προϋπολογισμό" για ολόκληρο το έτος μπορεί να είναι αρκετά κουραστική, δεδομένων των ιδιαιτεροτήτων του ίδιου του εγγράφου. Αλλά μπορείτε να κάνετε εξωτερική επεξεργασία, η οποία στο δημιουργημένο 2-NDFL θα συμπληρώσει απλώς το πεδίο "Αναφερόμενο" για κάθε εργαζόμενο, με βάση τις τιμές στο πεδίο "Υπολογισμός". Στους λογιστές συνήθως αρέσει πολύ αυτή η επιλογή.

Η εξωτερική επεξεργασία έχει ακριβώς τις ίδιες δύο επιλογές αποθήκευσης και εκκίνησης: είτε χρήση του καταλόγου "Πρόσθετη εξωτερική επεξεργασία"(στοιχείο μενού "Εργαλεία" -> "Πρόσθετες αναφορές και επεξεργασία"), ή το στοιχείο του κύριου μενού "Αρχείο" -> "Άνοιγμα".

Αυτό είναι όλο για σήμερα!

Για να μαθαίνετε πρώτοι για νέες δημοσιεύσεις, εγγραφείτε στις ενημερώσεις του ιστολογίου μου:

Ας εξετάσουμε τη δημιουργία μιας εξωτερικής αναφοράς στο 1C 8 χωρίς τη χρήση συστήματος σύνθεσης δεδομένων. Για να δημιουργήσουμε μια εξωτερική αναφορά, θα χρησιμοποιήσουμε τη διαμόρφωση Accounting 2.0, τα αρχικά δεδομένα: «Γράψτε μια αναφορά για τον λογιστικό λογαριασμό 62 στην οποία ο κύκλος εργασιών για την καθορισμένη περίοδο θα εμφανίζεται στο πλαίσιο αντισυμβαλλόμενοιΚαι Συμβάσεις αντισυμβαλλομένων.

1. Δημιουργήστε μια αναφορά

Πρώτα απ 'όλα, ας δημιουργήσουμε ένα εξωτερικό αρχείο αναφοράς για να το κάνουμε αυτό, ας πάμε στο 1s 8 στη λειτουργία Διαμορφωτής, πάμε στο μενού Αρχείο -> Νέο, ή κάντε κλικ στο εικονίδιο Νέο έγγραφο.

Επιλέξτε το στοιχείο από τη λίστα Εξωτερική αναφορά. Αφού δημιουργήσετε την εξωτερική αναφορά, δώστε της ένα Όνομα (για παράδειγμα SimplestReport) και αποθηκεύστε το στο δίσκο. Θα προσθέσουμε επίσης δύο λεπτομέρειες: Αρχή ΠεριόδουΚαι Τέλος Περιόδουτύπος Ημερομηνία, θα τα χρειαστούμε για να περιορίσουν το χρονικό διάστημα για τη δειγματοληψία δεδομένων κατά τη δημιουργία μιας αναφοράς.

2. Δημιουργήστε μια διάταξη εξωτερικής αναφοράς

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

Η διάταξή μας θα έχει 4 περιοχές:

  • Κεφαλίδα - σε αυτήν την περιοχή θα εμφανίσουμε το όνομα της αναφοράς, την περίοδο για την οποία δημιουργήθηκε και την κεφαλίδα του πίνακα.
  • Δεδομένα αντισυμβαλλομένου - σε αυτήν την περιοχή θα εμφανίσουμε δεδομένα για τον αντισυμβαλλόμενο σε έναν πίνακα.
  • DataCounterparty Agreement - σε αυτήν την περιοχή θα εμφανίσουμε δεδομένα σχετικά με τη συμφωνία αντισυμβαλλομένου σε έναν πίνακα.
  • Υποσέλιδο - σε αυτήν την περιοχή θα εμφανίσουμε τις συνολικές τιμές για ολόκληρη την αναφορά για τα πεδία Έσοδα και Έξοδα.

Ας αρχίσουμε να δημιουργούμε περιοχές διάταξης. Για να δημιουργήσετε μια περιοχή στη διάταξη, επιλέξτε τον απαιτούμενο αριθμό γραμμών και κάντε κλικ Πίνακας μενού -> Ονόματα -> Εκχώρηση ονόματοςCtrl + Shift + N). Προς την περιφέρεια ΚαπάκιΑς γράψουμε το όνομα της αναφοράς: Κύκλος 62 μετράει, σχεδιάστε χρησιμοποιώντας το εργαλείο σύνορακεφαλίδα αναφοράς και ορίστε επίσης τις παραμέτρους Αρχή ΠεριόδουΚαι Τέλος Περιόδου. Χρησιμοποιώντας παραμέτρους, μπορείτε να εμφανίσετε τα απαραίτητα δεδομένα στην αναφορά, θα ασχοληθούμε με αυτό στο επόμενο στάδιο ανάπτυξης, δηλαδή κατά τη σύνταξη του κώδικα αναφοράς. Για να δημιουργήσετε μια παράμετρο στη διάταξη, επιλέξτε το επιθυμητό κελί, γράψτε το όνομα της παραμέτρου σε αυτό (χωρίς κενά), κάντε δεξί κλικ πάνω της, επιλέξτε το στοιχείο στο μενού που ανοίγει Σκηνικά θέατρου. Στις ιδιότητες κελιών στην καρτέλα Σχέδιοεπιλέξτε padding Παράμετρος.

Μετά από αυτό, το όνομα της παραμέτρου στο κελί θα περικλείεται σε αγκύλες ("<>"). Ως αποτέλεσμα, η περιοχή Καπάκιθα πρέπει να μοιάζει με αυτό:

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

Στην περιοχή Συμφωνία DataCounterpartyΑς δημιουργήσουμε παραμέτρους για την εμφάνιση του ονόματος της σύμβασης, καθώς και για έσοδα και έξοδα για τον λογαριασμό 62, χρησιμοποιώντας το εργαλείο Borders θα σχεδιάσουμε την περιοχή ως γραμμή πίνακα. Ας κάνουμε μια μικρή εσοχή πριν από την παράμετρο Συμφωνία αντισυμβαλλόμενου(αυτό μπορεί να γίνει με διαχωρισμό και συγχώνευση κελιών. Κάντε δεξί κλικ στο κελί -> Συγχώνευσηή Διαίρεση κελιού), είναι απαραίτητο για να μπορεί η αναφορά να δει ότι η γραμμή για τη σύμβαση είναι χαμηλότερη στην ιεραρχία από τη γραμμή για τον αντισυμβαλλόμενο.

Στην περιοχή ΥπόγειοΑς δημιουργήσουμε παραμέτρους για τα σύνολα εσόδων και εξόδων.

Ως αποτέλεσμα, θα πρέπει να έχουμε μια διάταξη όπως αυτή:

3. Δημιουργήστε μια φόρμα αναφοράς

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

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

Ως αποτέλεσμα, θα λάβουμε αυτή τη φόρμα:

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

  • Ας σύρουμε το κουμπί Μορφήαπό το κάτω πλαίσιο της αναφοράς προς την κορυφή (αυτό θα είναι πιο βολικό για τον χρήστη).
  • Τεντώστε το σχήμα κάθετα και οριζόντια.
  • Ας τακτοποιήσουμε τα χωράφια Αρχή ΠεριόδουΚαι Τέλος Περιόδουοριζόντια?
  • Ας προσθέσουμε ένα στοιχείο ελέγχου Πεδίου εγγράφου υπολογιστικού φύλλου στη φόρμα (η αναφορά μας θα εμφανίζεται σε αυτήν), δώσουμε ένα όνομα TabDoc;
  • Ας δημιουργήσουμε ένα κουμπί επιλογής περιόδου (όταν κάνετε κλικ, θα εμφανιστεί ένα παράθυρο διαλόγου με μια βολική επιλογή της επιθυμητής περιόδου). Δεν θα γράψουμε ακόμα τον κώδικα του προγράμματος, επομένως θα τοποθετήσουμε απλώς το κουμπί δίπλα στα πεδία τελείας.

Ως αποτέλεσμα, η φόρμα μας θα μοιάζει με αυτό:

4. Προγραμματισμός

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

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

Για να καλέσουμε τη φόρμα επιλογής περιόδου, θα χρησιμοποιήσουμε την τυπική διαδικασία Λογιστική 2.0από μια κοινή ενότητα Εργασία με διαλόγους - HandlerPeriodSettingPress, πρέπει να του μεταβιβάσετε τις λεπτομέρειες της αναφοράς ως παραμέτρους Αρχή ΠεριόδουΚαι Τέλος Περιόδου.

Διαδικασία Button1Press(Στοιχείο)Εργασία με το Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Τέλος Διαδικασίας

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

TabDoc = FormElements.TabDoc;

Ας πάρουμε τη διάταξη της εξωτερικής αναφοράς χρησιμοποιώντας τη συνάρτηση GetLayout(<ИмяМакета>) , θα περάσουμε το όνομα της διάταξης ως παράμετρο και αν υπάρχει τέτοια διάταξη, η συνάρτηση θα τη βρει.

Layout = GetLayout("Layout" );

Αφού ληφθεί η διάταξη, ας δημιουργήσουμε μεταβλητές για κάθε περιοχή της, χρησιμοποιήστε τη μέθοδο διάταξης για αυτό GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Header" ); AreaDataAccount = Layout.GetArea( "Στοιχεία εργολάβου") AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Υποσέλιδο" );

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

TabDoc.Clear();

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

AreaHeader.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

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

TabDoc.Output(AreaHead);

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

Αίτημα = νέο αίτημα.

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

Request.SetParameter("Account62", Chart of Account. Self-supporting. Find By Code("62" ));

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

Request.SetParameter("Start of Period", Start of Period); Request.SetParameter("Τέλος Περιόδου", Τέλος Περιόδου);

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

Request.Text = "" ;

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

Τώρα πρέπει να επιλέξουμε τον πίνακα βάσης δεδομένων 1C 8 Χρειαζόμαστε έναν εικονικό πίνακα Επαναστάσειςλογιστικό μητρώο Αυτοϋποστήριξη. Ας το βρούμε στην αριστερή πλευρά του παραθύρου του σχεδιαστή

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

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

Απομένει να συμπληρώσετε την προϋπόθεση για τον λογιστικό λογαριασμό. λογιστική. Για να το κάνετε αυτό, βρείτε τη γραμμή στις παραμέτρους του εικονικού πίνακα Κατάσταση Λογαριασμούκαι θα γράψουμε εκεί

Λογαριασμός IN HIERARCHY (&Account62)

Μπορείτε επίσης να χρησιμοποιήσετε τον κατασκευαστή συνθηκών κάνοντας κλικ στο κουμπί με τις τρεις τελείες.

Δεν χρειάζεται να επιβάλλετε άλλους όρους στον εικονικό πίνακα, οπότε ας κάνουμε κλικ στο κουμπί ΕΝΤΑΞΕΙστο παράθυρο παραμέτρων εικονικού πίνακα. Στη συνέχεια, πρέπει να επιλέξουμε τα πεδία που χρειαζόμαστε από τον πίνακα Αυτοφερόμενο.Κύκλος εργασιών(δηλαδή: Αντισυμβαλλόμενος, Συμφωνία Αντισυμβαλλόμενου, Έσοδα και Έξοδα). Για να δείτε τη λίστα των διαθέσιμων πεδίων στον πίνακα που έχουμε επιλέξει, κάντε κλικ στο σύμβολο «+» δίπλα στο όνομά του. Μετά από αυτό, σύρετε τα απαιτούμενα πεδία στην πιο δεξιά περιοχή του σχεδιαστή ερωτήματος, η οποία ονομάζεται: Πεδία. Αν ανοίξουμε το λογιστικό σχέδιο, θα το δούμε για τον λογαριασμό 62 αναλυτικά Για τον αντισυμβαλλόμενο αυτό είναι το Subconto1, και από Συμφωνία αντισυμβαλλομένου - Subconto2.

Επομένως, από τα πεδία του εικονικού πίνακα επιλέγουμε Subconto1Και Subconto2. Εφόσον χρειαζόμαστε έσοδα και έξοδα κατά ποσό, επιλέγουμε και τα πεδία AmountTurnoverDtΚαι ΠοσόΚύκλοςΚt

Ας συμπληρώσουμε τα ψευδώνυμα των πεδίων που έχουμε επιλέξει για να το κάνουμε αυτό, μεταβούμε στην καρτέλα Σωματεία/Ψευδώνυμακαι ορίστε τα απαιτούμενα ονόματα πεδίων.

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

Αυτό ολοκληρώνει την εργασία στον κατασκευαστή ερωτήματος, κάντε κλικ στο κουμπί ΕΝΤΑΞΕΙκαι βλέπουμε ότι το κείμενο του αιτήματός μας εμφανίζεται στον κώδικα του προγράμματος.

Query.Text = "ΕΠΙΛΟΓΗ | Self-supportingTurnover.Subconto1 AS Αντισυμβαλλόμενος, | Self-supportingTurnover.Subconto2 AS Συμφωνία αντισυμβαλλομένου, | Self-supportingTurnover.AmountTurnoverDt AS Receipt, | Αυτοσυντηρούμενος Κύκλος Εργασιών.ΠοσόΚύκλοςΚτ AS Έξοδα|ΑΠΟ | Μητρώο Λογιστικής Αυτοχρηματοδότησης (&Αρχή Περιόδου, &Λήξη Περιόδου, Λογαριασμός ΣΤΗΝ ΙΕΡΑΡΧΙΑ (&Λογαριασμός 62), AS Αυτοχρηματοδότηση.|ΑΠΟΤΕΛΕΣΜΑΤΑ | AMOUNT(Έσοδα), | AMOUNT(Έξοδα) |PO | Αντισυμβαλλόμενος, | Συμφωνία αντισυμβαλλομένου";

Αφού ολοκληρώσουμε τη σύνταξη του αιτήματος, ας αρχίσουμε να συμπληρώνουμε τις περιοχές DataCounterparty, DataAgreementCounterpartyΚαι Υπόγειο. Θα συμπληρώσουμε όλες αυτές τις περιοχές με τα δεδομένα που λάβαμε κατά την εκτέλεση του αιτήματος. Επειδή το ερώτημά μας περιέχει ομαδοποιήσεις( αντισυμβαλλόμενοςΚαι Συμφωνία αντισυμβαλλόμενου) επιλέξτε δεδομένα από αυτό ως εξής:

SelectionCounterpart = Query.Execute().Select(BypassQueryResult.ByGrouping);

Με αυτόν τον τρόπο θα λαμβάνουμε αρχεία με σύνολα για όλους τους αντισυμβαλλομένους.

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

Σύνολο Εισερχόμενων = 0; Συνολική Κατανάλωση = 0;

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

TabDoc.StartAutoGroupingRows();

Όλες οι προετοιμασίες έχουν ολοκληρωθεί, τώρα ας ξεκινήσουμε την ανίχνευση των αποτελεσμάτων του ερωτήματος. Θα εκτελέσουμε τη διέλευση χρησιμοποιώντας βρόχο Αντίο

Ενώ Επιλέξτε Account.Next() Cycle EndCycle ;

Στην αρχή του κύκλου, επαναφέρετε τις παραμέτρους ΕρχομόςΚαι Κατανάλωσηπεριοχή DataCounterparty. Σε τι χρησιμεύει αυτό; Ας φανταστούμε μια κατάσταση όπου ο αντισυμβαλλόμενος Ο θείος Βάσια, τα έσοδα είναι 10 και τα έξοδα είναι 5 και για τον επόμενο αντισυμβαλλόμενο Ο θείος Πέτυαδεν υπάρχουν έσοδα ή έξοδα, σε αυτήν την περίπτωση, εάν δεν επαναφέρουμε τις παραμέτρους ΕρχομόςΚαι Κατανάλωση, στη συνέχεια σε σειρά ανά αντισυμβαλλόμενο Ο θείος Πέτυαθα υπάρχουν έσοδα 5 και έξοδο 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Μετά γεμίζουμε την περιοχή DataCounterpartyδείγμα στοιχείων στοιχείων

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

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

TabDoc.Output(AreaDataAccount,1);

Τώρα για αυτόν τον αντισυμβαλλόμενο θα κάνουμε μια επιλογή σύμφωνα με τα συμβόλαιά του.

SelectionCounterparty Συμφωνία = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Θα εκτελέσουμε τη διέλευση χρησιμοποιώντας βρόχο Αντίο.

Ενώ SelectionCounterparty Agreement.Next() Loop EndCycle ;

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

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; Συμπληρώστε PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

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

TotalReceipt = TotalReceipt + SelectionConterparty Agreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense;

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

TabDoc.FinishAutoGroupingRows();

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

TabDoc.StartAutoGroupingRows(); Ενώ SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0 ;

AreaDataAccount.Parameters.Expense = 0 ; Υπόγειο FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); έγγραφο υπολογιστικού φύλλου.

TabDoc.Output(AreaDataAccount,1);

SelectionCounterparty Συμφωνία = SelectionCounterparty.Select(BypassQueryResult.ByGroups); Ενώ SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ;

Συμπληρώστε PropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement);



TabDoc.Output(AreaDataContract,2);

και εξάγετε την ίδια την περιοχή