Εξωτερικά αρχεία υπολογιστικών φύλλων.

Γεια Khabravchans!

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

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


Ως γλώσσα που θα ενσωματωθεί με το 1C, επέλεξα την Python. Είναι πολύ κατάλληλο για αυτοματοποίηση διαδικασιών. Αυτό διευκολύνεται από τη μινιμαλιστική σύνταξη (ο κώδικας πληκτρολογείται πολύ γρήγορα), η πλούσια τυπική βιβλιοθήκη (λιγότερη ανάγκη για ενότητες τρίτων), η cross-platform - με μεγάλη πιθανότητα, ο κώδικας που είναι γραμμένος στο Linix OS θα λειτουργήσει με επιτυχία στο Windows.

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

Μόλις στον οργανισμό υπήρχε ένα πρόγραμμα γραμμένο στους Δελφούς και χρησιμοποιούσε το MSSQL / Firebird ως βάση δεδομένων. Σε εκείνες τις ένδοξες εποχές, ήταν δυνατή η σύνδεση στη βάση δεδομένων χρησιμοποιώντας οποιαδήποτε γλώσσα και η εκτέλεση πολλών ενεργειών - επιλέξτε συνδρομητές οφειλετών, λαμβανόμενες πληρωμές μετάδοσης, καταγραφή αναγνώσεων μέσων. Δεν αποτελεί έκπληξη το γεγονός ότι η συλλογή σεναρίων που αυτοματοποιούν τη ρουτίνα αυξάνεται συνεχώς. Οι προγραμματιστές μπορούσαν να εκτελέσουν οποιαδήποτε ενέργεια χωρίς να ανοίξουν το ίδιο το πρόγραμμα.

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

Τα κύρια καθήκοντα που αντιμετώπισα ήταν η δυνατότητα γρήγορης απόκτησης δεδομένων για ένα συγκεκριμένο ΠΡΟΣΩΠΙΚΟΣ ΛΟΓΑΡΙΑΣΜΟΣ- Πλήρες όνομα, διεύθυνση, συσκευές μέτρησης, ενδείξεις οργάνων, πληρωμές, χρεώσεις. Επιπλέον, ο σχηματισμός εγγράφων - μια πράξη συμφιλίωσης, απόδειξη πληρωμής. Έτσι, δεν υπάρχει δυνατότητα άμεσης σύνδεσης με τη βάση δεδομένων - όλοι όσοι έψαξαν μέσα από τη βάση δεδομένων 1C στον διακομιστή SQL είδαν ότι ήταν δύσκολο να το καταλάβουν στη μάζα των πινάκων όπως aaa1, aaa2. Και η δημιουργία ερωτημάτων με τέτοια ονόματα πινάκων και πεδίων είναι απλώς μη ρεαλιστική. Επιπλέον, πολλά τραπέζια 1C (ειδικά τα πιο σημαντικά, όπως το κόψιμο του τελευταίου, οι ισορροπίες και οι περιστροφές) είναι εικονικά και είναι διάσπαρτα σε διαφορετικούς φυσικούς πίνακες, συγκεντρώνονται σε πολλαπλές ενώσεις. Αυτή η μέθοδος δεν είναι κατάλληλη.

Η πλατφόρμα 1C παρέχει τη δυνατότητα σύνδεσης σε αυτήν μέσω σύνδεσης COM. Όπως πολλά προγράμματα Windows, κατά την εγκατάσταση του 1C, δύο αντικείμενα COM καταχωρούνται στο σύστημα - Διακομιστής Αυτοματισμού και Σύνδεση COM. Μπορείτε να εργαστείτε και με τα δύο αντικείμενα χρησιμοποιώντας μια γλώσσα που υποστηρίζει την τεχνολογία COM.

Το αντικείμενο Automation Server είναι μια εφαρμογή 1C που δεν διαφέρει σχεδόν από μια κανονική εφαρμογή πελάτη. Η διαφορά είναι ότι επιπλέον υπάρχει η δυνατότητα προγραμματικού ελέγχου του στιγμιότυπου της εφαρμογής. Όταν εργάζεστε με το αντικείμενο COM Connector, εκκινείται μια ελαφριά έκδοση της εφαρμογής 1C, στην οποία δεν υπάρχουν διαθέσιμες φόρμες, καθώς και λειτουργίες και μέθοδοι που σχετίζονται με τη διεπαφή και οπτικά εφέ. Η ίδια η εφαρμογή ξεκινά στη λειτουργία "Εξωτερική σύνδεση". Αρχικοποίηση καθολικών μεταβλητών (για παράδειγμα, ορισμός τρέχων χρήστηςκαι οι ρυθμίσεις του) πρέπει να εκτελούνται στη μονάδα εξωτερικής σύνδεσης 1C. Εάν σε λειτουργία εξωτερικής σύνδεσης καλείται μια συνάρτηση στον κώδικα που δεν είναι διαθέσιμη σε αυτήν τη λειτουργία, θα δημιουργηθεί μια εξαίρεση (η οποία θα περάσει στο σενάριο python μας). Οι κλήσεις σε μη ασφαλείς λειτουργίες πρέπει να πλαισιώνονται με κατασκευές της φόρμας

