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. Λογιστικά = Λογιστικά Σχέδια. Αυτοϋποστήριξη. Απαιτούμενος Λογαριασμός;
Τελική Διαδικασία

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

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

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

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

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

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

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

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

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

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

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

Επομένως, στο 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.

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

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

mob_info