Povolení režimu ladění na serveru 1c. Ladění procedur serveru (1Cv82)

8, je zde potřeba (jak je diskutováno níže) podstatného přepracování ladicí procedury. To se projevilo ve verzi 8.3.7.1759. Za prvé bylo pro tento postup vytvořeno univerzální rozhraní a za druhé tato změna zajišťuje další vývoj samotného programu. Ostatně nyní můžete pracovat s laděním nejen prostřednictvím Konfigurátoru, ale také pomocí Vývojových nástrojů. Podívejme se, jak povolit ladění na serveru 1C počínaje novou verzí.

Pomocí nového protokolu

Předchozí debugger, který byl implementován v předchozích verzích, spravoval klientské a serverové aplikace pomocí protokolu TCP/IP.

V současné době používání takového protokolu začalo omezovat přístup programu 1C:Enterprise k internetu a způsobilo nepříjemnosti pro provoz mobilních aplikací.

Pro volný přístup k informačním bázím, které mohou být umístěny mimo lokální síť, byl proto nyní přijat flexibilní protokol HTTP.

Nová architektura

Dříve se při provádění ladění konfigurace musel zaměstnanec připojit k informační základně. K tomu mu bylo nutné udělit administrátorská práva.

V nové verzi není potřeba se přímo připojovat k databázím – stačí mít jednoduše stejnou databázi jako klient. A můžete jej načíst ze souboru.

Mobilní aplikace

Pomocí protokolu HTTP je nyní možné ladit data serveru, klientská data a aplikace.

Jiné změny

S novou verzí je možné v proceduře ladění měnit hodnoty pro lokální proměnné, pro tento účel bylo implementováno nové okno rychlého náhledu.

Režim výpočtu byl změněn na asynchronní, což vám umožňuje pokračovat v práci bez čekání na výsledky.

Debugger ve vývojových nástrojích

Interakce s novým postupem probíhá ve speciálně vyvinutém univerzálním softwarovém rozhraní. Na jedné straně toto rozhraní využívá Konfigurátor. Na druhou stranu je implementován v novém prostředí 1C:Enterprise Development Tools.

Jak to teď vypadá

Po změně programu se postupuje podle následujícího scénáře:

Nyní to zahrnuje nejen debugger a položky, jak tomu bylo dříve. Nyní byl do řetězce zaveden další prvek - Server.

Nejen, že je přidán - slouží jako hlavní prvek výměny informací mezi debuggerem a objekty. A samotná výměna probíhá prostřednictvím zpráv seřazených ve frontě.

A protože tato výměna probíhá prostřednictvím protokolu HTTP, je nyní jedno, kde přesně se data mohou nacházet.

Volání na server jsou tvořena z ladicího programu a objektů ve formě dalších požadavků na připojení. Když se objeví, jsou jim zaslány příslušné odpovědi.

Povolit ladění v různých scénářích

Pro vývojáře aplikace nedošlo k žádným změnám. Podstatný rozdíl je v tom, že nový mechanismus musí být povolen. Koneckonců, je nyní ve výchozím nastavení zakázáno.

Podívejme se, co se stane, když se režim spustí, pokud zvolíme jeden ze dvou scénářů.

Souborový skript

Na začátku verze souboru musíte v nastavení konfigurace zadat použití nového mechanismu - „Ladění přes protokol HTTP“.

Poté konfigurátor automaticky navrhne použití místního serveru. Tato podmínka musí být akceptována a program restartován v režimu Konfigurátor.

Poté nově spuštěný konfigurátor během příští relace uloží novou metodu, kterou jsme zvolili. Ale pro stejnou informační základnu. Proto při přístupu k jiné infobázi je potřeba ji také povolit.

Aktivovaný mechanismus nyní automaticky spustí Debugger Server, což je speciální aplikace dbgs.exe. Projeví se v okně Správce úloh.

Hodnota parametru ownerPID bude odpovídat ID aplikace, která je s ním svázána.

Když spustíte relaci ladění prostřednictvím konfigurátoru, připojení k serveru proběhne automaticky. A v něm se projeví spojené předměty.

Pokud byl program 1C aktivován bez nového mechanismu, budete muset ladění na serveru 1C povolit ručně. Teprve nyní budete muset zadat adresu serveru:

Přejděte na Servis - Možnosti

Nachází se v nastavení položky:

Přejděte na Připojení - Nastavení

Při použití souborového skriptu s několika databázemi současně je třeba vzít v úvahu důležitou nuanci - každý z konfigurátorů (s povoleným mechanismem HTTP) odesílá svůj vlastní server:

Pokud je tedy otevřeno několik konfigurátorů, musíte pro připojení klienta zadat ten správný.

Scénář klient-server

Ladění na serveru 1C pomocí scénáře klient-server, jako v předchozím případě, začíná spuštěním režimu. To určuje použití nového mechanismu HTTP. To se provádí takto:

ragent.exe -debug -http

Když se spustí, automaticky se za ním spustí debugger.