#If NOT OuterConnection Τότε Προειδοποίηση("Hello!"); #Τέλος εαν

Δεδομένου ότι η εργασία με αντικείμενα COM είναι μια τεχνολογία μόνο για Windows, δεν προκαλεί έκπληξη το γεγονός ότι δεν περιλαμβάνεται στην τυπική διανομή Python. Θα χρειαστεί να εγκαταστήσετε μια επέκταση - ένα σύνολο λειτουργιών που παρέχουν όλες τις απαραίτητες λειτουργίες για προγραμματισμό στα Windows σε Python. Μπορεί να γίνει λήψη ως ήδη συναρμολογημένο πρόγραμμα εγκατάστασης exe. Η ίδια η επέκταση παρέχει πρόσβαση στο μητρώο, τις υπηρεσίες, τα αντικείμενα ODBC, COM και ούτω καθεξής. Εναλλακτικά, μπορείτε να εγκαταστήσετε αμέσως τη διανομή ActiveState Python, στην οποία η επέκταση Win32 βγαίνει από το κουτί.

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

Η σύνδεση COM είναι αργή. Η χαμηλή απόδοση είναι ένα γνωστό μείον της τεχνολογίας COM.
- Η διαδικασία δημιουργίας σύνδεσης με το 1C, ανάλογα με τη διαμόρφωση, μπορεί να διαρκέσει από 1 έως 8 δευτερόλεπτα (στην περίπτωσή μου - 6 δευτερόλεπτα). Περιττό να πούμε ότι η δημιουργία μιας σύνδεσης για κάθε αίτημα θα έχει ως αποτέλεσμα τη φόρτωση κάθε σελίδας σε 8 δευτερόλεπτα.
- Εφόσον οι εφαρμογές ιστού python λειτουργούν ως ανεξάρτητοι διακομιστές, το προηγούμενο σημείο μπορεί να αντισταθμιστεί με την αποθήκευση της σύνδεσης σε κάποια καθολική μεταβλητή και την επαναφορά της σε περίπτωση σφάλματος. Πώς να διατηρήσω μια σύνδεση στην PHP, ειλικρινά, δεν έχω σκεφτεί ακόμα.
- Χαμένη διαδικτυακή εφαρμογή πολλαπλών πλατφορμών.

Με βάση τα σημεία που αναφέρονται παραπάνω, αποφασίστηκε να αλλάξει η αρχή της αλληλεπίδρασης, χωρίζοντάς την σε 2 μέρη - το πρώτο εξαρτάται από την πλατφόρμα (Windows), εκφορτώνοντας δεδομένα 1C σε οποιαδήποτε βολική μορφή και το δεύτερο, ανεξάρτητο από πλατφόρμα, ικανό εργασία με δεδομένα χωρίς να υποψιάζεστε τίποτα για το 1C κατ' αρχήν.

Η στρατηγική δράσης είναι η εξής: το σενάριο python συνδέεται στο 1C, εκτελεί τα απαραίτητα ερωτήματα και ανεβάζει τα δεδομένα στη βάση δεδομένων SQLite. Μπορείτε να συνδεθείτε σε αυτή τη βάση δεδομένων από Python, PHP, Java. Τα περισσότερα από τα έργα μας είναι σε python και επειδή μισώ να γράφω ακατέργαστα ερωτήματα SQL με το χέρι, όλη η εργασία με τη βάση δεδομένων SQLite γίνεται μέσω του SQLAlchemy ORM. Ήταν απαραίτητο μόνο να περιγραφεί η δομή δεδομένων της βάσης δεδομένων σε δηλωτικό στυλ:

Από sqlalchemy.ext.declarative εισαγωγή declarative_base από sqlalchemy εισαγωγή Στήλη, Ακέραιος, Αριθμητικός, ΗμερομηνίαΏρα, Unicode, Boolean, LargeBinary, ForeignKey Base = declarative_base() κλάση Abonent(Base): __tablename__" = "idgername__" = "idgername__" = "ingeritum" True) account = Column(Unicode(32), index=True) code = Column(Unicode(32)) address = Column(Unicode(512)) fio = Column(Unicode(256)) source = Column(Unicode(16)) ) psu = Column(Unicode(256)) tso = Column(Unicode(256)) np = Column(Unicode(256)) street = Column(Unicode(256)) house = Column(Integer) flat = Column(Integer) mro = Στήλη(Unicode(256)) class Payment(Base): __tablename__ = "πληρωμές" # και ούτω καθεξής...

Τώρα αρκεί να εισαγάγετε αυτήν την ενότητα σε οποιοδήποτε έργο python και μπορείτε να εργαστείτε με τα δεδομένα.

Προβλέπω την ερώτησή σας - "γιατί SQLite"; Ο κύριος λόγος είναι ότι η βάση δεδομένων χρειάζεται μόνο για ανάγνωση, επομένως δεν πρέπει να ανησυχούμε για προβλήματα με την εγγραφή στο SQLite. Δεύτερον, η μορφή αυτού του DBMS είναι βολική - είναι πιο βολικό να το προβάλετε (υπάρχουν πολλά δωρεάν βοηθητικά προγράμματα, συμπεριλαμβανομένης μιας σούπερ επέκτασης για το FireFox). Τρίτον, σε ορισμένες περιπτώσεις απαιτήθηκε η πρόσβαση σε συνδρομητές από τα μηχανήματα στα οποία δεν υπάρχει σύνδεση με τον διακομιστή MySQL. Σε αυτήν την περίπτωση, αρκεί να αντιγράψετε το αρχείο βάσης δεδομένων SQLite και σε αυτό το μηχάνημα θα έχετε πρόσβαση σε όλες τις πληροφορίες.

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

