Vstavaný jazyk. Vstavaný jazyk Na čo sa používa ladenie v 1c

Toto je ďalší článok zo série „Prvé kroky vo vývoji 1C“. Pokračuje v téme predchádzajúceho článku, venovanej funkciám práce v konfigurátore.

V tomto článku sa pozrieme na špeciálny nástroj, ktorý uľahčuje vývoj a ladenie. programový kód na platforme 1C:Enterprise, ktorá sa nazýva Debugger. Po preštudovaní článku sa dozviete:

  • Na čo slúži debugger a ako ho používať?
  • Čo sú to body prerušenia, ako a prečo ich nastaviť?
  • Ako vykonať programový kód krok za krokom a prečo je to potrebné?
  • Kde sa môžem pozrieť na hodnoty mojich premenných, ako aj vypočítať hodnoty výrazov?
  • Na čo slúži zásobník hovorov a ako ho zobraziť?
  • Ako zastaviť spustenie kódu omylom?

Použiteľnosť

Článok pojednáva o platforme 1C verzie 8.3.4.365. Aktuálna aktuálna verzia platformy obsahuje bohatšie mechanizmy ladenia, to však neznamená, že prezentované informácie sú zastarané, pretože Všetky mechanizmy a techniky ladenia opísané v článku zostávajú rovnaké.

Použitie debuggera v systéme 1C:Enterprise 8

Systém 1C:Enterprise 8 obsahuje zabudovaný debugger programového kódu.

Debugger je špeciálny nástroj v konfigurátore, ktorý vám umožňuje analyzovať fungovanie programového kódu. Tento článok popisuje niektoré funkcie ladiaceho nástroja, ktoré vývojári najčastejšie používajú.

Ak chcete analyzovať programový kód pomocou debuggera, špeciálneho nástroja tzv bod zlomu.

Bod zlomu je miesto, kde sa zastaví činnosť systému v kóde programu, označené špeciálnou značkou (obr. 1).

Ryža. 1. Bod zlomu

Keď je spustený bod prerušenia, je možné krok za krokom vykonávať programový kód a analyzovať premenné hodnoty.

Nastavenie bodov zlomu

Nastavenie prerušovacieho bodu na konkrétnom riadku programového kódu sa vykonáva dvojitým kliknutím ľavého tlačidla myši v ľavej časti programového modulu, ktorá je zvýraznená sivou farbou.

Príkazom je možné nastaviť aj bod prerušenia na paneli nástrojov konfigurátora alebo kliknutím F9. Odstránenie existujúceho bodu prerušenia sa vykonáva rovnakým spôsobom.

Ak chcete nastaviť bod prerušenia na konci procedúry alebo funkcie, musíte bod prerušenia nastaviť na kľúčové slovo Koniec procedúry alebo EndFunction.

Bod prerušenia môžete dočasne zakázať bez toho, aby ste ho odstránili z kódu. Ak chcete zakázať bod prerušenia, spustite príkaz Zakázať bod prerušenia na paneli s nástrojmi alebo stlačte klávesovú skratku Ctrl+Shift+F9.

Ak chcete zobraziť všetky body prerušenia, musíte vykonať príkaz hlavného menu Ladenie – zoznam body prerušenia alebo stlačte klávesovú skratku Alt+F9. V otvorenom formulári Body zlomu body prerušenia môžete dočasne zakázať alebo odstrániť (obrázok 2).

Ryža. 2. Zoznam bodov zlomu

Ak chcete odstrániť všetky body prerušenia, musíte vykonať príkaz v hlavnom menu konfigurátora Ladenie - Odstráňte všetky body prerušenia.

Podmienený bod zlomu

Podmienený bod prerušenia je potrebný na zastavenie vykonávania programového kódu, keď sa spustí určitá podmienka.

Ak chcete nastaviť bod prerušenia s podmienkou, musíte vykonať príkaz v hlavnom menu konfigurátora Ladenie – podmienený bod zlomu. Otvorí sa formulár Stop podmienka. Do vstupného poľa musíte zadať potrebnú podmienku (napríklad hodnotu premennej v kóde programu) a kliknúť na tlačidlo OK(obr. 3).

