1c povolit ladění na serveru. Ladění procedur serveru (1Cv82)

Úkolem vývojáře 1C není pouze psát kód, ale také sledovat a opravovat chyby, vytvářet optimální algoritmus provádění příkazů a optimalizovat rychlost práce, tedy ladění. Je obtížné to provést bez použití funkcí vestavěného ladicího programu procedur serveru.

Zpočátku je režim ladění na serverech 1C deaktivován, takže vývojář bude muset provést jednoduché manipulace s nastavením, aby mohl důkladně zkontrolovat kód.

Povolení režimu ladění na serveru pro platformu 1C verze 8.2 a vyšší

Algoritmus pro povolení ladění je poměrně jednoduchý. Nepředpokládá hluboké znalosti architektury operačního systému a administrace 1C. Stále byste však měli být velmi opatrní, protože ladění se provádí přímo na serveru a s právy správce. Pokud tedy nemáte důkladné znalosti, přísně dodržujte algoritmus akcí bez improvizace:

  • Zastavte službu 1C:Enterprise Server Agent prostřednictvím Správce serveru. Pokud nastavení probíhá na produkčním serveru, měli byste se předem postarat o nepřítomnost uživatelů 1C v databázi;
  • Spusťte editor systémového registru kliknutím na „Start“ - „Spustit“ nebo klávesovou zkratkou „Win“ + „R“. V okně, které se otevře, zadejte řádek „regedit“;
  • V registru musíte najít položku;

  • Mezi parametry najděte „ImagePath“ a změňte jej přidáním „-debug“ k existující hodnotě s mezerou na konci;
  • Prostřednictvím Správce serveru spusťte službu, která byla zastavena – „1C:Enterprise Server Agent“.

Povolení režimu ladění na serveru pro 1C verze 8.1

Pokud potřebujete povolit režim ladění na platformě 8.1, algoritmus akcí zůstane prakticky nezměněn. Jedinou změnou je umístění parametru cesty "ImagePath". Ve verzi 8.1 se nachází v sekci.

Vývojáři 1C doporučují povolit režim ladění výhradně pro testovací servery, kde by měl být kód laděn. Důvodem tohoto doporučení je dopad na výkon, ke kterému dochází, když je na serveru povoleno ladění. Pokud máte mnoho uživatelů nebo výkon serveru ponechává mnoho přání, vezměte si tuto radu opatrně, aby ladění nemělo negativní důsledky.

Implementováno ve verzi 8.3.7.1759.

Výrazně jsme přepracovali mechanismus ladění. Důvodů k tomu bylo několik. Nejprve jsme vám chtěli dát možnost ladit každou aplikaci, která je dnes k dispozici. Za druhé, předchozí architektura debuggeru vyžadovala změny, aby udržela krok se současnými trendy a přizpůsobila se budoucímu vývoji. Zatřetí bylo potřeba univerzální ladicí rozhraní, se kterým by se dal nejen konfigurátor 1C:Enterprise, ale také .

Hlavní výhody

Abyste si dokázali představit rozsah změn, které jsme provedli, stručně uvedeme hlavní výhody nového mechanismu.

Ladění HTTP

Předchozí mechanismus ladění byl založen na skutečnosti, že debugger implementovaný v konfigurátoru 1C:Enterprise přímo interagoval s položkami ladění (klientské a serverové aplikace). Tato interakce byla provedena pomocí protokolu TCP/IP.

S uvedením aplikací 1C:Enterprise na internet a zejména s nástupem mobilních aplikací se však tento přístup stal zdrojem omezení a nepříjemností. Protokol TCP/IP vždy neumožňuje ladicímu programu „dosáhnout“ na laděné položky. Koneckonců, mohou být umístěny mimo místní síť, ve které běží ladicí program.

Proto jsme v novém mechanismu zvolili jako transportní protokol „všudypřítomnější“ protokol HTTP, který mimochodem využívají i klientské aplikace pro připojení k informačním databázím.

Moderní architektura ladění

Rysem předchozího ladícího mechanismu byla nutnost připojení k infobázi pomocí konfigurátoru. Díky tomu měl vývojářský ladění plný přístup ke všem administrativním funkcím.

