Postupci poslužitelja za otklanjanje pogrešaka (1Cv82). Postupci poslužitelja za otklanjanje pogrešaka (1Cv82) Kako pokrenuti 1s enterprise u načinu za otklanjanje pogrešaka
Implementirano u verziji 8.3.7.1759.
Značajno smo redizajnirali mehanizam za otklanjanje pogrešaka. Za to je bilo nekoliko razloga. Prvo, htjeli smo vam dati mogućnost otklanjanja pogrešaka u svim aplikacijama dostupnim danas. Drugo, stara arhitektura debuggera zahtijevala je promjene kako bi se održala korak s trenutnim trendovima i mogla se razvijati u budućnosti. Treće, bilo je potrebno univerzalno sučelje za otklanjanje pogrešaka, s kojim bi mogao raditi ne samo konfigurator 1C: Enterprise, već i .
Glavne prednosti
Kako bismo vam dali predstavu o opsegu promjena koje smo napravili, ukratko nabrojimo glavne prednosti novog mehanizma.
Otklanjanje pogrešaka putem HTTP-a
Prethodni mehanizam za otklanjanje pogrešaka temeljio se na činjenici da je program za ispravljanje pogrešaka implementiran u konfiguratoru 1C:Enterprise izravno komunicirao s objektima za otklanjanje pogrešaka (klijentske i poslužiteljske aplikacije). Ova interakcija je provedena korištenjem TCP/IP protokola.
Međutim, s puštanjem aplikacija 1C:Enterprise na Internet, a posebno s pojavom mobilnih aplikacija, ovaj pristup je postao izvor ograničenja i neugodnosti. TCP/IP protokol ne dopušta uvijek alatu za ispravljanje pogrešaka da "prođe" do stavki za otklanjanje pogrešaka. Uostalom, oni mogu biti izvan lokalne mreže u kojoj je pokrenut program za ispravljanje pogrešaka.
Stoga smo u novom mehanizmu kao transportni protokol odabrali više “all-terrain” HTTP protokol koji, inače, koriste i klijentske aplikacije za povezivanje s infobazama.
Moderna arhitektura za otklanjanje pogrešaka
Značajka prethodnog mehanizma za otklanjanje pogrešaka bila je potreba za povezivanjem s informacijskom bazom pomoću konfiguratora. Kao rezultat toga, programer za otklanjanje pogrešaka imao je potpuni pristup svim administrativnim funkcijama.
Novi mehanizam za otklanjanje pogrešaka više se ne mora povezivati s informacijskom bazom koja se otklanja. Glavna stvar koju debugger sada treba je ista konfiguracija koja radi za klijente. Da biste ga dobili, nema potrebe za povezivanjem s ispravljenom informacijskom bazom. Možete ga učitati, na primjer, iz datoteke.
Otklanjanje pogrešaka u mobilnim aplikacijama
Zahvaljujući korištenju HTTP protokola, postalo je moguće otklanjanje pogrešaka u aplikacijama koje izvršava mobilna platforma. Štoviše, možete debugirati bilo koji kontekst: klijent, poslužitelj, kao i pozadinske poslove.
Sada, tijekom otklanjanja pogrešaka, možete promijeniti vrijednosti bilo koje varijable za pisanje. Za brzi pregled i promjenu lokalnih varijabli implementirali smo poseban prozor. I sama evaluacija izraza koje prikazuje program za ispravljanje pogrešaka sada se izvodi u asinkronom načinu.
Otklanjanje pogrešaka u razvojnim alatima
Prilikom izrade novog mehanizma za otklanjanje pogrešaka implementirali smo novo, univerzalno programsko sučelje za interakciju s njim. Ovo sučelje koristi konfigurator 1C:Enterprise, a novo razvojno okruženje sada koristi isto sučelje. Stoga su sve opcije otklanjanja pogrešaka sada dostupne kada radite u .
Arhitektura procesa otklanjanja pogrešaka
Nova arhitektura debug izgleda ovako:
Otklanjanje pogrešaka uključuje program za ispravljanje pogrešaka, stavke za otklanjanje pogrešaka i novu stavku - poslužitelj za otklanjanje pogrešaka.
Nema izravnog prijenosa informacija između alata za ispravljanje pogrešaka i stavki za otklanjanje pogrešaka. Sva interakcija organizirana je putem poslužitelja za otklanjanje pogrešaka. Ovo je glavni element mehanizma. Poslužitelj za otklanjanje pogrešaka ima red poruka kroz koji program za ispravljanje pogrešaka i objekti za ispravljanje pogrešaka međusobno prosljeđuju informacije.
I sam program za ispravljanje pogrešaka i stavke za otklanjanje pogrešaka komuniciraju s poslužiteljem za otklanjanje pogrešaka putem HTTP-a. Stoga sada nije važno gdje se nalaze te stavke za otklanjanje pogrešaka.
Komunikaciju s poslužiteljem za otklanjanje pogrešaka pokreću program za ispravljanje pogrešaka i stavke za otklanjanje pogrešaka. Za to su organizirane dodatne veze. Njihova je glavna svrha otkriti postoje li informacije za njih na poslužitelju za otklanjanje pogrešaka. A ako se pojavi, dohvatite ovu informaciju.
Dakle, interakcija je jednosmjerna. Informacije se stalno prosljeđuju s poslužitelja za otklanjanje pogrešaka u program za ispravljanje pogrešaka i na stavke za otklanjanje pogrešaka.
Identifikacija infobaze
Stari mehanizam koristio je niz veze za identifikaciju baza podataka. Ova odluka u nekim je slučajevima uzrokovala poteškoće s podudaranjem stavki za otklanjanje pogrešaka i konfiguratora. Zato što je, prvo, bila osjetljiva na velika i mala slova, a drugo, prilikom otklanjanja pogrešaka u nekim kontekstima, platforma je automatski formirala niz veze. I nije uvijek odgovarao onom koji ste naveli prilikom povezivanja baze podataka u konfiguratoru. Pronalaženje i popravljanje takvih situacija zakompliciralo je proces otklanjanja pogrešaka.
U novom mehanizmu smo se riješili niza veze. Sada koristimo identifikator baze podataka. U bazi podataka datoteka takav identifikator se generira kada se klijentska veza prvi put poveže. U informacijskoj bazi poslužitelja kao takav identifikator koristi se ID registracije baze podataka u klasteru.
Ugodna dodatna točka ovdje je da smo za sada zadržali stari mehanizam za otklanjanje pogrešaka u platformi (možda će biti isključen u budućnosti). I možete ga koristiti ako želite, ili ako trebate. Dakle, poboljšali smo stari mehanizam, a sada koristi i identifikator baze podataka, a ne niz veze.
Tipični scenariji za otklanjanje pogrešaka
Iz perspektive razvojnog programera aplikacije, tipični scenariji otklanjanja pogrešaka nisu se promijenili. Jedina značajna razlika je u tome što je potrebno omogućiti novi mehanizam za otklanjanje pogrešaka. Budući da je prema zadanim postavkama onemogućen.
Unatoč tome, ima smisla upoznati se s onim što se događa sada kada počnete ispravljati greške. Jer vam može biti od koristi u nekim nestandardnim radnim scenarijima.
Opcija datoteke
Prije nego što počnete s otklanjanjem pogrešaka u načinu datoteke, morate u postavkama konfiguratora navesti da želite koristiti novi mehanizam za otklanjanje pogrešaka - " Otklanjanje pogrešaka putem HTTP-a».
U tom slučaju, konfigurator će vas automatski zatražiti da koristite lokalni poslužitelj za otklanjanje pogrešaka. Morate se složiti s tim i ponovno pokrenuti konfigurator.
Metoda za otklanjanje pogrešaka koju postavite sprema se između sesija Designera, ali je pohranjena u kontekstu baza podataka. Stoga ćete je za drugu bazu podataka morati ponovno omogućiti.
Sada, na početku konfiguratora, ili kada se ponovno pokrene, platforma će automatski pokrenuti i poslužitelj za ispravljanje pogrešaka. Ovo je samostalna aplikacija dbgs.exe. Možete ga vidjeti u upravitelju zadataka.
Njegov parametar ownerPID sadrži ID aplikacije koja posjeduje ovaj poslužitelj za ispravljanje pogrešaka. U ovom slučaju, ovo je konfigurator 1C:Enterprise.
Sada, ako pokrenete sesiju otklanjanja pogrešaka 1C:Enterprise iz konfiguratora, ona će se automatski povezati s poslužiteljem za otklanjanje pogrešaka, a u konfiguratoru ćete vidjeti povezane stavke za otklanjanje pogrešaka.
Ako je sesija 1C: Enterprise pokrenuta bez otklanjanja pogrešaka, tada je, kao i prije, možete povezati s programom za ispravljanje pogrešaka. Tek sada morate navesti adresu poslužitelja za otklanjanje pogrešaka:
Ovu adresu možete saznati iz postavki stavki za otklanjanje pogrešaka:
Postoji jedan neobičan trenutak povezan s radom s nekoliko baza datoteka odjednom. U verziji datoteke, svaki konfigurator s omogućenim http debuggingom pokreće vlastitu kopiju poslužitelja za otklanjanje pogrešaka na različitim portovima:
Stoga, ako imate nekoliko otvorenih konfiguratora odjednom, da biste povezali klijentsku aplikaciju s programom za ispravljanje pogrešaka, morate odabrati ispravan među njima.
Opcija klijent-poslužitelj
Prije nego što počnete s otklanjanjem pogrešaka u načinu klijent-poslužitelj, morate pokrenuti poslužitelj 1C:Enterprise u načinu za otklanjanje pogrešaka, kao i prije, ali navedite da će se novi HTTP mehanizam koristiti za otklanjanje pogrešaka. Na primjer, ovako:
ragent.exe -debug -http
Kada se poslužitelj pokrene na ovaj način, pokrenut će se i poslužitelj za otklanjanje pogrešaka.
U parametru ownerPID imat će ID upravitelja klastera 1C:Enterprise.
Sada u postavkama konfiguratora, kao u slučaju baze datoteka, morate navesti da želite koristiti novi mehanizam za otklanjanje pogrešaka - " Otklanjanje pogrešaka putem HTTP-a».
U tom slučaju, konfigurator će od vas automatski tražiti da koristite poslužitelj za otklanjanje pogrešaka klastera, a ne lokalni poslužitelj. Morate se složiti s tim i ponovno pokrenuti konfigurator.
Povezivanje stavki za otklanjanje pogrešaka
Prilikom pokretanja sesije otklanjanja pogrešaka iz konfiguratora, aplikacije automatski povezuju stavke za otklanjanje pogrešaka (i klijenta i poslužitelja) s poslužiteljem za otklanjanje pogrešaka.
Istodobno, kao i prije, možete konfigurirati automatsko povezivanje stavki za otklanjanje pogrešaka u konfiguratoru, bez obzira na to kako su pokrenute. Sada su te mogućnosti postale puno bogatije.
Prvo, platforma vam sada nudi sve moguće stavke za otklanjanje pogrešaka koje možete izabrati.
I drugo, pojavio se još jedan, suptilniji način ugađanja. Ovo je korištenje unaprijed kreiranih odabira.
Takve filtre možete koristiti i kada povezujete stavke za otklanjanje pogrešaka i za pregled dostupnih stavki za otklanjanje pogrešaka.
U odabiru, osim samih stavki za otklanjanje pogrešaka, možete odrediti određene korisnike čije sesije vas zanimaju, a također, ako se koristi odvajanje podataka, navesti područje baze podataka koje će biti otklonjeno.
Promjena varijabli, svojstava objekta i evaluacija asinkronog izraza
Novi mehanizam za otklanjanje pogrešaka omogućuje vam promjenu vrijednosti varijabli tijekom otklanjanja pogrešaka. U prethodnom mehanizmu takve mogućnosti nije bilo.
Za praktično gledanje i promjenu lokalnih varijabli, što se čini najčešćim zadatkom, implementirali smo prozor " Lokalne varijable».
Izvana, vrlo je sličan vama poznatom "Scoreboard". Ali, prvo, ovaj prozor je već automatski ispunjen svim lokalnim varijablama, a drugo, sada možete promijeniti vrijednosti varijabli.
Možete promijeniti vrijednosti primitivnih tipova izravno u ćeliji " Značenje»:
A da biste promijenili druge vrijednosti, možete koristiti prozor za unos izraza:
Lijep bonus je da je kontekstualna pomoć potpuno funkcionalna u ovom prozoru.
Na potpuno isti način možete promijeniti vrijednosti svih (ne samo lokalnih) varijabli, svojstava dostupnih za pisanje. U prozoru za izračunavanje izraza (koji se poziva naredbom Shift+F9) možete promijeniti vrijednosti varijabli u ćeliji "Vrijednost" i pomoću zasebnog dijaloškog okvira.
Usput, sama evaluacija izraza sada se izvodi asinkrono. To znači da konfigurator naređuje izračun stavke za otklanjanje pogrešaka. I neko vrijeme se ovaj izračun očekuje na poslužitelju. Ako je izračun dovršen, rezultati se odmah šalju konfiguratoru. Ako izračun traje dulje vrijeme, rezultati tih izračuna kasnije asinkrono dolaze u konfigurator. Ovaj pristup vam omogućuje da ne čekate duge izračune u konfiguratoru i nastavite s radom.
Kako započeti ispravljanje pogrešaka na poslužitelju 1C...
Prema zadanim postavkama, kada se koristi arhitektura klijent-poslužitelj 1C:Enterprise, način otklanjanja pogrešaka 1C koda radi samo na strani klijenta. Poslužiteljske procedure i funkcije nisu vidljive klijentskom stroju.
Da biste omogućili korištenje otklanjanja pogrešaka na 1C poslužitelju, morate izvršiti sljedeće korake:
1. Pronađite i zaustavite uslugu "Agent poslužitelja 1C: Enterprise 8.3" u upravitelju usluga (za verziju 8.3).
2. Otvorite uređivač registra sustava. Možete koristiti naredbeni redak ili alat Start izbornika - Pokreni ... i naredbu regedit.
3. Pronađite podružnicu u registru:
- Za verziju 1C 8.1
- Za verziju 1C 8.2
- Za verziju 1C 8.3
4. Promijenite svojstvo ImagePath, dodajte direktivu "-debug" na kraj retka. Rezultirajući niz svojstava je: "C:\Program Files (x86)\1cv8\8.3.6.2152\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Datoteke (x86)\1cv8\srvinfo" --debug
Nakon toga, kôd poslužitelja 1C može se sigurno provjeriti pomoću debuggera i postaviti točke prekida gdje god je to potrebno.
Ovaj članak govori o tome kako omogućiti otklanjanje pogrešaka na poslužitelju 1C 8.1, 8.2 i 8.3 u operacijskim sustavima Windows i Ubuntu.
Osim toga, napominjem da je ovaj članak uključen u mali niz članaka o otklanjanju pogrešaka u 1C:
- Kako omogućiti otklanjanje pogrešaka na 1C poslužitelju
Uključite otklanjanje pogrešaka na 1C poslužitelju u sustavu Windows
Pokrećemo uređivač registra pokretanjem naredbe regedit (pomoću Win + R ili Start-> Run).
Više o HTTP otklanjanju pogrešaka i poslužitelju za otklanjanje pogrešaka možete pročitati u sljedećem članku u nizu.
Omogućite otklanjanje pogrešaka na 1C poslužitelju u Ubuntu
Prvo postavljamo server:
sudo usluga srv1cv83 stop
Nakon toga otvorite datoteku /etc/init.d/srv1cv83 kao superkorisnik i u njoj pronađite redak:
I dovodimo ga u ovaj oblik:
Zatim ponovno pokrenite poslužitelj:
sudo servis srv1cv83 start
U konfiguratoru na klijentskom računalu idite na "Postavke" -> "Pokreni 1C:Enterprise" -> "Dodatno" i omogućite dvije stavke:
- "Postavi način dopuštenja za otklanjanje pogrešaka"
- "Počni otklanjati pogreške pri pokretanju"
Možete pročitati o tome kako instalirati 1C poslužitelj na Ubuntu 16.04 / 18.04 in.
To je sve, nadam se da vam je ovaj članak bio koristan. Također ću vas podsjetiti na druge članke iz serije o otklanjanju pogrešaka u 1C, veze na njih mogu se naći na početku ovog članka.
8, postoji potreba (više o tome u nastavku) za značajnom preradom postupka otklanjanja pogrešaka. To se odrazilo u verziji 8.3.7.1759. Prvo, stvoreno je univerzalno sučelje za ovaj postupak, a drugo, takva promjena osigurava daljnji razvoj samog programa. Uostalom, sada možete raditi s otklanjanjem pogrešaka ne samo kroz konfigurator, već i uz pomoć razvojnih alata. Razmislite kako omogućiti otklanjanje pogrešaka na 1C poslužitelju počevši od nove verzije.
Korištenje novog protokola
Prethodni program za ispravljanje pogrešaka, koji je implementiran u prethodnim verzijama, upravljao je klijentskim i poslužiteljskim aplikacijama koristeći TCP/IP protokol.
Trenutno je korištenje takvog protokola počelo ograničavati pristup programa 1C:Enterprise Internetu i uzrokovalo neugodnosti za rad mobilnih aplikacija.
Stoga je za slobodan pristup infobazama koje mogu biti izvan lokalne mreže sada prihvaćen fleksibilni HTTP protokol.
Nova arhitektura
Prije se, prilikom obavljanja otklanjanja pogrešaka konfiguracije, zaposlenik morao spojiti na bazu podataka. Da bi to učinio, trebalo mu je dati administratorska prava.
U novoj verziji nema potrebe za izravnim povezivanjem s bazama podataka - dovoljno je samo imati istu bazu podataka kao i klijent. I možete ga učitati iz datoteke.
Mobilne aplikacije
Korištenjem HTTP protokola sada je moguće otklanjati pogreške u podacima poslužitelja, klijentskim podacima i aplikacijama.
Ostale promjene
S novom verzijom moguće je mijenjati vrijednosti za lokalne varijable u proceduri otklanjanja pogrešaka - u tu svrhu implementiran je novi prozor za brzi pregled.
Način izračuna promijenjen je u asinkroni, što vam omogućuje nastavak rada bez čekanja rezultata.
Program za ispravljanje pogrešaka u razvojnim alatima
Interakcija s novom procedurom obavlja se u posebno dizajniranom univerzalnom programskom sučelju. S jedne strane, ovo sučelje koristi Konfigurator. S druge strane, implementiran je u novom okruženju 1C:Enterprise Development Tools.
Kako to sada izgleda
Nakon promjene programa, postupak se odvija prema sljedećem scenariju:
Sada to uključuje ne samo program za ispravljanje pogrešaka i objekte, kao što je to bilo prije. Sada je u lanac dodan dodatni element - Server.
Ne samo da je dodan - služi kao glavni element razmjene informacija između programa za ispravljanje pogrešaka i objekata. A sama razmjena se događa kroz poruke u redu čekanja.
A budući da se ova razmjena provodi putem HTTP protokola, sada nije važno gdje se točno podaci mogu nalaziti.
Zahtjeve poslužitelja formira program za ispravljanje pogrešaka i objekti u obliku dodatnih zahtjeva za povezivanje. Kada se pojave, šalju im se odgovarajući odgovori.
Omogućite otklanjanje pogrešaka u različitim scenarijima
Nije bilo promjena za razvojnog programera aplikacije. Značajna razlika je u tome što je potrebno omogućiti novi mehanizam. Uostalom, prema zadanim postavkama sada je onemogućen.
Razmotrimo što se događa kada se način rada pokrene ako odaberemo jedan od dva scenarija.
Datotečna skripta
Na početku verzije datoteke potrebno je u konfiguracijskim postavkama navesti korištenje novog mehanizma - "Debugging via HTTP protocol".
Tada će Konfigurator automatski predložiti korištenje lokalnog poslužitelja. Ovaj uvjet se mora prihvatiti i program ponovno pokrenuti u načinu konfiguratora.
Nakon toga, novopokrenuti Konfigurator će tijekom sljedeće sesije spremiti novu metodu koju smo odabrali. Ali za istu informacijsku bazu. Stoga, prilikom pristupa drugoj bazi podataka, ona također mora biti omogućena.
Omogućeni mehanizam sada će automatski pokrenuti poslužitelj za ispravljanje pogrešaka, koji je posebna aplikacija dbgs.exe. Prikazuje se u prozoru Upravitelj zadataka.
Vrijednost parametra ownerPID odgovarat će ID-u aplikacije koja je na njega vezana.
Kada pokrenete sesiju otklanjanja pogrešaka putem konfiguratora, automatski će se uspostaviti veza s poslužiteljem. I odražavat će povezane objekte.
Ako je program 1C aktiviran bez novog mehanizma, morat ćete ručno omogućiti otklanjanje pogrešaka na 1C poslužitelju. Tek sada ćete morati navesti adresu poslužitelja:
Idite na Alati - Opcije
Nalazi se u postavkama stavke:
Idemo Veza - Postavke
Kada koristite skriptu datoteke s nekoliko baza podataka u isto vrijeme, morate uzeti u obzir važnu nijansu - svaki od konfiguratora (s uključenim HTTP mehanizmom) šalje svoj vlastiti poslužitelj:
Stoga, ako je otvoreno nekoliko konfiguratora, tada se mora navesti ispravan za povezivanje klijenta.
Scenarij klijent-poslužitelj
Otklanjanje pogrešaka na 1C poslužitelju prema scenariju klijent-poslužitelj, kao iu prethodnom slučaju, počinje pokretanjem načina rada. Ovo specificira korištenje novog HTTP mehanizma. To se radi na ovaj način:
ragent.exe -debug -http
Kada se pokrene, program za ispravljanje pogrešaka automatski se pokreće iza njega.
Vrijednost parametra ownerPID odgovarat će identifikacijskom broju 1C upravitelja klastera.
Program će generirati ponudu za korištenje sada poslužitelja za ispravljanje pogrešaka klastera (a ne lokalnog kao u prethodnom scenariju). Slažemo se i ponovno ga pokrećemo.
U budućnosti će sve ići kao datoteka skripta. Tek kada se pokrene konfigurator baze poslužitelja, lokalni poslužitelj za ispravljanje pogrešaka više se neće pokrenuti.
Nadamo se da vam je naša publikacija pomogla riješiti problem kako omogućiti otklanjanje pogrešaka na 1C poslužitelju.
18.10.2016
Otklanjanje pogrešaka na 1C poslužitelju (8.2, 8.3...)
Ako baza podataka 1C radi u verziji klijent-poslužitelj, način otklanjanja pogrešaka koda na strani poslužitelja je onemogućen. Stoga neće raditi korak po korak vidjeti što se događa kada se funkcija ili procedura izvrši. Da biste omogućili otklanjanje pogrešaka na strani poslužitelja, morate slijediti nekoliko jednostavnih koraka.
Omogućite otklanjanje pogrešaka na poslužitelju "1C:Enterprise" 8.2, 8.3
Prvo što trebate učiniti je zaustaviti uslugu poslužitelja 1C:Enterprise. Idemo "Start - Run" (ili kombinacija tipki "Windows + R"), napišemo "services.msc" (naravno, morate otvoriti upravljanje Windows uslugama od administratora)Nakon zaustavljanja, otvorite uređivač registra Windows ("Start - Run" (ili kombinacija tipki "Windows + R"), napišite "regedit") i pronađite granu s imenom "" ili "" ovisno o verziji platforme
Zanima nas ključ registra pod nazivom "ImagePath". Dodajte "-debug" na kraj vrijednosti ključa. To znači da je aktiviran način otklanjanja pogrešaka na strani poslužitelja 1C.
Bilo je: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Postalo je: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug
Spremamo i pokrećemo uslugu 1C. Sve je spremno! Sretno otklanjanje pogrešaka!