Po spustení systému v režime ladenia sa bod prerušenia spustí, keď je splnená podmienka prerušenia. Môžete si to overiť pomocou formulára hodnotiaca tabuľka(obr. 3). Práca s formulárom hodnotiaca tabuľka bude diskutované nižšie.

Ryža. 3. Nastavenie bodu prerušenia s podmienkou a výsledkom jej spracovania

Ak chcete spustiť ladenie kódu programu, musíte nastaviť body prerušenia a spustiť aplikáciu v režime ladenia. Na spustenie ladenia je potrebné vykonať príkaz v hlavnom menu konfigurátora Ladenie – Spustite ladenie(F5).

Po spustení aplikácie v režime ladenia sa musíte uistiť, že sa spustí bod prerušenia. Tu sú možné rôzne scenáre. Napríklad bod prerušenia je nastavený v module formulára dokumentu v štandardnej obsluhe udalosti OnOpen(). V tomto prípade sa bod prerušenia spustí pri otvorení formulára akéhokoľvek dokumentu v užívateľskom režime.

Bod prerušenia je možné nastaviť v ľubovoľnej procedúre alebo funkcii, ktorú vytvoril vývojár. V tomto prípade sa bod prerušenia spustí po zavolaní tejto procedúry alebo funkcie z konkrétneho riadku kódu.

Po spustení bodu prerušenia systém prestane vykonávať programový kód a stane sa možné použitie rôzne funkcie debuggera, ako napríklad: postupné vykonávanie programového kódu, použitie formulára hodnotiaca tabuľka atď.

Spustenie kódu krok za krokom

Na postupné vykonávanie programového kódu sa používajú príkazy, ktoré sú dostupné v hlavnom menu konfigurátora v menu Ladenie. Pre tieto príkazy je vhodné použiť klávesové skratky.

Vstúpte do (F11). Ak nasledujúci príkaz programového kódu zavolá procedúru alebo funkciu, vykoná sa jej postupné vykonanie, inak sa vykoná nasledujúci príkaz.

Krok cez (F10). Ak nasledujúci príkaz programového kódu zavolá procedúru alebo funkciu, potom sa vykoná úplne bez toho, aby sa dostal dovnútra. Potom sa vykoná ďalší príkaz.

Prejsť na kurzor (Shift+F10). Operátory sa vykonávajú od aktuálne vykonávaného riadku po riadok programového kódu, kde sa nachádza kurzor.

Používanie formulárov hodnotiaca tabuľka A Výraz

Formuláre sa používajú na zobrazenie hodnôt premenných a výpočet hodnôt výrazov pri zastavení programového kódu hodnotiaca tabuľka A Výraz.

Formulár hodnotiaca tabuľka vyvolané príkazom hlavnej ponuky konfigurátora Ladenie – tabuľka alebo klávesová skratka Ctrl+Alt+W. V tabuľke môžete zaznamenávať hodnoty akýchkoľvek premenných a analyzovať, ako sa menia počas vykonávania programového kódu.

Tabuľka výsledkov má k dispozícii štyri karty. V predvolenom nastavení sú záložky vypnuté. Ak chcete povoliť záložky vo formulári hodnotiaca tabuľka musíte zavolať kontextové menu a nastaviť príznak Záložky(obr. 4).

Ryža. 4. Formulár „Tabulka“ so zahrnutými záložkami

Na výpočet hodnôt výrazov v momente, keď sa programový kód zastaví, použite formulár Výraz. Na otvorenie tohto formulára použite príkaz hlavného menu konfigurátora Ladiť - Vypočítať výraz alebo klávesová skratka Shift+F9(obr. 5).

Ryža. 5. Formulár „Výraz“.

Do poľa Výraz zadajte výraz vo vstavanom jazyku. Hodnotu výrazu možno získať stlačením tlačidla Vypočítajte. V teréne Výsledok zobrazí sa hodnota výrazu. Výraz je možné zobraziť na displeji kliknutím na tlačidlo Zahrnúť do výsledkovej tabuľky.

