Λήψη δεδομένων μέσω σύνδεσης com από 1s. V8: Σύνδεση COM. Λήψη και σύγκριση απαρίθμησης μέσω σύνδεσης COM

Ερώτηση: Ανάλυση τοποθεσίας χρησιμοποιώντας COM IE 11


Καλή μέρα.!
Η ερώτηση είναι επώδυνα γνωστή, πρέπει να πάρετε τις πληροφορίες από τον ιστότοπο. Υπάρχουν όμως αποχρώσεις:
1. Δεν υπάρχει τρόπος να μεταβείτε απευθείας στη σελίδα εξουσιοδότησης (πρώτα μεταβείτε στην αρχική σελίδα, κάντε κλικ στο σύνδεσμο LogIn, λάβετε τη φόρμα εξουσιοδότησης και μόνο μετά συνδεθείτε).
2. Πρέπει να επισκεφτείτε τον ιστότοπο μέσω μπαρα αναζήτησηςαναζητήστε δεδομένα, στη συνέχεια διαβάστε τα και αναζητήστε ξανά (τα δεδομένα μπορεί να είναι στα ρωσικά και στα αγγλικά, δηλαδή εάν τα δεδομένα για αναζήτηση είναι στα ρωσικά, τότε πρέπει να κάνετε αναζήτηση στη "ρωσική έκδοση" του ιστότοπου και αυτός είναι ένας άλλος σύνδεσμος σε άλλη σελίδα. Είναι το ίδιο θέμα με τα αγγλικά).

Τελικά:
- μεταβείτε στην αρχική σελίδα - συνδεθείτε - αναζητήστε δεδομένα - (μεταβείτε σε άλλη έκδοση του ιστότοπου, εάν χρειάζεται) - πάρτε το.

Πρόβλημα:
Τα δεδομένα δεν διαβάζονται στην ιδιότητα "έγγραφο" όταν ακολουθείτε έναν σύνδεσμο.
Εμφανίζεται σε δύο σημεία:
- όταν ακολουθούμε τον σύνδεσμο για να συνδεθείτε (αυτό δεν είναι κουμπί, αλλά απλώς ένας σύνδεσμος).
- όταν αλλάζουμε τη γλώσσα στον ιστότοπο (επίσης σύνδεσμος).

Σημείωση
Εάν, πριν ακολουθήσετε έναν σύνδεσμο στο στάδιο εξουσιοδότησης, λάβετε έναν σύνδεσμο, κλείσετε το com και ανοίξτε το ξανά με τη μετάβαση μέσω της μεθόδου IE.navigate("link"), τότε τα δεδομένα στην ιδιότητα "document" αποθηκεύονται κανονικά . Αλλά δεν θα μπορείτε να κάνετε το ίδιο όταν αλλάζετε τη γλώσσα στον ιστότοπο, επειδή... Πρέπει να συνδεθώ ξανά και επιπλέον δεν θα ήθελα να λύσω αυτό το πρόβλημα ακριβώς έτσι.

Εδώ είναι ο κωδικός:

&Στη διαδικασία πελάτη SetWaitingIE(IE, SecondCall=False) Εάν ΟΧΙ IE.Busy Τότε D = CurrentDate() + 3; Ενώ D >= CurrentDate() Βρόχος Αν IE.Busy Τότε Abort; τέλος εαν; EndCycle; τέλος εαν; Ενώ IE.Busy Loop EndLoop? Ενώ το IE.ReadyState< 4 Цикл КонецЦикла; Попытка Если IE.Document.ReadyState = Null Тогда IE.Refresh(); УстановитьОжиданиеИЕ(IE); КонецЕсли; Пока IE.Document.ReadyState <>"πλήρης" Κύκλος EndCycle. Εξαίρεση Αν Δεύτερη Κλήση Στη συνέχεια Επιστροφή. Else Link = IE.LocationURL; IE.Quit(); IE = GetCOM("InternetExplorer.Application"); IE.Navigate(Σύνδεσμος); SetExpectIE(IE, True); τέλος εαν; EndAttempt; EndProcedure &OnClient Function PerformUserAuthorization(IE, Σύνδεσμος, Σύνδεση, Κωδικός πρόσβασης, Authorized=False, SC=0) Attempt Elements = IE.Document.GetElementsByName("όνομα χρήστη"); Αν Elements.Length = 1 Τότε για κάθε El Of Elements Loop El.Value = Σύνδεση; EndCycle; τέλος εαν; Elements = IE.Document.GetElementsByName("password"); Αν Elements.Length = 1 Τότε για κάθε El Of Elements Loop El.Value = Password; EndCycle; τέλος εαν; IE.Document.GetElementById("ID").Κάντε κλικ(); SetWaitingIE(IE); Εξουσιοδοτημένο = Αληθινό; Εξαίρεση Εάν ΣΟ > 3 Τότε Return False. τέλος εαν; IE.Quit(); IE.Navigate(Σύνδεσμος); SetWaitingIE(IE); MF = MF + 1; Εάν PerformUserAuthorization (IE, Σύνδεσμος, Σύνδεση, Κωδικός πρόσβασης, SCH) Στη συνέχεια, επιστρέψτε True. τέλος εαν; EndAttempt; Επιστροφή Εξουσιοδοτημένο? EndFunction &OnClient Διαδικασία Upload(Command) SpTables = GetListTablesForUpload(); Αν SpTables = False Τότε Return; τέλος εαν; IE = GetCOM("InternetExplorer.Application"); Για κάθε σειρά από SpTable.SOURCE_LIST Κύκλος RA = Row.ID; Resource = String.RESOURCE; IE.Navigate(Resource); SetWaitingIE(IE); Δοκιμάστε If Line.NEW_PAGE_IN_LOGIN = 1 Τότε Classes = IE.Document.GetElementsByClassName("ClassName"); Αν Classes.Length = 1 Τότε για κάθε κλάση From Classes Loop Resource = Class.All(0).Href; Αμβλώνω; EndCycle; Δοκιμάζοντας το IE.Quit(); IE = IE.Navigate(Resource); SetWaitingIE(IE); Exception Report("Η σύνδεση με τον ιστότοπο "" +String.NAME + "" απέτυχε!"); Αμβλώνω; EndAttempt; Διαφορετικά Report("Η σύνδεση με τον ιστότοπο "" +String.NAME + "" απέτυχε!"); Αμβλώνω; τέλος εαν; τέλος εαν; Αν NOT PerformUserAuthorization(IE, Resource, String.LOGIN, String.PASSWORD) Στη συνέχεια Report("Η εξουσιοδότηση χρήστη στον ιστότοπο "" + String.NAME + "" δεν έχει ολοκληρωθεί!"); Αμβλώνω; τέλος εαν; Πόρος = IE.LocationURL; List of Persons = SpTable.FACE_CODES.FindLines(New Structure("SOURCE", RA)); ListNotFound = Νέα Συστοιχία; Για κάθε άτομο από τη λίστα προσώπων Κύκλος PersonName = Person.NAME_IN_SITE; Αυτό είναι Ρωσικό = CharacterCode(PersonName, 1) >= 1040; TechResource = ?(Αυτό είναι ρωσικό, StrReplace(Resource, "en_US", "ru_RU"), StrReplace(Resource, "ru_RU", "en_US")); Αν TekResurs<>IE.LocationURL Στη συνέχεια RootClasses = IE.Document.GetElementsByClassName("ClassName"); Αν RootClasses.Length = 1 Τότε για κάθε RootClass From RootClasses Loop Classes = RootClass.Children; Αμβλώνω; EndCycle; AmGroup = Λάθος; RuGroup = Λάθος; Για κάθε κλάση από τάξεις βρόχος Εάν HPreg(Class.ClassName) = "dropdown-header" Τότε AmGroup = Find(Class.InnerText, "Americans") > 0; RuGroup = Find(Class.InnerText, "Europe") > 0; ElseIf HPreg(Class.ClassName)<>"επιλεγμένο" Τότε Αν AmGroup And Find(Class.All(0).InnerText, "English") > 0 Ή RuGroup And Find(Class.All(0).InnerText, "Russia") > 0 Τότε IE.Navigate(Class .Όλα(1).Href); SetWaitingIE(IE); Αμβλώνω; τέλος εαν; τέλος εαν; EndCycle; τέλος εαν; τέλος εαν; IE.Document.GetElementById("ID").Value = PersonName; FindButton = IE.Document.GetElementById("ID"); FindButton.Focus(); FindButton.Click(); Προσπαθώντας να SetExpect(IE); //Κυκλώστε τα ληφθέντα δεδομένα ExceptionListNotFound.Add(Person); Να συνεχίσει; EndAttempt; EndCycle; Αναφορά εξαίρεσης ("Σφάλμα:" + Symbols.PS + ErrorDescription()); Αμβλώνω; EndAttempt; EndCycle; IE.Quit(); Τέλος Διαδικασίας

