1c koju knjižnicu registrirati za com vezu. Otklanjanje grešaka u povezivanju putem COM veze. Spajanje vanjske veze

01.11.2019 Vijesti

Jedno vrijeme sam se susreo s problemom stvaranja COM veze na strani poslužitelja. Problem je teško dijagnosticirati jer... kod koji savršeno radi pod klijentom odbija raditi na poslužitelju, na primjer, ako kod obavlja rutinski zadatak.

Metoda predložena u nastavku omogućuje vam da se riješite opisanog problema. Nažalost, nakon ponovne instalacije platforme, sve se vraća u normalu i postupak se mora ponoviti.

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%BA%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0% BD%D1%82%D0%B0-%D0%B4%D0%BB%D1%8F-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D1 %81-64-%D0%B1%D0%B8%D1%82%D0%BD%D1%8B%D0%BC%D0%B8-%D0%BF%D1%80%D0%B8%D0%BB %D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D1%8F%D0%BC%D0%B8.aspx

Ažurirano. Dodatak: ako 64-bitni Windows poslužitelj ima 1C Enterprise Server 64-bit (u distribuciji windows64.rar),
onda neće biti takvih problema. Instalater vam omogućuje da instalirate COM konektor bez instaliranja samog sjevera. Ovo je korisno kada je aplikacija implementirana na platformi 8.3, a potrebna je COM veza s bazama podataka na 8.2.

Hvala na dodatkubrix8x.

Dan je algoritam za postavljanje sustava, sa snimkom zaslona za svaku radnju.

2. Registracija komponenti comcntr.dll

5. Početak 1C poslužitelja. (Obavezno :)

Pozivanje konzole


Registrirajte komponentu. Komponenta nedostaje ako je instaliran samo 1C poslužitelj. Iz nekog razloga, 1C ga objavljuje samo kao dio klijenta.


Ažurirano. Ako komponenta nije registrirana, možda ćete prvo morati ukloniti staru komponentu, tek tada će se instalirati nova.
Izrada regsvr32 /u"c:\Programske datoteke\1cv8\8.2.18.82\bin\comcntr.dll"
Zatim ista stvar, ali bez "/u" regsvr32 "c:\Program Files\1cv8\8.2.18.82\bin\comcntr.dll"

Hvala na dodatkušur52.

Pokrenimo uslugu komponente. Opisano za Windows Server 2008 R2 Standard.








U temi Komponente dodaju novu komponentu comcntr.dll






VAŽNO!!! Nakon instalacije morate malo promijeniti svojstva. Ova suptilnost nigdje nije opisana, bez nje mi ne bi uspjela!

Ponovno pokretanje fizičkog poslužitelja

Ažuriranje-1s. Rješavanje problema s com bibliotekom za eksterno povezivanje s bazom podataka.

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

U svom radu Updater-1c koristi com biblioteku iz 1c za eksterno povezivanje s bazama podataka.

U većini slučajeva nema problema s ovom bibliotekom - sam program za ažuriranje automatski se registrira i koristi biblioteku potrebne verzije 1c, ali povremeno se pojavljuju slučajevi (uglavnom na operativnim sustavima poslužitelja) kada je potreban "ples s tamburinom".

Kako razumjeti da imamo problema s COM-om

Da biste to učinili, pritisnite gumb "Provjeri postavke" dok držite tipku "Shift" na tipkovnici:

U normalnim uvjetima rad COM izvješće će biti otprilike ovako:

Ako postoje problemi s COM-om, pojavit će se ova ili slična pogreška:

Također može napisati nešto poput " Izrada nije uspjela softverska veza do 1C".

Da, sudeći po testu, imamo problema s COM-om

Prije svega, o kakvoj knjižnici govorimo? Ova knjižnica comcntr.dll, koji se nalazi u bin mapi određene 1c platforme:

Ova biblioteka je instalirana i automatski registrirana u sustavu kada je platforma instalirana.

Osim toga, prije povezivanja s bazom podataka preko vanjske veze, sam updater dodatno registrira biblioteku iz potrebne verzije platforme u sustav pomoću naredbe:

regsvr32. exe /n/i:korisnik

Dakle, što možemo učiniti?

Korak #0