Ak chcete zobraziť hodnoty kolekcie (napríklad tabuľku hodnôt, zoznam hodnôt, pole), môžete použiť príkaz Šou hodnotu v samostatnom okne alebo kľúči F2.

Pozrite si zoznam hovorov

Zásobník hovorov– formulár, ktorý umožňuje sledovať vzájomné volania procedúr a funkcií počas vykonávania programového kódu. Zásobník hovorov sa zobrazí príkazom hlavnej ponuky konfigurátora Ladenie - zásobník hovorov alebo klávesová skratka Ctrl+Alt+C. Z formulára Zásobník hovorov môžete prejsť na príslušný postup alebo funkciu (obr. 6).

Vo formulári musíte nastaviť príznak Zastavte sa omylom a spustite aplikáciu v režime ladenia. Vykonávanie programového kódu sa zastaví na riadku, v ktorom sa vyskytla chyba (obr. 7).

Pomocou možností ladiaceho nástroja popísaných v tomto článku môže vývojár analyzovať váš vlastný programový kód aj programový kód štandardných riešení spoločnosť "1C".

Ako ukazuje prax, bez debuggera trvá hľadanie chýb v programovom kóde dlho. Preto musíte venovať osobitnú pozornosť zvládnutiu debuggera.

Ako bolo uvedené vyššie, mechanizmus ladenia bol v nasledujúcich vydaniach platformy výrazne rozšírený. Pre tých, ktorí sa chcú zoznámiť Detailný popis tieto inovácie, odporúčame prečítať si príslušný materiál na blogu samotných vývojárov platformy.

Na záver poznamenávame, že konfigurátor je kompletné a donedávna jediné prostredie na vývoj aplikácií na platforme 1C:Enterprise 8. Má veľmi bohatú funkčnosť navrhnutú tak, aby pomohla vývojárovi pri riešení jeho každodenných úloh.

Vo verzii 8.3 konfigurátor pridal veľa malých utilít pre vývojárov. A v ďalšom článku sa s nimi určite zoznámime.

Vítame všetkých čitateľov portálu, v tomto článku budeme hovoriť o bodoch zlomu v 1C, alebo skôr o nich nesprávna prevádzka V určité verzie 1C platformy.

Koncom mája 2015 nová nástupište 1C 8.3.6.2014. Mnoho programátorov sa pri práci s touto platformou stretávalo s problémovými situáciami. Najmä poriadne Breakpointy v konfigurátore nefungovali pri ladení aplikácie. Ako sa ukázalo, problémy boli zaznamenané pri ladení externého spracovania pomocou spracovania „Testovanie externých tlačených formulárov“.

Pozrime sa najprv na princíp fungovania spracovania „Testovanie externých tlačových formulárov“. Pomocou tohto spracovania sme špecifikovali naše externé spracovanie (napríklad externý tlačový formulár) (1) a potom sme otvorili rovnaký tlačový formulár v konfigurátore a nastavili breakpointy, po ktorých sme spustili podnik v ladení. Keď stlačíte tlačidlo (2) bol spustený náš externý tlačený formulár a nie predvolený vygenerovaný systémom v adresári tmp v dôsledku toho sa v našom spracovaní otvorenom v konfigurátore spustil bod prerušenia. Všetko fungovalo podľa očakávania. Ale to bolo predtým... Ak budeme postupovať podľa týchto krokov v platforme 1C 8.3.6.2014 sa body prerušenia v externom spracovaní nespustia! Ako sa ukázalo táto situácia vznikla preto 1C platforma 8.3.6.2014 načítala externé spracovanie do RAM , zatiaľ čo mladšie verzie platformy ho uložili do dočasného súboru, ktorý sa nachádzal v predvolenom adresári dočasných súborov 1C.

Riešenie problému s bodmi prerušenia v externom spracovaní na platforme 1C 8.3.6.2014

Žiaľ, momentálne vyriešiť problém s bodmi prerušenia v vonkajšie ošetrenia na platforme 1C 8.3.6.2014 neuspel. Celá pointa je v tom túto verziu platforma ukladá spracovanie do pamäte RAM, ale debugger sa tam nedostane, pretože nemôžeme otvoriť spracovanie v konfigurátore a nastaviť bod prerušenia. Dúfajme, že špecialisti z 1C umožnia vstúpiť do RAM pomocou debuggera alebo prísť s alternatívne metódy ladenie