Απάντηση:

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

Όπως καταλαβαίνω, δεν υπάρχει πρόσβαση στη βάση δεδομένων SQl;

--- Συγχώνευση μηνυμάτων, 29 Απριλίου 2016 ---

Λοιπόν, αν γίνεται ανάλυση, τότε τι είδους πρόσβαση;

Ερώτηση: Σύνδεση COM 1C 8.3 - 1C 8.3 Είναι δυνατόν να εισαγάγετε το πρόγραμμα εντοπισμού σφαλμάτων στη σύνδεση


Ήθελα να ρωτήσω τα μέλη του φόρουμ εάν είναι δυνατή η διόρθωση σφαλμάτων όταν συνδέομαι μέσω σύνδεσης COM χρησιμοποιώντας επεξεργασία από μία βάση δεδομένων στην πλατφόρμα 8.3.6 (BP 3.0) στην εξωτερική μονάδα σύνδεσης μιας αυτογραφικής βάσης δεδομένων (επίσης εκτελείται στην πλατφόρμα 8.3.6) και καλέστε τις εξαγωγές από αυτήν διαδικασίες με χρήση επεξεργασίας; Οι βάσεις δεδομένων βασίζονται επί του παρόντος σε αρχεία και βρίσκονται σε έναν υπολογιστή, αλλά σχεδιάζεται μια έκδοση διακομιστή. Μέχρι αυτή τη στιγμή, χρησιμοποιούσα τις παρακάτω κατασκευές για τη μετάδοση αυθαίρετου κώδικα για εκτέλεση μέσω σύνδεσης COM, καθώς και για την καταγραφή σφαλμάτων. Ακολουθούν τμήματα διαδικασιών στην αυτο-γραμμένη βάση δεδομένων στη μονάδα εξωτερικής σύνδεσης:

Συνάρτηση ExecuteIn(CodeExecute, Auxiliary Parameter = "") Εξαγωγή
Ελεγχος ασφαλείας(); // Προστασία από προσπάθειες εκτέλεσης κακόβουλου κώδικα κατά τη σύνδεση εξωτερικά για λογαριασμό άλλου χρήστηΑπάντηση = "0" //Εάν δεν χρειάζεται να επιστραφεί τίποτα, τότε εάν δεν υπάρχουν σφάλματα στον κώδικα  //επιστρέφει απλώς ΟΚ  //Επειδή Ο μεταδιδόμενος κώδικας μπορεί να περιέχει σφάλματα, τότε θα τυλίξουμε την εκτέλεσή του σε μια προσπάθεια.Προσπαθήστε να εκτελέσετε (CodeExecute); // Εκτελέστε τον κώδικα ως συμβολοσειρά σε άλλον υπολογιστή μέσω σύνδεσης COM (Μονάδα εξωτερικής σύνδεσης βάσης Libra)Εξαίρεση   //αν υπάρχει σφάλμα, τότε επιστρέψτε το κείμενό του Response = ErrorDetailView(ErrorInfo()); EndAttempt ; Επιστροφή Απάντηση? EndFunction Function TestConnection(InParameter, OutParameter) ExportSecurityCheck(); // Προστασία από προσπάθειες εκτέλεσης κακόβουλου κώδικα κατά τη σύνδεση εξωτερικά για λογαριασμό άλλου χρήστη. OutParameter = "Υπάρχει σύνδεση με τη βάση της κλίμακας μέσω σύνδεσης COM!"; Return True ; EndFunction
Από το BP 3.0 εκτελώ το ακόλουθο τμήμα:
Απόπειρα
Com = Νέο COMObject("V83.COMConnector"); Connection = Com.Connect ("File=""C:\1 c\Base_1C\Libra""; Usr=""ComExchange""; Pwd=""1"";"); TellUser("Το τεστ πέρασε! Υπάρχει σύνδεση με τη βάση δεδομένων της κλίμακας"); Exception Error = ErrorDetailView(ErrorInfo()); TellUser("Δεν υπάρχει σύνδεση COM στη βάση Libra! Λεπτομέρειες"+Σφάλμα); Com=Undefined ; ΕΠΙΣΤΡΟΦΗ ; EndAttempt ; Έξω = ""; Σε = "1"; Εάν η δοκιμή σύνδεσης. Διαφορετικά TellUser("Η δοκιμή επικοινωνίας με τη διαμόρφωση της κλίμακας απέτυχε! Απάντηση: "+Έξοδος); Τέλος εαν ;
Καταλαβαίνω, φυσικά, ότι δεν θα είναι δυνατή η εισαγωγή του τελεστή Execute(CodeString1C8), αλλά υπάρχει τέτοια δυνατότητα κατά την κλήση μιας διαδικασίας απομακρυσμένης μονάδας εξωτερική σύνδεσηαπό την κύρια βάση δεδομένων Connection.TestConnections(In, Out) για να εισαγάγετε τον κώδικά του στην ίδια περίοδο λειτουργίας εντοπισμού σφαλμάτων στη συνάρτηση Έλεγχος ασφαλείας() της διαδικασίας κλήσης;
Κοίταξα ήδη την τεκμηρίωση που μπορούσα να βρω για αυτό το θέμα. Ρύθμισα τις επιλογές για την ενεργοποίηση του εντοπισμού σφαλμάτων και των σημείων διακοπής παντού και στις δύο διαμορφώσεις. Ξεκίνησα και τους δύο διαμορφωτές.
Είναι ακόμη δυνατό σε αυτήν την περίπτωση να διορθώσετε τα σφάλματα της διαδικασίας Security Check() περαιτέρω στο πλάι της μονάδας εξωτερικής σύνδεσης;