Prije svega, pazimo da stvarno imamo profesionalnu verziju platforme, jer za osnovna verzija platformi, vanjske veze s bazama podataka ne bi trebale raditi (ovo je ograničenje platforme).

Da bismo razumjeli koju platformu imamo (osnovnu ili profesionalnu), pokrenimo ovu.

Ako licenca za platformu još uvijek nije profesionalna, već osnovna, onda svi ostali koraci nemaju smisla. Vanjski priključak neće raditi s bazama podataka (zbog ograničenja platforme). Ne preostaje ništa drugo nego konfigurirati baze podataka.

Korak 1

Ako imate uključen UAC, to možete postići desnim klikom na prečac programa za ažuriranje i odabirom opcije "Pokreni kao administrator".

Zatim odaberite bazu podataka i kliknite gumb "Provjeri postavke". Ako pogreška nestane i više se ne reproducira čak i kada normalno pokrenete program za ažuriranje (bez administratorskih prava), čestitamo, problem je riješen. Ako ne, krenite dalje.

Korak 2

U 32-bitnoj verziji OS-a pokušavamo izvršiti naredbu

regsvr32/n/i:korisnik "put do mape bin\comcntr.dll"

Na 64-bitnoj verziji OS-a naredba bi bila otprilike ovakva:

C:\Windows\SysWOW64\regsvr32 /n/i:korisnik "put do mape bin\comcntr.dll"

Ove naredbe pokrećemo iz korisničko ime s administratorskim pravima. I s uključenim UAC-om, pokrenite cmd kroz “Pokreni kao administrator” ili kroz isto pokretanje napisane batch datoteke.

Ako naredba za registraciju nije pomogla, prvo morate ukloniti registraciju biblioteke comcntr.dll pokretanjem iste naredbe koja poziva regsvr32 s ključem /u

Ako to ne pomogne, pokušajte ponovno instalirati 1C platformu u načinu popravka, a zatim registrirajte biblioteku kao što je gore napisano.

Korak #3

Čini se da program za ažuriranje ne može registrirati COM komponentu zbog sigurnosnih postavki na vašem poslužitelju.
U ovom slučaju:

  1. Idite na Upravljačku ploču - Administracija - Usluge komponenti.
  2. Idemo u granu Računala - Moje računalo - COM+ aplikacije.
  3. U kontekstni izbornik odaberite Stvori - Aplikacija. Otvara se čarobnjak za instalaciju COM+ aplikacije.
  4. Pritisnite "Dalje".
  5. Odaberite "Stvori novu aplikaciju".
  6. Unesite naziv "V83COMConnector". Postavite prekidač " Poslužiteljska aplikacija". Kliknite "Dalje".
  7. U sljedećem koraku instaliramo " Trenutni korisnik". Kliknite "Dalje".
  8. Pritisnite "Završi".
  9. U grani V83COMConnector koja se pojavi idite na podgranu Komponente.
  10. U kontekstnom izborniku odaberite Novo - Komponenta. Otvara se čarobnjak za instalaciju komponente COM+.
  11. Pritisnite "Dalje".
  12. Odaberite "Instaliraj nove komponente".
  13. Odaberite datoteku<каталог 1С>\bin\comcntr.dll.
  14. Kliknite "Dalje" - "Završi".
  15. Prijeđimo na granu V83COMConnector.
  16. Odaberite "Svojstva" iz kontekstnog izbornika. U prozoru koji se otvori idite na karticu "Sigurnost".
  17. Poništite potvrdni okvir "Prisilna provjera pristupa za aplikacije". Označite potvrdni okvir "Primijeni politiku ograničenja softvera". Postavite razinu ograničenja na "Neograničeno".
  18. Pritisnite "OK".

Nakon toga, updater bi trebao moći samostalno registrirati komponente svih verzija platformi, a ne samo one koju smo naveli u komponenti.

Korak #4

Dešava se da samo ponovna instalacija platforme pomaže (u ovom slučaju komponenta je ispravno registrirana).

Korak #5

Ako se problem počeo javljati odmah nakon ažuriranja 1c platforme, onda najvjerojatnije nova verzija platformi 1c nedostaje neki servisni paket ili ažuriranje za vaš operativni sustav. Stoga, ako je moguće, instaliramo ih sve, ako ne, postupamo selektivno u skladu s ovim.