Ako začať ladiť na serveri 1C...

Pri použití architektúry klient-server 1C:Enterprise štandardne funguje režim ladenia kódu 1C iba na strane klienta. Procedúry a funkcie servera nie sú viditeľné pre klientsky počítač.

Ak chcete povoliť používanie ladenia na serveri 1C, musíte vykonať nasledujúce kroky:

1. Nájdite a zastavte službu „1C:Enterprise Server Agent 8.3“ v správcovi služieb (pre verziu 8.3).

2. Otvorte editor systémového registra. Môžeš použiť príkazový riadok alebo nástroj ponuky Štart – Spustiť... a príkaz regedit.

3. Nájdite pobočku v registri:

  • Pre verziu 1C 8.1
  • Pre verziu 1C 8.2
  • Pre verziu 1C 8.3

4. Zmeňte vlastnosť ImagePath, pridajte direktívu „-debug“ na koniec riadku. Dostanete nasledujúci riadok vlastností: „C:\Program Files (x86)\1cv8\8.3.6.2152\bin\ragent.exe“ -srvc -agent -regport 1541 -port 1540 -rozsah 1560:1591 -d "C: \Program Files (x86)\1cv8\srvinfo" – ladiť

Potom je možné kód servera 1C bezpečne skontrolovať pomocou debuggeru a kedykoľvek je to potrebné, môžete nastaviť body prerušenia.

Debugger je nástroj zabudovaný v konfigurátore. Pomáha ladiť softvérové ​​moduly vytvorené počas vývoja aplikačného riešenia. Debugger vám umožňuje sledovať postupnosť vykonávania vstavaných jazykových príkazov a zobrazovať hodnoty premenných.

Základné funkcie ladenia

  • ladenie aplikácií spustených na vzdialené počítače, prístupný cez protokol TCP/IP alebo HTTP,
  • ladiaci kód vykonávaný pracovným procesom serverového klastra 1C:Enterprise 8; podporuje komplexný zásobník hovorov pre klienta a server a komplexné ladenie klienta a servera krok za krokom;
  • ladiaci kód vykonávaný v takých typoch pripojení, ako je externé pripojenie, úloha na pozadí a pripojenie WS?
  • ladenie mobilných aplikácií.

Body zlomu

Ladiaci nástroj vám umožňuje nastaviť špeciálnu značku na konkrétnom riadku modulu - bod prerušenia - po dosiahnutí ktorého sa vykonávanie programového modulu zastaví a riadenie sa prenesie na debugger. Body zlomu môžu byť bezpodmienečné alebo podmienené. Keď sa dosiahne bezpodmienečný bod prerušenia, vykonávanie softvérového modulu sa v každom prípade zastaví:

Keď sa dosiahne podmienený bod prerušenia, vykonávanie programového modulu sa zastaví iba vtedy, ak je zadaná podmienka pravdivá:

Ladiaci nástroj podporuje možnosť zakázať body prerušenia. V tomto prípade zostane riadok modulu označený značkou, ale nemá to žiadny vplyv na vykonanie modulu:

Keď existuje veľký počet bodov prerušenia, je vhodné ho použiť samostatné okno pre prácu s bodmi prerušenia, čo vám umožňuje prezerať a upravovať ich v jeden zoznam:

Vykonávanie krok za krokom

Po prenesení kontroly nad aplikačným riešením do debuggeru pri dosiahnutí bodu prerušenia je možné modul ďalej spúšťať v niekoľkých režimoch: postupné spúšťanie, vykonávanie volania funkcie alebo procedúry, prerušenie krokového krokové vykonanie funkcie alebo procedúry, vykonanie modulu až po riadok, na ktorom sa nachádza kurzor, alebo pokračovanie voľného vykonávania modulu:

Zobrazenie výrazov

Počas vykonávania krok za krokom je možné zobraziť hodnoty premenných obsiahnutých v module a vypočítať ľubovoľné hodnoty. Ak to chcete urobiť, použite špeciálne okno zobrazujúce výsledok výpočtu:

Pre objekty vnoreného jazyka sú ich hodnoty vlastností reprezentované ako stromová štruktúra. Hodnoty, ktorými sú reťazce, polia a kolekcie hodnôt, je možné zobraziť aj v samostatnom okne:

Aktuálnu hodnotu premennej môžete zobraziť aj umiestnením kurzora myši na danú premennú. Aktuálna hodnota sa zobrazí ako krátky popis vedľa premennej.

Tabuľka výsledkov a lokálne premenné

Výsledky výpočtov, ktoré je potrebné prezerať pri vykonávaní niektorej časti modulu, je možné zobraziť v samostatnom okne – výsledkovej tabuľke – v ktorej je možné rozložiť všetky prezerané výrazy na štyri strany:

Pre pohodlné prezeranie a zmeny v lokálnych premenných, čo sa zdá byť najviac spoločná úloha, je tam príkaz Lokálne premenné. Otvorí tabuľku, ktorá je už automaticky vyplnená všetkými lokálnymi premennými.

Zmena hodnôt premenných

Hodnoty primitívnych typov je možné meniť priamo v bunke Význam.

A na zmenu iných hodnôt môžete použiť okno na zadávanie výrazov.

V tomto okne je plne funkčná kontextová nápoveda.

Zásobník hovorov

Ladiaci nástroj vám umožňuje používať zásobník hovorov, ktorý zobrazuje postupnosť volaní procedúr a funkcií, ktoré viedli k riadku modulu, ktorý sa práve ladí:

Dvojitým kliknutím na názov procedúry v zásobníku hovorov môžete prejsť na príslušný riadok procedúry.

Zastavte sa omylom

Platforma poskytuje možnosť použiť režim Stop by error. V tomto režime možno ladenie zastaviť buď pre každú chybu, ktorá sa vyskytne, alebo pre chybu, ktorá obsahuje podreťazec špecifikovaný vývojárom. Podreťazce požadovaných chýb sú špecifikované v nastaveniach ladenia.

Počas ladenia toto nastavenie zastaví ladenie iba vtedy, keď sa vyskytnú chyby zahŕňajúce delenie nulou.

Ladenie 1C- veľmi výkonný a funkčný mechanizmus platformy 1C 8.3, ktorý vám umožňuje rýchlo nájsť chyby v programovom kóde (v iných programovacích jazykoch sa to nazýva „ladenie“, z angličtiny „ladenie“).

Nižšie zvážime hlavné metódy použitia mechanizmu ladenia vo forme praktických pokynov na konkrétnom príklade.

Pozor! Ak používate režim klient-server (na serveri), potrebujete.

Najjednoduchší spôsob, ako začať ladiť v 1C, je otvoriť 1C v režime a z neho spustiť režim ladenia v požadovaný režim práca (tenká/hustá, kontrolovaná/pravidelná):

Ladenie úloh na pozadí 1C

Aby bolo možné ladiť pracovné miesta na pozadí, musíte prejsť do ponuky „Ladenie - Pripojenie“. V okne, ktoré sa otvorí, kliknite na tlačidlo „Automatické pripojenie“:

V tomto okne môžete nastaviť príslušný príznak.

Okrem úloh na pozadí môžete v tomto okne povoliť ladenie vonkajšie pripojenia, http a .

Nastavenie bodu zlomu

Druhým krokom pri ladení je nastavenie bodu prerušenia (v iných programovacích jazykoch - bod zlomu).

Napríklad som na ladenie vybral obslužný program „Pri zmene“ vo formulári dokumentu:

Ak chcete nastaviť bod prerušenia, musíte nájsť požadovaný kód programu a dvakrát kliknúť na pole naľavo od poľa na zadanie kódu (alebo stlačiť tlačidlo F9):

Ak chcete zobraziť zoznam všetkých nainštalovaných, musíte prejsť do ponuky Debug - Zoznam bodov prerušenia (alt + F9):

Získajte 267 video lekcií na 1C zadarmo:

Bod zlomu 1C s podmienkou (modrý)