Η εργασία με αντικείμενα COM στην Python είναι λίγο ασυνήθιστη. Πρώτον, η "πυθωνικότητα" του κώδικα χάνεται - οι κανόνες για την ονομασία μεταβλητών και συναρτήσεων στο 1C, για να το θέσω ήπια, δεν αντιστοιχούν στο Zen της Python. Δεύτερον, όλοι γνωρίζουν ότι τα αντικείμενα 1C ονομάζονται συχνά κυριλλικοί χαρακτήρες, κάτι που θα προκαλέσει προβλήματα κατά την ανάπτυξη σε Python ... αλλά είναι επιλύσιμα. Σας προτείνω να ρίξετε μια ματιά στον κώδικα:

Εισαγωγή pythoncom εισαγωγή win32com.client V82_CONN_STRING = "Srvr=v8_server;Ref=v8_db;Usr=username;Pwd=megapass;" pythoncom.CoInitialize() V82 = win32com.client.Dispatch("V82.COMConnector").Connect(V82_CONN_STRING)

Όπως μπορείτε να δείτε από τον κώδικα, ο πελάτης προετοιμάζεται για να λειτουργεί με το 1C. Το αντικείμενο COM ορίζεται με το όνομα "V82.COMConnector". Λάβετε υπόψη ότι αυτό το όνομα ισχύει για την πλατφόρμα V8.2, εάν έχετε την έκδοση 8.1, τότε το όνομα θα είναι "V81.COMConnector".

Στον αρχικοποιημένο πελάτη, καλούμε τη μέθοδο Connect(), μεταβιβάζοντάς της τη συμβολοσειρά σύνδεσης. Η συμβολοσειρά αποτελείται από το όνομα διακομιστή, τη βάση δεδομένων, τον χρήστη και τον κωδικό πρόσβασης. Το αντικείμενο V82 που προκύπτει αποθηκεύει τη σύνδεση με την εφαρμογή 1C. Δεν έχει μέθοδο Disconnect() ή κάτι παρόμοιο. Για να αποσυνδεθείτε από τη βάση, αρκεί να αφαιρέσετε το αντικείμενο από τη μνήμη με τη συνάρτηση del () ή να αντιστοιχίσετε τη μεταβλητή στο None.

Έχοντας ένα αντικείμενο, μπορείτε να αποκτήσετε πρόσβαση σε οποιαδήποτε πεδία και μεθόδους του παγκόσμιου περιβάλλοντος 1C, να λειτουργήσετε με καθολικά αντικείμενα όπως TabularDocument, TableValues ​​κ.λπ. Είναι σημαντικό να σημειωθεί ότι όταν εργάζεστε μέσω μιας σύνδεσης COM, το 1C λειτουργεί στη λειτουργία "Εξωτερική σύνδεση". Δεν περιλαμβάνει καμία δυνατότητα για διαδραστική εργασία, όπως αναδυόμενα παράθυρα διαλόγου, ειδοποιήσεις και, κυρίως, φόρμες. Είμαι βέβαιος ότι θα καταριέσετε τους προγραμματιστές διαμόρφωσης περισσότερες από μία φορές για την αναδίπλωση της πιο σημαντικής λειτουργικότητας στη διαδικασία Button1Press() στη λειτουργική μονάδα φόρμας εγγράφου.

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

Set Con = CreateObject("v81.COMConnector") Set v8 =Con.Connect("Connection string") Set AccountsManager = v8.Documents.Accounts.... Ορισμός AccountsRecord= AccountsManager.CreateItem() AccountsRecord.Account = ... .... AccountsWrite.Write()

Στη συνέχεια, ο κώδικας της python απλά θα καταρρεύσει με ένα Συντακτικό Σφάλμα. Τι να κάνω? Επεξεργασία διαμόρφωσης; Όχι, απλώς χρησιμοποιήστε τις μεθόδους getattr και setattr. Περνώντας ένα αντικείμενο COM και ένα όνομα κυριλλικού χαρακτηριστικού σε αυτές τις συναρτήσεις, μπορείτε να λάβετε και να ορίσετε τιμές ανάλογα:

#coding=cp1251 catalog = getattr(V82.Catalogs, "PersonalAccounts")

Τα ακόλουθα είναι σημαντικά: τα ονόματα χαρακτηριστικών, καθώς και οι παράμετροι συναρτήσεων και μεθόδων, πρέπει να μεταβιβάζονται στην κωδικοποίηση cp1251. Επομένως, για να αποφευχθεί η σύγχυση κωδικοποίησης εκ των προτέρων, είναι λογικό να το δηλώσετε στην αρχή του αρχείου: #coding=cp1251. Μετά από αυτό, μπορείτε να περάσετε συμβολοσειρές χωρίς να ανησυχείτε για την κωδικοποίησή τους. Αλλά! Όλες οι συμβολοσειρές που λαμβάνονται από το 1C (αποτελέσματα κλήσεων συναρτήσεων, αιτήματα) θα κωδικοποιηθούν σε UTF-8.

