Contacte

Depanarea erorilor de conectare prin conexiune COM. Depanarea erorilor de conexiune COM Gestionarea claselor COM

Cum să înregistrați componenta de conexiune com comcntr.dll 1C 8 în Windows x32(x86)/x64.

Răspunsul la această întrebare este relevant în contextul stabilirii schimburilor între bazele de date 1C folosind o conexiune directă. Una dintre opțiunile de instalare/înregistrare a componentelor com-connection este afișată pe pagină: Descrie opțiunea de instalare a componentelor la instalarea/reinstalarea componentelor platformei 1C: Enterprise din pachetul standard de instalare. Dar se mai întâmplă ca, dintr-un motiv misterios, componenta COM să nu fie înregistrată în timpul operațiunii de mai sus.

Există o opțiune alternativă pentru aceasta folosind linia de comandă a sistemului de operare. Privind puțin în viitor și pentru a vă proteja de erori la înregistrarea componentei com comcntr.dll prin linia de comandă, similar cu cel afișat în captură de ecran

Pentru a evita eroarea „Modulul comcntr.dll este încărcat, dar apelul la DllRegisterServer a eșuat, codul de eroare 0x80070005” rulați promptul de comandă cu drepturi de administrator

Într-un sistem cu capacitate x32(x86) biți pentru platforma 1C: Enterprise 8.2

C:\Fișiere de program (x86)\1cv82\<номер_релиза>\bin> regsvr32 comcntr.dll

Unde<номер_релиза>- numărul versiunii curente a platformei 1C 8 utilizată.

Pentru platforma 1C: Enterprise 8.3, linia de comandă pentru înregistrarea componentelor COM va arăta cam așa:

C:\Fișiere de program (x86)\1cv8\<номер_релиза>\bin> regsvr32 comcntr.dll

În captura de ecran de mai jos, ca exemplu pentru cazul înregistrării comcntr.dll în sistemul de operare x86, valoarea<номер_релиза> - "8.3.9.1818"

Acum luați în considerare opțiunea pentru un sistem cu capacitate x64 de biți pentru platforma 1C: Enterprise 8.2, opțiune alternativă:

C:\Windows\SysWOW64>regsvr32 "C:\Program Files (x86)\1cv82\<номер_релиза>\bin\comcntr.dll"

Pentru Windows x64, înregistrarea unei conexiuni 1C 8.3 com poate arăta astfel:

C:\Windows\SysWOW64>regsvr32 "C:\Program Files (x86)\1cv8\<номер_релиза>\bin\comcntr.dll"

Dacă materialul de mai sus nu a ajutat, vă recomandăm să vă referiți la publicații alternative: înregistrarea componentelor comcntr.dll într-o versiune Microsoft Windows pe 64 de biți și înregistrarea componentelor comcntr.dll pentru conexiuni COM cu 1C 8 într-o versiune de 32 de biți. sistem de operare pe biți

© www.. Toate drepturile rezervate. Utilizarea textelor și imaginilor de pe această pagină fără permisiunea scrisă a proprietarului este interzisă. Când utilizați materiale de pe această pagină, trebuie să furnizați un link către această pagină.


Este adesea necesar să obțineți date din baze de date diferite, care, ceea ce nu este neobișnuit, funcționează pe platforme diferite. Acesta ar putea fi, de asemenea, un schimb regulat de date între bazele de date. Este posibil să existe și o procesare unică pentru transferul de date. Acestea pot fi, de asemenea, rapoarte care colectează date din diferite baze de date și formează rezultatul necesar.
În fiecare dintre aceste cazuri, trebuie să vă conectați de la o bază de date la alta printr-o conexiune COM. În faza de conectare, deseori pândesc diverse probleme. Acest articol va analiza unele erori și cum să le remediați. Aici vor fi date erori specifice la conectarea între anumite platforme, dar soluțiile pot fi la fel de adecvate atunci când se conectează între platforme în alte variante.

Situația unu. Când încercați să vă conectați printr-o conexiune COM la baza de date sursă, este afișat un mesaj de eroare. Ceva de genul: „Eroare la apelarea constructorului (COMObject): -2147221164(0x80040154): Clasa nu este înregistrată”.
Pentru a rezolva această eroare, primul lucru pe care trebuie să-l faceți este să înregistrați biblioteca client țintă. Mai mult, pentru versiuni diferite de clienți ale aceleiași versiuni de platformă, trebuie să vă înregistrați biblioteca. Adică, pentru diferite versiuni ale platformei versiunea 8.3, trebuie să reînregistrați versiunea bibliotecii a versiunii de platformă dorită. Pentru versiunea de platformă 8.2 aceeași abordare.
Biblioteca este înregistrată după cum urmează. Lansați Command Prompt ca administrator și scrieți comanda în el

