Πώς να λάβετε δεδομένα από το τμήμα του πίνακα των εγγράφων; 1c πρόσβαση στο τμήμα του πίνακα του εγγράφου

Υπάρχουν τμήματα πίνακα για πολλά αντικείμενα στο 1C:

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

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

Ας δούμε μερικές τεχνικές για την εργασία με πίνακες.

Πώς να παρακάμψετε το τμήμα του πίνακα

Για να διασχίσετε το τμήμα του τραπεζιού, μπορείτε να χρησιμοποιήσετε έναν βρόχο Για κάθε

Για κάθε σειρά από το Πινακοποιημένο μέρος του κύκλου

Αναφορά(Σειρά. Χαρακτηριστικό TabularPart) ;

EndCycle ;

Σε κάθε επανάληψη στη μεταβλητή Γραμμήμεταδίδεται η επόμενη σειρά της ενότητας του πίνακα. Οι τιμές των λεπτομερειών της σειράς μπορούν να ληφθούν από την έκφραση Line.AttributeName.

Πώς να λάβετε και να παρακάμψετε επιλεγμένες σειρές του πίνακα

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

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

Ένας βρόχος χρησιμοποιείται για επανάληψη στις επιλεγμένες γραμμές. Για κάθε:

SelectedRows = FormElements. Όνομα πεδίου πίνακα. Επιλεγμένες σειρές;

Για κάθε σειρά από τον βρόχο επιλεγμένων γραμμών

//περιεχόμενα βρόχου

EndCycle ;

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

Για να αποεπιλέξετε μέσω προγραμματισμού σειρές ενός πεδίου πίνακα:

Στοιχεία Μορφής. Όνομα πεδίου πίνακα. Επιλεγμένες σειρές. Σαφή() ;

Για να επιλέξετε μέσω προγραμματισμού όλες τις σειρές ενός πεδίου πίνακα:

Για κάθε CurrentRow From TabularPart Loop
Στοιχεία Μορφής. Όνομα πεδίου πίνακα. Επιλεγμένες Γραμμές. Add(CurrentRow) ;
EndCycle ;

Πώς να καθαρίσετε το τμήμα του πίνακα

Πίνακας Μέρος. Σαφή() ;

Πώς να αποκτήσετε την τρέχουσα σειρά μιας ενότητας πίνακα

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

Για κανονικές φόρμες ο κώδικας θα μοιάζει με αυτό:

Στοιχεία Μορφής. Όνομα πεδίου πίνακα. Τρέχοντα Δεδομένα;

Για διαχειριζόμενες φόρμες:

Στοιχεία. Όνομα πεδίου πίνακα. Τρέχοντα Δεδομένα;

Πώς να προσθέσετε μια νέα σειρά σε μια ενότητα πίνακα

Προσθήκη νέας γραμμής στο τέλος του τμήματος του πίνακα:

NewRow = TablePart. Προσθήκη() ;

Προσθήκη νέας γραμμής οπουδήποτε στην ενότητα του πίνακα (οι επόμενες γραμμές θα μετατοπιστούν):

NewRow = TablePart. Εισαγωγή (Ευρετήριο)
//Ευρετήριο - αριθμός της γραμμής που προστέθηκε. Η αρίθμηση γραμμών ξεκινά από το μηδέν.

Νέα γραμμή. Props1 = "Αξία" ;

Πώς να συμπληρώσετε μέσω προγραμματισμού τα στοιχεία μιας σειράς πίνακα

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

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

  • Στοιχείο- περιέχει ένα στοιχείο ελέγχου TabularField.
  • Νέα γραμμή- boolean. Περιέχει αξία Αληθής, εάν προστεθεί μια νέα σειρά πίνακα και Ψέμα,εάν ο χρήστης άρχισε να επεξεργάζεται μια ήδη υπάρχουσα γραμμή.
  • αντίγραφο- boolean. Περιέχει αξία Αληθής, εάν ο χρήστης αντιγράψει τη γραμμή και Ψέμασε άλλες περιπτώσεις.

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

Διαδικασία TabularPartAtStartEditing (Στοιχείο, Νέα Γραμμή, Αντιγραφή)

//Εάν ο χρήστης επεξεργαστεί μια υπάρχουσα γραμμή, τότε δεν κάνουμε τίποτα
Αν ΟΧΙ NewRow Τότε
ΕΠΙΣΤΡΟΦΗ;
Τέλος εαν ;

//Εάν η γραμμή είναι νέα, ορίστε τον λογιστικό λογαριασμό
TechString = Στοιχείο. Τρέχοντα Δεδομένα; //Λάβετε την τρέχουσα σειρά του τμήματος πίνακα
TechString. Λογιστικά = Λογιστικά Σχέδια. Αυτοστήριγμα. Απαιτούμενος Λογαριασμός;
Τέλος Διαδικασίας

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

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

Επομένως, στο 1C, η εργασία με πίνακες κατέχει εξέχουσα θέση.

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

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

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

//Επιλογή 1 – διαδοχική πρόσβαση στα αποτελέσματα ερωτημάτων

//πάρτε το τραπέζι
Select = Query.Run().Select();
// περνάμε από όλες τις γραμμές του αποτελέσματος του ερωτήματος με τη σειρά
Ενώ Βρόχος Select.Next().
Αναφορά(Επιλογή.Όνομα);
EndCycle;

//Επιλογή 2 – μεταφόρτωση σε πίνακα τιμών
Request = New Request("SELECT Name FROM Directory.Nomenclature");
//πάρτε το τραπέζι
Πίνακας = Query.Run().Unload().
// περαιτέρω μπορούμε επίσης να κάνουμε επανάληψη σε όλες τις γραμμές
Για κάθε σειρά από τον κύκλο του πίνακα
Αναφορά(String.Name);
EndCycle;
//ή αυθαίρετη πρόσβαση σε συμβολοσειρές
Row = Table.Find("Shovel", "Name");

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

Πίνακας στη φόρμα (χοντρό πελάτη)

Ο χρήστης δουλεύει με τον πίνακα όταν αυτός τοποθετείται στη φόρμα.

Συζητήσαμε τις βασικές αρχές της εργασίας με φόρμες στο μάθημα και στο μάθημα

Λοιπόν, ας τοποθετήσουμε τον πίνακα στη φόρμα. Για να το κάνετε αυτό, μπορείτε να σύρετε τον πίνακα από τον πίνακα ελέγχου. Ομοίως, μπορείτε να επιλέξετε Form/Insert Control από το μενού.

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

Κάντε κλικ στο κουμπί "..." στην ιδιότητα Δεδομένα. Για να δείτε τη λίστα των τμημάτων σε πίνακα, πρέπει να αναπτύξετε τον κλάδο Αντικείμενο.

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

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

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

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

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

Για να διαχειριστείτε τον πίνακα, πρέπει να εμφανίσετε έναν πίνακα εντολών στη φόρμα. Επιλέξτε το στοιχείο μενού Form/Insert Control/Command Bar.

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

Πίνακας φόρμας (λεπτός/διαχειριζόμενος πελάτης)

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

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

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

Στη συνέχεια, σύρετε επίσης τον πίνακα προς τα αριστερά.

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

Μεταφόρτωση πίνακα στο Excel

Οποιοσδήποτε πίνακας 1C που βρίσκεται στη φόρμα μπορεί να εκτυπωθεί ή να μεταφορτωθεί στο Excel.

Για να το κάνετε αυτό, κάντε δεξί κλικ ελεύθερος χώροςστον πίνακα και επιλέξτε Λίστα.

Σε έναν διαχειριζόμενο (λεπτό) πελάτη, παρόμοιες ενέργειες μπορούν να εκτελεστούν χρησιμοποιώντας το στοιχείο μενού Όλες οι ενέργειες/Λίστα εμφάνισης.

Αρχική σελίδα Για αρχάριους προγραμματιστές Εκμάθηση προγραμματισμού

Πώς να λάβετε δεδομένα από το τμήμα του πίνακα των εγγράφων;

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

Για να το κάνετε αυτό, μπορείτε να χρησιμοποιήσετε ένα αίτημα με το ακόλουθο κείμενο:

ΕΠΙΛΕΞΤΕ ΔΙΑΦΟΡΕΣ Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά Ονοματολογία AS Ονοματολογία ΑΠΟ Έγγραφο Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά AS Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά

Ως πηγή αναφέρουμε το πινακοποιημένο μέρος των εγγράφων - πίνακα Έγγραφο Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά. Δηλώνουμε το πεδίο εξόδου ως το πεδίο Ονοματολογία, το οποίο είναι μέρος του πίνακα προέλευσης. Επιπλέον, δεδομένου ότι το ίδιο προϊόν, φυσικά, θα μπορούσε να υπάρχει περισσότερες από μία φορές στα έγγραφα, χρησιμοποιούμε ΔΙΑΦΟΡΟΣγια να λάβετε μόνο τις διακριτές σειρές στον πίνακα εξόδου ερωτήματος.

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

Για να περιορίσουμε την επιλογή των στοιχείων μόνο σε στοιχεία από το τμήμα πίνακα ενός συγκεκριμένου εγγράφου, χρησιμοποιούμε την παράμετρο Σύνδεσμοςστην κατάσταση στο αίτημα ( ΟΠΟΥ...):

ΕΠΙΛΕΞΤΕ ΔΙΑΦΟΡΕΣ Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά Ονοματολογία AS Ονοματολογία ΑΠΟ Έγγραφο Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά ΠΩΣ Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά ΠΟΥ Πωλήσεις Αγαθών και Υπηρεσιών Αγαθά Σύνδεσμος = &Σύνδεσμος




Μπλουζα