Ένα παράδειγμα κώδικα που εκτελεί ένα ερώτημα στο περιβάλλον 1C, επαναλαμβάνει το αποτέλεσμα και αποθηκεύει τη βάση δεδομένων στο SQLite:

#coding=cp1251 q = """ SELECT PersonalAccounts.Code AS code, PersonalAccounts.Building.Location.Name + ", " + PersonalAccounts.ShortAddress AS address, PersonalAccounts.Subscriber.Name AS fio, PersonalAccounts,PersonalAccounts.AS. EXPRESS(CharacteristicsPersonalAccountsSliceLast.Value AS Directory.Territorial GridOrganizations).Name AS tso, PersonalAccounts.Building.Settlement.Name AS np,PersonalAccounts.Building.StreetAsccountAscounters. Dression. Retor. Όνομα ως mro από ένα βιβλίο αναφοράς. Litsenation ως λογαριασμό προσώπου της αριστερής σύνδεσης του μητρώου. Χαρακτηριστικά της σηματοδότησης. Διαστήματα (, vidicapiterism = τιμή (βιβλίο αναφοράς. Vidcharacteric - grinding orthoganization)) ως χαρακτηριστικά του έκθεση. = V82.NewObject( "Query", q) selection = query.Execute().Choose() CONN = db.connect() CONN.query(models.Abonent).delete() while selection.Next(): abonent = models.Abonent() abonent.account = selection.code.strip() abonent.code = selection.code abonent.fio = selection.fio abonent.address = selection.address abonent.psu = selection.psu abonent.tso = επιλογή.tso abonent.πηγή = u"ASRN" abonent.np = επιλογή.np abonent.street = selection.street abonent.house = επιλογή.σπίτι abonent.flat = επιλογή.flat abonent.mro = επιλογή.mro CONN.add(abonent) CONN.commit()

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

Όταν εργάζομαι με αιτήματα, ανακάλυψα τους ακόλουθους κανόνες.

Όταν επιλέγετε πεδία, δώστε τους λατινικά ονόματα, θα είναι πολύ πιο βολικό να έχετε πρόσβαση σε αυτά μέσω ενός επιλογέα (dot), αντί του getattr().
- Επιλέξτε μόνο πρωτόγονους τύπους δεδομένων: συμβολοσειρές, αριθμούς, ημερομηνίες και booleans. Μην επιλέγετε ποτέ συνδέσμους προς ένα αντικείμενο (έγγραφο, κατάλογος)! Σε αυτό το πλαίσιο, δεν χρειάζεστε απολύτως αναφορές και είναι ακόμη και επιβλαβείς, επειδή οποιαδήποτε πρόσβαση στο χαρακτηριστικό ή στη μέθοδο της αναφοράς θα οδηγήσει σε αίτημα μέσω σύνδεσης COM. Εάν αποκτήσετε πρόσβαση στα χαρακτηριστικά συνδέσμου σε βρόχο, θα είναι εξαιρετικά αργή.
- Εάν επιλέξετε ένα πεδίο Ημερομηνία, θα επιστραφεί ως αντικείμενο PyTime. Αυτό ειδικού τύπουδεδομένα για τη μεταφορά ημερομηνίας-ώρας σε σύνδεση COM. Δεν είναι τόσο βολικό να δουλεύεις μαζί του όσο με τη συνηθισμένη ώρα ημερομηνίας. Εάν μεταβιβάσετε αυτό το αντικείμενο στην int(), τότε θα επιστραφεί ένα timestamp, από το οποίο μπορείτε στη συνέχεια να λάβετε datetime χρησιμοποιώντας τη μέθοδο fromtimestamp().

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

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

Link = getattr(V82.Catalogs, "SystemReports").FindByDescription("Elen's Verification Act") nav_url = V82.GetURL(link, "Report") name = V82.ExternalReports.Connect(nav_url) ExternalReport = V82.ExternalReports. (όνομα) setattr(ExternalReport, "PersonalAccount", αναφορά) table_doc = ExternalReport.GetDoc() path = V82.GetTempFileName("xls") table_doc.Write(path, V82 .SpreadsheetDocumentFileType report.XLS) αναφορά =αναφορά .account = reference.Code.strip() report.type = u"act" report.document = open(path, "rb").read() CONN.add(report)