Ερώτηση: Λανθασμένη διεύθυνση IP στη σύνδεση COM


Υπάρχει επεξεργασία που μεταφέρει έγγραφα μέσω V83.ComConnector μεταξύ διακομιστών. Ο διακομιστής 1 (έκδοση 1C 8.2.19.90) συνδέεται πάντα με τον διακομιστή 2 (έκδοση 8.3.8.2033). Η γραμμή σύνδεσης περιείχε τη διεύθυνση IP του διακομιστή 2 και όλα λειτουργούσαν καλά. Στον ίδιο τον διακομιστή 1 είδα επίσης την εγκατεστημένη πλατφόρμα όπως στον διακομιστή 2, έκδοση 8.3.9.2033 (αν αυτό είναι σημαντικό).

Το πρόβλημα είναι ότι στον διακομιστή 2 η διεύθυνση IP άλλαξε, η επεξεργασία φυσικά σταμάτησε να λειτουργεί και όταν εισήγαγα μια νέα IP στη γραμμή σύνδεσης, η επεξεργασία δημιουργεί ένα σφάλμα, η περιγραφή του οποίου εξακολουθεί να είναι η παλιά IP (!) και το κείμενο "Μια προσπάθεια δημιουργίας σύνδεσης ήταν ανεπιτυχής, επειδή η απαιτούμενη απάντηση δεν ελήφθη από άλλον υπολογιστή εντός του απαιτούμενου χρόνου ή εδραιωμένη σύνδεσηλόγω λανθασμένης απόκρισης από έναν ήδη συνδεδεμένο υπολογιστή."

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

Τι μπορεί να φταίει, πώς μπορώ να το λύσω; Έψαξα σε όλο το Διαδίκτυο και δεν βρήκα τέτοια κατάσταση!

Απάντηση:() 100% σίγουρο! Τη δεύτερη μέρα που προσπαθώ, όπως έγραψα, το κοιτάζω με έναν εντοπισμό σφαλμάτων, δημιούργησα ακόμη και μια ηλίθια επεξεργασία ενός κυττάρου για δοκιμή σύνδεσης, αυτό το σφάλμα εμφανίζεται και αυτό είναι όλο

Ερώτηση: Σύνδεση COM σε διαφορετικές εκδόσεις


Γεια σε όλους.
Έχω μια βάση δεδομένων ala "Consolidation", η οποία συλλέγει διαφορετικά δεδομένα από διαφορετικές βάσεις δεδομένων και φέρνει τα πάντα σε ένα σωρό. Το πρόβλημα είναι ότι πρέπει να συνδεθείτε σε αυτές τις βάσεις δεδομένων μέσω com, αλλά είναι διαφορετικές εκδόσεις, οπότε στο τέλος λαμβάνω ένα σφάλμα όπως
Σφάλμα σύνδεσης!(ExternalProcessing.TransferHistory.Form.Form.Form(12)) : Σφάλμα κατά την κλήση της μεθόδου περιβάλλοντος (Σύνδεση) : Παρουσιάστηκε εξαίρεση (V83.COMConnector. 1 ) : Αναντιστοιχία μεταξύ των εκδόσεων πελάτη και διακομιστή 1 C:Enterprise Client οι εκδόσεις διαφέρουν και ο διακομιστής (8.3. 8.1964 - 8.3. 6.2332), εφαρμογή πελάτη: σύνδεση COM

Έφτιαξα μια σύνδεση, μια άλλη πέφτει...

Ξέρω ότι με κάποιο τρόπο, μέσω της υπηρεσίας συστατικών, μπορείτε να δημιουργήσετε «τις δικές σας κλάσεις (υποδοχείς)» για κάθε έκδοση και στη συνέχεια να δημιουργήσετε ένα Νέο αντικείμενο COM που αντιστοιχεί στην έκδοση πλατφόρμας της κλάσης... ίσως κάνω λάθος.

Βοηθήστε με να ξεπεράσω αυτό το πρόβλημα...

Απάντηση:Αυτό ήταν... Θα αφαιρέσω την ερώτηση..

Ερώτηση: Σφάλμα Com κατά την επεξεργασία της πλήρωσης


Γειά σου.
8.2 Λιανικό εμπόριο 1.
Συνδέομαι στο 8.1 Δεν είναι τυπικό conf.
Συνδέομαι μέσω com στη βάση δεδομένων και προσπαθώ να δημιουργήσω ένα έγγραφο, αλλά όταν καλώ το "CreateDocument()" ή το "GetObject()" εμφανίζεται ένα σφάλμα στη διαδικασία Επεξεργασία Γέμισμα. βλέπε εικ.

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

Απάντηση: turboq, μια στραβά γραμμένη ενότητα εγγράφων!

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

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

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

Μην χρησιμοποιείτε ComConnector, V8.Application για σύνδεση, τότε τα στοιχεία της διεπαφής θα είναι διαθέσιμα σε εσάς

Προστέθηκε μετά από 5 λεπτά
=======================================================================================================================
από την περιγραφή της εξωτερικής σύνδεσης (SP) Τόνισα με έντονη γραφή τι πρέπει να διαβάσετε για το ComConnections

Περιγραφή:

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

  • Στην περίπτωση ενός διακομιστή Αυτοματισμού, εκκινείται μια πλήρης εφαρμογή 1C:Enterprise 8 και στην περίπτωση εξωτερικής σύνδεσης, εκκινείται ένας σχετικά μικρός διακομιστής COM σε διαδικασία.
  • Δεν διατίθεται όταν εργάζεστε μέσω εξωτερικής σύνδεσης λειτουργικότητα, με τον ένα ή τον άλλο τρόπο που σχετίζεται με την οργάνωση της διεπαφής χρήστη 1C:Enterprise 8.
  • Κατά την εκτέλεση μιας εξωτερικής σύνδεσης, η λειτουργική μονάδα διαχειριζόμενης εφαρμογής (ενότητα τακτική εφαρμογή) διαμόρφωση 1C:Enterprise 8. Ο ρόλος του κατά την εργασία με εξωτερική σύνδεση διαδραματίζεται από τη μονάδα εξωτερικής σύνδεσης.
Όταν χρησιμοποιείτε μια εξωτερική σύνδεση, υπάρχουν τα ακόλουθα πλεονεκτήματα σε σύγκριση με τη χρήση ενός διακομιστή Αυτοματισμού:
  • Ταχύτερη ρύθμιση σύνδεσης αφού δεν χρειάζεται να δημιουργηθεί ξεχωριστή διαδικασία λειτουργικό σύστημα, και όλες οι ενέργειες εκτελούνται εντός της διαδικασίας κλήσης.
  • Ταχύτερη πρόσβαση στις ιδιότητες και τις μεθόδους των αντικειμένων 1C:Enterprise, καθώς η οργάνωση μιας πρόσβασης δεν απαιτεί επικοινωνία μεταξύ διεργασιών.
  • Λιγότερη κατανάλωση πόρων του λειτουργικού συστήματος.