Nový mechanismus ladění již nevyžaduje připojení k laděné infobázi. Hlavní věc, kterou nyní debugger potřebuje, je stejná konfigurace, která funguje pro klienty. Pro jeho získání není potřeba se připojovat k laděné infobázi. Načíst jej můžete například ze souboru.

Ladění mobilních aplikací

Díky použití protokolu HTTP je možné ladit aplikace provozované mobilní platformou. Navíc můžete ladit jakékoli kontexty: klient, server i úlohy na pozadí.

Nyní, během ladění, můžete změnit hodnoty všech zapisovatelných proměnných. Pro rychlé zobrazení a změnu lokálních proměnných jsme implementovali samostatné okno. A výpočet výrazů zobrazených debuggerem se nyní provádí v asynchronním režimu.

Ladění ve vývojových nástrojích

Při vytváření nového ladícího mechanismu jsme implementovali nové, univerzální softwarové rozhraní pro interakci s ním. Toto rozhraní používá konfigurátor 1C:Enterprise a stejné rozhraní nyní používá nové vývojové prostředí. Všechny možnosti ladění jsou tedy nyní dostupné při práci v .

Architektura procesu ladění

Nová architektura ladění vypadá takto:

Ladění zahrnuje debugger, ladění položek a nový prvek - ladicí server.

Neexistuje žádný přímý přenos informací mezi ladicím programem a položkami ladění. Veškerá interakce je organizována prostřednictvím ladícího serveru. Toto je hlavní prvek mechanismu. Ladicí server má frontu zpráv, jejímž prostřednictvím si ladicí program a položky ladění předávají informace.

Jak samotný ladicí program, tak ladicí položky komunikují s ladicím serverem prostřednictvím protokolu HTTP. Nyní tedy nezáleží na tom, kde se tyto ladicí položky nacházejí.

Interakce s ladicím serverem je zahájena ladicím programem a položkami ladění. Za tímto účelem jsou organizována další spojení. Jejich hlavním účelem je zjistit, zda se pro ně na ladicím serveru objevily informace. A pokud se objeví, získejte tuto informaci.

Interakce je tedy jednostranná. Informace jsou neustále přenášeny z ladícího serveru do ladicího programu a do ladicích objektů.

Identifikace informačních bází

V předchozím mechanismu byl k identifikaci infobází použit připojovací řetězec. Toto řešení v některých případech způsobovalo potíže s párováním položek ladění a konfigurátoru. Protože zaprvé rozlišovala malá a velká písmena a zadruhé při ladění některých kontextů platforma vygenerovala připojovací řetězec automaticky. A ne vždy se shodoval s tím, který jste uvedli při připojení infobáze v konfigurátoru. Hledání a náprava takových situací komplikovalo proces ladění.

V novém mechanismu jsme se zbavili spojovacího řetězce. Nyní používáme identifikátor infobáze. V infobázi souboru se takový identifikátor vygeneruje při prvním navázání klientského připojení. V infobázi serveru se jako takový identifikátor používá registrační identifikátor infobáze v clusteru.

Příjemným dodatečným bodem je, že jsme prozatím zachovali starý mechanismus ladění v platformě (může být v budoucnu vyloučen). A můžete jej použít, pokud si přejete, nebo pokud je to nutné. Upravili jsme tedy starý mechanismus a nyní také používá identifikátor infobáze, nikoli připojovací řetězec.

Typické scénáře ladění

Z pohledu vývojáře aplikací se typické scénáře ladění nezměnily. Jediný významný rozdíl je v tom, že musí být povolen nový mechanismus ladění. Protože ve výchozím nastavení je zakázáno.

Bez ohledu na to má smysl seznámit se s tím, co se nyní stane, když spustíte ladění. Protože se vám může hodit v některých nestandardních pracovních scénářích.

Možnost souboru

Než začnete ladit ve verzi souboru, musíte v nastavení konfigurátoru uvést, že chcete použít nový mechanismus ladění - “ Ladění HTTP».

V tomto případě vás konfigurátor automaticky vyzve k použití místního ladícího serveru. Musíte s tím souhlasit a restartovat konfigurátor.

Nastavená metoda ladění se ukládá mezi relacemi konfigurátoru, ale je uložena v kontextu informačních bází. Pro další infobázi ji tedy budete muset znovu povolit.