Το παραπάνω απόσπασμα κάνει τα εξής. Η επεξεργασία που σχηματίζει το έγγραφο συνδέεται. Η επεξεργασία μπορεί να ενσωματωθεί στη διαμόρφωση, να αποθηκευτεί στο δίσκο ή σε μια βάση δεδομένων 1C (σε κάποιο είδος καταλόγου). Δεδομένου ότι η επεξεργασία αλλάζει συχνά, για να μην ενημερώνεται η διαμόρφωση κάθε φορά, η επεξεργασία που αλλάζει πιο συχνά αποθηκεύεται στον κατάλογο "ReportsSystem", στο χαρακτηριστικό του τύπου "value storage" με το όνομα Report. Η επεξεργασία μπορεί να αρχικοποιηθεί με την εκφόρτωσή της από τη βάση δεδομένων στο δίσκο και τη φόρτωσή της ή με τη μέθοδο GetURL(), στην οποία πρέπει να περάσετε έναν σύνδεσμο προς το στοιχείο καταλόγου και το όνομα του χαρακτηριστικού. Εκχωρούμε τιμές χαρακτηριστικών στο αντικείμενο επεξεργασίας που προκύπτει, καλούμε την εξαγόμενη συνάρτηση GetDoc() και λαμβάνουμε ένα έγγραφο υπολογιστικού φύλλου που αποθηκεύεται σε ένα προσωρινό αρχείο Excel. Το περιεχόμενο αυτού του αρχείου εγγράφεται στη βάση δεδομένων SQlite.

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

#coding=cp1251 acts = getattr(V82.Documents, "Act of Making Testimonies") act = acts.CreateDocument() setattr(act, "Indication", 1024.23) setattr(act, "Subscriber", "Ivanov") # Filling σε άλλες λεπτομέρειες... δράσε. Γράψε()
Τώρα η εισαγωγή δεδομένων είναι αυτοματοποιημένη.

Έτσι, περιέγραψα μια μέθοδο που βασίζεται στη μεταφόρτωση και λήψη δεδομένων μέσω προγραμματισμού χρησιμοποιώντας μια σύνδεση COM. Αυτή η μέθοδος λειτουργεί με επιτυχία στον οργανισμό μου εδώ και σχεδόν ένα χρόνο. Η βάση, που σχηματίζεται από το 1C, εξυπηρετεί 3 συστήματα πληρωμών, απόκτηση Διαδικτύου (πληρωμή με κάρτες μέσω Διαδικτύου), καθώς και έναν προσωπικό λογαριασμό. Επιπλέον, διάφορα σενάρια συνδέονται στη βάση δεδομένων για την αυτοματοποίηση της ρουτίνας.

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

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

Εύχομαι σε όλους καλή τύχη και να θυμάστε ότι το 1C δεν είναι τόσο τρομακτικό όσο είναι βαμμένο!

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

Το παρακάτω στιγμιότυπο οθόνης δείχνει το κύριο παράθυρο του προγράμματος.

Αξιοποίηση Ευκαιριών Automation Client/Server, μπορούμε να συνδεθούμε στη βάση πληροφοριών 1C:Enterprise 8.x από οποιαδήποτε εφαρμογή και να λάβουμε τα απαραίτητα δεδομένα. Επιπλέον, χρησιμοποιώντας τις δυνατότητες του .NET Framework, μπορούμε να χρησιμοποιήσουμε τη σύνταξη της γλώσσας προγραμματισμού της πλατφόρμας για να εργαστούμε μέσω του αντικειμένου COM της σύνδεσης.

Πριν προχωρήσουμε απευθείας στην υλοποίηση του προγράμματος, ας δούμε μερικές χρήσιμες δυνατότητες του .NET 4.x που διευκολύνουν την εργασία με το Automation Client/Server.

.NET 4.x και τον τύπο "δυναμικό".

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

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

Δεν σου θυμίζει τίποτα; Ο κώδικας περιέχει κυριλλικό και μοιάζει πολύ με τη σύνταξη της γλώσσας προγραμματισμού της πλατφόρμας.

Εκτέλεση

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

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

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

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


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

Αποτελέσματα

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

8.41 Κατά τον καθορισμό του τύπου μιας ιδιότητας αντικειμένουXDTO οι πληροφορίες τύπου περιλαμβάνουν:

1. πληκτρολογήστε μόνο όνομα

2. πληκτρολογήστε όνομα και όνομα χώρου ονομάτων

3. πληκτρολογήστε όνομα και όνομα πακέτου XDTO

4. πληκτρολογήστε όνομα και όνομα εργοστασίου XDTO

8.42 ΔιευθυντήςΙΣΤΟΣ οι υπηρεσίες λύνουν το πρόβλημα:

1. διαχείριση μιας δεξαμενής συνδέσεων με βάσεις πληροφοριών

2. υποστήριξη για περιγραφές υπηρεσιών WSDL, υλοποίηση του πρωτοκόλλου SOAP

3. Υποστήριξη εφαρμογών WEB

4. σωστές απαντήσεις 1,2

5. σωστές απαντήσεις 2.3

6. Οι απαντήσεις 1,2,3 είναι σωστές

8.43 Αντικείμενο διαμόρφωσης" ΕΜΕΙΣ.To service" χρησιμοποιείται για:

2. Οργάνωση πρόσβασης σε διαδικτυακές υπηρεσίες με στατικό σύνδεσμο

3. λειτουργικότητα εξαγωγής αυτής της βάσης πληροφοριών

8.44 Αντικείμενο διαμόρφωσης" WSΣύνδεσμος"χρησιμοποιείται για:

1. οργάνωση δυναμικής πρόσβασης σε υπηρεσίες web

2. οργάνωση προσφυγών σειστός-υπηρεσίες αλλά στατική σύνδεση

3. λειτουργικότητα εξαγωγής αυτής της βάσης πληροφοριών

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