Για να οργανώσετε την πρόσβαση στα δεδομένα 1C:Enterprise 8 μέσω εξωτερικής σύνδεσης, εκτελείται η ακόλουθη σειρά ενεργειών:
  • δημιουργείται ένας διαχειριστής σύνδεσης COM, με τη βοήθεια του οποίου δημιουργείται η σύνδεση.
  • πραγματοποιείται μια κλήση στη μέθοδο Connect του διαχειριστή σύνδεσης COM. Η μέθοδος Connect επιστρέφει μια εξωτερική σύνδεση με βάση πληροφοριών 1C:Επιχείρηση 8;
  • μέσω εξωτερικής σύνδεσης, γίνεται πρόσβαση σε έγκυρες μεθόδους, ιδιότητες και αντικείμενα της βάσης πληροφοριών με την οποία δημιουργείται η σύνδεση.
Σπουδαίος! Λόγω της έλλειψης διεπαφής χρήστη, δεν μπορούν να χρησιμοποιηθούν όλα τα αντικείμενα, οι ιδιότητες και οι μέθοδοι σε μια εξωτερική σύνδεση.
Η εξωτερική ένωση παρέχει πλήρης πρόσβασηστο παγκόσμιο του πλαίσιο. Επομένως, μια εξωτερική σύνδεση όπως οι μέθοδοι της μπορεί να έχει: σταθερές συστήματος, τιμές αντικειμένων που καθορίζονται στον διαμορφωτή, η πρόσβαση στα οποία πραγματοποιείται με χρήση διαχειριστών (για παράδειγμα, σταθερές, απαριθμήσεις, καταλόγους, έγγραφα, αρχεία καταγραφής εγγράφων, αναφορές , επεξεργασία, σχέδια τύπων χαρακτηριστικών, λογιστικά σχέδια , σχέδια τύπων υπολογισμού, μητρώα), καθώς και μεταβλητές που δηλώνονται στη μονάδα εξωτερικής σύνδεσης με τη λέξη-κλειδί Εξαγωγή.

Διαθεσιμότητα:

Ενσωμάτωση.

Ερώτηση: Σύνδεση COM, σχέδιο τύπου χαρακτηριστικών


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

Γράφω έτσι:

TypeDescriptionTech = New TypeDescription("DirectoryLink. Counterparties"); PurposeProperties = Σύνδεση. Σχέδια τύπων χαρακτηριστικών. Σκοποί Ιδιοτήτων Κατηγοριών Αντικειμένων. FindByName("Κατάλογος "Άτομα""); NewElement = Σύνδεση. Σχέδια τύπων χαρακτηριστικών. Ιδιότητες αντικειμένου. CreateItem(); NewElement. Όνομα = Όνομα ιδιοκτησίας; NewElement. PropertyAssignment = PropertyAssignment; NewElement. ValueType = DescriptionTypesTech;

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

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

Μορφή πλατφόρμας 8.3. Η σύνδεση COM είναι απαραίτητη προϋπόθεση. Λύσεις χωρίς τη χρήση του δεν παρουσιάζουν ενδιαφέρον.

Απάντηση:

Ρολά. Ευχαριστώ, λειτούργησε.

Ερώτηση: Σύνδεση COM. Πρόβλημα παραμέτρων ερωτήματος


Καλή μέρα.
Πρόβλημα με αίτημα μέσω σύνδεσης COM.

Perem TK; ArrayItems = COM.NewObject("Array"); Για κάθε γραμμή από την Ονοματολογία κύκλου TZNomenclature = COM.Directories.Nomenclature.GetLink(COM.NewObject("UniqueIdentifier", Abbr(String.Nomenclature.Identifier))); Ονοματολογία Array.Add(Nomenclature); EndCycle; If ArrayItems.Quantity()<>0 Τότε Request = COM.NewObject("Request"); Request.Text = "ΕΠΙΛΟΓΗ |PricesItemsSliceLast.Commodities AS Ονοματολογία, |PricesItemsSliceLast.SalePrice AS Price, |PricesItemsSliceLast.RateVAT, |PricesItemsSliceLast.RateNP |FROM|SliceDeroceRi | Τύπος = &Τύπος Τιμής |Και Απόθεμα Β ( &Πίνακας Ονοματολογία) |Και απόθεμα και υλικά.ThisGroup = FALSE |Και Έγγραφο ΣΥΝΔΕΣΗΣ Καταχωρητή.Ρύθμιση Τιμών Πωλήσεων) AS ΟνοματολογίαΤιμέςΤελευταία"; Request.SetParameter("Item Array", Item Array); Request.SetParameter("DataDoc", EndDay(ParametersStructure.DataDoc)); Request.SetParameter("PriceType", COM.Directories.PriceTypes.GetRef(COM.NewObject("UniqueIdentifier", ParameterStructure.PriceType.Identifier))); TZ = COM.NewObject("Πίνακας τιμών"); TK = Request.Run().Upload(); Διαφορετικά TK = New ValueTable; TK.Columns.Add("Ονοματολογία"); TK.Columns.Add("Τιμή"); TK.Columns.Add("Ποσοστό"); TK.Columns.Add("συντελεστής ΦΠΑ"); τέλος εαν;

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

Απάντηση:

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

Ερώτηση: Σύνδεση Com από τη βάση δεδομένων αρχείων στη βάση δεδομένων αρχείων


Καλημέρα. Έχω μια βάση δεδομένων αρχείων 8.3, από την οποία προσπαθώ να συνδεθώ σε μια άλλη βάση δεδομένων αρχείων χρησιμοποιώντας μια σύνδεση com:

Κατάλογος = "C:\Users\1C\Workflow (δοκιμή)"; Χρήστης = "Διαχειριστής"; Κωδικός πρόσβασης = ""; Παράμετροι σύνδεσης = "File="+Directory+";Usr="+User+";Pwd="+Password+";"; V83 = Νέο COMObject("V83.COMConnector"); Προσπάθεια σύνδεσης = V83.Connect(ConnectionParameters); Έκθεση εξαίρεσης ("Δεν ήταν δυνατή η σύνδεση στη ροή εγγράφων!"); EndAttempt;


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

Απάντηση:

Γράφω τη γραμμή του κώδικα V82 = New COMObject(" V83.COMConnector"); και ο υπόλοιπος κώδικας είναι όπως παρακάτω, χωρίς αλλαγές.

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

Δεν είναι σαφές ποια έκδοση της βιβλιοθήκης να εγγραφεί και πού να την εγγράψετε;

Νομίζω ότι πρέπει να καταχωρήσω τη βιβλιοθήκη, έκδοση 8.2.18.61, και το κάνω μέσω ενός αρχείου bat

regsvr32 /n /i:user "C:\Program Files (x86)\1cv82\8.2.18.61\bin\comcntr.dll"
παύση

msk-test1c:1641 -- αυτός είναι ο διακομιστής 8.3.5.1098
V82 = Νέο αντικείμενο COMO ("V82. COMConnector"); Αναφορά ("Σύνδεση με τη Λογιστική 3.0..."); Προσπάθεια σύνδεσης = V82. Connect("srvr = ""msk- test1c:1641""; ref = ""db_test""; usr = ""Διαχειριστής""; pwd = ""123"""); Ειδοποίηση ("Hurray σύνδεση εδραιώθηκε!"); Έκθεση εξαίρεσης ("Δεν υπάρχει σύνδεση με τη βάση δεδομένων!"); Αναφορά(ErrorDescription()); // Πληροφορίες = ΠληροφορίεςΣφάλμα() // Αναφορά("Περιγραφή= "" + Πληροφορίες.Περιγραφή + """); // Αναφορά ("ModuleName= "" + Info.ModuleName + """); // Αναφορά ("LineNumber=" + Info.LineNumber); // Αναφορά ("SourceLine= "" + Info.SourceString + """); Return; EndAttempt;

Πού να καταχωρήσω τη βιβλιοθήκη, στον πελάτη, στον διακομιστή 8.2, στον διακομιστή 8.3; Εικόνα παρακάτω.
(για την έκδοση πελάτη-διακομιστή και για την έκδοση αρχείου της βάσης δεδομένων 1C)

Απάντηση:Υπήρχε μια εργασία επικοινωνίας με ένα τερματικό μέσω μιας υπηρεσίας web. Η βάση είναι, καλά, ας πούμε ελαφρύ. Επίσης 0,5 ή πιο γρήγορα;

Είναι δύσκολο να πω - δεν έχω αρκετά δεδομένα. Ήμασταν ευχαριστημένοι με 0,5 δευτερόλεπτα, μείον τον περιττό πελάτη 1C σε μηχάνημα τρίτου κατασκευαστή, μείον τον συγχρονισμό των εκδόσεων της βιβλιοθήκης μετά την ενημέρωση του κινητήρα 1C, μείον το καταραμένο comsafearray, κανονικά ονόματα και τύπους πεδίων... Μας σκέφτηκε από η άλλη πλευρά (ένα σύστημα που ενσωματώνεται με το 1C) "δεν θα καταλάβουν" όταν αποδεικνύεται ότι πρέπει να ξαναγράψουν τις κλήσεις τους 1C σε ένα νέο "μοντέλο επικοινωνίας συστήματος". Αλλά έχοντας δοκιμάσει μία λειτουργία μία φορά στη δοκιμαστική βάση δεδομένων, τώρα μας πειράζουν με το "ας μεταβούμε στην υπηρεσία το συντομότερο δυνατό".

Ερώτηση: Πώς να χρησιμοποιήσετε το TypeContains για αντικείμενα Com;


Αν Attribute.Type.ContainsType(Type("DirectoryLink.Nomenclature")) Τότε υπάρχει Nomenclature = True; τέλος εαν;

Το "Props" ελήφθη από μια σύνδεση com με μια άλλη βάση δεδομένων 1c. Παρουσιάζεται σφάλμα κατά τη σύγκριση:

(ExternalProcessing.Coefficient Recalculation.Form.Form.Form(183)): Σφάλμα κατά την κλήση της μεθόδου περιβάλλοντος (ContainsType)
If Attribute.Type.ContainsType(Type("DirectoryLink.Nomenclature")) Τότε
εξαιτίας:
Παρουσιάστηκε μια εξαίρεση (1C:Enterprise 8.3.8.1964): Αναντιστοιχία τύπου (αριθμός παραμέτρου "1")

Υποψιάζομαι ότι πρέπει να συγκριθεί με τον τύπο στο com; Πώς να ελέγξετε σωστά τον τύπο;

Απάντηση:

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

Συνάρτηση CheckAttributeType(Attribute, Type) Export Return Attribute.Type.ContainsType(Type(Type)); EndFunction

Στη βάση δεδομένων από την οποία συνδέομαι, καλώ τη διαδικασία μέσω Com:

ComConnection.Avis_ExchangeProcedures.CheckAttributeType(Χαρακτηριστικό, "DirectoryLink.Nomenclature")

Εκτύπωση (Ctrl+P)

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

com σύνδεση

Μπορείτε να δημιουργήσετε δύο τύπους αντικειμένων COM για την εφαρμογή 1C. Αυτό είναι ole συνδέσεις V83.Εφαρμογή και συνδέσεις com V83.COMΣύνδεση . Σε περίπτωση που V83.ΕφαρμογήΚυκλοφορεί ένα σχεδόν πλήρες αντίγραφο της εφαρμογής 1C. Σε περίπτωση χρήσης V83.COMΣύνδεσηΈνα μικρό τμήμα διακομιστή εκκινείται. Η ταχύτητα λειτουργίας σε αυτήν την περίπτωση είναι υψηλότερη, αλλά ορισμένες λειτουργίες ενδέχεται να μην είναι διαθέσιμες. Ειδικότερα, η εργασία με φόρμες και κοινές μονάδες για τις οποίες δεν έχει οριστεί η ιδιότητα εργασίας με εξωτερικές συνδέσεις. Κυρίως πρέπει να χρησιμοποιήσετε V83.COMΣύνδεσηκαι μόνο σε περίπτωση έλλειψης λειτουργικότητας V83.Εφαρμογή. Η διαφορά στην ταχύτητα λειτουργίας μπορεί να είναι ιδιαίτερα αισθητή σε βάσεις δεδομένων μεγάλου όγκου. Χρησιμοποιείται για την πλατφόρμα 8.2 V82.Application ή V82.COMConnector

Δημιουργήστε μια σύνδεση OLE

Σύνδεση = Νέο COMObject("V83.Application") ;

Δημιουργήστε μια σύνδεση COM

Σύνδεση = Νέο αντικείμενο COMO ("V83.COMConnector" );

Συμβολοσειρά σύνδεσης

//Για την επιλογή πελάτη-διακομιστή
Συμβολοσειρά σύνδεσης= "Srvr = ""Όνομα διακομιστή" ";Αναφορά = " "Όνομα βάσης" ;
/Επιλογή /Για λειτουργία αρχείου:
Συμβολοσειρά σύνδεσης= "Αρχείο = ""PathKBase" "; Usr = Όνομα χρήστη; Pwd = Κωδικός πρόσβασης";
Απόπειρα
Σύνδεση = Σύνδεση . Συνδέω-συωδεομαι(ConnectionString) ;
Εξαίρεση
Message = New MessageToUser;
Μήνυμα . Κείμενο = "Αποτυχία σύνδεσης στη βάση δεδομένων" + DescriptionErrors(); Μήνυμα . Να αναφέρουν();
EndAttempt ;

Αποσύνδεση

Σύνδεση = Απροσδιόριστη;
Για αντικείμενο V83.ΕφαρμογήΕίναι απαραίτητο να τερματίσετε τη σύνδεση, διαφορετικά θα παραμείνει μια ημιτελής συνεδρία, η οποία στη συνέχεια θα πρέπει να διαγραφεί χειροκίνητα. Σε περίπτωση που V83.COMΣύνδεσηη σύνδεση διακόπτεται αυτόματα όταν ολοκληρωθεί η διαδικασία με την οποία έγινε η σύνδεση.Και υπάρχει ένα ακόμη μικρό σημείο. Για τον χρήστη με τον οποίο πραγματοποιείται η σύνδεση, το πλαίσιο ελέγχου «Αίτημα επιβεβαίωσης κατά το κλείσιμο του προγράμματος» πρέπει να είναι απενεργοποιημένο στις ρυθμίσεις του.

Μέθοδος NewObject().

Για να δημιουργήσετε ένα νέο αντικείμενο, μπορείτε να χρησιμοποιήσετε τη μέθοδο NewObject(), για παράδειγμα:

Για V83.COMΣύνδεση

