Háttérfeladat hibakeresése 1s 8.3. Háttérben végzett munkák hibakeresése. Érték megjelenítése az egérrel

Valószínűleg az 1C 8.3 vagy 8.2 egyetlen komoly konfigurációja sem nélkülözheti a rutin- és háttérfeladatokat. Nagyon kényelmesek, mivel egyértelműen meghatározott ütemterv szerint kerülnek végrehajtásra, felhasználó vagy programozó beavatkozása nélkül.

Például naponta egyszer kell adatot cserélnie egy másik programmal. A rutin és a háttérfeladatok segítségével az 1C képes lesz önállóan végrehajtani ezeket a műveleteket, például munkaidőn kívül. Ez a módszer semmilyen módon nem befolyásolja a felhasználói élményt, és időt takarít meg.

Először is nézzük meg, mit jelentenek, és mi a különbségük:

  • Ütemezett feladat lehetővé teszi bármely konkrét művelet elindítását egy előre konfigurált ütemezés szerint.
  • Háttér munka egy objektum, amely tartalmazza a végrehajtandó műveleteket.

Tegyük fel, hogy cégünk árul valamit, és van saját weboldala, ahol az árak találhatók. A relevanciájuk megőrzése érdekében naponta egyszer szeretnénk feltölteni őket.

Nyissa meg a konfigurációt, és adjon hozzá egy ütemezett feladatot.

Tulajdonságok beállítása

Nézzük meg a legfontosabb paramétereket, amelyeket ki kell tölteni a tulajdonságaiban.

  • mezőben " A módszer neve» egy adott általános modul eljárását választja ki, amely közvetlenül végrehajtásra kerül. Jelzi az árak weboldalunkra történő feltöltésének minden lépését. Felhívjuk figyelmét, hogy a végrehajtás a szerveren történik. Ez logikus, mert a rutinműveleteket a felhasználó részvétele nélkül hajtják végre.
  • Az ütemezett feladat szükség szerint letiltható vagy engedélyezhető. Nem kell minden alkalommal módosítani az ütemtervét. Ehhez a tulajdonságok palettán állítsa be vagy törölje a jelzőt " Használat».
  • Egy másik fontos dolog annak beállítása, hogy ez a rutinfeladat lesz-e előre meghatározott, vagy nem. Az előre meghatározott ütemezett feladatok automatikusan elindulnak. Ha ez a funkció nincs telepítve, akkor programozottan kell elindítania őket, vagy használnia kell a „Task Console” feldolgozást az ITS-sel.
  • Meg is határozhatja az ismétlések száma és a köztük lévő intervallum rendellenes felmondás esetén. A rendellenes leállás azokra a helyzetekre vonatkozik, amikor a feladatokat hiba miatt nem fejezték be.

Ütemezés felállítása

Az utolsó lépés a webhelyre való feltöltés ütemezése a tulajdonságok palettán található megfelelő hiperhivatkozás segítségével.

Egy tipikus ütemezési beállítást láthat az 1C 8.3-ban. Nincs itt semmi bonyolult. Ebben a példában minden nap reggel öttől hétig beállítjuk az árak webhelyre történő feltöltését. Abban az esetben, ha az ütemezett feladatot 7:00 előtt nincs ideje elvégezni, az már másnap elkészül.

Ütemezett feladatok blokkolása

Futtassa az „Administering 1C Enterprise Servers” szabványos segédprogramot, és nyissa meg annak az információs bázisnak a tulajdonságait, ahol a rutinfeladatot létrehozta (az 1C kliens-szerver verzióihoz).

A megnyíló ablakban (miután megadta bejelentkezési nevét és jelszavát az információbiztonság eléréséhez), ellenőrizze, hogy a „Rutinfeladatok blokkolása engedélyezve van” jelölőnégyzet nincs-e bejelölve. Ha olyan helyzetbe ütközik, amikor a feladat nem működik, először ellenőrizze ezt a beállítást.

Ugyanígy teljesen letilthatja a rutinfeladatokat az 1C 8.3-ban. Bizonyos háttérfeladatok letiltásához használhatja a „Background Job Console” feldolgozást, amely a legújabb kiadásokban található.

Háttér és ütemezett feladatok fájl módban

Ebben a módban ezeknek a feladatoknak a beállítása és elindítása sokkal nehezebben szervezhető. Leggyakrabban kiegészítő fiók, amelynek munkamenete mindig nyitva lesz.

Ebben az esetben a rutinfeladatok a „RunTaskProcessing()” metódussal aktiválódnak.

Használhatja a következő konstrukciót is:

Az eljárás neveként meg kell adnia a végrehajtandó kliens eljárás nevét. Az intervallum azt mutatja, hogy hány másodperccel később kerül sor a végrehajtásra. Az „Egyszer” paraméter nem szükséges. Ez tükrözi, hogy teljesül-e ezt az eljárást egyszer vagy többször.

Követési hibák a háttérmunkákban

Tekintse meg a háttérfeladatok előrehaladását, valamint az elérhetőséget lehetséges hibákat megtalálható a naplóban. A szűrőben válassza ki a „Háttérmunka” alkalmazást, és ha szükséges, válassza ki az érdeklődés fontosságát, például csak a „Hibák”.

A napló megjeleníti az összes olyan bejegyzést, amely megfelel a választásának, egy megjegyzéssel együtt, amely segít megérteni a hiba okát.

Néha szükség van egy háttér (rutin) feladat hibakeresésére. Pontosan itt merül fel gyakran a probléma.

Néha szükség van egy háttér (rutin) feladat hibakeresésére. Pontosan itt merül fel gyakran a probléma. És ez a probléma az, hogy a hibakereső nem tud csatlakozni a szerver oldalon futó folyamathoz.

A probléma megoldásához két problémát kell megoldanunk:

1. Engedélyezze a hibakeresést az 1C szerveren. Alapértelmezés szerint a hibakeresés a kiszolgálón le van tiltva, és engedélyezéséhez a következőket kell tennie: Futtatás Windows rendszerleíró adatbázis, írás: " Végrehajtás"parancs REGEDIT. Vonal keresése

"C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent

(az 1C:Enterprise 8.1 Server Agent szolgáltatás indítási paramétereiből származik). (ez a 8.1-es platformverzióra vonatkozik)

Adja hozzá a kulcsot a végéhez -debug (Ne felejtsen el szóközt tenni a -debug kulcs elé)

Példa
. "ImagePath"= volt "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -range 1560:1591 -d "C:\Program Files\1cv81\server" fel "C:\Program Files\1cv81\bin\ragent.exe" -srvc -agent -regport 1541 -port 1540 -tartomány 1560:1591 -debug-d "C:\Program Files\1cv81\szerver"

Indítsa újra a kiszolgáló ügynököt. Kész. Most már elvégezhetjük a szerver végrehajtási szálak hibakeresését.

2. A kiszolgálónév és az adatbázisnév betűinek kis- és nagybetűinek pontosan meg kell egyeznie az 1C szerverrel való ügyfélkapcsolatban.

Helyes csatlakozás:
Háttér munka Ügyfél - Srvr="SZERVERNÉV";Ref="Alapnév";
Helytelen csatlakozás:
Háttér munka - Srvr="SZERVERNÉV";Ref="Alapnév"; Ügyfél - Srvr="Szerver-név";Ref="Alap_név";

Hogyan lehet megtudni, hogy a háttér job milyen paraméterekkel csatlakozik az adatbázishoz? Különféle módokon gondolkodhat, amelyek közül az egyik a paraméterek naplózása egy háttérfeladat futása közben.

A kód a következő:

Eljárás WriteConnectionWithBase() Export
Naplóbejegyzés Regisztráció(,InformationBaseConnectionString());
Vége eljárás

Miközben egy háttérfeladat fut, a háttérfeladat által használt adatbázis-kapcsolati paramétereket tartalmazó sor kerül a naplóba.


Most megadjuk az automatikus csatlakozást a háttérmunkákhoz.

Az ilyen manipulációk elvégzése után hibakeresheti a háttérfeladatokat.


Nem olvastad még? Lehet, hogy érdekel...

Hibakeresés 1C- az 1C 8.3 platform nagyon erős és funkcionális mechanizmusa, amely lehetővé teszi a programkód hibáinak gyors megtalálását (más programozási nyelveken ezt „debugnak” hívják, az angol „debug” szóból).

Az alábbiakban megvizsgáljuk a hibakeresési mechanizmus használatának fő módszereit gyakorlati utasítások formájában, egy konkrét példa segítségével.

Figyelem! Ha kliens-szerver módot használ (a kiszolgálón), akkor szüksége van.

A hibakeresés elindításának legegyszerűbb módja 1C-ben, ha megnyitja az 1C-t módban, és onnan indítja el a hibakeresési módot a kívánt üzemmódban (vékony/vastag, menedzselt/normál):

Háttérfeladatok hibakeresése 1C

A háttérfeladatok hibakereséséhez lépjen a „Hibakeresés – Kapcsolat” menübe. A megnyíló ablakban kattintson az „Automatikus csatlakozás” gombra:

Ebben az ablakban állíthatja be a megfelelő zászlót.

A háttérmunkákon kívül ebben az ablakban engedélyezheti a külső kapcsolatok hibakeresését, http és .

Töréspont beállítása

A hibakeresés második lépése egy töréspont beállítása (más programozási nyelvekben - töréspont).

Például a hibakereséshez a „Módosításkor” kezelőt választottam a dokumentuműrlapon:

A töréspont beállításához meg kell találnia a kívánt programkódot, és kattintson duplán a kódbeviteli mezőtől balra lévő mezőre (vagy nyomja meg az F9 gombot):

Az összes telepített listájának megtekintéséhez lépjen a Hibakeresés menübe - Töréspontok listája (alt + F9):

Szerezzen 267 videóleckét 1C-n ingyen:

1C töréspont állapottal (kék)

Az 1C-ben szokásos törésponton kívül van egy másik típusú töréspont is - feltétellel. Grafikusan egy ilyen pont kék színnel jelenik meg. Ez a töréspont nagyon hasznos, ha egy adott iterációt kell elkapnia egy ciklus bejárása közben. A hibakeresés egy bizonyos feltétel teljesülésekor bekapcsol.

Például állítsuk meg a hurkot a 25-ös sornál:

Inaktív töréspont (szürke)

A szürke töréspont azt jelenti, hogy nem aktív, és a rendszer nem áll meg ezen a törésponton. Inaktívvá teheti a „Szakadáspont letiltása” panel speciális gombjára kattintva (shift+ctrl+F9):

Hiba töréspont

A rendszer leállhat egy hiba miatt, ehhez be kell állítani a megfelelő jelzőt a Debug - Stop by error menüben:

Ezenkívül a hibaleállítás a feltételes törésponthoz hasonló funkcióval rendelkezik – lehetővé teszi a kivételek szűrését egy adott hibaszöveg alapján.

Lépésről lépésre az 1C programkódon keresztül

A töréspont beállítása után meg kell indítani a kívánt programkód végrehajtását, hogy a rendszer lépésről lépésre léphessen be a kódvégrehajtásba. A nyíl jelzi a lépésről lépésre történő kódvégrehajtási mód kezdetét:

A következő sorra lépéshez meg kell nyomnia az „F11” (Step into) gombot.

Ha a programkód sorain lépked, és egy eljárás vagy függvény van a sorban, akkor ebbe az eljárásba (vagy függvénybe) „esik”.

A „kudarc” elkerülése érdekében elég, ha az F11 (Step into) helyett az F10 (Step through) gombbal ugrál át a sorok között, ezzel a gombbal lépkedhet végig a programkódban.

A kurzor aktuális pozíciójából a kívánt pozícióba való átlépéshez, a közbenső kódsorok megkerülésével, a kurzort a kívánt sorra kell helyezni, és meg kell nyomnia a Shift + F10 (Go to cursor) billentyűket.

Értékek elemzése 1C hibakeresési módban

Megtekintheti bizonyos értékek jelentését különböző utak:

Érték megjelenítése az egérrel

Amikor az egérmutatót egy változó fölé viszi, a rendszer „kiemeli” a változó értékeit:

Az Evaluate Expression vagy a Tableau használata

  • Forma Kifejezés értékelése használatával nevezhető helyi menü vagy nyomja meg a gyorsbillentyűket - (Shift + F9), vagy a menüt (Hibakeresés - Kifejezés kiértékelése).
  • Eredménytábla a Ctrl + Alt + W gyorsbillentyűkkel vagy a menüből (Hibakeresés - Tableau) hívható meg.

Ez a két elemzési módszer nagyon hasonló, a fő különbségek a felületben vannak. Kényelmesebb eredménytáblát használni a mutatók egy csoportjához, és kifejezéseket az egyes mutatókhoz.

Ezek a módszerek nagyon könnyen használhatók. Elég beírni a táblázatba a kívánt változó nevét. Az önkényes számítások nagy előnye, hogy saját adatait is hozzáadhatja a kifejezéshez.

Például:

Nagyon hasznos a kifejezéskiértékelés használata és egy lekérdezés futtatása, feltöltése egy értéktáblázatba, és megnézheti.

Hogyan lehet megtudni, honnan hívják az eljárást a hibakeresés során - Verem hívása

Nagyon gyakran meg kell értenie, hogy egy adott eljárást vagy függvényt honnan és milyen paraméterekkel hívtak meg. Erre a célra az 1C rendelkezik speciális funkció- "Hívási lista". A Call Stack elindításához nyomja meg a gyorsbillentyűket - Ctrl + Alt + C vagy a menüben (Hibakeresés - Call Stack).