Regsvr32 „[Calea bibliotecii]\bin\comcntr.dll,

De exemplu, regsvr32 „c:\Program Files (x86)\1cv8\8.3.5.1119\bin\comcntr.dll” și comanda este executată. Este mai bine să închideți toate aplicațiile 1C deschise. Dacă înregistrarea are succes, va fi afișat un mesaj de succes. Dacă primiți un mesaj de eroare, trebuie să verificați calea unde se află biblioteca și toate drepturile.
De asemenea, puteți plasa această comandă într-un fișier cmd și o puteți rula cu drepturi de administrator.

Dacă apare o astfel de eroare atunci când încercați să vă conectați la o bază de date pe platforma 7.7, atunci ar trebui să verificați registry pentru a vedea dacă există o înregistrare a conectorului 7.7. Secțiunea HKEY_CLASSES_ROOT ar trebui să conțină ramurile afișate în imagine:

Pentru a înregistra corect conectorul 7.7, trebuie să rulați 1C Enterprise 7.7 o dată în numele administratorului.

Situatia a doua. Când încercați să stabiliți o conexiune COM, apare o eroare cu un mesaj despre o nepotrivire între versiunea clientului bazei de date sursă. În acest caz, problema este rezolvată prin înregistrarea versiunii corecte a bibliotecii comcntr.dll, așa cum este descris mai sus.

Situația trei. Când încercați să vă conectați printr-o conexiune COM la baza de date sursă de pe platforma 1C 7.7, nu sunt generate erori, dar procesarea „strâns” „îngheață”. Când sarcina este eliminată, conexiunea prin consola de gestionare a serverului 8.x rămâne și nu este resetată prin alte trucuri decât repornirea serviciului server 1C. Acest fenomen apare atunci când se încearcă conectarea de la o bază de date pe platforma 8.x la o bază de date pe platforma 7.7 dintr-o sesiune de server. Nu sunt prezentate aici motive clar definite pentru comportamentul acestui program. O recomandare este să utilizați un apel de conexiune din sesiunea client (&OnClient).

Situația a patra. Când încercați să vă conectați printr-o conexiune COM la baza de date sursă de pe platforma 1C 7.7, nu sunt generate erori, dar nu are loc nicio conexiune. În acest caz, precum și în altele, înregistrarea manuală a componentelor COM ajută.

1. Accesați Panoul de control → Administrare → Servicii componente.
2. Accesați filiala Computers → My Computer → COM+ Applications.


3. În meniul contextual, selectați Creare → Aplicație. Se deschide Expertul de instalare a aplicației COM+. Selectați „Creați o nouă aplicație”.

4. Este mai bine să scrieți numele noii aplicații, astfel încât să fie clar despre ce vorbim: V8_ComConnector, metoda de activare - „aplicație server”.

5. În pasul următor, setați „Utilizator curent”. Faceți clic pe „Următorul”. În ramura aplicației create, mergeți la ramura „Roluri”, deschideți rolul „CreatorOwner” și apoi în secțiunea „Utilizatori” creați un utilizator - un cont sub care rulează serverul 1C.
6. În ramura aplicației create, mergeți la ramura „Componente” și creați o componentă: Creare - Componentă Selectați „Instalare componente noi” și în dialog selectați DLL-ul dorit (în acest exemplu: [Calea către bibliotecă]\ bin\comcntr.dll).
7. În meniul contextual, selectați „Proprietăți”. În fereastra care se deschide, accesați fila „Securitate”.
8. Debifați caseta de selectare „Forțare verificare acces pentru aplicații”. Bifați caseta de selectare „Aplicați politica de restricții software”. Setați nivelul de restricție la „Nelimitat”


9. Faceți clic pe „OK”.

Updater-1s. Rezolvarea problemelor cu biblioteca com pentru conexiunea externă la baza de date.

2018-10-05T16:32:35+00:00

În activitatea sa, Updater-1c folosește biblioteca com de la 1c pentru conexiunea externă la bazele de date.

În cele mai multe cazuri, nu se observă probleme cu această bibliotecă - actualizatorul în sine înregistrează și folosește automat biblioteca versiunii necesare a 1c, dar ocazional apar cazuri (în principal pe sistemele de operare server) când este necesar „dansul cu tamburin”.

Cum să înțelegem că avem probleme cu COM

Pentru a face acest lucru, apăsați butonul „Verificați setările” în timp ce apăsați tasta „Shift” de pe tastatură:

În timpul funcționării normale COM, raportul va arăta cam așa:

Dacă există probleme cu COM, aceasta sau o eroare similară va apărea:

El poate scrie și ceva de genul „ Nu s-a putut crea o conexiune software la 1C".

Da, judecând după test, avem probleme cu COM

În primul rând, despre ce fel de bibliotecă vorbim? Această bibliotecă comcntr.dll, care se află în folderul bin al unei anumite platforme 1c:

Această bibliotecă este instalată și înregistrată automat în sistem atunci când platforma este instalată.

În plus, înainte de a se conecta la baza de date printr-o conexiune externă, actualizatorul însuși înregistrează în plus biblioteca din versiunea necesară a platformei în sistem folosind comanda:

regsvr32. exe /n/i:utilizator

Deci ce putem face?

Pasul #0

În primul rând, ne asigurăm că avem într-adevăr o versiune profesională a platformei, deoarece pentru versiunea de bază a platformei, conexiunile externe la bazele de date nu ar trebui să funcționeze (aceasta este o limitare a platformei).

Pentru a înțelege ce platformă avem (de bază sau profesională), hai să o rulăm pe aceasta.

Dacă licența pentru platformă nu este încă profesională, ci de bază, atunci toți ceilalți pași nu au sens. Conexiunile externe la bazele de date nu vor funcționa pentru noi (din cauza limitărilor platformei). Nu mai rămâne nimic decât să configurați bazele de date.

Pasul 1

Dacă aveți UAC activat, puteți realiza acest lucru făcând clic dreapta pe comanda rapidă de actualizare și selectând opțiunea „Run ca administrator”.

Apoi, selectați baza de date și faceți clic pe butonul „Verificați setările”. Daca eroarea dispare si nu se mai reproduce nici cand rulezi updaterul normal (fara drepturi de administrator), felicitari, problema este rezolvata. Dacă nu, mergi mai departe.

Pasul 2

Într-o versiune pe 32 de biți a sistemului de operare, încercăm să executăm comanda

regsvr32/n/i:utilizator „calea către folderul bin\comcntr.dll”

Pe o versiune a sistemului de operare pe 64 de biți comanda ar fi cam așa:

C:\Windows\SysWOW64\regsvr32 /n/i:utilizator „calea către folderul bin\comcntr.dll”

Rulăm aceste comenzi de la nume de utilizator cu drepturi de administrator. Și cu UAC activat, lansați cmd prin „Run as administrator” sau prin aceeași lansare a fișierului batch scris.

Dacă comanda de înregistrare nu a ajutat, atunci trebuie mai întâi să eliminați înregistrarea bibliotecii comcntr.dll rulând aceeași comandă care apelează regsvr32 cu comutatorul /u

Dacă acest lucru nu ajută, încercați să reinstalați platforma 1C în modul Fix și apoi înregistrați biblioteca așa cum este scris mai sus.

Pasul 3

Se pare că actualizatorul nu poate înregistra componenta COM din cauza setărilor de securitate de pe serverul dvs.
În acest caz:

  1. Accesați Panoul de control - Administrare - Servicii componente.
  2. Să mergem la ramura Computers - My Computer - COM+ Applications.
  3. În meniul contextual, selectați Nou - Aplicație. Se deschide Expertul de instalare a aplicației COM+.
  4. Faceți clic pe „Următorul”.
  5. Selectați „Creați o nouă aplicație”.
  6. Introduceți numele „V83COMConnector”. Setați comutatorul „Aplicație server”. Faceți clic pe „Următorul”.
  7. În pasul următor, setați „Utilizator curent”. Faceți clic pe „Următorul”.
  8. Faceți clic pe „Terminare”.
  9. În ramura V83COMConnector care apare, mergeți la subramura Componente.
  10. În meniul contextual, selectați Nou - Componentă. Se deschide Expertul de instalare a componentelor COM+.
  11. Faceți clic pe „Următorul”.
  12. Selectați „Instalați componente noi”.
  13. Selectați un fișier<каталог 1С>\bin\comcntr.dll.
  14. Faceți clic pe „Next” - „Finish”.
  15. Să trecem la ramura V83COMConnector.
  16. Selectați „Proprietăți” din meniul contextual. În fereastra care se deschide, accesați fila „Securitate”.
  17. Debifați caseta de selectare „Forțați verificarea accesului pentru aplicații”. Bifați caseta de selectare „Aplicați politica de restricții software”. Setați nivelul de restricție la „Nelimitat”.
  18. Faceți clic pe „OK”.

După aceasta, actualizatorul ar trebui să poată înregistra independent componente ale tuturor versiunilor de platforme, și nu doar pe cea pe care am specificat-o în componentă.

Pasul #4

Se întâmplă că doar reinstalarea platformei ajută (în acest caz, componenta este înregistrată corect).

Pasul #5

Dacă problema a început să apară imediat după actualizarea platformei 1c, atunci cel mai probabil noua versiune a platformei 1c lipsește un pachet de service sau o actualizare pentru sistemul dvs. de operare. Prin urmare, dacă este posibil, le instalăm pe toate; dacă nu, acționăm selectiv în conformitate cu acesta.



Ți-a plăcut articolul? Împărtășește-l