Okrem bežného bodu prerušenia v 1C existuje ďalší typ bodu prerušenia - s podmienkou. Graficky je takýto bod zobrazený modrou farbou. Tento bod prerušenia je veľmi užitočný, keď potrebujete zachytiť konkrétnu iteráciu pri prechádzaní slučkou. Ladenie sa zapne, keď je splnená určitá podmienka.

Napríklad, zastavme slučku na riadku číslo 25:

Neaktívny bod prerušenia (sivý)

Sivý bod prerušenia znamená, že nie je aktívny a systém sa na tomto bode prerušenia nezastaví. Môžete ho deaktivovať kliknutím na špeciálne tlačidlo na paneli „Disable Breakpoint“ (Shift+ctrl+F9):

Chybový bod prerušenia

Systém sa môže zastaviť kvôli chybe, na to je potrebné nastaviť príslušný príznak v menu Debug - Stop by error:

Chybové zastavenie má tiež funkčnosť podobnú podmienenému bodu prerušenia – umožňuje filtrovať výnimky so špecifickým textom chyby.

Pohyb krok za krokom cez programový kód 1C

Po nastavení bodu prerušenia musíte spustiť spustenie požadovaného programového kódu, aby systém zadal spustenie kódu krok za krokom. Zobrazenie šípky označuje začiatok režimu vykonávania kódu krok za krokom:

Ak chcete urobiť krok na ďalší riadok, musíte stlačiť tlačidlo „F11“ (Step into).

Ak prechádzate riadkami programového kódu a na riadku je procedúra alebo funkcia, potom „spadnete“ do tejto procedúry (alebo funkcie).

Aby ste „nezlyhali“, stačí namiesto F11 (Step into) preskakovať cez riadky tlačidlom F10 (Step through), toto tlačidlo vám umožňuje prechádzať procedúrami v programovom kóde.

Ak sa chcete presunúť z aktuálnej pozície kurzora na požadovanú a obísť medziriadky kódu, musíte kurzor nastaviť na požadovaný riadok a stlačte Shift + F10 (Prejsť na kurzor).

Analýza hodnôt v režime ladenia 1C

Hodnoty určitých hodnôt môžete zobraziť rôznymi spôsobmi:

Zobrazte hodnotu pri umiestnení kurzora myši

Keď umiestnite kurzor myši na premennú, systém „zvýrazní“ hodnoty premennej:

Použitie hodnotiaceho výrazu alebo tabla

  • Formulár Vyhodnoťte výraz možno vyvolať pomocou kontextového menu alebo stlačením klávesových skratiek - (Shift + F9), alebo menu (Ladenie - Vyhodnotiť výraz).
  • hodnotiaca tabuľka volá sa pomocou klávesových skratiek Ctrl + Alt + W alebo z ponuky (Ladenie - Tableau).

Tieto dve metódy analýzy sú veľmi podobné, hlavné rozdiely sú v rozhraní. Pre skupinu ukazovateľov je vhodnejšie použiť hodnotiacu tabuľku a pre jednotlivé ukazovatele výrazy.

Tieto metódy sa veľmi ľahko používajú. Do tabuľky stačí zadať názov požadovanej premennej. Veľkou výhodou ľubovoľných výpočtov je, že do výrazu môžete pridať svoje vlastné údaje.

Napríklad:

Je veľmi užitočné použiť vyhodnotenie výrazov a spustiť dotaz, nahrať ho do tabuľky hodnôt a pozrieť sa naň.

Ako zistiť, odkiaľ sa pri ladení volá procedúra - Zásobník hovorov

Veľmi často musíte pochopiť, odkiaľ bola konkrétna procedúra alebo funkcia volaná a s akými parametrami. Na tento účel poskytuje 1C špeciálnu funkciu - „Stack hovorov“. Ak chcete spustiť zásobník hovorov, musíte stlačiť klávesové skratky - Ctrl + Alt + C alebo cez ponuku (ladenie - zásobník hovorov).

Pomocou neho môžete podrobne zistiť, odkiaľ bola procedúra volaná a s akými parametrami:

Ak máte záujem o vyhodnotenie výkonu počas ladenia - .

Pozrite si aj prehľadné video o ladení v 1C: