După cum sa dovedit, nu toți dezvoltatorii 1C știu că depanarea este posibilă și la pornirea configurației în modul client web. La urma urmei, așa cum se întâmplă, totul funcționează bine într-un client gros și subțire și, atunci când lucrează printr-un browser, încep să apară tot felul de capcane.

Dacă găsiți astfel de probleme, cel mai bun mod de a scăpa de ele este să mergeți prin cod cu un depanator. Adevărat, există o nuanță aici. După publicarea unei aplicații pe un server web, fereastra Debug Connection nu afișează sesiunea deschisă de la clientul web.

Prietenul meu s-a confruntat cu o problemă similară și era sigur că depanarea atunci când lucrați în modul client web în 1C: Enterprise este practic imposibilă. Dar, de fapt, acestea sunt iluzii. Puteți depana folosind instrumente standard.

Cum să depanați în modul client web

În primul rând, publicăm pe un server web (folosesc Apache pentru dezvoltare). Următorul pas este să lansați browserul și să conduceți în adresa URL pentru a accesa baza de date:

Http: // localhost / ServerPublishName? Debug

Http: // localhost / test? Depanare

Dacă totul este corect, veți fi direcționat la formularul de început al configurației dvs. Introduceți numele de utilizator / parola, apoi reveniți la configurator. În meniul principal, selectați elementul "Depanare" -\u003e "Conexiune" și selectați elementul de depanare "Client Web". Apoi efectuați procesul de depanare ca de obicei.

Și o poți face diferit

Acest lucru este departe de a fi singurul mod de a depana un client web. Puteți specifica parametrii pentru depanator:

  • În fereastra de publicare IB pe serverul web. Ne uităm la grupul „Depanare”. Acolo trebuie să bifați caseta și să specificați adresa de depanare: http: // localhost / demo? Debug & debuggerurl \u003d 127.0.0.1
  • Prin modificarea fișierului vrd. De fapt, faceți același lucru în fereastra de publicare.
  • Dacă nu funcționează

    Prima metodă funcționează întotdeauna pentru mine. Când se specifică adresa URL în fereastra de publicare a soluției, au apărut deseori ciudățenii mistice. Configuratorul a refuzat periodic să găsească elementul de depanare. Repornirea serverului web a ajutat la rezolvarea problemei. Drept urmare, folosesc adesea prima metodă.

    Da, aproape că am uitat. Dacă lucrați în modul client-server, apoi asigurați-vă că serverul " 1C: Enterprise"Lansat în modul de depanare (cheia depanare).

    Depanare 1C - un mecanism foarte puternic și funcțional al platformei 1C 8.3, care vă permite să găsiți rapid erori în codul programului (în alte limbaje de programare se numește „debug”, din engleză „debug”).

    Mai jos vom lua în considerare principalele metode de utilizare a mecanismului de depanare sub forma unei instrucțiuni practice cu un exemplu specific.

    Atenţie! Dacă utilizați modul de operare client-server (pe server), trebuie.

    Cel mai simplu mod de a începe depanarea în 1C este să deschideți 1C în modul și din acesta să începeți modul de depanare în modul de operare dorit (subțire / groasă, gestionat / normal):

    Depanarea lucrărilor de fundal 1C

    Pentru a putea depana lucrări de fundal, trebuie să accesați meniul „Depanare - Conectare”. În fereastra care se deschide, faceți clic pe butonul „Conexiune automată”:

    În această fereastră puteți seta pavilionul corespunzător.

    În plus față de sarcinile de fundal, în această fereastră puteți activa depanarea conexiunilor externe, http și.

    Setarea unui punct de întrerupere (punct de întrerupere)

    Al doilea pas în depanare este setarea unui punct de întrerupere (în alte limbaje de programare, un punct de întrerupere).

    De exemplu, am ales gestionarul „On Change” din formularul de document pentru depanare:

    Pentru a seta un punct de întrerupere, trebuie să găsiți codul de program necesar și să faceți dublu clic pe câmpul din stânga câmpului de introducere a codului (sau apăsați butonul F9):

    Pentru a vedea o listă a tuturor instalatelor, trebuie să accesați meniul Debug - List of Breakpoints (alt + F9):

    Obțineți gratuit 267 tutoriale video 1C:

    Punct de întrerupere 1C cu stare (albastru)

    În plus față de punctul de întrerupere obișnuit în 1C, există un alt tip de punct de întrerupere - cu o afecțiune. Grafic, un astfel de punct este afișat în albastru. Un astfel de punct de întrerupere este foarte util atunci când trebuie să prindeți orice iterație specifică în timp ce traversați într-o buclă. Depanarea va fi activată în momentul în care se îndeplinește o anumită condiție.

    De exemplu, să oprim bucla la linia 25:

    Punct de întrerupere inactiv (gri)

    Un punct de întrerupere gri înseamnă că nu este activ, sistemul nu se va opri în acel punct. Îl puteți face inactiv făcând clic pe butonul special de pe panoul „Dezactivare punct de întrerupere” (shift + ctrl + F9):

    Punct de întrerupere din greșeală

    Sistemul se poate opri din cauza unei erori, pentru aceasta trebuie să setați semnalizatorul corespunzător în meniul Depanare - Opriți din greșeală:

    De asemenea, oprirea din greșeală are o funcționalitate similară punctului de oprire cu o condiție - vă permite să filtrați excepțiile cu un anumit text de eroare.

    Mișcare pas cu pas prin codul programului 1C

    După setarea unui punct de întrerupere, este necesar să inițiați execuția codului de program necesar pentru ca sistemul să introducă execuția pas cu pas a codului. Săgeata indică faptul că modul de activare a codului rulează:

    Pentru a face un pas către linia următoare, trebuie să apăsați butonul „F11” (Pas în).

    Dacă parcurgeți pas cu pas liniile codului programului și există o procedură sau o funcție pe linie, atunci veți „intra” în această procedură (sau funcție).

    Pentru a nu „cădea”, în loc de F11 (Step into) este suficient să săriți prin linii apăsând F10 (Step through), acest buton vă permite să parcurgeți procedurile din codul programului.

    Pentru a trece de la poziția curentă a cursorului la cea dorită, ocolind liniile intermediare de cod, trebuie să poziționați cursorul pe linia dorită și să apăsați tasta + F10 (Mergeți la cursor).

    Analiza valorilor în modul de depanare 1C

    Puteți vizualiza valorile anumitor valori în moduri diferite:

    Afișează valoarea în cursă

    Când plasați cursorul peste o variabilă, sistemul „evidențiază” valorile variabilei:

    Folosind „Evaluați expresia” sau „Tabloul de bord”

    • Formă Evaluează expresia poate fi apelat folosind meniul contextual sau apăsând tastele de comenzi rapide - (Shift + F9) sau meniul (Depanare - Evaluare expresie).
    • Tablou de bord apelat cu tastele rapide Ctrl + Alt + W sau din meniu (Debug - Scoreboard).

    Aceste două metode de analiză sunt foarte similare, diferențele principale se află în interfață. Este mai convenabil să utilizați un tablou de bord pentru un grup de indicatori, expresii - pentru cei singuri.

    Aceste metode sunt foarte simple de utilizat. Este suficient să introduceți numele variabilei necesare pe afișaj. Un mare plus al calculelor arbitrare este că puteți adăuga propriile date la expresie.

    De exemplu:

    Este foarte util să utilizați evaluarea expresiei și să executați o interogare, să o aruncați într-un tabel de valori și să o vizualizați.

    Cum să aflați de unde este apelată o procedură în depanare - Stivă de apeluri

    De foarte multe ori trebuie să înțelegeți de unde a fost apelată această procedură sau funcție și cu ce parametri. Pentru aceasta, 1C oferă o funcție specială - „Stivă de apeluri”. Pentru a porni Call Stack, apăsați tastele rapide - Ctrl + Alt + C sau prin meniu (Depanare - Call Stack).

    Folosind-o, puteți afla în detaliu de unde a fost apelată procedura și cu ce parametri:

    Dacă sunteți interesat de evaluarea performanței în timpul depanării -.

    Vedeți și un videoclip de prezentare generală despre depanare în 1C:

    Este necesar să utilizați modul de depanare în 1C atunci când proiectați și testați configurații tipice și dezvoltate independent de orice complexitate. Acest mecanism îi ajută pe dezvoltatori nu numai să elimine erorile identificate, ci și să anticipeze multe blocaje înainte ca sistemul să fie pus în funcțiune. Pentru a utiliza toate capacitățile acestui mod al platformei 1C: Enterprise 8.3, nu numai că trebuie să îl activați, ci să cunoașteți și scopul principalelor sale instrumente.

    Activarea modului de depanare pe serverul 1C

    Dacă lucrați în versiunea client-server, atunci trebuie să parcurgeți procedura de activare a depanării pe server pentru a utiliza toate funcțiile debuggerului 1C. Nu durează mult timp și nu necesită cunoștințe extinse, dar trebuie totuși să fii atent, deoarece procesul va afecta schimbarea registrului de pe server.

    Puteți activa depanarea în 1C folosind următorul algoritm:

    • Mergeți la serverul 1C și deschideți registrul prin funcția „Run” din meniul „Start”. De asemenea, puteți utiliza tastele Windows și R de pe tastatură în același timp. Introduceți comanda pentru a deschide registrul - „regedit”;
    • În fereastra care se deschide în arborele din stânga, urmați calea: "HKEY_LOCAL_MACHINE", "SYSTEM", "ControlSet001", "services", "1C: Enterprise 8.3 Server Agent";
    • Selectând elementul de jos, în partea dreaptă găsim atributul numit „ImagePath” și îl schimbăm folosind meniul contextual. Pentru a activa depanarea pe server, adăugați linia „-debug” la calea existentă;
    • Rămâne doar să reporniți agentul server 1C și puteți utiliza modul de depanare pe server.

    Pentru a începe depanarea prin aplicația client, mergeți la 1C în modul configurator și selectați modul dorit în meniul „Depanare”. Majoritatea configurațiilor moderne funcționează, respectiv, în modul client subțire și este mai bine să depanați performanța în acest tip de client. Dacă configurația dvs. utilizează diferite tipuri de clienți, atunci pentru o mai mare liniște sufletească, puteți testa funcționalitatea în toate modurile. În momentul pornirii modului de depanare, 1C deschide modul „Enterprise”.


    De îndată ce 1C este lansat în modul de depanare, veți vedea o fereastră de program aproape similară. Singura diferență va fi în partea de jos - 1C afișează statistici privind numărul de apeluri pe un fundal gri. Dar dacă treceți la configurator în acest moment, veți observa că panoul superior sa schimbat. Există butoane noi cu care veți controla modul de depanare.

    Pentru a profita la maximum de procedurile de depanare a serverului, trebuie să cunoașteți principalele caracteristici ale acestui mod, scopul lor și cum să le utilizați. Desigur, este imposibil să înțelegeți totul la nivel teoretic, dar când vă familiarizați cu elementele de bază, atunci în practică vă va fi mult mai ușor. În plus, majoritatea caracteristicilor de depanare sunt rareori utilizate, astfel încât o cunoaștere profundă a acestui mecanism poate fi utilă numai după câțiva ani de muncă.

    Printre acele capacități ale modului de depanare „Enterprise”, pe care dezvoltatorii 1C îl folosesc în mod regulat, se pot distinge următoarele:

    • Puncte de întrerupere;
    • Depanare cod pas cu pas;
    • Vizualizați valorile;
    • Stivă de apeluri.

    Funcții de depanare 1C

    Caracteristica principală de depanare este de a începe depanarea și de a verifica modul în care funcționează codul atunci când funcționează în modul 1C Enterprise. Pentru a face acest lucru, dezvoltatorii 1C stabilesc un punct de întrerupere pe linia algoritmului. Pentru a face acest lucru, selectați o linie cu mouse-ul și apăsați butonul cu imaginea unui cerc roșu. Alternativ, puteți face dublu clic pe bara din stânga textului modulului sau puteți utiliza tasta rapidă F9.

    Utilizați meniul Debug pentru a vedea punctele de întrerupere setate. Acolo puteți elimina toate punctele, le puteți dezactiva, adăuga unul nou și vă puteți familiariza cu tastele „fierbinți”. De asemenea, în acest meniu, puteți seta un punct de întrerupere cu o condiție (sub forma unui cerc albastru). Este util în situațiile în care trebuie să verificați codul atunci când este îndeplinită o condiție pe care trebuie să o scrieți atunci când setați un punct.


    Un alt mecanism util din acest meniu este „Opriți din greșeală”, care vă permite să vă opriți numai în situații inacceptabile. După oprire, sunteți condus la configurator și puteți utiliza alte opțiuni de depanare. De exemplu, deplasați-vă prin liniile de cod folosind tastele speciale descrise în meniul „Depanare”, unde funcțiile mai populare sunt afișate în partea de sus. Diferența dintre F10 și F11 este că, în primul caz, veți ajunge la funcții și proceduri imbricate.


    Depanarea pe partea de server în 1C este, de asemenea, bună prin faptul că puteți vedea valoarea variabilelor după executarea fiecărei linii de cod. Cea mai simplă opțiune este să plasați cursorul mouse-ului, iar 1C va afișa valoarea într-o fereastră pop-up. Dar în platformă, în meniul Debug, sunt încorporate încă două instrumente:

    • Când sună, se deschide o fereastră în care puteți trage variabilele făcând dublu clic pe ele în cod. Fereastra arată valoarea și tipul acestora pe întreaga depanare - puteți urmări modificarea în timpul executării algoritmului;

    • Un mecanism pentru situațiile în care un dezvoltator dorește să modeleze ce date poate obține în cursul curent al algoritmului. Vă permite să scrieți orice expresie și arată semnificația acestora.


    Uneori dezvoltatorii trebuie să cunoască secvența procedurilor de apelare într-un algoritm. Pentru a face acest lucru, trebuie să utilizeze mecanismul stivei de apeluri din meniul Debug. Când îl apelați, se deschide o fereastră în care puteți vedea din ce procedură se află cursorul unde se află cursorul de depanare.


    Cunoașterea și aplicarea tuturor acestor instrumente este importantă pentru a efectua teste înainte de a transfera îmbunătățirile dvs. în baza de producție. Setul de mecanisme de mai sus este mai mult decât suficient pentru munca productivă de succes a unui dezvoltator în 1C. Dar este, de asemenea, important să urmăriți noile funcționalități, deoarece depanarea pe un server 1C 8.3 poate dobândi noi capacități în câțiva ani.

    Salutări tuturor cititorilor site-ului portalului, în acest articol vom vorbi despre punctele de întrerupere în 1C, sau mai degrabă despre funcționarea incorectă a acestora în anumite versiuni ale platformei 1C.

    La sfârșitul lunii mai 2015, un nou platforma 1C 8.3.6.2014... Când lucrau cu această platformă, mulți programatori au întâmpinat situații cu probleme. În special, în mod corespunzător punctele de întrerupere nu au funcționat în configurator la depanarea unei aplicații... După cum sa dovedit, au fost observate probleme la depanarea proceselor externe utilizând procesarea „Testarea plăcilor de imprimare externe”.

    Să vedem mai întâi cum funcționează procesarea „Testarea imprimării externe”. Cu ajutorul acestei procesări, am indicat procesarea noastră externă (de exemplu, placa de imprimare externă) (1), apoi am deschis aceeași placă de imprimare în configurator și am setat puncte de întrerupere, după care am început întreprinderea în depanare. Prin apăsarea butonului (2) a fost lansat imprimabilul nostru extern și nu sistemul generat implicit în directorul tmpCa urmare, a fost declanșat un punct de întrerupere în procesarea noastră deschisă în configurator. Totul a funcționat așa cum era de așteptat. Dar asta a fost înainte ... Dacă efectuăm aceste acțiuni în platforma 1C 8.3.6.2014, punctele de întrerupere în procesarea externă nu vor fi declanșate! După cum sa dovedit, această situație a apărut pentru că platforma 1C 8.3.6.2014 a încărcat procesarea externă în RAM, în timp ce versiunile mai tinere ale platformei l-au salvat într-un fișier temporar, care se afla în directorul implicit de fișiere temporare 1C.

    Rezolvarea problemei cu punctele de întrerupere în procesarea externă pe platforma 1C 8.3.6.2014

    Din păcate, în acest moment, nu a fost posibilă rezolvarea problemei cu puncte de întrerupere în procesarea externă pe platforma 1C 8.3.6.2014... Lucrul este că această versiune a platformei stochează procesarea în RAM, iar depanatorul nu ajunge acolo, deoarece nu putem deschide procesarea în configurator și seta un punct de întrerupere. Să sperăm că specialiștii de la 1C vor face posibilă introducerea RAM cu un depanator sau vor veni cu metode alternative de depanare.

    De fapt, modulul este format din funcții și proceduri. Acestea sunt liniile programului, unite prin nume. În cadrul unei funcții, poate fi apelată alta, inclusiv una situată într-un alt modul.

    Programul este scris în modul 1C Configurator. Programul este executat în modul Enterprise 1C.

    Cum se execută programul?

    Cum se execută programul?

    În primul rând, atunci când un modul este accesat pentru prima dată, se execută liniile de program situate chiar la capătul modulului, care nu sunt incluse într-o funcție sau procedură (dacă există).

    În al doilea rând, trebuie să apară o funcție sau o procedură de apel. Acest lucru se poate face executând un alt modul. Dacă acesta este un modul formular sau un modul obiect, atunci modulul are gestionare. Handlerele sunt funcții care sunt apelate automat de platforma 1C atunci când apare un anumit eveniment. De exemplu, „când formularul este deschis”, se execută gestionarul corespunzător (dacă a fost atribuit).

    Când devine necesară executarea unei funcții, platforma își începe execuția de la prima linie a programului din interiorul funcției și coboară secvențial până la sfârșitul funcției, linie cu linie.

    Excepție - dacă se apelează o altă funcție, atunci platforma continuă să o execute și abia apoi revine înapoi de unde a venit.

    Ce este depanarea 1C?

    Când se scrie un program, programatorul poate ghici doar cum ar trebui să funcționeze. Când începe să funcționeze cu adevărat, utilizatorul introduce unele date în câmpurile formularului, anumite condiții și setări intră în vigoare și programul poate începe brusc să funcționeze nu chiar așa cum se aștepta programatorul.

    În același timp, sunt interesante deciziile specifice luate de program, rezultatele comparației în condițiile „Dacă” și așa mai departe.

    În aceste scopuri, se utilizează depanarea 1C. Ideea sa generală este că programatorul poate seta un punct de întrerupere pe linia dorită a programului și programul va opri execuția pe el - pauză. În acest moment, puteți vedea ce valori au luat variabilele și alți parametri.

    Programatorul poate apăsa un buton din depanatorul 1C și programul își va continua execuția, dar nu în întregime, ci doar o singură linie. Și apoi se va întrerupe din nou.

    Astfel, puteți surprinde zonele cu probleme ale programului.

    Începeți depanarea 1C

    Deoarece programul este scris (și este) în configurator și este executat în modul Enterprise, pentru a utiliza depanarea 1C, trebuie să aveți 1 configurator și 1 mod Enterprise depanat:

    • neglijat
    • legate de.

    Modul Enterprise poate fi pornit imediat cu 1C depanare. Pentru a face acest lucru, puteți utiliza butonul corespunzător din configurator ca în imagine.

    Sau utilizați meniul Debug / Start debugging sau Debug / Start debugging / Selectați opțiunea client 1C.

    Dacă aveți deja 1C care rulează în modul Enterprise și doriți să vă conectați la acesta, trebuie să faceți următoarele:
    1) În clientul 1C în modul Enterprise, în meniul Serviciu / Opțiuni din fila „Serviciu”, bifați caseta „Depanare în sesiunea curentă este permisă”

    2) În configurator, selectați elementul de meniu Debug / Connect
    3) În fereastra care se deschide, selectați clientul dorit cu cursorul și faceți clic pe butonul Conectare.

    Punct de întrerupere 1C (punct de întrerupere)

    După ce ați conectat configuratorul și clientul care rulează cu depanarea 1C (adică „conectat cu depanatorul 1C”) - toate acțiunile programului din modulele acestui client sunt efectuate sub controlul acestui configurator.

    Pentru a începe să urmăriți cum merge execuția, trebuie să setați un punct de întrerupere în locul potrivit.

    Pentru a face acest lucru, trebuie să deschideți modulul pe care doriți să îl depanați. Apoi, găsiți procedura necesară. Un punct de întrerupere poate fi setat în următoarele moduri:

    • Faceți clic stânga pe bara gri din stânga textelor modulului
    • Apăsați F9
    • Selectați elementul de meniu Debug / Breakpoint.

    Ca urmare, va apărea un cerc roșu, ca în imagine. Acesta este punctul de rupere. De îndată ce un program care rulează în modul Enterprise ajunge la această linie, acesta se va opri din executare și se va întrerupe.

    Când s-a întâmplat acest lucru (programul s-a întrerupt), va exista o săgeată galbenă pe linia unde se află acum execuția.

    Pentru a vizualiza valoarea unei variabile în acest moment - selectați variabila dorită cu cursorul și apăsați Shift + F9.

    Pentru a executa o linie (adică mergeți la linia următoare) - apăsați butonul corespunzător ca în imagine sau selectați elementul din meniul 1C Debug.

    Punct de întrerupere condiționat

    În plus față de punctul de întrerupere obișnuit, puteți seta unul care va fi declanșat numai dacă este îndeplinită condiția specificată în acesta. Se numește „Punct de întrerupere condiționat” - vezi elementul cu același nume în meniul 1C Debug.

    De exemplu, un program are o buclă care se repetă de multe ori. Putem seta un punct de întrerupere care va declanșa la o iterație specifică a buclei („iterații de buclă”).

    Punct de întrerupere din greșeală

    În astfel de scopuri, există un punct de întrerupere care este declanșat atunci când, atunci când se lucrează „în depanatorul 1C”, apare orice eroare sau erori de un anumit tip.

    Rețineți că acest punct de întrerupere prinde chiar și erorile care apar în.