4. Στοιχείο XML

5. αντικείμενο ή αξίαXDTO

6. Οι απαντήσεις 1, 2, 3 είναι σωστές

8.46 Όταν αναφέρεται σεΙΣΤΟΣ υπηρεσία με στατικό σύνδεσμο, η ακολουθία των ενεργειών είναι η εξής:

1. λήψη περιγραφών wsdl, ρύθμιση σύνδεσης (δημιουργία διακομιστή μεσολάβησης), κλήση λειτουργίας υπηρεσίας

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

8.47 Όταν αναφέρεται σεΙΣΤΟΣ υπηρεσία μέσω δυναμικής σύνδεσης, η ακολουθία των ενεργειών είναι η εξής:

1. λήψηwsdl περιγραφές, ρύθμιση σύνδεσης (δημιουργία διακομιστή μεσολάβησης), πρόσβαση σε λειτουργία υπηρεσίας

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

3. λειτουργία κλήσης σε υπηρεσία

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

4. Στοιχείο XML

5. αντικείμενο ή αξίαXDTO

6. Οι απαντήσεις 1,2,3 είναι σωστές

8.49 Πώς μπορείτε να προσδιορίσετε ποια σχέδια ανταλλαγής για ένα συγκεκριμένο αντικείμενο εφαρμογής καθορίζουν την αυτόματη εγγραφή;

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

2. Καλώντας το παράθυρο "Παλέτα Ιδιοτήτων" για το δεδομένο αντικείμενο

3. Καλώντας το παράθυρο "Πρόσθετα" για αυτό το αντικείμενο (καρτέλα "Σχέδια ανταλλαγής")

4. Όλα τα παραπάνω ισχύουν

5. Οι απαντήσεις 1 και 3 είναι σωστές

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

1. αντικείμενα, κατά την αλλαγή των οποίων αυτό το αντικείμενο πρέπει να μπει στην ανταλλαγή

2. αντικείμενα που πρέπει να ανταλλάσσονται όταν αλλάζει αυτό το αντικείμενο

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

4. σχέδια ανταλλαγής που θα λαμβάνουν υπόψη τις αλλαγές σε αυτό το αντικείμενο

8.51 ΕπιμέλειαOLE- τα αντικείμενα πραγματοποιούνται:

1. Πρόγραμμα επεξεργασίας υπολογιστικών φύλλων ενσωματωμένο στην πλατφόρμα

2. Ο επεξεργαστής αντικειμένων OLE ενσωματωμένος στην πλατφόρμα

3. Εφαρμογή που σχετίζεται μεOLE-αντικείμενο

8.52 Εξωτερικά αρχείαέγγραφα υπολογιστικού φύλλου:

1. Έχετε επέκταση XML

2. Να υπάρχει επέκτασηMXL

3. Μπορεί να έχει οποιαδήποτε επέκταση

4. Δεν υπάρχουν. Όλα τα έγγραφα υπολογιστικού φύλλου είναι ενσωματωμένα στη Διαμόρφωση

8.53 Αυτοματοποίηση-διακομιστής "1C:Enterprise 8"...

1. παρέχει πρόσβαση σε όλες τις ιδιότητες και τις μεθόδους του παγκόσμιου πλαισίου του

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

3. σας επιτρέπει να διαχειρίζεστε την εφαρμογή του συστήματος 1C:Enterprise8 από άλλες εφαρμογές, καθώς και να εκτελείτε ενέργειες παρόμοιες με τις διαδραστικές

4. όλες οι απαντήσεις που δίνονται είναι σωστές

1. αδύνατο

2. υλοποιείται εξ ολοκλήρου σε λογισμικό

3. υλοποιείται χρησιμοποιώντας το αντικείμενο διαμόρφωσης "Σχέδια ανταλλαγής".

4. υλοποιείται από τον οδηγό ανταλλαγής που είναι ενσωματωμένος στην πλατφόρμα

9. Συντήρηση λύσης εφαρμογής

9.1 Ποια είναι η σειρά με την οποία εγκαθίστανται η πλατφόρμα και η διαμόρφωση;

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

2. Πρέπει πρώτα να εγκαταστήσετε τη διαμόρφωση και μετά την πλατφόρμα

3. Η σειρά εγκατάστασης δεν έχει σημασία

9.2 Κανονική εγκατάσταση της πλατφόρμας "1C:Enterprise 8"...

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

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

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

4. περιλαμβάνει την εγκατάσταση μιας τοπικής έκδοσης για έναν χρήστη

9.3 Τι πρέπει να γίνει για την ενημέρωση της τεχνολογικής πλατφόρμας κατά τη διάρκεια μιας κανονικής εγκατάστασης του 1C:Enterprise;

1. Στη λειτουργία διαμόρφωσης, καθορίστε το αρχείο ενημέρωσης

2. Εκτελέστε το πρόγραμμα εγκατάστασης που περιλαμβάνεται στη διανομή

3. Καθορίστε το αρχείο παράδοσης στη λειτουργία διαμόρφωσης

9.4 Διοικητική εγκατάσταση...

1. περιλαμβάνει την εγκατάσταση της πλατφόρμας σε κάθε υπολογιστή χρήστη ξεχωριστά

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