Često je potrebno dobiti podatke iz različitih baza podataka, koje, što nije rijetkost, rade na različitim platformama. To također može biti redovita razmjena podataka između baza podataka. Može postojati i jednokratna obrada za prijenos podataka. To također mogu biti izvješća koja prikupljaju podatke iz različitih baza podataka i formiraju traženi izlaz.
U svakom od ovih slučajeva morate se povezati s jednom bazom podataka na drugu putem COM veze. U fazi povezivanja često vrebaju razne nevolje. Ovaj članak će razmotriti neke pogreške i kako ih riješiti. Ovdje će biti navedene specifične pogreške pri povezivanju između određenih platformi, ali rješenja mogu biti jednako prikladna pri povezivanju između platformi u drugim varijantama.

Situacija jedna. Kada se pokušate povezati putem COM veze s izvornom bazom podataka, prikazuje se poruka o pogrešci. Nešto poput: "Pogreška prilikom pozivanja konstruktora (COMObject): -2147221164(0x80040154): Klasa nije registrirana."
Da biste riješili ovu pogrešku, prva stvar koju trebate učiniti je registrirati ciljnu klijentsku biblioteku. I za različite verzije klijenti jedne verzije platforme trebaju registrirati svoju knjižnicu. To jest, za različite verzije platforme verzije 8.3, trebate ponovno registrirati verziju knjižnice željenog izdanja platforme. Za verziju platforme 8.2 isti pristup.
Knjižnica je registrirana kako slijedi. Počinje Naredbeni redak ispod Administratora, u njemu je zapisana naredba

Regsvr32 "[Staza biblioteke]\bin\comcntr.dll ,

Na primjer, regsvr32 "c:\Program Files (x86)\1cv8\8.3.5.1119\bin\comcntr.dll" i naredba se izvršava. svi otvorene aplikacije U ovom slučaju, bolje je zatvoriti 1C. Ako je registracija uspješna, prikazat će se poruka o uspješnosti. Ako dobijete poruku o pogrešci, trebate provjeriti put na kojem se nalazi biblioteka i sva prava.
Također možete smjestiti ovu naredbu u cmd datoteku i pokrenuti je s administratorskim pravima.

Ako se takva pogreška dogodi kada se pokušate povezati s bazom podataka na platformi 7.7, trebali biste provjeriti registraciju prisutnosti registracije konektora 7.7. Odjeljak HKEY_CLASSES_ROOT treba sadržavati grane prikazane na slici:

Da biste pravilno registrirali konektor 7.7, morate jednom pokrenuti 1C Enterprise 7.7 u ime administratora.

Druga situacija. Prilikom pokušaja uspostavljanja COM veze pojavljuje se pogreška s porukom o nepodudarnosti između verzije klijenta izvorne baze podataka. U ovom slučaju, problem je riješen registriranjem ispravne verzije biblioteke comcntr.dll kao što je gore opisano.

Situacija tri. Prilikom pokušaja povezivanja putem COM veze s izvornom bazom podataka na platformi 1C 7.7 ne generiraju se pogreške, ali se obrada "čvrsto" "zamrzava". Kada se zadatak ukloni, veza preko konzole za upravljanje poslužiteljem 8.x ostaje i ne poništava se nikakvim trikovima osim ponovnim pokretanjem usluge 1C poslužitelja. Ovaj se fenomen događa kada se iz sesije poslužitelja pokuša povezati baza podataka na platformi 8.x s bazom podataka na platformi 7.7. Ovdje nisu navedeni jasno definirani razlozi za ovakvo ponašanje programa. Jedna preporuka je korištenje poziva za povezivanje iz sesije klijenta (&OnClient).

Situacija četiri. Prilikom pokušaja povezivanja putem COM veze s izvornom bazom podataka na platformi 1C 7.7 ne generiraju se pogreške, ali se ne uspostavlja veza. U ovom slučaju, kao iu nekim drugim, pomaže ručna registracija COM komponenti.

1. Idite na Upravljačku ploču → Administracija → Usluge komponenti.
2. Idite na granu Računala → Moje računalo → COM+ aplikacije.


3. U kontekstnom izborniku odaberite Stvori → Aplikacija. Otvara se čarobnjak za instalaciju COM+ aplikacije. Odaberite "Stvori novu aplikaciju".

4. Bolje je napisati naziv nove aplikacije kako bi bilo jasno o čemu govorimo: V8_ComConnector, način aktivacije - “server aplikacija”.

5. U sljedećem koraku postavite “Trenutni korisnik”. Kliknite "Dalje". U grani stvorene aplikacije idite na granu "Uloge", otvorite ulogu "Vlasnik kreatora", a zatim u odjeljku "Korisnici" kreirajte korisnika - račun pod kojim se pokreće 1C poslužitelj.
6. U grani kreirane aplikacije idite na granu "Komponente" i kreirajte komponentu: Kreiraj - Komponenta Odaberite "Instaliraj nove komponente", au dijalogu odaberite željeni DLL (u u ovom primjeru: [Putanja biblioteke]\bin\comcntr.dll).
7. U kontekstnom izborniku odaberite “Svojstva”. U prozoru koji se otvori idite na karticu "Sigurnost".
8. Poništite potvrdni okvir "Prisilna provjera pristupa za aplikacije". Označite potvrdni okvir "Primijeni politiku ograničenja softvera". Postavite razinu ograničenja na "Neograničeno"


9. Pritisnite "OK".

U ovom ću članku govoriti o mnogim značajkama interakcije između 1C baza podataka pomoću COM tehnologije, akumuliranih tijekom godina razvoja i korištenja komercijalnog integracijskog proizvoda 2iS: Integracija naše tvrtke 2iS.

Pojmovi

OS - operativni sustav

COM klijent - OS proces (nit) koji je zahtijevao stvaranje COM objekta

COM server - COM objekt kreiran na zahtjev klijenta

Com konektor - COM objekt V8X.ComConnector za stvaranje vanjskih veza s 1C bazama podataka

Poslužitelj za automatizaciju - poznat i kao OLE poslužitelj, COM objekt V8X. Aplikacija za izradu 1C aplikacija

Izdanje platforme - podniz do 2. točke verzije platforme (na primjer 8.2, 8.3)

Izrada platforme - niz pune verzije platforme (na primjer 8.2.19.130, 8.2.16.352)

Spajanje vanjske veze

Pogledajmo detaljno algoritam za povezivanje vanjske veze
  1. Kreiranje COM objekta Com konektor (Naziv klase - V8X.ComConnector). Mogućnosti:
  2. U tijeku (inproc)
  3. Klasa V8X.ComConnector mora biti registrirana s istom širinom bita kao COM klijent
  4. Ako je izdanje platforme COM klijenta isto kao izdanje platforme COM poslužitelja, tada platforma COM klijenta i verzija platforme COM poslužitelja također moraju biti jednake.
  5. Registrira se prilikom instalacije platforme s opcijom Vanjska veza. U bilo kojem trenutku može se registrirati naredbom “Regsvr32 comcntr.dll” u direktoriju izvršne datoteke platforme.
  6. COM objekt se stvara u memoriji COM klijenta
  7. Izrada košta otprilike - 0,01(prva)/0,001(druga) sek
  8. Primjer

  9. Lokalno (lokalno) izvan procesa
  10. Klasa V8X.ComConnector bilo koje veličine bita i platforme mora biti registrirana. Potrebno je konfigurirati COM+ aplikaciju preko dcomcnfg.exe uz aktivaciju “Server aplikacija”. O čemu se detaljnije govori u nastavku.
  11. COM objekt se stvara u memoriji glavnog servisnog procesa (dllhost.exe) na COM klijentskom računalu
  12. Izrada košta otprilike - 0,06 (prvi) / 0,03 (drugi) sek
  13. Primjer
    ComConnector = Novi COMObject(“V83.ComConnector”);
    OuterConnection = ComConnector.Connect(ConnectionString);
  14. Izvanprocesno nelokalno (DCOM)
  15. Klasa V8X.ComConnector bilo koje razine bita i izgradnje platforme mora biti registrirana na računalu koje nije lokalno. Potrebno je konfigurirati COM+ aplikaciju na računalu koje nije lokalno putem dcomcnfg.exe uz aktivaciju “Server aplikacija”. O čemu se detaljnije govori u nastavku.
  16. Morate konfigurirati ulogu "Aplikacijskog poslužitelja" na računalu koje nije lokalno i omogućiti nelokalni COM+ pristup odabirom opcije " Pristup mreži na COM+”/”COM+ pristup mreži”. O čemu se detaljnije govori u nastavku.
  17. COM objekt se stvara u memoriji glavnog servisnog procesa (dllhost.exe) na drugom računalu
  18. Troškovi izrade cca.
  19. Eksperimentalni podaci