Nyní, když spustíte konfigurátor nebo když jej restartujete, platforma automaticky spustí ladicí server. Toto je samostatná aplikace dbgs.exe. Můžete to vidět ve správci úloh.

Parametr ownerPID určuje identifikátor aplikace, která vlastní tento ladicí server. V tomto případě se jedná o konfigurátor 1C:Enterprise.

Pokud nyní z konfigurátoru spustíte relaci ladění 1C:Enterprise, automaticky se připojí k ladicímu serveru a v konfigurátoru uvidíte připojené položky ladění.

Pokud byla relace 1C:Enterprise spuštěna bez ladění, můžete ji jako dříve připojit k ladicímu programu. Teprve nyní musíte zadat adresu ladícího serveru:

Tuto adresu najdete v nastavení položek ladění:

S prací s několika databázemi souborů najednou je spojen jeden neobvyklý bod. Ve verzi souboru každý konfigurátor s povoleným laděním http spouští vlastní kopii ladicího serveru na různých portech:

Pokud tedy máte otevřeno několik konfigurátorů najednou, musíte pro připojení klientské aplikace k debuggeru vybrat ten správný.

Možnost klient-server

Než začnete ladit ve verzi klient-server, musíte jako dříve spustit server 1C:Enterprise v režimu ladění, ale určit, že pro ladění bude použit nový mechanismus HTTP. Například takto:

ragent.exe -debug -http

Když je server spuštěn tímto způsobem, spustí se také ladicí server.

Parametr ownerPID bude udávat identifikátor správce clusteru 1C:Enterprise.

Nyní v nastavení konfigurátoru, jako v případě databáze souborů, musíte uvést, že chcete použít nový mechanismus ladění - “ Ladění HTTP».

V tomto případě vás konfigurátor automaticky vyzve, abyste použili server pro ladění clusteru, a nikoli místní server. Musíte s tím souhlasit a restartovat konfigurátor.

Připojování ladicích položek

Když spustíte ladicí relace z konfigurátoru, aplikace automaticky připojí ladicí položky (klienta i server) k ladicímu serveru.

Zároveň máte stejně jako dříve možnost konfigurovat konfigurátor tak, aby automaticky připojoval ladící položky bez ohledu na to, jak byly spuštěny. Nyní jsou tyto možnosti mnohem bohatší.

Za prvé, platforma vám nyní nabízí všechny možné položky pro ladění, ze kterých si můžete vybrat.

A za druhé se objevil další, jemnější způsob nastavení. Jedná se o použití předem vytvořených výběrů.

Tyto výběry můžete použít jak při připojování položek ladění, tak k zobrazení dostupných položek ladění.

Ve výběru můžete kromě samotných položek ladění určit konkrétní uživatele, jejichž relace vás zajímají, a také, pokud je použito oddělení dat, označit oblast infobáze, která bude laděna.

Změna proměnných, vlastností objektů a asynchronní vyhodnocování výrazů

Nový mechanismus ladění umožňuje během ladění měnit hodnoty proměnných. V předchozím mechanismu taková možnost nebyla.

Pro pohodlné prohlížení a změnu místních proměnných, což se zdá být nejběžnějším úkolem, jsme implementovali „ Lokální proměnné».

Navenek je velmi podobný „Scoreboard“, na který jste zvyklí. Ale za prvé, toto okno je již automaticky vyplněno všemi lokálními proměnnými, a za druhé, nyní můžete změnit hodnoty proměnných.

Hodnoty primitivních typů můžete změnit přímo v buňce " Význam»:

A pro změnu dalších hodnot můžete použít okno pro zadání výrazu:

Příjemným bonusem je, že kontextová nápověda je v tomto okně plně funkční.

Úplně stejným způsobem můžete měnit hodnoty libovolných (nejen lokálních) proměnných a zapisovatelných vlastností. V okně výpočtu výrazu (které se vyvolává příkazem Shift+F9) můžete měnit hodnoty proměnných jak v buňce „Value“, tak pomocí samostatného dialogu.