3. περιλαμβάνει την εγκατάσταση της διαμόρφωσης στον διακομιστή 1C:Enterprise, με τον ορισμό ενός χρήστη με δικαιώματα πρόσβασης διαχειριστή

9.5 Κατά την ενημέρωση της τεχνολογικής πλατφόρμας κατά τη διοικητική εγκατάσταση του 1C:Enterprise...

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

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

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

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

9.6 Είναι δυνατόν κατά τη διάρκεια μιας κανονικής εγκατάστασης του 1C: Enterprise in έκδοση πελάτη-διακομιστή, εργασία εφαρμογών πελάτη και διακομιστή διαφορετικών εκδόσεων της τεχνολογικής πλατφόρμας;

1. Επιτρέπεται

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

3. Επιτρέπεται, είναι απαραίτητη η ενημέρωση της εφαρμογής διακομιστή

9.7 Χρήση της λειτουργίας δέσμης...

1. Επιτρέπει την είσοδο αυτόματη λειτουργίαμεταφορτώστε/κατεβάστε, δοκιμάστε και διορθώστε τη βάση πληροφοριών

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

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

4. σωστή απάντηση I και 2

5. σωστές απαντήσεις 1,2 και 3

9.8 Επιλογές εκκίνησης από γραμμή εντολών 1C: Επιχείρηση...

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

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

3. Η Verpa απαντά εγώ και 2

4. καμία σωστή απάντηση

9.9 Τι επιτρέπει η γραμμή εντολών;

Το σύστημα 1C:Enterprise μπορεί να ξεκινήσει από μια εξωτερική εφαρμογή ως διακομιστής OLE Automation και παρέχει πρόσβαση σε όλα τα χαρακτηριστικά και τις μεθόδους του παγκόσμιο πλαίσιο(Βλ. "Πλαίσιο εκτέλεσης μονάδα λογισμικού"). Επιπλέον, ο διακομιστής 1C:Enterprise OLE διαθέτει πρόσθετες μέθοδοι, το οποίο μπορεί να χρησιμοποιηθεί για την εκτέλεση μιας ακολουθίας τελεστών ή την αξιολόγηση μιας έκφρασης που καθορίζεται στην ενσωματωμένη γλώσσα 1C:Enterprise.

Για να ξεκινήσετε το σύστημα 1C:Enterprise ως διακομιστής OLE Automation από μια εξωτερική εφαρμογή, εκτελείται η ακόλουθη σειρά ενεργειών:

  • δημιουργείται ένα αντικείμενο με αναγνωριστικό OLE:
    • V1СEnterprise.Application - έκδοση ανεξάρτητου κλειδιού.
    • V77.Application - κλειδί που εξαρτάται από την έκδοση.
    • V77S.Application - κλειδί που εξαρτάται από την έκδοση, έκδοση SQL.
    • V77L.Application - κλειδί που εξαρτάται από την έκδοση, τοπική έκδοση.
    • V77M.Application - κλειδί που εξαρτάται από την έκδοση, έκδοση δικτύου.
  • το σύστημα 1C: Enterprise αρχικοποιείται χρησιμοποιώντας τη μέθοδο Initialize.
  • Τα χαρακτηριστικά και οι μέθοδοι του συστήματος 1C:Enterprise ονομάζονται διακομιστής OLE Automation

Σχόλιο
Εφόσον το πρόγραμμα 1C:Enterprise είναι ταυτόχρονα διακομιστής OLE Automation και πελάτης OLE Automation, είναι δυνατό από το 1C:Enterprise να αποκτήσει πρόσβαση σε άλλο αντίγραφο του 1C:Enterprise (για παράδειγμα, σε άλλη διαμόρφωση) για ανταλλαγή δεδομένων. Βασικά, όλα τα σύγχρονα προϊόντα λογισμικού υποστηρίζουν τον μηχανισμό OLE Automation, αυτό ισχύει ιδιαίτερα για το MS Office, το MS FoxPro και τις εφαρμογές που είναι γραμμένες σε αυτά, το DAO κ.λπ., έτσι ώστε το πρόγραμμα 1C:Enterprise να μπορεί να ενσωματωθεί πλήρως μαζί τους
.

Σχόλιο
Οι μη τοπικές εκδόσεις εξωτερικών προγραμμάτων που έχουν πρόσβαση στο πρόγραμμα 1C:Enterprise μέσω του OLE Automation ενδέχεται να ερμηνεύουν εσφαλμένα τα ρωσικά αναγνωριστικά αντικειμένων των συγκεντρωτικών τύπων δεδομένων, για παράδειγμα, λεπτομέρειες καταλόγου. Αυτή η σημείωση δεν ισχύει για προϊόντα και προγράμματα του MS Office που χρησιμοποιούν αντικείμενα OLE ως γλώσσα για την πρόσβαση σε αντικείμενα OLE. Microsoft Visualβασικός. Συνιστάται η χρήση τοπικών εκδόσεων προϊόντα λογισμικού, ή χρησιμοποιήστε αναγνωριστικά χωρίς κυριλλικούς χαρακτήρες στη διαμόρφωση. Για πρόσβαση σε χαρακτηριστικά και μεθόδους συγκεντρωτικών τύπων δεδομένων του συστήματος 1C:Enterprise από εξωτερικές εφαρμογές, συνιστάται η χρήση των αγγλικών συνωνύμων τους
.

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