RequestCOM = Σύνδεση. Νέοαντικείμενο( "Αίτηση ") ;
TableCOM = Σύνδεση. Νέοαντικείμενο( “Πίνακας αξιών”) ;
ArrayCOM = Σύνδεση. NewObject("Array") ;

ViewCOM =Connection.NewObject

Για V83.Εφαρμογή

RequestOLE = Σύνδεση. NewObject(" Αίτηση ") ;
TableOLE = Σύνδεση. NewObject(“Πίνακας αξιών”) ;
ArrayOLE = Connection.NewObject("Πίνακας" ) ;
ViewCOM =Connection.NewObject("UniqueIdentifier", StringUID);

RequestCOM . Κείμενο ="ΕΠΙΛΕΓΩ
| Θέσεις Οργανισμών Κώδικας,
| Θέσεις Οργανισμών.Όνομα
|ΑΠΟ | Κατάλογος.Θέσεις Οργανισμών
ΠΩΣ ΣΕ ΘΕΣΕΙΣ ΟΡΓΑΝΙΣΜΩΝ”;

Αποτέλεσμα = RequestCOM. Τρέξιμο();
Δείγμα = Αποτέλεσμα. Επιλέξτε () ;
Επιλογή αντίο. Επόμενο()Κύκλος
EndCycle ;
Μπορείτε επίσης να χρησιμοποιήσετε διαχειριστές αντικειμένων διαμόρφωσης:
DirectoryCOM = Σύνδεση. καταλόγους. DirectoryName;
DocumentCOM = Σύνδεση. Τεκμηρίωση. Όνομα εγγράφου;
RegisterCOM = Σύνδεση. Μητρώα Πληροφοριών. RegisterName ;

Λήψη και σύγκριση απαρίθμησης μέσω σύνδεσης COM

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

Αριθμός Στοιχείου = Connection.Directories.Directory1.FindByCode(1).Props1;

PossibleValues ​​= Enum Element.Metadata().Enum Values;

EnumerationElementNumber = PossibleValues.Index(PossibleValues.Find(Connection.XMLString(EnumerationElement)));

Αν EnumerationItemNumber = 0 Τότε Αναφορά( "Αριθμητική τιμή 1");

ElseIfEnumerationItemNumber = 1 ΕπειταΑναφορά ("EnumerationValue2");

τέλος εαν;

Ανάκτηση αντικειμένου μέσω COM με αναγνωριστικό

Μέσω των διαχειριστών αντικειμένων διαμόρφωσης παίρνουμε ένα αντικείμενο com, για παράδειγμα:
DocumentCOM = Σύνδεση. Τεκμηρίωση. Όνομα εγγράφου;

Στη συνέχεια, παίρνουμε μια συμβολοσειρά μοναδικού αναγνωριστικού:

StringUID =Connection.string ( DocumentCOM.UniqueIdentifier())

Αναγνωριστικό = Νέο U μοναδικό Αναγνωριστικό (StringUID);
ΜΕ linkByIdentifier = Documents[DocumentName].GetLink(Identifier);

Εάν πρέπει να βρείτε ένα αντικείμενο com ανά έγγραφο ανά αναγνωριστικό, τότε πρέπει να γράψετε ως εξής:

WidCOM = Connection.NewObject("UniqueIdentifier", StringUID);
LinkByIdentifier = Connection.Documents[DocumentName].GetLink(WidCOM);

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

Συνδεόμαστε μέσω COM στη βάση δεδομένων 1C

Για την υλοποίηση μιας σύνδεσης COM στο 1C, χρησιμοποιείται ένας ειδικός μηχανισμός που ονομάζεται COMConnector. Αυτό το αντικείμενο εγκαθίσταται μαζί με την πλατφόρμα και χρησιμοποιείται για τη σύνδεση βάσεων πληροφοριών. Θα πρέπει να σημειωθεί ότι για τις εκδόσεις 8.2 και 8.3 χρησιμοποιούνται αντικείμενα με διαφορετικά ονόματα - "V82.COMConnector" και "V83.COMConnector", αντίστοιχα.

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

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

  1. Τι τύπος είναι - αρχείο ή πελάτης-διακομιστής.
  2. Που βρίσκεται;
  3. Τι όνομα και κωδικό πρόσβασης μπορείτε να χρησιμοποιήσετε για να συνδεθείτε;
  4. Ποια δεδομένα σας ενδιαφέρουν;

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

Connection ParametersFileIB = "File=""Path_to_database""; Usr=""User_name"";Pwd=""Password"""; Connection ParametersClientServerIB = "Srvr=""Όνομα_Διακομιστή""; Ref=""Όνομα_Βάσης_Δεδομένων""; Usr=""Όνομα_Χρήστη""; Pwd=""Κωδικός_Κωδικός""";

Η λειτουργία σύνδεσης είναι απλή και δεν θα πρέπει να δημιουργεί ερωτήσεις εάν όλες οι παράμετροι έχουν καθοριστεί σωστά. Για να επιταχύνετε τον εντοπισμό σφαλμάτων και την ανάλυση πιθανά σφάλματαείναι καλύτερο να περικλείσετε τη σύνδεση στην κατασκευή "Δοκιμάστε". Η συνάρτηση θα επιστρέψει μια τιμή του τύπου “COM object”, με την οποία θα εργαστείτε για να αποκτήσετε τα απαραίτητα δεδομένα.

Συνάρτηση &OnServer ConnectToBase() exportConnectionIB Παράμετροι = "File=""E:\1c database\ERP""; Usr=""Administrator"";Pwd=""1"""; V83COMCon= Νέο COMObject("V83.COMConnector"); Attempt Return V83COMCon.Connect(IB Connection Parameters); Αναφορά εξαίρεσης(ErrorDescription()); Επιστροφή Απροσδιόριστη. EndAttempt; EndFunction

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

Λαμβάνουμε δεδομένα από τη βάση δεδομένων 1C

Αφού λάβετε το επιθυμητό αντικείμενο, πρέπει να διαβάσετε δεδομένα από άλλη βάση δεδομένων. Για να γίνει αυτό, χρησιμοποιούμε ένα αίτημα μέσω μιας σύνδεσης COM στο 1C 8.3 χρησιμοποιώντας την τιμή που ελήφθη του τύπου "COM object" από τη συνάρτηση. Είναι σημαντικό να συνδεθείτε πρώτα στη βάση δεδομένων και μετά να εκτελέσετε το αίτημα. Η εκτέλεση πραγματοποιείται μέσω της μεθόδου NewObject, καθορίζοντας τον τύπο του αντικειμένου σε μορφή συμβολοσειράς ως παράμετρο - "Request".

Διαδικασία &OnServer TestCOMOnServer() Σύνδεση = ConnectToBase(); Αν TypeValue(Connection) Type("Undefined") Τότε RequestBPZO = Connection.NewObject("Request"); RequestBPZO.Text = "ΕΠΙΛΟΓΗ πρώτα 15 | DirectoryUser.Name AS Name |FROM | Directory.users AS DirectoryUser"; Select = RequestBPZO.Execute().select(); Ενώ Selection.next() βρόχος Report(Selection.Number); EndCycle; τέλος εαν; Τέλος Διαδικασίας >