Mimochodem, samotný výpočet výrazu se nyní provádí asynchronně. To znamená, že konfigurátor nařídí výpočet ladící položky. A na nějakou dobu se tento výpočet očekává na serveru. Pokud je výpočet dokončen, výsledky jsou okamžitě odeslány do konfigurátoru. Pokud je výpočet prováděn delší dobu, pak výsledky těchto výpočtů dorazí asynchronně do konfigurátoru později. Tento přístup umožňuje nečekat na zdlouhavé výpočty v konfigurátoru a pokračovat v práci.

Tento článek pojednává o tom, jak povolit ladění na serveru 1C 8.1, 8.2 a 8.3 v operačních systémech Windows a Ubuntu.

Kromě toho poznamenávám, že tento článek je součástí malé série článků o ladění v 1C:

  • Jak povolit ladění na serveru 1C

Povolte ladění na serveru 1C ve Windows

Spusťte editor registru spuštěním příkazu regedit (pomocí Win+R nebo Start->Spustit).

Více o ladění HTTP a ladicím serveru si můžete přečíst v dalším článku série.

Povolte ladění na serveru 1C v Ubuntu

Nejprve nainstalujeme server:

sudo služba srv1cv83 stop

Poté otevřete soubor /etc/init.d/srv1cv83 jako superuživatel a najděte v něm řádek:

A přinášíme to do této podoby:

Poté znovu spustíme server:

spuštění služby sudo srv1cv83

V konfigurátoru na klientském počítači přejděte na „Settings“ -> „Launch 1C:Enterprise“ -> „Advanced“ a povolte dvě položky:

  • "Nastavit režim povolení ladění"
  • "Zahájit ladění při spuštění"

Můžete si přečíst o tom, jak nainstalovat server 1C na Ubuntu 16.04/18.04.

To je vše, doufám, že vám byl tento článek užitečný. Dovolte mi také připomenout další články ze série o ladění v 1C, odkazy na ně najdete na začátku tohoto článku.

Jak začít ladit na serveru 1C...

Ve výchozím nastavení při použití architektury klient-server 1C:Enterprise funguje režim ladění kódu 1C pouze na straně klienta. Procedury a funkce serveru nejsou pro klientský počítač viditelné.

Chcete-li povolit použití ladění na serveru 1C, musíte provést následující kroky:

1. Najděte a zastavte službu „1C:Enterprise Server Agent 8.3“ ve správci služeb (pro verzi 8.3).

2. Otevřete editor systémového registru. Můžete použít příkazový řádek nebo nabídku Start - Spustit... a příkaz regedit.

3. Najděte pobočku v registru:

  • Pro verzi 1C 8.1
  • Pro verzi 1C 8.2
  • Pro verzi 1C 8.3

4. Změňte vlastnost ImagePath, přidejte direktivu „-debug“ na konec řádku. Získáte následující řádek 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" -ladit

Poté lze kód serveru 1C bezpečně zkontrolovat pomocí ladicího programu a kdykoli je třeba nastavit body přerušení.

18.10.2016

Ladění na serveru 1C (8.2, 8.3...)

Pokud databáze 1C běží ve verzi klient-server, je režim ladění kódu na straně serveru deaktivován. Proto nebude možné vidět krok za krokem, co se děje při provádění funkce nebo procedury. Chcete-li povolit ladění na straně serveru, musíte provést několik jednoduchých kroků.

Povolit ladění na serveru 1C:Enterprise 8.2, 8.3

První věc, kterou musíte udělat, je zastavit službu serveru 1C:Enterprise. Přejděte na "Start - Spustit" (nebo klávesovou zkratku "Windows + R"), napište "services.msc" (samozřejmě musíte otevřít správu služeb Windows od Správce)

Po zastavení otevřete editor registru Windows ("Start - Spustit" (nebo klávesovou zkratku "Windows + R") a napište "regedit") a najděte větev s názvem "" nebo "" v závislosti na verzi platformy


Zajímá nás klíč registru s názvem „ImagePath“. Na konec hodnoty klíče přidejte "-debug". To znamená, že je aktivován režim ladění na straně serveru 1C.
bylo: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -rozsah 1560:1591 -d "C:\Program Files\1cv8\srvinfo"
Stal se: "C:\Program Files\1cv8\8.3.6.2530\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -rozsah 1560:1591 -d "C:\Program Files\1cv8\srvinfo" -debug


Uložte a spusťte službu 1C. Vše je připraveno! Hodně štěstí při ladění!