Componentele de înregistrare COM 1C 8.3. Eliminarea erorilor de conectare prin conexiunea COM. Conectarea unei conexiuni externe

La un moment dat, s-au confruntat cu problema creării unei conexiuni com pe partea serverului. Problema este dificil de diagnosticat, deoarece Codul funcționează perfect sub client refuză să lucreze pe server, de exemplu, dacă codul execută sarcina de reglementare.

Metoda propusă mai jos vă permite să scăpați de problema descrisă. Din păcate, după reinstalarea platformei, totul se întoarce la cercuri proprii și procedura trebuie repetată.

Http://www.steeltrace.ru/details/articleid/22/%d1%80 %d0%B5%D0%B3%D0%B8%D1%81%d1%82%d1%80%d0%b0%d1. % 86% D0% b8% D1% 8F-1% D1% 81-COM-% D0% D0% D0% D0% D0% BON% D0% D0% B5% D0% Bd% D1% 92% D0% bb% D0% D1% D1% 80% B0% D0% B1% D0% Be% D1% 82% D1% 8B-% D1 % 81-64-% d0% B1% D0% D0% BD% D1% 8B% D0% BC% D0% BF% D1% 80% D0% B8% D0% BB % D0% B% D0% D0% B5% D0% D0% D0% D1% 8F% D0% BC% D0% B8.aspx

Actualizare.. Supliment: Dacă serverul este pe 64 de biți pe un server Windows 64-bit (în distribuția Windows64.rar),
că o astfel de problemă nu va fi. Punctul de referință vă permite să livrați conectorul COM fără a instala nordul însuși. Acest lucru este util atunci când aplicația este implementată pe platformă 8.3, iar conexiunea COM este necesară pentru baze la 8.2.

Pentru adăugare, mulțumescbrix8x..

Este afișat un algoritm de configurare a sistemului, cu un ecran pentru fiecare acțiune.

2. Componente de înregistrare comcnr.dll

5. Start Server 1C. (necesar :)

Consola de apel


Înregistram componenta. Nu există nici o componentă dacă este instalat numai serverul 1C. Din anumite motive, 1c îl publică doar ca parte a clientului.


Actualizare.. Dacă componenta nu este înregistrată, aceasta ar trebui să elimine mai întâi componenta veche, numai atunci cea nouă va crește.
Efectuarea regsvr32. / U. "C: \\ Program Files \\ 1CV8 \\ 8.2.18.82 \\ bin \\ comcnr.dll"
Apoi același, dar fără "/ u" regsvr32 "C: \\ Program Files \\ 1cv8 \\ 8.2.18.82 \\ bin \\ comcnr.dll"

Pentru adăugare, mulțumescshur52..

Rulați serviciul de componente. Descrie pentru Windows Server 2008 R2 Standart.








Într-o ramură Componentele Adăugați o nouă componentă COMCNTR.DLL






IMPORTANT!!! După instalare, trebuie să schimbați ușor proprietățile. Această subtilitate nu este descrisă nicăieri, nu am lucrat fără ea!

Repornirea serverului fizic

Ca și în Windows X32 (x86) / x64, înregistrați componenta COMCNTR.DLL 1C 8 COMCNTR.DLL 1C 8.

Răspunsul la această întrebare este relevant în contextul schimbului de schimburi între bazele de date 1C utilizând conexiune directă. Una dintre opțiunile pentru componentele de instalare / înregistrare ale conexiunilor COM sunt date pe pagină: descrie opțiunea de instalare a componentei la instalarea / reinstalarea componentelor platformei 1C: o întreprindere dintr-un pachet standard de instalare. Dar se întâmplă că, la urma urmei, componenta COM pentru unii pini misterioși nu este încă înregistrată cu operațiunea de mai sus.

Aceasta este o alternativă utilizând linia de comandă a sistemului de operare. Privind puțin înainte, și pentru a vă proteja de erori la înregistrarea componentelor COMCNTR.DLL COM printr-o linie de comandă, cum ar fi ecranul afișat

Pentru a evita eroarea "Modulul COMCNTR.dll este încărcat, dar nu a reușit să finalizeze apelul dllregisterster, codul de eroare 0x80070005" porniți linia de comandă cu drepturile de administrator

În sistemul X32 System (X86) pentru platforma 1C: Întreprinderea 8.2

C: \\ Fișierele programului (X86) \\ 1CV82 \\<номер_релиза>\\ bin\u003e regsvr32 comcntr.dll

Unde<номер_релиза> - numărul de eliberare utilizată în prezent a platformei 1C 8.

Pentru 1c: Întreprinderea 8.3 Linia de comandă pentru înregistrare Componentele COM va arăta astfel:

C: \\ Fișierele programului (X86) \\ 1CV8 \\<номер_релиза>\\ bin\u003e regsvr32 comcntr.dll

Pe ecranul de mai jos ca pirome pentru cazul înregistrării COMCNTR.DLL în valoarea OS X86<номер_релиза> - "8.3.9.1818"

Acum luați în considerare opțiunea pentru sistemul de biți X64 pentru platforma 1C: întreprinderea 8.2, o alternativă:

C: \\ Windows \\ syswow64\u003e regsvr32 "C: \\ Fișierele program (x86) \\ 1cv82 \\<номер_релиза>\\ bin \\ comcnr.dll "

Pentru Windows X64, compusul COM 1C 8.3 poate fi stins după cum urmează:

C: \\ Windows \\ syswow64\u003e Regsvr32 "C: \\ Program Files (x86) \\ 1cv8 \\<номер_релиза>\\ bin \\ comcnr.dll "

Dacă tot același material nu ajută, se propune abordarea publicațiilor alternative: înregistrarea componentelor COMCNTR.dll în versiunea pe 64 de biți a componentelor Microsoft și a componentelor de înregistrare comcntr.dll pentru compusul COM de la 1c 8 într-un funcționare pe 32 de biți sistem

© www .. Toate drepturile rezervate. Utilizarea textelor și a imaginilor din această pagină fără permisiunea scrisă a proprietarului este interzisă. Când utilizați materialele din această pagină, este necesar să specificați legăturile cu această pagină.


Este adesea necesar să se obțină date din diferite baze, care nu sunt deloc neobișnuite pe diferite platforme. Poate fi schimb de date regulat între baze de date. De asemenea, pot exista o prelucrare de transfer de date unică. Acestea pot fi, de asemenea, rapoarte de colectare a datelor din diferite baze și pot forma rezultatul de ieșire necesar.
În fiecare dintre aceste cazuri, este necesar să se conecteze de la o bază la alta prin conexiunea COM. În stadiul de conectare, se află adesea probleme diferite. Acest articol va lua în considerare unele erori și modalități de a le elimina. Vor fi erori concrete la conectarea între anumite platforme, dar metodele de eliminare pot fi aceleași potrivite și când sunt conectate între platforme în alte variante.

Situația este prima. Când încercați să vă conectați prin com, se eliberează un mesaj de eroare la baza de date sursă. Ceva de genul: "Eroare la apelarea unui constructor (COMOBJECT): -2147221164 (0x80040154): Clasa nu este înregistrată".
Pentru a elimina o astfel de eroare, trebuie să înregistreze prima dată pentru a înregistra biblioteca clienților - receptor. În plus, pentru diferite versiuni ale clienților unei versiuni a platformei, trebuie să vă înregistrați biblioteca. Adică pentru diferite ansambluri ale platformei versiunii 8.3, trebuie să reînregistrați versiunea bibliotecii de eliberare a platformei dorite. Pentru versiunea 8.2 platformă, aceeași abordare.
Biblioteca este înregistrată după cum urmează. Linia de comandă începe de la sub administrator, comanda este scrisă în ea.

Regsvr32 "[calea bibliotecii] \\ bin \\ comcntr.dll,

De exemplu, regsvr32 "C: \\ Fișierele programului (x86) \\ 1cv8 \\ 8.3.5.1119 \\ bin \\ comcnr.dll" și comanda este efectuată. Toate aplicațiile deschise 1c sunt mai bune pentru a se închide. Dacă înregistrarea reușită va fi emisă un mesaj despre succes. Dacă este emis un mesaj de eroare, atunci trebuie să verificați calea către care este localizată biblioteca și toate drepturile.
De asemenea, această comandă poate fi plasată în fișierul CMD și să o ruleze cu drepturile de administrator.

Dacă o astfel de eroare scade atunci când încercați să vă conectați la baza de date de pe platformă 7.7, verificați registrul pentru înregistrarea conectorului de 7,7. În secțiunea HKEY_Classes_root trebuie să existe sucursale descrise în imagine:

Pentru înregistrarea corectă a conectorului de 7,7, o dată trebuie să rulați 1C întreprindere 7.7 în numele administratorului.

Situația este a doua. Când încercați să instalați conexiunea COM, o eroare are o eroare cu un mesaj despre versiunea nepotrivită a clientului sursă BD. În acest caz, problema este rezolvată prin înregistrarea versiunii corecte a bibliotecii COMCNTR.DLLL, așa cum este descris mai sus.

Situație a celui de-al treilea. Când încercați să vă conectați prin com-conectare la baza de date sursă de pe platforma 1C 7.7, erorile nu sunt emise, dar procesarea "strânsă" se blochează. Când eliminați sarcina, conexiunea prin consola de gestionare a serverului 8.x rămâne și nu este resetată de niciun trucuri, cu excepția repornirii serviciului 1C Server. Acest fenomen apare atunci când se încearcă o încercare de la baza de date de pe platforma 8.x la baza de date de pe platforma 7.7 din sesiunea de server. În mod clar anumite cauze ale unui astfel de comportament al programului nu sunt date aici. Recomandare One - Utilizați conexiunea de apelare de la sesiunea de clienți (& Cutton).

Situația este a patra. Când încercați să vă conectați prin conexiunea COM la baza de date sursă pe platforma 1C 7.7, erorile nu sunt emise, dar conexiunile nu apar. În acest caz, iar în unele altele contribuie la înregistrarea manuală a comentariilor.

1. Mergeți la panoul de control → Administrare → Servicii Componente.
2. Mergeți la computerele ramificației → Computerul meu → Aplicații COM +.


3. În meniul contextual, selectați Creare → Anexă. Se deschide expertul de instalare a aplicației COM +. Selectați "Creați o nouă aplicație".

4. Numele noii aplicații este mai bine să scrieți clar despre ce vorbire: V8_Connector, Metoda de activare - "Aplicație server".

5. În etapa următoare, setați "utilizatorul curent". Faceți clic pe "Next". În ramura aplicației create, mergeți la sucursala "Rolul" Deschideți rolul "Creatorowner" și apoi în secțiunea "Utilizatori" Creați un utilizator - contul sub care funcționează serverul 1C.
6. În ramura aplicației create, accesați filiala "Componente" și creați o componentă: Creare - o componentă Selectați "Instalarea de noi componente" și selectați DLL-KU dorit în dialog (în acest exemplu: [Bibliotecă calea] \\ bin \\ comcntr.dll).
7. În meniul contextual, selectați "Proprietăți". În fereastra care se deschide, mergeți la fila "Securitate".
8. Scoateți "Verificarea accesului forțat pentru aplicații". Am pus un Daw "aplică politici limită de politică". Stabiliți nivelul de restricții - "nelimitat"


9. Faceți clic pe "OK".

În acest articol, voi vorbi despre multe caracteristici ale interacțiunii dintre baza de date 1c în conformitate cu tehnologia COM acumulată de-a lungul anilor de dezvoltare și utilizare a produsului comercial de integrare 2 este: integrarea companiei noastre 2 sunt.

Termeni

OS - Sistem de operare

COM client - proces de operare (flux), care necesită crearea unui obiect com

COM Server - COM-Obiect creat de solicitarea clientului

COM Conector - V8x.comCoCoCoComencer Obiect pentru a crea conexiuni externe cu baze de date 1C

Server de automatizare - este OLE-SERVER, COM Object V8x.Application pentru a crea aplicații 1C

Ediția platformei - substring la punctul 2 al versiunii platformei (de exemplu 8.2, 8.3)

Ansamblul platformei - linia completă de versiune a platformei (de exemplu 8.2.19.130, 8.2.16.352)

Conectarea unei conexiuni externe

Luați în considerare algoritmul pentru conectarea unei conexiuni externe în detaliu
  1. Crearea unui con-conector COM (nume de clasă - V8x.comConnector). Opțiuni:
  2. Intracesional (inproc)
  3. O clasă de clasă V8x.comConnector de același bit pe măsură ce clientul COM trebuie înregistrată.
  4. Dacă publicarea platformei COM Client coincide cu ediția COM Server Platform, este, de asemenea, necesar să se asambleze platforma COM client și serverul COM.
  5. Este înregistrată la instalarea platformei cu opțiunea "Union extern". În orice moment, acesta poate fi înregistrat la comanda "REGSVR32 COMCNTR.DLL" în directorul executabil de platformă.
  6. Obiect COM este creat în memoria clientului COM
  7. Crearea costurilor de aproximativ - 0,01 (primul) /0.001 (al doilea)
  8. Exemplu

  9. Outprocesse locale (locale)
  10. Un clasa de clasa V8x.comConnector de orice bit și ansamblul platformei trebuie înregistrat. Trebuie să configurați prin DCOMCNFG.EXE COM + o aplicație cu activare "Aplicație server" / "Aplicație server". Citiți mai multe revizuite mai jos.
  11. Obiectul COM este creat în memoria procesului de gazdă a serviciului (dllhost.exe) pe computerul COM client
  12. Cultivarea costurilor aproximativ - 0,06 (primul) / 0,03 (al doilea) sec
  13. Exemplu
    Comedle \u003d New COM Object ("V83.comConnector");
    Conexiune străină \u003d komsetirir .connect (compusul șirului);
  14. Outpproceses Nonlocal (DCOM)
  15. O clasă V8x.comConnector de orice platformă de asamblare și de asamblare trebuie să fie înregistrată pe un computer non-local. Trebuie să configurați pe un computer non-local prin aplicația DCOMCNFG.EXE COM + cu activare "Aplicație Singer" / "Aplicație server". Citiți mai multe revizuite mai jos.
  16. Trebuie să configurați rolul "serverului de aplicații" / "aplicație server" pe un computer non-local și să activați accesul non-local COM + selectând opțiunea "Accesul la rețea la com +" / "COM + Network Access". Citiți mai multe revizuite mai jos.
  17. Obiectul COM este creat în memoria procesului de gazdă a serviciului (dllhost.exe) pe un alt computer
  18. Costul creării aproximativ
  19. Date experimentale

Graficul arată că durata creării acestui obiect este direct proporțională cu întârzierea canalului, iar coeficientul de proporționalitate este de aproximativ 24. Se poate presupune că atunci când creați acest obiect COM, 24 de apeluri prin canal.
  1. Exemplu
    Comedy \u003d New Comback ("V83.comConnector", NameComputer);
    Conexiune străină \u003d komsetirir .connect (compusul șirului);
  2. Executarea metodei de conectare (crearea unei conexiuni externe)
  3. Crearea unei sesiuni - 1 sec
  4. Inițializarea sesiunii - sec
  5. Sistemul de lucru anterior (numai serverul de automatizare)
  6. Sistemul de propactare
  7. Inițializarea parametrilor sesiunii
  8. Încărcarea metadatelor necesare

COM Costuri de apel

De fiecare dată când atragem în limba încorporată proprietatea sau metoda obiectului COM (efectuarea unui apel COM), apar o serie de acțiuni suplimentare comparativ cu referire la obiectul nativ al limbajului încorporat. Dacă serverul COM este într-un alt proces local, atunci este, de asemenea, transferul tuturor parametrilor de la clientul COM la serverul COM și în cele din urmă, parametrii transferați către clientul COM. Pentru un astfel de transfer, informațiile ar trebui să fie serializate în mod natural pe partea expeditorului și apoi deserializate pe partea beneficiară, care, împreună cu alte acțiuni, au primit numele de marshaling și demarasoline. În modul nonlocal (DCOM), un astfel de transfer va mai petrece timpul în comunicațiile de rețea și atunci când faceți apel la un nou obiect com pentru a-l transfera la "scheletul" și, prin urmare, întârzierea canalului va juca un rol decisiv (mai multe despre COM Apeluri, DCOM în Wikipedia, recenzie tehnică DCOM,)

Tipul de calcul al apelului COM-Server

  1. Minim pentru serverul COM-ECESIONAL
  2. Mijlocul pentru serverul local non-procesiune
  3. De la mediu la mare pentru un server de comotare nelocală în funcție de calitatea canalului de comunicare

Minimizarea numărului de apeluri com

  1. Creați o prelucrare externă de bază cu un set de metode comune pentru primirea apelurilor de la Client COM pe partea de server COM
  2. Acum nu trebuie să schimbăm configurația bazei de date a serverului COM pentru a utiliza funcționalitatea complexă.
  3. În produsul nostru, am sunat "procesorul de servicii". La transfer și inițializare durează aproximativ 1 secundă
  4. Noi proiectăm interacțiunea cu serverul COM pe principiul "minim de apeluri COM", adică pregătiți tot ceea ce aveți nevoie pe clientul COM și transmiteți un apel mare ca parametri "
  5. Creați procesarea încorporată pentru a efectua un astfel de apel în clientul COM
  6. Transferarea obiectelor agregate
  7. Serializați toți parametrii de intrare pe partea clientului COM
  8. Deserializați toți parametrii de intrare pe partea Serverului COM
  9. Serializați toți parametrii de ieșire de pe partea Serverului COM
  10. Resetrializarea tuturor parametrilor de ieșire din partea Clientului COM
  11. În produsul nostru, l-am numit "Executia serviciului InfA"
  12. Pentru mai multe apeluri com, oferim o frecvență de frecvență
  13. De exemplu, apelurile de informații pot fi efectuate cu o frecvență variabilă

Părere

Atunci când se utilizează principiul "minim de apeluri COM", o parte semnificativă a timpului va fi efectuată în contextul altcuiva, care întărește serios unele inconveniente de apeluri COM:
  1. Nu puteți întrerupe fluxul COM client și conexiunea la serverul de aplicații 1C până când serverul COM este finalizat.
  2. Clientul COM nu are informații despre progresul apelului în serverul COM
Pentru a combate aceste inconveniente, puteți organiza feedback de la serverul COM la clientul COM, trecând serverul COM la linkul către modulul general al clientului COM și apelați periodic clientul COM prin intermediul acestuia. Trebuie remarcat faptul că există erori de platformă (https://partners.v8.1c.ru/forum/t/1382465/m/1382465), manifestată atunci când creează referințe la un modul comun în mai mult de un com-nord de sesiune. Prin urmare, în timp ce este mai bine să curățați legăturile către un modul comun în toate serverele COM reținute înainte de plasarea într-una nouă. În provocările de întoarcere puteți transmite:
  1. informații despre progres
  2. mesaje acumulate către utilizator (pentru a obține o funcție pentru a primi utilizatorul (adevărul))

Schema principiului "minimului de apeluri com"

O astfel de schemă este prietenoasă cu întârzieri cu canalele de înaltă legătură. Prin urmare, este în mare parte similară cu apelul de serviciu web. În consecință, utilizarea acesteia pentru interacțiunea COM, reduceți în mod semnificativ costul posibilelor tranziții între Com și Serviciul Web în ambele direcții.

Debugging.

Atunci când utilizați minimul de apeluri COM, este posibilă facilitarea depunerii executării codului pe serverul COM prin efectuarea unei ferestre de conexiune modală opțională la clientul COM. În această fereastră, trebuie să puteți seta parametrii de conectare de unică folosință, să efectuați funcții auxiliare și să vizualizați informații despre sesiunea conectată. Mai jos, deoarece un exemplu arată o astfel de fereastră din produsul nostru.

Pentru a permite capacitatea de a depana conexiuni externe, trebuie să creați un fișier COMCNTRCFG.XML cu conținutul corespunzător din Subdirectorul Conf. În fereastra conexiunii, puteți face caseta de selectare pentru crearea de software a unui astfel de fișier. Cu toate acestea, multe versiuni ale platformei conțin o eroare datorată că elementele de buclă ale conexiunilor externe nu sunt vizibile în depanare chiar și cu acest fișier configurat corect. Pe platforma 8.3, aceste probleme par a fi rezolvate.

Exemplu de fișier comcnrcfg.xml:


De asemenea, nu puteți uita de necesitatea de a rula un configurator pentru depanarea de la același (până la registrul de litere) al șirului de conexiune ca obiect de depanare. Prin urmare, în acest dialog, trebuie să efectuați un buton pentru a porni configuratorul de server COM cu linia corectă a conexiunii.

Într-o anumită măsură pentru a ocoli problema invizibilității obiectului de depanare a unei conexiuni externe și o serie de alte inconveniente pot fi realizate prin executarea unică a codului de pe clientul gros, înlocuind modul "Conexiune externă" pe "automatizarea server "(aplicație), adică Folosind V8x.Application și a permis vizibilitatea. Prin urmare, în fereastra de conectare, aveți nevoie de parametri pentru a selecta modul de conectare.

După crearea unei conexiuni la Clientul COM, un depanator de bază de bază COM este de obicei necesar și setarea punctului de oprire acolo în locul potrivit. Prin urmare, în fereastra de conectare, trebuie să poziționați butonul COM Connection / Configurator Configurator. Dacă serverul COM rulează în modul de aplicare vizibil, atunci să conectați debuggerul, puteți utiliza un apel asincron la excepția din acesta. Din dialogul de eroare din aplicația COM Server, puteți deschide configuratorul și în majoritatea cazurilor conectați imediat depanatorul. Dacă conexiunea de debugger nu este disponibilă în acest fel, operatorul va ajuta la afișarea informațiilor despre sesiune (numărul său) în baza de date COM Server. De asemenea, aveți nevoie de butonul Deschidere în debuggerul deschis al fișierului de procesare extern, care va fi efectuat în acesta.

Management COM Clase și Aplicații COM + 1C

Management COM clase

  1. Conexiune externă (V8x.comConnector)
  2. Înregistrare: regsvr32 comcnr.dll
  3. Anularea: Regsvr32 COMCNTR.DLL / U
  4. Server de automatizare (V8x.Application)
  5. Înregistrare - 1cv8.exe / regserver
  6. Anulare - 1cv8.exe / UnregServer

Gestionarea aplicațiilor COM +

Exercitate prin snap dcomcnfg.exe. Pentru a înregistra 1c ca o aplicație COM +, trebuie să deschideți snap-ul "dcomcnfg". În ea în filiala "Componenta" - "Computere" - "Computerul meu" - Aplicații "COM +" (Aplicații COM +) Trebuie să adăugați o nouă aplicație (aplicație). Când adăugați, puteți specifica orice nume. Apoi, trebuie să specificați utilizatorul, în numele căruia va funcționa aplicația COM +, pe fila de identificare (identitate). De asemenea, trebuie să setați accesul la aplicație pentru toți utilizatorii adăugând, dacă nu există niciun rol, cu niciun nume în filiala Roles (roluri) și adăugați utilizatori la sucursala sa (toată lumea) la sucursala sa. După adăugarea unei aplicații, trebuie să creați o componentă nouă. Pentru a face acest lucru, în filiala "Componente" a aplicației create, trebuie să selectați elementul de meniu "Creați" - "Component". Când creați pentru a selecta importul de componente deja înregistrate și pentru a găsi componenta 1C (V8x.comConnector.1) în listă (de preferință 64 de biți).

În produsul nostru există o "clasă COM" pentru a vizualiza / înregistra / modifica toate clasele COM și aplicațiile COM + 1C pe computerul specificat:

Configurarea serverului DCOM

Pentru serverul Windows 2008, trebuie să adăugați rolul "Aplicații Server". Pentru a face acest lucru, deschideți panoul de control al computerului, faceți clic dreapta în ramurile "rol" și selectați elementul de meniu "Adăugați un rol".

Va apărea o fereastră în care doriți să selectați rolul "serverului de aplicații" / "server de aplicații". La etapa de selecție a serverului de aplicații, trebuie să specificați elementul "Accesul la rețea la COM +" / "COM + Network Access" ". Dacă nu faceți, atunci când încercați să creați un obiect com, veți primi o eroare "atunci când apelați la un designer (Combek): Componenta sau aplicația care conține componenta a fost dezactivată".

Probleme

  1. Costuri ridicate de conexiune / inițializare
  2. Holding de servere com - mijloace eficiente de luptă
  3. Depozitare temporara. Producătorul nu recomandă, dar nu există loc pentru a merge. http://infostart.ru/public/331683/
  4. Reutilizați valorile returnate. Eliminat la fiecare 20 de minute
  5. Diferite ansambluri ale platformei client și server cu aceeași ediție de platformă
  6. Să se ocolească reciproc de la clientul COM să construiască platforma, să aloce și să configureze serverul DCOM
  7. Lipsa de informații despre tipurile de obiecte 1C investite în obiecte COM (în loc de tipul de obiect 1c, primim tipul "COMOUB") și absența sfaturilor contextuale asupra lor
  8. Pentru a ocoli, aplicați principiul "minim de apeluri com"
  9. Când transmiteți o excepție de la serverul COM, este nevoie de o scurtă forma datorită erorii platformei
  10. Pentru a trece, întoarceți-vă în jurul fiecărui apel din partea Serverului COM într-o încercare și excluderea retrage o excepție cu o descriere completă a erorilor.
  11. Când creați o eroare de obiect COM "versiunea" COMCNTR "Componenta (8.x.xx.xxx) diferă de versiunea modulului rădăcină" Core82 "(8.x.yy.yyy)"
  12. Pentru a bypass Creați COM + o aplicație cu activarea periodică. Apoi, serverul COM va fi creat într-un proces separat, iar meciurile versiunilor acestor module nu vor fi necesare.
  13. Canale lente (întârzieri mari)
  14. Fiecare subrețe pentru un canal lent separat este atribuită și configurați serverul DCOM și când accesați bazele din spatele acestui canal, serverele COM creează pe acest computer, minimizând numărul și cantitatea de apeluri COM client<->COM Server.
  15. Cache (reutilizări) com
  16. Imposibil de rupt conexiunea fluxului de lucru în care este așteptat apelul de server COM.
  17. Puteți utiliza crearea obiectelor COM în procesele gazdă selectate, configurarea în consecință a aplicației COM + și înregistrați identificatorii acestor procese în legarea la sesiunile COM pentru clienți. Apoi, dacă este necesar, completați conexiunea serverului unei astfel de sesiuni, puteți ucide mai întâi procesul de server COM și apoi sesiunea în sine.
  18. Când accesați obiectul COM, poate apărea o eroare "eroare necunoscută". Posibile motive:
  19. Serverul COM a încetat să existe. Posibile motive:
  20. Stack se revarsă
  21. Eroare nealiniată
  22. Procesul gazdă sa încheiat
  23. Pierderea de comunicare cu un server com nonlocal
  24. Coincidența numelor de proprietăți și metode fără parametrii obiectului creează ambiguitate de a le contacta prin com
  25. De exemplu, dacă un director are o recuzită completă de reprezentare completă, atunci datorită prezenței unei metode complete otenoaminare (), contactarea detaliilor de nume complet prin com poate duce la o metodă completă de indicare ()
  26. Pentru a ocoli, utilizați principiul "minim al apelurilor com"

COM Technology vs Web Services pe rețeaua locală

dezavantaje

  1. Complexitatea discutată mai sus cu interacțiunea diferitelor ansambluri ale platformei 1C, care necesită un mecanism de service pentru soluția lor
  2. Costuri ridicate pentru conectare / inițializare, deci în absența cache-ului ineficient pentru apelurile frecvente mici
  3. Legarea la familia sistemelor de operare (platformă) Windows

Beneficii

  1. Nu este nevoie să schimbați configurația bazelor la care vă conectați
  2. Funcționalitate largă
  3. Debugging mai ușor
  4. Nu este nevoie să implementați și să mențineți un server web

Capturați licențele clientului

În cele mai multe cazuri, toate aplicațiile client, un caz special din care sunt automatizarea serverului și cu rezervări este o conexiune externă, într-o sesiune de operare, este nevoie doar de toate licențele. Cu toate acestea, dacă aplicația client nu a reușit să obțină o licență hardware (dintr-o hasp locală sau o rețea de rețea) și o licență software (platformă sau configurație de bază), se face o încercare de a obține o licență separată de la serverul 1c: întreprinderi. Server 1C: Întreprinderile pot da doar licența numai dacă licențele sunt permise în proprietățile bazei de date ale serverului 1C: întreprinderi. În acest caz, fiecare aplicație client și o conexiune externă pot capta propria licență.

Concluzie

Dacă doriți să aflați mai multe despre caracteristicile descrise, puteți descărca gratuit o configurație gratuită și o bază de date de produs, pentru care este necesar să plasați o pre-comandă pe un produs informativ pentru produsul 2S: integrare. În ciuda prezenței în configurația modulului protejat, 99% din codul de configurare este deschis, adică puteți explora implementarea metodelor descrise.

Actualizați 1c. Rezolvarea problemelor cu biblioteca COM pentru o conexiune externă la baza de date.

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

Updran-1C în activitatea sa utilizează biblioteca COM de la 1c la conexiunea externă la baze.

În cele mai multe cazuri, nu sunt observate probleme cu această bibliotecă - actualizatorul în sine înregistrează automat și utilizează biblioteca versiunii dorite a 1c, dar apare ocazional (în principal pe sistemul de server) când sunt necesare "dansuri cu o tamburină".

Cum să înțelegeți că avem probleme cu com

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

La funcționarea normală, raportul va fi după cum urmează:

Cu problemele cu COM, aceasta sau o eroare similară va apărea:

Poate scrie încă, care este ca " Nu a reușit să creați o conexiune software la 1c".

Da, judecând după încercare, avem probleme cu com

În primul rând, despre ce fel de bibliotecă vorbim? Această bibliotecă cOMCNTR.DLL.care este situat în dosarul bin al unei platforme specifice 1c:

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

În plus, actualizatorul înainte de conectarea la baza de date prin intermediul conexiunii externe în sine înregistrează, în plus, biblioteca din sistem din versiunea dorită a platformei utilizând comanda:

Regsvr32. Exe / N / I: Utilizator

Deci ce putem face?

Pasul nr. 0.

În primul rând, suntem convinși că avem o versiune profesională cu adevărat a platformei, deoarece pentru versiunea de bază a platformei, conexiunea externă la bazele de lucru și nu ar trebui (aceasta este o limitare a platformei).

Pentru a înțelege ce platformă (de bază sau profită) face acest lucru.

Dacă avem încă o licență pentru platformă, dar de bază, atunci toți ceilalți pași nu au sens. Conectarea externă la bazele de date nu va funcționa cu noi (datorită restricțiilor platformei). Nimic nu rămâne decât să configureze baza.

Pasul 1

Dacă sunteți activat UAC, puteți obține acest lucru făcând clic pe etichetă cu butonul drept de pe comanda rapidă și selectați opțiunea "Start de la administrator".

Apoi, selectați baza de date și faceți clic pe butonul "Verificați setările". Dacă eroarea a dispărut și nu mai este jucată, chiar și cu pornirea uzuală de pornire (fără drepturi de administrator) - Felicitări, problema este rezolvată. Dacă nu - mergeți mai departe.

Pasul 2.

În versiunea pe 32 de biți a operațiului încercați să executați comanda

REGSVR32 / N / I: Utilizator "Calea către dosarul bin \\ comcnr.dll"

În versiunea pe 64 de biți a sistemului de operare, echipa va fi aproximativ după cum urmează:

C: \\ Windows \\ SySwow64 \\ Regsvr32 / N / I: Utilizator "Calea către dosarul bin \\ comcnr.dll"

Aceste comenzi lansează de la numele de utilizator cu drepturile de administrator. Și cu activarea UAC, rulați CMD prin "rulați de la numele administratorului" sau prin aceeași lansare a fișierului lot scris.

Dacă comanda de înregistrare nu a ajutat, atunci trebuie să pre-ștergeți biblioteca de înregistrare a bibliotecii COMCNTR.dll, rulează aceeași comandă de apel RegSvr32 cu tasta / u

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

Pasul numărul 3.

Se pare că reînnoirea nu poate înregistra o componentă COM datorită setărilor de securitate de pe serverul dvs.
În acest caz:

  1. Mergem la panoul de control - servicii de administrare - componente.
  2. Vino la computerele ramificației - aplicațiile mele Computer - COM +.
  3. În meniul contextual, selectați Creare - o aplicație. Se deschide expertul de instalare a aplicației COM +.
  4. Faceți clic pe "Next".
  5. Selectați "Creați o nouă aplicație".
  6. Introduceți numele "V83Connector". Instalați aplicația Switch "Server". Faceți clic pe "Next".
  7. În pasul următor, instalați "utilizatorul curent". Faceți clic pe "Next".
  8. Faceți clic pe "Finish".
  9. În filiala V83Comconnector, care apare, mergeți la componenta rezultată.
  10. În meniul contextual, selectați Creare - Component. Se deschide expertul de instalare a componentelor COM +.
  11. Faceți clic pe "Next".
  12. Selectați "Instalarea noilor componente".
  13. Selectați fișierul<каталог 1С>\\ bin \\ comcnr.dll.
  14. Faceți clic pe "Next" - "Terminat".
  15. Accesați filiala V83Connector.
  16. În meniul contextual, selectați "Proprietăți". În fereastra care se deschide, mergeți la fila "Securitate".
  17. Eliminați verificarea de acces forțat pentru aplicații "Daw". Am pus un Daw "Aplicați o politică limită de politică". Stabiliți nivelul de restricții - "nelimitat".
  18. Faceți clic pe "OK".

După aceasta, actualizarea trebuie să fie capabilă să înregistreze independent componentele tuturor versiunilor platformelor și nu doar că am fost prescrise în componentă.

Pasul 4.

Se întâmplă că numai reinstalarea platformei ajută (în acest caz, componentele sunt înregistrate corect).

Pasul numărul 5.

Dacă problema începe imediat după actualizarea platformei 1c, atunci cea mai mare probabilitate versiunea Noua platformă 1C lipsește orice serviciu sau actualizare pentru sistemul dvs. de operare. Prin urmare, dacă există o oportunitate - le punem toate dacă nu, acționăm selectiv conform acestui lucru.