Για παράδειγμα, για να λάβουμε πληροφορίες σχετικά με τους χρήστες ενός συγκεκριμένου τμήματος, θα ορίσουμε μια συνθήκη στο αίτημα μέσω παραμέτρων. Μια παράμετρος θα είναι απλού τύπου - συμβολοσειρά και η διαίρεση θα είναι ένας σύνδεσμος προς το στοιχείο καταλόγου "Επιχειρηματική δομή". Το αποτέλεσμα του ερωτήματος είναι ένας πίνακας με τα πεδία που αναφέρονται στον τύπο που υπάρχουν στη βάση δεδομένων στην οποία πραγματοποιήθηκε η σύνδεση COM. Εάν πρέπει να τα μετατρέψετε σε άλλους τύπους, χρησιμοποιήστε τις τυπικές λειτουργίες πλατφόρμας:

  • Γραμμή();
  • Αριθμός();
  • Ημερομηνία ().
RequestBPZO = Connection.NewObject("Request"); RequestBPZO.Text = "ΕΠΙΛΕΞΤΕ πρώτα 15 | DirectoryUser.Name ΩΣ Όνομα | FROM | Directory.Users AS DirectoryUser I WHERE | DirectoryUser.Department = &RequiredDepartment | Και DirectoryUser.Name όπως ""%"" + &RequiredName""+ ";""" Αίτημα BPZO.SetParameter("Απαιτούμενο Τμήμα", Σύνδεση. Κατάλογοι. Δομή επιχείρησης. Εύρεση με κωδικό ("00-000023")); RequestBPZO.SetParameter("RequiredName","Ekaterina"); Select = RequestBPZO.Execute().select(); Ενώ Selection.next() βρόχος Report(Selection.Name); EndCycle;

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

RequestBPZO = Connection.NewObject.("Request"); RequestBPZO.Text = "ΕΠΙΛΟΓΗ πρώτα 15 | DirectoryUser.Name AS Name | FROM | Directory.Users AS DirectoryUser I WHERE | DirectoryUser.Department B (&NecessaryDepartment) | Και DirectoryUser.Name όπως ""%"" + &NecessaryName" "; Array of Departments = Connection.NewObject("Array"); Array of Departments.Add(Connection.Directories.Enterprise Structure.Find By Code("00-000023")); Array of Departments.Add(Connection.Directories.Enterprise Structure.Find By Code("00-000038")); Array of Departments.Add(Connection.Directories.Enterprise Structure.Find By Code("00-000046")); Αίτημα BPZO.SetParameter("Required Department", Array of Departments); RequestBPZO.SetParameter("RequiredName","Ekaterina"); Select = RequestBPZO.Execute().select(); Ενώ Selection.next() βρόχος Report(Selection.Name); EndCycle;

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

StrIdent = String(Directories.Users.FindByCode("00-0000313").UniqueIdentifier()); Αν NOT ValueFilled(Connection.Directories.Users.GetLink(Connection.NewObject("UniqueIdentifier", StrIdent))) τότε NewUser = Connection.Directories.Users.CreateItem(); NewUser.Name = Directories.Users.FindByCode("00-0000313").Όνομα; NewUser.Individual = Directories.Users.FindByCode("00-0000313").Individual; NewUser.Write(); τέλος εαν;

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

Χημική ένωση..; VariableFunction = Σύνδεση..; κλήση συνάρτησης>όνομα γενικής μονάδας>κλήση διαδικασίας>όνομα γενικής μονάδας>

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


Λέξεις-κλειδιά: COM, σύνδεση, εξωτερική, OLE, Αυτοματισμός, Σύνδεση, ComConnector, Srvr

Όταν χρησιμοποιείτε συνδέσεις COM 1C:Enterprise 8.0 για πρόσβαση σε δεδομένα, υπάρχουν τα ακόλουθα πλεονεκτήματα σε σύγκριση με τη χρήση διακομιστή Αυτοματισμού:

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

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

Γενικά, η εργασία με το 1C:Enterprise 8.0 μέσω σύνδεσης COM είναι παρόμοια με την εργασία με το 1C:Enterprise σε λειτουργία Αυτοματισμού διακομιστή. Οι κύριες διαφορές είναι οι εξής:

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

  2. Όταν εργάζεστε μέσω σύνδεσης COM, η λειτουργικότητα με τον ένα ή τον άλλο τρόπο που σχετίζεται με την οργάνωση της διεπαφής χρήστη 1C:Enterprise 8.0 δεν είναι διαθέσιμη.
  3. Κατά τη λειτουργία μιας σύνδεσης COM, η λειτουργική μονάδα εφαρμογής διαμόρφωσης 1C:Enterprise 8.0 δεν χρησιμοποιείται. Ο ρόλος του όταν εργάζεστε με μια σύνδεση COM παίζεται από την εξωτερική μονάδα σύνδεσης.

1.1 Διαδικασία για τη δημιουργία σύνδεσης COM

Για να οργανώσετε την πρόσβαση στα δεδομένα 1C:Enterprise 8.0 μέσω σύνδεσης COM, εκτελείται η ακόλουθη σειρά ενεργειών:

  1. δημιουργείται ένα αντικείμενο COM με το αναγνωριστικό V8.COMConnector, με τη βοήθεια του οποίου δημιουργείται η σύνδεση.

  2. καλείται η μέθοδος Connect του αντικειμένου V8.COMConnector που δημιουργήθηκε προηγουμένως. Η μέθοδος Connect επιστρέφει μια σύνδεση σε ένα αντικείμενο σύνδεσης COM με τη βάση πληροφοριών 1C:Enterprise 8.0.
  3. Μέσω του ληφθέντος αντικειμένου σύνδεσης COM, γίνεται πρόσβαση στις έγκυρες μεθόδους, ιδιότητες και αντικείμενα της βάσης πληροφοριών με την οποία δημιουργείται η σύνδεση.

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

1C:Εταιρικά αντικείμενα προσβάσιμα εξωτερικά μέσω σύνδεσης COM:

  1. Εξαγόμενες μεταβλητές και διαδικασίες/συναρτήσεις της μονάδας εξωτερικής σύνδεσης

  2. Εξαγόμενες μεταβλητές και διαδικασίες/συναρτήσεις κοινών ενοτήτων
  3. Συμπερίληψη και εξαίρεση ολόκληρων λειτουργικών μονάδων ορίζοντας ιδιότητες κοινών λειτουργικών μονάδων

  4. Συμπερίληψη και εξαίρεση τμημάτων κοινών μονάδων με χρήση προεπεξεργαστή
  5. Παγκόσμιο πλαίσιο 1C: Enterprise 8.0, με εξαίρεση τα αντικείμενα που είναι στενά συνδεδεμένα με την εφαρμογή πελάτη (TextDocument, TabularDocument, ...)

1.2 Μονάδα εξωτερικής σύνδεσης

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

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

1.3 Κοινές ενότητες

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

1.4 Αντικείμενο "V8.COMConnector"

Η μόνη εργασία που επιλύεται από το αντικείμενο V8.COMConnector COM είναι η δημιουργία μιας σύνδεσης COM με τη βάση πληροφοριών 1C:Enterprise 8.0. Ένας απεριόριστος αριθμός συνδέσεων μπορεί να δημιουργηθεί χρησιμοποιώντας μία παρουσία του αντικειμένου V8.COMConnector. Το αντικείμενο V8.COMConnector έχει μια ενιαία μέθοδο σύνδεσης, σχεδιασμένη να δημιουργεί μια σύνδεση COM με τη βάση πληροφοριών 1C:Enterprise 8.0.

<СтрокаСоединенияИБ>

Η γραμμή σύνδεσης με το σύστημα ασφάλειας πληροφοριών είναι μια αλυσίδα θραυσμάτων της μορφής Parameter=Value. Τα θραύσματα χωρίζονται μεταξύ τους με ";". Εάν η τιμή περιέχει κενό διάστημα, πρέπει να περικλείεται διπλά εισαγωγικά (").

Κοινές παράμετροι:

Usr - όνομα χρήστη;
Pwd - κωδικός πρόσβασης.

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

Αρχείο - κατάλογος βάσης πληροφοριών.

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

Srvr - 1C: Όνομα διακομιστή επιχείρησης.
Ref - όνομα της βάσης πληροφοριών στον διακομιστή.

Η μέθοδος Connect δημιουργεί μια σύνδεση COM στη βάση πληροφοριών 1C:Enterprise 8.0 και επιστρέφει μια σύνδεση στο αντικείμενο σύνδεσης COM.

// Δημιουργείται ένα αντικείμενο σύνδεσης
V8 = Νέο COMObject ("V8.COMConnector");
// δημιουργείται ένα αντικείμενο σύνδεσης COM
Connection = V8.Connect("File=""c:\InfoBases\Trade""; Usr=""Director"";")

1.5 Αντικείμενο σύνδεσης COM

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

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

tk = Σύνδεση. NewObject("ValueTable");

Μέθοδος συμβολοσειράς Σας επιτρέπει να λαμβάνετε αναπαραστάσεις συμβολοσειρών των τιμών 1C:Enterprise.

Προβολή = Connection.String(Data.UniqueIdentifier());

1.6. Δυνατότητες εργασίας με σύνδεση COM

Στον Αυτοματισμό και σε μια σύνδεση COM, το TRUE και το FALSE έχουν τις ακόλουθες τιμές: -1 (μείον ένα) και 0.

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

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

Μπορείτε να χρησιμοποιήσετε αντικείμενα COM κατά την εκτέλεση της ενσωματωμένης γλώσσας στον διακομιστή 1C:Enterprise.

Τα σφάλματα COM μετατρέπονται σε εξαιρέσεις ενσωματωμένης γλώσσας.

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

Μία από τις επιλογές για την ανταλλαγή δεδομένων μεταξύ βάσεων δεδομένων 1C είναι η ανταλλαγή μέσω σύνδεσης COM.

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

Μπορείτε να δημιουργήσετε δύο τύπους αντικειμένων COM για την εφαρμογή 1C. Αυτό V82.ΕφαρμογήΚαι V82.COMΣύνδεση. Σε περίπτωση που V82.ΕφαρμογήΚυκλοφορεί ένα σχεδόν πλήρες αντίγραφο της εφαρμογής 1C. σε περίπτωση χρήσης V82.COMΣύνδεσηΈνα μικρό τμήμα διακομιστή εκκινείται.
Η ταχύτητα λειτουργίας σε αυτήν την περίπτωση είναι υψηλότερη, αλλά ορισμένες λειτουργίες ενδέχεται να μην είναι διαθέσιμες. Ειδικότερα, η εργασία με φόρμες και κοινές μονάδες για τις οποίες δεν έχει οριστεί η ιδιότητα εργασίας με εξωτερικές συνδέσεις. Κυρίως πρέπει να χρησιμοποιήσετε V82.COMΣύνδεσηκαι μόνο σε περίπτωση έλλειψης λειτουργικότητας V82.Εφαρμογή. Η διαφορά στην ταχύτητα λειτουργίας μπορεί να είναι ιδιαίτερα αισθητή σε βάσεις δεδομένων μεγάλου όγκου.

Ας ξεκινήσουμε λοιπόν

  1. Ας δημιουργήσουμε ένα αντικείμενο COM
    • Για V82.ΕφαρμογήΣύνδεση = Νέο COMObject("V82.Application") ;
    • Για V82.COMΣύνδεσηΣύνδεση = Νέο COMObject("V82.COMConnector" );
  2. Ας δημιουργήσουμε μια συμβολοσειρά σύνδεσης
    • για την έκδοση διακομιστή της βάσης δεδομένων ConnectionString = "Srvr = " "ServerName" ";Ref = " "BaseName" ;
    • για την έκδοση αρχείου της βάσης δεδομένων ConnectionString = "File = " "PathKBase" "; Usr = Όνομα χρήστη; Pwd = Κωδικός πρόσβασης";
  3. Σύνδεση στη βάση δεδομένωνΠροσπάθεια σύνδεσης = Σύνδεση. Connect(ConnectionString) ; Exception Message = New MessageToUser; Μήνυμα. Κείμενο = + ErrorDescription() ; Μήνυμα. Να αναφέρουν() ; EndAttempt ;
  4. Αποσύνδεση από τη βάση δεδομένωνΣύνδεση = Απροσδιόριστη;

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

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

Τώρα ας βάλουμε όλο τον κώδικα μαζί

Σύνδεση = Νέο COMObject("V82.Application") ; //Σύνδεση = Νέο COMObject("V82.COMConnector"); ConnectionString = "Srvr = " "Server1C" ";Ref = " "MyBase" "; Usr = Petya; Pwd = 123" ; //ConnectionString = "Αρχείο = ""С:\MyBase""; Usr = Petya; Pwd = 123";Προσπάθεια σύνδεσης = Σύνδεση. Connect(ConnectionString) ; Exception Message = New MessageToUser; Μήνυμα. Κείμενο = "Δεν ήταν δυνατή η σύνδεση στη βάση δεδομένων"+ DescriptionError() ; Μήνυμα. Να αναφέρουν() ; EndAttempt ; Σύνδεση = Απροσδιόριστη;

Για τον τύπο σύνδεσης V82.Εφαρμογήη μέθοδος χρησιμοποιείται για το αντικείμενο COM που δημιουργήθηκε αρχικά και για V82.COMΣύνδεσημέθοδος εφαρμόζεται στη σύνδεση. περαιτέρω εργασίες με το αίτημα τυπικά μέσα 1C. στον κώδικα μοιάζει με αυτό:

Αίτημα = Σύνδεση. NewObject("Αίτηση") ; // Για V82.COMΣύνδεση Αίτημα = Σύνδεση. NewObject("Αίτηση") ; // Για V82.Εφαρμογή Αίτηση. Κείμενο = "ΕΠΙΛΟΓΗ | Θέσεις Οργανισμών Κώδικας, | Θέσεις Οργανισμών.Όνομα|ΑΠΟ | Κατάλογος. Θέσεις Οργανισμών AS Θέσεις Οργανισμών"; Αποτέλεσμα = Αίτημα. Τρέξιμο(); Δείγμα = Αποτέλεσμα. Choose() ; Επιλογή αντίο. Next() Loop EndLoop ;

Για την έκδοση 1C:Enterprise 8.3 όλα παραμένουν αμετάβλητα εκτός από το ότι κατά τη δημιουργία αντικειμένων COM πρέπει να χρησιμοποιείτε "V83.COMConnector"ή "V83.Application".

Τι είναι η ανάλυση ιστότοπου.


Μπλουζα