Úlohou vývojára 1C nie je len písať kód, ale aj sledovať a opravovať chyby, zostavovať optimálny algoritmus vykonávania príkazov a optimalizovať rýchlosť práce, teda ladenie. Je ťažké to urobiť bez použitia funkcií vstavaného debuggera serverových procedúr.
Spočiatku je režim ladenia na serveroch 1C zakázaný, takže vývojár bude musieť vykonať jednoduché manipulácie s nastaveniami, aby mohol dôkladne skontrolovať kód.
Algoritmus na povolenie ladenia je pomerne jednoduchý. Nepredpokladá hĺbkovú znalosť architektúry operačného systému a administrácie 1C. Stále by ste však mali byť veľmi opatrní, pretože ladenie sa vykonáva priamo na serveri a s právami správcu. Preto, ak nemáte dôkladné znalosti, prísne dodržiavajte algoritmus akcií bez improvizácie:
Ak potrebujete povoliť režim ladenia na platforme 8.1, algoritmus akcií zostane prakticky nezmenený. Jedinou zmenou je umiestnenie parametra cesty „ImagePath“. Vo verzii 8.1 sa nachádza v sekcii.
Vývojári 1C odporúčajú povoliť režim ladenia výlučne pre testovacie servery, kde by sa mal ladiť kód. Dôvodom tohto odporúčania je vplyv na výkon, ku ktorému dochádza, keď je na serveri povolené ladenie. Ak máte veľa používateľov alebo výkon servera zanecháva veľa požiadaviek, berte túto radu opatrne, aby ladenie nemalo negatívne dôsledky.
Aby ste mohli ladiť procedúry servera, musíte nastaviť príznaky vo formulári „Služba->Parametre“ konfigurátora:
Toto je popísané v dokumentácii:
Kniha „1C:Podnikanie 8.1. Konfigurácia a správa"
Kapitola 18. Konfiguračné nástroje
Debugger a meranie výkonu
"Ladiaci kód na serveri."
Ak chcete nainštalovať režim ladenia, mali by ste spustiť server 1C:Enterprise s prepínačom príkazového riadka /Debug (ragent.exe /debug)."
Spúšťacie kľúče agenta servera sú popísané v knihe:
"1C: Podnik 8.1. Klientsky server. Vlastnosti inštalácie a použitia"
"Spustenie serverového agenta ako služby."
Ak ste pri inštalácii serverového klastra zvolili možnosť spustenia centrálneho serverového agenta ako služby, potom sa táto služba spustí automaticky počas procesu inštalácie a spustí sa aj pri štarte operačného systému.
Ak bol centrálny serverový agent nainštalovaný ako aplikácia, je možné službu zaregistrovať manuálne a následne ju spustiť.
Registrácia služby sa vykonáva pomocou nasledujúceho príkazu:
Ragent.exe -instsrvc -usr<пользователь>-pwd<пароль>- prístav<порт>-rozsah<диапазоны>-seklev<уровень>-ladenie | -rmsrvc | -štart | -zastaviť
Instsrvc – registrácia klastrového agenta ako služby Windows. Ak sa ragent.exe spustí pomocou tohto kľúča, zaregistruje sa do zoznamu služieb systému Windows a ukončí sa. Nie je kompatibilné s prepínačmi -srvc, -rmsrvc;
Usr<имя пользователя>
Pwd<пароль пользователя>– meno a heslo používateľa systému Windows, pod menom ktorého sa má spustiť ragent.exe ako služba systému Windows. Dá sa použiť len v spojení s prepínačom -instsrvc pri registrácii ragent.exe ako služby Windows;
Port<порт>– číslo hlavného portu klastrového agenta. Tento port používa klastrová konzola na prístup k centrálnemu serveru. Port klastrového agenta je tiež špecifikovaný ako port IP pracovného servera;
Rozsah<диапазоны>– Rozsahy IP portov pre dynamický výber. Z nich sa vyberú servisné porty klastrových procesov, ak ich nie je možné vybrať z nastavení príslušného pracovného servera. Predvolená hodnota: 1560-1591. Príklady hodnôt<диапазоны>: "45:49", "45:67,70:72,77:90";
Seclev<уровень>– úroveň bezpečnosti procesu klastrového agenta. Určuje úroveň zabezpečenia pripojení vytvorených pomocou procesu ragent.exe.<уровень>môže nadobudnúť nasledovné hodnoty: 0 (predvolené) spojenia nie sú zabezpečené, 1 – zabezpečené spojenia len počas overovania užívateľa, 2 – trvalo zabezpečené spojenia.;
Rmsrvc – zruší registráciu agenta klastra ako službu Windows. Ak sa ragent.exe spustí s týmto kľúčom, zruší svoju registráciu v zozname služieb Windows a ukončí sa. Nie je kompatibilné s prepínačmi -srvc, -daemon, -instsrvc.
Štart - spustí ragent.exe, registrovaný ako služba Windows. Spustí ragent.exe, predtým zaregistrovaný ako služba Windows, a potom sa ukončí;
Stop - stop ragent.exe zaregistrovaný a spustený ako služba Windows. Zastaví ragent.exe, ktorý bol predtým zaregistrovaný a spustený ako služba Windows, a potom sa ukončí;
Debug – spustenie serverového klastra v režime ladenia konfigurácie. "
Ak bol teda server 1C:Enterprise spustený ako služba a z nejakého dôvodu by sa mal spustiť aj ako služba v režime ladenia, musíte najprv zrušiť registráciu služby (kľúč -rmsrvc) a potom službu znova zaregistrovať pomocou kľúč -debug.
Je zrejmé, že podobný efekt možno dosiahnuť aj inými spôsobmi, napríklad priamou úpravou registra Windows. Ak to chcete urobiť, pravdepodobne by ste si mali pozrieť dokumentáciu systému Windows.
Funguje iba vtedy, keď je v registri nastavený kľúč „-debug“. Vo všetkých ostatných prípadoch to z nejakého dôvodu nefunguje.
"ImagePath"=
bol "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -rozsah 1560:1591 -d "F:\Program Files\1cv81\server"
nastaviť "F:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -rozsah 1560:1591 -debug -d "F:\Program Files\1cv81\server"
18.10.2016
Ak je databáza 1C spustená vo verzii klient-server, režim ladenia kódu na strane servera je zakázaný. Preto nebude možné vidieť krok za krokom, čo sa stane pri vykonávaní funkcie alebo procedúry. Ak chcete povoliť ladenie na strane servera, musíte vykonať niekoľko jednoduchých krokov.
Po zastavení otvorte editor registra Windows ("Štart - Spustiť" (alebo klávesovú skratku "Windows + R") a napíšte "regedit") a nájdite vetvu s názvom "" alebo "" v závislosti od verzie platformy
Zaujíma nás kľúč databázy Registry s názvom "ImagePath". Pridajte „-debug“ na koniec hodnoty kľúča. To znamená, že je aktivovaný režim ladenia na strane servera 1C.
bol: "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"
Sa stal: "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 spustite službu 1C. Všetko je pripravené! Šťastné 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ôžete použiť príkazový riadok alebo ponuku Štart - Spustiť... a príkaz regedit.
3. Nájdite pobočku v registri:
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.
Tento článok hovorí o tom, ako povoliť ladenie na serveri 1C 8.1, 8.2 a 8.3 v operačných systémoch Windows a Ubuntu.
Okrem toho poznamenávam, že tento článok je súčasťou malej série článkov o ladení v 1C:
Spustite editor databázy Registry spustením príkazu regedit (pomocou Win+R alebo Štart->Spustiť).
Viac o ladení HTTP a ladiacom serveri si môžete prečítať v ďalšom článku série.
Najprv nainštalujeme server:
sudo služba srv1cv83 stop
Potom otvorte súbor /etc/init.d/srv1cv83 ako superuser a nájdite v ňom riadok:
A prinášame to do tejto podoby:
Potom znova spustíme server:
spustenie služby sudo srv1cv83
V konfigurátore na klientskom počítači prejdite na „Nastavenia“ -> „Spustiť 1C:Enterprise“ -> „Rozšírené“ a povoľte dve položky:
Môžete si prečítať o tom, ako nainštalovať server 1C na Ubuntu 16.04/18.04.
To je všetko, dúfam, že tento článok bol pre vás užitočný. Dovoľte mi pripomenúť aj ďalšie články zo série o ladení v 1C, odkazy na ne nájdete na začiatku tohto článku.