Χαρακτηριστικά του συστήματος 1C: Enterprise ως διακομιστής OLE Automation

Σύστημα 1C: Το Enterprise ως διακομιστής OLE Automation παρέχει πλήρης πρόσβασηστο δικό μου παγκόσμιο πλαίσιο(βλ. "Πλαίσιο εκτέλεσης μονάδας προγράμματος"). Επομένως, το αντικείμενο διακομιστή OLE 1C:Enterprise μπορεί να έχει ως χαρακτηριστικά του: σταθερές συστήματος, τιμές που καθορίζονται στον διαμορφωτή σταθερές, μεταγραφές, μητρώα, είδη υπολογισμού, ομάδες τύπων υπολογισμού, καθώς και μεταβλητές που δηλώνονται στην ενότητα καθολικού προγράμματος με λέξη-κλειδίΕξαγωγή.

Ερώτηση 08.13 της εξέτασης 1C: Επαγγελματίας πλατφόρμας. Για να δημιουργήσετε ένα αντικείμενο που θα χρησιμοποιηθεί από μια βάση δεδομένων 1C:Enterprise 8 για πρόσβαση σε μια άλλη βάση πληροφοριών 1C:Enterprise 8 μέσω OLE, χρησιμοποιήστε τον κατασκευαστή:

  1. Νέα βάση (InitString)
  2. Νέο OLEObject
  3. Νέο αντικείμενο COMO
  4. Η δημιουργία ενός τέτοιου αντικειμένου γίνεται με άλλα μέσα.
Η σωστή σύνταξη είναι η τρίτη

Ερώτηση 08.51 της εξέτασης 1C: Επαγγελματίας πλατφόρμας. Η επεξεργασία αντικειμένων OLE πραγματοποιείται:
  1. Ενσωματωμένος επεξεργαστής υπολογιστικών φύλλων
  2. Πλατφόρμα ενσωματωμένο πρόγραμμα επεξεργασίας αντικειμένων OLE
  3. Μια εφαρμογή που σχετίζεται με ένα αντικείμενο OLE
Η σωστή απάντηση είναι τρίτη, δείτε τον ορισμό ενός αντικειμένου OLE.
Ερώτηση 08.53 της εξέτασης 1C: Επαγγελματίας πλατφόρμας. Διακομιστής αυτοματισμού "1C:Enterprise 8"...
  1. παρέχει πρόσβαση σε όλες τις ιδιότητες και μεθόδους του παγκόσμιου πλαισίου του
  2. παρέχει πρόσβαση σε πρόσθετες ιδιότητες και μεθόδους για την εκτέλεση ενεργειών ειδικά για την εργασία σε λειτουργία Αυτοματισμού
  3. σας επιτρέπει να διαχειρίζεστε την εφαρμογή συστήματος 1C:Enterprise 8 από άλλες εφαρμογές, καθώς και να εκτελείτε ενέργειες παρόμοιες με τις διαδραστικές
  4. όλες οι απαντήσεις που δίνονται είναι σωστές
Η σωστή απάντηση είναι τέταρτη - Ο αυτοματισμός δίνει σχεδόν πλήρη πρόσβαση στην εφαρμογή.
Ερώτηση 08.10 της εξέτασης 1C: Επαγγελματίας πλατφόρμας. Σε μια διαδικασία που θα καλείται κατά τη σύνδεση σε μια βάση δεδομένων μέσω COM, δεν μπορείτε να χρησιμοποιήσετε:
  1. DocObject=Doc.CreateDocument()
  2. Form.Open()
  3. Request=Νέο αίτημα
  4. Δεν υπάρχει σωστή απάντηση
Η σωστή απάντηση είναι η δεύτερη.

Ερώτηση 08.03 της εξέτασης 1C: Επαγγελματίας πλατφόρμας. Κατά την πρόσβαση στη βάση δεδομένων 1C:Enterprise 8 μέσω OLE, εκτελείται μια διαδικασία - ο χειριστής συμβάντων "Στην αρχή του συστήματος" ορίστηκε ...

  1. στην ενότητα εφαρμογής
  2. στην εξωτερική μονάδα σύνδεσης
  3. στη γενική ενότητα
  4. στη μονάδα OLE
Η σωστή απάντηση είναι η πρώτη, το Automation βλέπει την ενότητα εφαρμογής.
Ερώτηση 08.06 της εξέτασης 1C: Επαγγελματίας πλατφόρμας. Κατά την πρόσβαση στη βάση δεδομένων 1C:Enterprise 8 μέσω του COMConnector, εκτελείται μια διαδικασία - ο χειριστής συμβάντων "Στην αρχή του συστήματος" ορίστηκε ...
  1. στην ενότητα εφαρμογής
  2. στην εξωτερική μονάδα σύνδεσης
  3. στη γενική ενότητα
  4. στη μονάδα COM
Η σωστή απάντηση είναι η δεύτερη, μόνο οι μονάδες με το χαρακτηριστικό "Εξωτερική σύνδεση" είναι διαθέσιμες για COM.

Φόρτωση...
Μπλουζα