Grafikon pokazuje da je trajanje stvaranja ovog COM objekta izravno proporcionalno kašnjenju kanala, a faktor proporcionalnosti je približno 24. Možemo pretpostaviti da se prilikom kreiranja ovog COM objekta kroz kanal odvijaju 24 poziva.
  1. Primjer
    ComConnector = New COMObject(“V83.ComConnector”, ComputerName);
    OuterConnection = ComConnector.Connect(ConnectionString);
  2. Izvršavanje metode Connect (stvaranje vanjske veze)
  3. Stvaranje sesije - 1 sek
  4. Inicijalizacija sesije - sek
  5. Prije pokretanja sustava (samo za poslužitelj automatizacije)
  6. Prilikom pokretanja sustava
  7. Inicijalizacija parametara sesije
  8. Učitavanje potrebnih metapodataka

Troškovi COM poziva

Svaki put kada pristupimo svojstvu ili metodi COM objekta u ugrađenom jeziku (uspostavimo COM poziv), dogodi se nekoliko stvari: dodatne akcije u usporedbi s pozivanjem objekta ugrađenog materinjeg jezika. Ako se COM poslužitelj nalazi u drugom lokalnom procesu, tada se svi parametri prvo prenose sa COM klijenta na COM poslužitelj i na kraju se parametri prenose natrag na COM klijent. Za takav prijenos, informacije se prirodno moraju serijalizirati na strani pošiljatelja, a zatim deserializirati na strani primatelja, što se, zajedno s nekim drugim radnjama, naziva marshaling i unmarshaling. U nelokalnom načinu rada (DCOM), takav će prijenos i dalje gubiti vrijeme na mrežnu komunikaciju i, prilikom prvog pristupa novom COM objektu, prijenos njegovog "kostura", pa će stoga kašnjenje kanala igrati odlučujuću ulogu (Više o COM pozivima , DCOM na Wikipediji, Tehnički pregled DCOM,)

Omjer cijene po pozivu prema vrsti lokacije COM poslužitelja

  1. Minimum za Com poslužitelj u procesu
  2. Prosjek za lokalni Com poslužitelj izvan procesa
  3. Srednje do veliko za ne-lokalni izvanprocesni Com poslužitelj, ovisno o kvaliteti komunikacijskog kanala

Smanjenje broja COM poziva

  1. Stvaramo osnovnu vanjsku obradu sa skupom uobičajenih metoda za primanje poziva od COM klijenta na strani COM poslužitelja
  2. Sada ne trebamo mijenjati konfiguraciju baze COM poslužitelja kako bismo tamo koristili složene funkcije.
  3. U našem proizvodu nazvali smo ga "Service Processor". Prijenos i inicijalizacija traje oko 1 sekundu
  4. Dizajniramo interakciju s COM poslužiteljem prema principu “minimum COM poziva”, odnosno pripremamo sve što je potrebno na strani COM klijenta i prosljeđujemo kao parametre jednom velikom pozivu.”
  5. Mi stvaramo ugrađenu obradu za upućivanje takvog poziva u COM klijentu
  6. Prijenos agregatnih objekata
  7. Serializiramo sve ulazne parametre na strani COM klijenta
  8. Deserijalizirajte sve ulazne parametre na strani COM poslužitelja
  9. Serializiramo sve izlazne parametre na strani COM poslužitelja
  10. Deserijalizirajte sve izlazne parametre na strani COM klijenta
  11. U našem proizvodu nazvali smo ga "Vođenje usluge infobaze"
  12. Za više COM poziva nudimo podesivu frekvenciju
  13. Na primjer, informacijski pozivi mogu se obavljati na promjenjivoj frekvenciji