Használatával részletesen megtudhatja, honnan és milyen paraméterekkel hívták az eljárást:

Ha érdekli a teljesítmény értékelése a hibakeresés során - .

Lásd még egy áttekintő videót a hibakeresésről 1C-ben:

A modern 1C:Enterprise konfigurációkban a háttérfeladatokat széles körben használják.

Különösen minden szabványos konfigurációban sok jelentés készül háttér, amely lehetővé teszi, hogy a jelentéskészítés során ugyanabban az 1C munkamenetben folytassa a munkát anélkül, hogy meg kellene várnia a jelentés végrehajtásának befejezését. És persze van rá igény hibakereső kódot, miközben a háttérben futó feladatok futnak. A háttérfeladatok hibakeresésének sikeres elindításához több feltételnek is teljesülnie kell.

Engedélyezze a hibakeresési módot az 1C:Enterprise szerveren.

Az első dolog, amit meg kell tennie, hogy megbizonyosodjon arról, hogy az 1C:Enterprise szerver hibakeresési módban fut. Ha a hibakeresés nincs engedélyezve a szerveren, le kell állítani a szolgáltatást ragensés futtassa újra a paraméterrel /debug

Állítsa be a háttérfeladatok automatikus csatlakoztatását a konfigurátorban

Mivel a háttérfeladatnak nincs kliensrésze, a konfigurátor automatikus csatlakozást konfigurál a háttérfeladatokhoz. Ehhez válassza ki a kívánt elemet a menüben Debug -> Connection

A megnyíló párbeszédpanelen kattintson a gombra Automatikus csatlakozásés a következő ablakban jelölje be a négyzetet Háttérmunkák

Helyesen adja meg a kapcsolati karakterláncot az 1C adatbázishoz

Elméletileg a fent felsorolt ​​két pontnak elegendőnek kell lennie a töréspontok aktiválásához, amikor egy háttérfeladat fut. De a gyakorlatban sokan szembesülnek azzal a ténnyel, hogy nem jön létre automatikus csatlakozás a háttérmunkákhoz. Ez az információs bázishoz való kapcsolódási karakterlánchoz kapcsolódik.

A lényeg az, hogy a konfigurátor elindításához szükséges kapcsolódási karakterláncnak pontosan meg kell egyeznie a háttérfeladat kapcsolati karakterláncával. Ezenkívül az egyezésnek karakterenként kell történnie. Még a betűk esetét is figyelembe veszik. Végül is, amikor egy alapot adunk a listához információs bázisok több különböző módon is regisztrálhatunk egy szerverfürtöt ugyanahhoz az adatbázishoz: IP-cím használatával, a szerver nevével, port megadásával vagy anélkül. És ezek a különböző kapcsolódási karakterláncok egyformán jól működhetnek. De a háttérmunkák hibakeresése során problémák merülhetnek fel. Így például szembesültem azzal a ténnyel, hogy az adatbázisok listájában volt egy kapcsolati karakterlánc a portot használva.

Srvr="Szerver1C:1541";Ref="Teszt";

És valamiért a háttérfeladat a port megadása nélkül indult el

Srvr="Szerver1C";Ref="Teszt";

Ezért az adatbázisok listájában ennek megfelelően kellett módosítanom a kapcsolódási karakterláncot.
De itt azonnal felvetődik egy kérdés. Hogyan tudhatom meg egy háttérfeladat kapcsolati karakterláncát? Ez az, ahol . Végtére is, miközben egy háttérfeladat fut, programozottan tehetünk bejegyzéseket a naplóba. És az eljárás használatával InformationBaseConnectionString() megkaphatjuk a kapcsolati karakterláncot.

Így egy megfelelő általános modulban csináljuk (nekem ez lesz BackgroundTasksServer) itt az eljárás

Eljárás LogConnectionString() ExportConnectionString = InformationBaseConnectionString() ; LogRegistration(ConnectionString) ; Vége eljárás

Most hajtsuk végre ezt az eljárást a következő futtatással:

&OnServer eljárás WriteConnectionStringOnServer() BackgroundTasks. Fuss ( "BackgroundTasksServer.WriteConnectionStringToLog") ; Vége eljárás

Megnyitjuk a regisztrációs naplót, megnézzük a bejegyzést a kapcsolódási karakterlánccal, és a háttérfeladat analógiájával regisztráljuk az adatbázishoz való csatlakozás beállításait.




Top