Hodnota parametru ownerPID bude odpovídat identifikačnímu číslu správce clusteru 1C.

Program vygeneruje návrh na použití clusterového ladicího serveru nyní (a ne lokálního jako v předchozím scénáři). Souhlasíme a restartujeme to.

V budoucnu bude vše probíhat jako souborový skript. Pouze při spuštění konfigurátoru databáze serveru se již nespustí server místního ladicího programu.

Doufáme, že vám naše publikace pomohla zjistit problém, jak povolit ladění na serveru 1C.

Ú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.

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. Nebude tedy možné krok za krokem vidět, 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í!

Abyste mohli ladit procedury serveru, musíte nastavit příznaky ve formuláři „Služba->Parametry“ konfigurátoru:

Ladění na aplikačním serveru

Toto je popsáno v dokumentaci:

Kniha „1C:Enterprise 8.1. Konfigurace a administrace"

Kapitola 18. Konfigurační nástroje

Debugger a měření výkonu

"Ladění kódu na serveru."

Chcete-li nainstalovat režim ladění, měli byste spustit server 1C:Enterprise pomocí přepínače příkazového řádku /Debug (ragent.exe /debug)."

Spouštěcí klíče agenta serveru jsou popsány v knize:

"1C: Podnik 8.1. Klient-server. Vlastnosti instalace a použití"

"Spuštění serverového agenta jako služby."

Pokud jste při instalaci serverového clusteru zvolili možnost spuštění centrálního serverového agenta jako služby, bude tato služba spuštěna automaticky během procesu instalace a bude spuštěna také při startu operačního systému.

Pokud byl agent centrálního serveru nainstalován jako aplikace, je možné službu zaregistrovat ručně a poté ji spustit.

Registrace služby se provádí pomocí následujícího příkazu:

Ragent.exe -instsrvc -usr<пользователь>-pwd<пароль>-přístav<порт>-rozsah<диапазоны>-seklev<уровень>-ladit | -rmsrvc | - start | -stop

Instsrvc – registrace agenta clusteru jako služby Windows. Pokud je ragent.exe spuštěn s tímto klíčem, zaregistruje se do seznamu služeb Windows a ukončí se. Není kompatibilní s přepínači -srvc, -rmsrvc;

Usr<имя пользователя>

Pwd<пароль пользователя>– jméno a heslo uživatele Windows, pod jehož jménem má být ragent.exe spuštěn jako služba Windows. Lze použít pouze ve spojení s klíčem -instsrvc při registraci ragent.exe jako služby Windows;

Přístav<порт>– číslo hlavního portu klastrového agenta. Tento port používá konzola clusteru pro přístup k centrálnímu serveru. Port klastrového agenta je také určen jako port IP pracovního serveru;

Rozsah<диапазоны>– Rozsahy IP portů pro dynamický výběr. Z nich se vybírají servisní porty klastrových procesů, pokud je nelze vybrat z nastavení odpovídajícího pracovního serveru. Výchozí: 1560-1591. Příklad hodnot<диапазоны>: "45:49", "45:67,70:72,77:90";

Seclev<уровень>– úroveň zabezpečení procesu klastrového agenta. Určuje úroveň zabezpečení připojení navázaných procesem ragent.exe.<уровень>může nabývat následujících hodnot: 0 (výchozí) spojení nejsou zabezpečená, 1 – zabezpečená spojení pouze po dobu autentizace uživatele, 2 – trvale zabezpečená spojení.;

Rmsrvc – zruší registraci agenta clusteru jako službu Windows. Pokud je ragent.exe spuštěn s tímto klíčem, zruší svou registraci v seznamu služeb Windows a ukončí se. Není kompatibilní s přepínači -srvc, -daemon, -instsrvc.

Start - spustí ragent.exe, registrovaný jako služba Windows. Spustí ragent.exe, dříve registrovaný jako služba Windows, a poté se ukončí;

Stop - stop ragent.exe registrovaný a spuštěný jako služba Windows. Zastaví ragent.exe, dříve zaregistrovaný a spuštěný jako služba Windows, a poté se ukončí;

Ladění - spuštění serverového clusteru v režimu ladění konfigurace. "

Pokud byl tedy server 1C:Enterprise spuštěn jako služba a z nějakého důvodu by měl být spuštěn také jako služba v režimu ladění, musíte nejprve zrušit registraci služby (klíč -rmsrvc) a poté službu znovu zaregistrovat pomocí klíč -debug.

Je zřejmé, že podobného efektu lze dosáhnout i jinými způsoby, například přímou úpravou registru Windows. Chcete-li to provést, pravděpodobně byste se měli podívat do dokumentace systému Windows.

Funguje pouze v případě, že je v registru nastaven klíč "-debug". Ve všech ostatních případech to z nějakého důvodu nefunguje.

"ImagePath"=

bylo "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -rozsah 1560:1591 -d "F:\Program Files\1cv81\server"

nastavit "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -rozsah 1560:1591 -debug -d "F:\Program Files\1cv81\server"

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 „Hodnota“, 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.