Povratne informacije

Kada se koristi princip "minimalnih COM poziva", značajan dio vremena kod će se izvršavati u stranom kontekstu, što ozbiljno povećava neke od neugodnosti COM poziva:
  1. Ne možete prekinuti nit COM klijenta i njegovu vezu s 1C aplikacijskim poslužiteljem dok se ne završi poziv COM poslužitelju
  2. COM klijent nema informacije o tijeku poziva prema COM poslužitelju
Za borbu protiv ovih neugodnosti, možete organizirati Povratne informacije od COM poslužitelja do COM klijenta, prosljeđujući COM poslužitelju vezu na zajednički modul COM klijenta i povremeno pozivajući COM klijenta preko njega. Treba napomenuti da postoje greške platforme (https://partners.v8.1c.ru/forum/t/1382465/m/1382465) koje se pojavljuju prilikom stvaranja veza na jedan zajednički modul u više od jednog poslužitelja COM sesije. Stoga je za sada najbolje očistiti reference na zajednički modul u svim zadržanim COM poslužiteljima prije nego što ga postavite na novi. Možete proslijediti povratne pozive:
  1. informacije o napretku
  2. akumulirane poruke korisniku (primljene funkcijom GetMessagesToUser(True))

Shema principa “minimum COM poziva”.

Ova shema je prijateljska prema velikim kašnjenjima komunikacijskih kanala. Dakle, to je slično pozivanju web usluge. Stoga, koristeći ga za COM interakciju, značajno smanjujete troškove mogućih prijelaza između COM-a i web servisa u oba smjera.

Otklanjanje pogrešaka

Kada koristite načelo "minimalnog broja COM poziva", možete olakšati otklanjanje pogrešaka u izvršavanju koda na COM poslužitelju tako da opciju učinite izbornom modalni prozor povezivanje s bazom podataka u COM klijentu. Ovaj bi prozor trebao pružati opcije za postavljanje parametara jednokratne veze, izvođenje pomoćnih funkcija i pregled informacija o povezanoj sesiji. Ispod je primjer takvog prozora iz našeg proizvoda.

Kako biste omogućili mogućnost otklanjanja pogrešaka vanjskih veza, trebate stvoriti datoteku comcntrcfg.xml s odgovarajućim sadržajem u poddirektoriju conf. U prozoru veze možete stvoriti gumb/potvrdni okvir za programsku izradu takve datoteke. Međutim, mnoge verzije platforme sadrže pogrešku zbog koje stavke za ispravljanje pogrešaka vanjske veze nisu vidljive u alatu za ispravljanje pogrešaka čak i ako je ova datoteka ispravno konfigurirana. Na platformi 8.3 ovi problemi su izgleda riješeni.

Primjer datoteke comcntrcfg.xml:


Također, ne smijemo zaboraviti na potrebu pokretanja konfiguratora za ispravljanje pogrešaka s istim (do velikih slova) nizom veze kao i objekt za ispravljanje pogrešaka. Stoga u ovom dijaloškom okviru trebate napraviti gumb za pokretanje konfiguratora COM poslužitelja s ispravnim nizom veze.

U određenoj mjeri možete zaobići problem nevidljivosti stavke otklanjanja pogrešaka vanjske veze i niz drugih neugodnosti tako što ćete jednom izvršiti kod na debelom klijentu i zamijeniti način rada "Vanjska veza" s "Poslužitelj automatizacije" (aplikacija) , tj. koristeći COM klasu V8X.Omogućena aplikacija i vidljivost. Stoga su vam u prozoru veze potrebni parametri za odabir načina povezivanja.

Nakon stvaranja veze na strani COM klijenta, obično trebate spojiti osnovni program za ispravljanje pogrešaka COM poslužitelja i tamo postaviti točku prekida na pravo mjesto. Stoga u prozor za povezivanje trebate postaviti gumb za povezivanje programa za ispravljanje pogrešaka/konfiguratora COM poslužitelja. Ako COM poslužitelj radi u vidljivom načinu rada aplikacije, tada možete koristiti asinkroni poziv iznimke u njemu za povezivanje programa za ispravljanje pogrešaka. Iz dijaloškog okvira pogreške u aplikaciji COM poslužitelja možete koristiti gumb "Konfigurator" za otvaranje konfiguratora i, u većini slučajeva, odmah spojiti program za ispravljanje pogrešaka. Ako povezivanje programa za ispravljanje pogrešaka na ovaj način nije dostupno, tada će operateru pomoći prikazivanje informacija o sesiji (njegov broj) u bazi podataka COM poslužitelja. Također je potreban gumb za otvaranje u alatu za otklanjanje pogrešaka otvorene datoteke vanjska obrada, koji će se u njemu izvršiti.

Upravljanje COM klasama i COM+ 1C aplikacijama

Upravljanje COM klasama

  1. Vanjska veza (V8X.ComConnector)
  2. Registracija: Regsvr32 comcntr.dll
  3. Odjava: Regsvr32 comcntr.dll /u
  4. Poslužitelj automatizacije (V8X.Application)
  5. Registracija - 1cv8.exe /regserver
  6. Odjava - 1cv8.exe /unregserver

Upravljanje COM+ aplikacijama

To se radi pomoću dodatka dcomcnfg.exe. Da biste registrirali 1C kao COM+ aplikaciju, morate otvoriti dodatak "dcomcnfg". U njemu, u grani "Usluge komponenti" - "Računala" - "Moje računalo" - "COM+ aplikacije" trebate dodati novu aplikaciju. Prilikom dodavanja možete navesti bilo koji naziv. Zatim morate na kartici Identitet navesti korisnika u čije ime će se pokrenuti COM+ aplikacija. Također trebate postaviti pristup aplikaciji za sve korisnike dodavanjem, ako nedostaje, uloge s bilo kojim imenom u granu Uloge i dodavanjem korisnika Svi u granu Korisnici. Nakon dodavanja aplikacije potrebno je izraditi novu komponentu. Da biste to učinili, u ogranku "Komponente" stvorene aplikacije morate odabrati stavku izbornika "Stvori" - "Komponenta". Prilikom izrade odaberite uvoz već registriranih komponenti i na popisu pronađite (po mogućnosti 64-bitnu) 1C komponentu (V8x.COMConnector.1).

Naš proizvod ima alat “Upravljanje COM 1C klasama” za pregled/registraciju/promjenu svih COM klasa i COM+ 1C aplikacija na određenom računalu:

Postavljanje DCOM poslužitelja

Za Windows 2008 Server morate dodati ulogu aplikacijskog poslužitelja. Da biste to učinili, otvorite upravljačku ploču računala, desnom tipkom miša kliknite granu "Uloge" i odaberite stavku izbornika "Dodaj ulogu".

Pojavit će se prozor u kojem trebate odabrati ulogu "Aplikacijski poslužitelj". U fazi odabira uloga aplikacijskog poslužitelja morate navesti stavku "Mrežni pristup COM+" / "COM+ pristup mreži". Ako to ne učinite, kada pokušate stvoriti COM objekt, dobit ćete pogrešku "Pogreška prilikom pozivanja konstruktora (COMObject): komponenta ili aplikacija koja sadrži komponentu je onemogućena."

Problemi

  1. Visoki troškovi povezivanja/inicijalizacije
  2. Držanje com poslužitelja - učinkovit pravni lijek borba
  3. Privremeno skladištenje. Proizvođač to ne preporučuje, ali nema kamo drugdje. http://infostart.ru/public/331683/
  4. Ponovno korištenje povratnih vrijednosti. Čisti se svakih 20 minuta
  5. Različite verzije klijentske i poslužiteljske platforme s istim izdanjem platforme
  6. Za zaobilaženje, za svaki sklop platforme različit od COM klijenta, dodjeljujemo i konfiguriramo DCOM poslužitelj
  7. Nedostatak informacija o tipovima 1C objekata ugniježđenih u COM objekte (umjesto tipa 1C objekta, posvuda dobivamo tip "COMObject") i nedostatak kontekstualne pomoći za njih
  8. Za zaobilaženje koristimo princip "minimalnog broja COM poziva"
  9. Kada se iznimka proslijedi s COM poslužitelja, ona poprima kratki oblik zbog pogreške platforme
  10. Za zaobilaženje, zamotavamo svaki poziv na strani COM poslužitelja u pokušaju i u iznimci ponovno izbacujemo iznimku s potpunim opisom pogreške
  11. Prilikom izrade COM objekta pojavljuje se pogreška "Verzija komponente "comcntr" (8.X.XX.XXX) razlikuje se od verzije korijenskog modula "core82" (8.X.YY.YYY)"
  12. Da bismo to zaobišli, stvaramo COM+ aplikaciju s aktivacijom izvan procesa. Tada će se COM poslužitelj kreirati u zasebnom procesu i neće biti potrebe za usklađivanjem verzija ovih modula.
  13. Spori kanali (velika kašnjenja)
  14. Dodjeljujemo i konfiguriramo vlastiti DCOM poslužitelj svakoj podmreži iza zasebnog sporog kanala, a kada pristupamo bazama podataka iza ovog kanala, stvaramo COM poslužitelje na ovom računalu, minimizirajući broj i količinu poziva Com klijenta<->Com poslužitelj
  15. Predmemoriranje (ponovno korištenje) COM poslužitelja
  16. Nije moguće odspojiti radni proces koji čeka dovršetak poziva COM poslužitelja
  17. Zaobilazno rješenje može biti stvaranje COM objekata u namjenskim procesima glavnog računala konfiguriranjem COM+ aplikacije u skladu s tim i registriranjem ID-ova tih procesa u odnosu na sesije COM klijenta. Zatim, ako trebate prekinuti vezu s poslužiteljem takve sesije, prvo možete ubiti proces COM poslužitelja, a zatim i samu sesiju.
  18. Prilikom pristupa COM objektu može se pojaviti pogreška "Nepoznata pogreška". Mogući razlozi:
  19. COM poslužitelj je prestao postojati. Mogući razlozi:
  20. Stack Overflow
  21. Nepopravljiva pogreška
  22. Host proces je izašao
  23. Izgubljena veza s ne-lokalnim COM poslužiteljem
  24. Podudarnost naziva svojstava i metoda bez parametara objekta stvara dvosmislenost u pristupu njima putem COM-a
  25. Na primjer, ako direktorij ima atribut FullName, tada zbog prisutnosti metode FullName(), pristup atributu FullName putem COM-a može dovesti do pozivanja metode FullName().
  26. Za zaobilaženje koristimo princip "minimalnog broja COM poziva"

Com tehnologija VS web usluge na lokalnoj mreži

Mane

  1. Gore razmotrene poteškoće s interakcijom različitih sklopova 1C platforme, koje zahtijevaju servisni mehanizam za njihovo rješenje
  2. Visoki troškovi povezivanja/inicijalizacije, stoga bez predmemoriranja, neučinkovito za česte male pozive
  3. Veza s obitelji operativni sustavi(platforma) Windows

Prednosti

  1. Nema potrebe mijenjati konfiguraciju baza podataka na koje se povezujemo
  2. Široka funkcionalnost
  3. Lakše otklanjanje pogrešaka
  4. Nema potrebe za postavljanjem i održavanjem web poslužitelja

Snimanje CAL-ova

U većini slučajeva, sve klijentske aplikacije, od kojih je poseban slučaj Automation Server i uz rezervu vanjska veza, zahtijevaju samo jednu licencu za sve u jednoj OS sesiji. Međutim, ako klijentska aplikacija nije mogla dobiti hardversku licencu (od lokalnog HASP-a ili mrežnog HASP-a) i softversku licencu (platformska ili osnovna konfiguracija), tada se pokušava dobiti zasebna licenca od 1C:Enterprise poslužitelja. Poslužitelj 1C:Enterprise može izdati licencu samo ako svojstva baze podataka dopuštaju izdavanje licenci poslužitelju 1C:Enterprise. U ovom slučaju, svaka klijentska aplikacija i vanjska veza mogu uhvatiti vlastitu licencu.

Zaključak

Želite li saznati više o opisanim značajkama, možete besplatno preuzeti konfiguracijsku i demo bazu proizvoda, za što je potrebna prednarudžba na Infostartu za proizvod 2iS:Integration. Unatoč prisutnosti sigurnog modula u konfiguraciji, 99% konfiguracijskog koda je otvoreno, odnosno možete proučavati implementaciju opisanih tehnika.