A háttérfeladat-paraméterek száma nem egyezik. Rutin- és háttérfeladatok (1Cv8)

Lehetővé teszi, hogy a felhasználó által észrevétlenül, azaz a háttérben végezzünk bármilyen számítást a rendszerben. Ezenkívül ez a mechanizmus lehetővé teszi a számítási folyamat párhuzamosítását. Akár párhuzamosíthatjuk is a végrehajtandó eljárást. Ehhez a háttérmunkánknak még több háttérfeladatot kell futtatnia. Ebben az esetben a folyamatok párhuzamosak, és ha többprocesszoros, többmagos rendszerünk van, akkor az algoritmusunk hatékonyan fog működni. Több folyamat elindítása után elmondhatjuk a rendszernek, hogy meg kell várnia ezeknek a folyamatoknak a befejeződését, hogy az eredményt valamilyen módon kombinálja.

Például tipikus konfigurációkban, miközben a felhasználó dolgozik, különféle háttérszolgáltatási feladatok kerülnek végrehajtásra. Ezt olyan naplóbejegyzések igazolhatják, amelyek rögzítik az ilyen műveletek végrehajtásának tényét. Ráadásul ez semmilyen módon nem befolyásolja a felhasználó munkáját, egyszerűen nem veszi észre őket.

Ideális esetben egy háttérfeladatot kliens-szerver verzióban valósítanak meg, ebben az esetben a teljes terhelés a szerverhez kerül. Ami a fájlverziót illeti, lehetséges háttérmunka, de van néhány sajátossága.

Ezt fogja produkálni a rendszer, ha nem veszi figyelembe ezeket a funkciókat, és háttérfeladatot futtat az infobázis fájlverziójában.


Az 1C háttérfeladatnak vannak bizonyos korlátai. Mivel a szerver oldalon fut, nincs lehetőség interaktív munkavégzésre a felhasználóval. Például nem jeleníthet meg üzenetet vagy semmilyen információt. Mindezeket az adatokat az információs bázison belül kell tárolni, és valamilyen módon tovább kell dolgozni.
Ha felveszi a kapcsolatot a szintaktikai asszisztenssel, részletesebb információkat kaphat az 1C háttérmunkáiról. Itt meg kell jegyezni, hogy ez az objektum tisztán szoftver, és semmilyen módon nem kerül tárolásra az adatbázisban. Azaz létrehozzuk az osztály példányát, inicializáljuk a tulajdonságokat és elindítjuk végrehajtásra.

Milyen eszközeink vannak a háttérmunkák kezeléséhez? Ez a lehetőség egy metaadat objektum "Háttérfeladatkezelő". Ennek az objektumnak van egy metódusa "Fuss", ezzel a módszerrel elindul a háttérfeladat.

A következő paraméterekkel rendelkezik:
"Módszernév"- a végrehajtandó eljárás vagy függvény neve, és ennek a szerverkörnyezet egyik eljárásának vagy függvényének kell lennie;

"Lehetőségek"- paraméterek tömbje, melynek elemeinek számának meg kell egyeznie eljárásunk/függvényünk paraméterben megadott számával "Módszernév";

"Kulcs"- egy bizonyos egyediségi kulcs, amely egy sor, amelyen keresztül a rendszer megérti, hogy el kell-e indítani egy háttérfeladatot, vagy fut-e már ilyen feladat;

"Név"- itt megadhatja a módszerünk tetszőleges leírását.

A visszatérési érték egy objektum "Háttérfeladat", amely tartalmazza az aktuális metódus nevét, az aktuális kulcsot, és számos további tulajdonságot és metódust. Az egyik ilyen módszer a módszer "WaitComplete". Célja, hogy meg tudjuk mondani a rendszernek, hogy ne csináljon semmit, amíg a háttérfeladat be nem fejeződik.

Háttérfeladat 1C 8.2, 8.3 - Használati példa

Nézzünk egy példát az 1C háttérmunkákkal való munkavégzésre. Először is létrehozunk egy egyszerű algoritmust, amely rövid időre betölti az 1C rendszert oly módon, hogy jelenleg nem tudunk semmit tenni.

Ezért:

1. Hozzunk létre egy közös modult "Háttérfeladatkezelők", amely a szerver oldalon lesz lefordítva;


2. Leírjuk benne a kiviteli eljárást "ProduceBackgroundCalculation(Parameter)", amely egy karakterlánc típusú paramétert vesz fel;

Eljárás PerformBackgroundCalculation(Parameter) ExportStartTime = CurrentDate() ; Míg CurrentDate() - Kezdési idő< = 6 Цикл КонецЦикла ; КонецПроцедуры Процедура КнНажатие() ОбработчикиФоновыхЗаданий. ПроизветиФоновоеВычисление("Valamilyen paraméter") ; Az eljárás vége
Kész. Most, amikor elkezdi a feldolgozást és megnyom egy gombot, a rendszer néhány másodpercre lefagy, ezalatt semmit sem lehet tenni. Pontosan ezt kellett tennünk.

Most gondoskodunk arról, hogy ezek a számítások a háttérben történjenek, vagyis hogy az 1C 8.2, 8.3 háttérfeladat végrehajtásra kerüljön, de ne zavarjon bennünket.

Ezért:

1. A feldolgozás során a gombkattintás eseményébe írja be a következő kódot.

Eljárás KnPress() Paraméterek = Új tömb; Lehetőségek. Add( "Valamilyen paraméter") ; Háttérfeladat. Fuss ( "Háttérfeladatkezelők. Végezze el a háttérszámítást", Paraméterek, Új egyedi azonosító, "Teszt") ; Az eljárás vége

Itt első paraméterként a közös moduleljárás nevét adjuk át, másodikként pedig egy paramétertömböt. A harmadik paraméternek egy egyedi kulcsot kell átadni, a negyedik paraméternek pedig az eljárásunk leírását.

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 adhatja 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. Adott 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 egy további fiók jön létre, 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 ezt az eljárást egyszer vagy többször hajtják végre.

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

A naplóban megtekintheti a háttérben végzett feladatok előrehaladását, valamint a lehetséges hibák jelenlétét. 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.

Munka mechanizmus

A munkamotort úgy tervezték, hogy bármely alkalmazást vagy funkciót ütemezetten vagy aszinkron módon hajtson végre.

A feladatmechanizmus a következő problémákat oldja meg:

  • Képes szabályozási eljárások meghatározására a rendszer konfigurációs szakaszában;
  • Meghatározott tevékenységek ütemezés szerinti végrehajtása;
  • Adott eljárás vagy függvény hívása aszinkron módon, azaz. anélkül, hogy megvárná annak befejezését;
  • Egy adott feladat előrehaladásának nyomon követése és annak befejezettségi állapotának megállapítása (egy érték, amely jelzi, hogy sikeres volt-e vagy sem);
  • Az aktuális feladatok listájának beszerzése;
  • Képes megvárni egy vagy több feladat befejezését;
  • Jobkezelés (lemondási lehetőség, végrehajtás letiltása stb.).

A munkamechanizmus a következő összetevőkből áll:

  • Rutinfeladatok metaadatai;
  • Rendszeres feladatok;
  • Háttérmunkák;
  • Feladat ütemező.

A háttérfeladatokat úgy tervezték, hogy az alkalmazási feladatokat aszinkron módon hajtsák végre. A háttérfeladatok a beépített nyelv segítségével valósulnak meg.

Ütemezett feladatok – az alkalmazott feladatok ütemezett végrehajtására tervezték. A rutinfeladatokat az információs bázis tárolja, és a konfigurációban meghatározott metaadatok alapján hozzák létre. A szabályozási feladat metaadatai olyan információkat tartalmaznak, mint a név, a módszer, a felhasználás stb.

Egy rutinfeladatnak van egy ütemezése, amely meghatározza, hogy a rutinfeladathoz társított metódust mikor kell végrehajtani. Az ütemezés általában az információs bázisban van megadva, de megadható a konfigurációs szakaszban is (például előre meghatározott rutinfeladatokhoz).

A feladatütemező a rutinfeladatok végrehajtásának ütemezésére szolgál. Az ütemező minden ütemezett feladatnál rendszeresen ellenőrzi, hogy az aktuális dátum és idő egyezik-e az ütemezett job ütemezésével. Ha egyezik, az ütemező hozzárendeli a feladatot a végrehajtáshoz. Ehhez az ütemezett feladathoz az ütemező létrehoz egy háttérfeladatot, amely elvégzi a tényleges feldolgozást.

Háttérmunkák

A háttérfeladatok kényelmesen használhatók összetett számítások elvégzésére, ha a számítás eredményének megszerzése hosszú időt vehet igénybe. A munkamotor rendelkezik eszközökkel az ilyen számítások aszinkron végrehajtására.

A háttérfeladathoz társított metódus a háttérfeladat futásakor hívódik meg. A háttérfeladat módszer lehet egy nem globális közös modul bármely olyan eljárása vagy funkciója, amely meghívható a kiszolgálón. A háttérfeladat paraméterei tetszőleges értékek lehetnek, amelyek átadhatók a szervernek. A háttérfeladat paramétereinek pontosan meg kell egyeznie az általa meghívott eljárás vagy függvény paramétereivel. Ha a háttérfeladat metódusa egy függvény, akkor a visszatérési értékét a rendszer figyelmen kívül hagyja.

Egy háttérfeladatnak lehet kulcsa – bármilyen alkalmazásérték. A kulcs korlátozza a háttérfeladatok indítását - időegységenként csak egy háttérfeladat hajtható végre egy adott kulcsértékkel és egy adott háttérfeladat metódusnévvel (a metódus neve a modul nevéből és az eljárás nevéből áll vagy funkció). A kulcs lehetővé teszi az azonos metódusokkal rendelkező háttérjobok csoportosítását egy adott alkalmazásjellemző szerint, így egy csoporton belül legfeljebb egy háttérjob kerül végrehajtásra.

A háttérfeladatok létrehozása és kezelése programozottan történik bármilyen kapcsolatról. Bármely felhasználó létrehozhat háttérfeladatot. Sőt, annak a felhasználónak a nevében hajtják végre, aki létrehozta. A feladatok fogadása, valamint a befejezésük várása bármely kapcsolatról engedélyezett egy rendszergazdai jogosultsággal rendelkező felhasználóhoz, vagy ahhoz a felhasználóhoz, aki ezeket a háttérfeladatokat létrehozta.

A háttérfeladat tisztán munkamenet-objektum, és nem tartozik egyetlen felhasználói munkamenethez sem. Minden egyes feladathoz létrejön egy speciális rendszermunka, amely a hívást kezdeményező felhasználó nevében fut. A háttérmunkáknak nincs állandó állapota.

Egy háttérmunka más háttérmunkákat is létrehozhat. A kliens-szerver verzióban ez lehetővé teszi a komplex számítások párhuzamosítását a fürt dolgozói folyamatok között, ami jelentősen felgyorsíthatja a számítási folyamat egészét. A párhuzamosítás úgy valósul meg, hogy több gyermek háttérmunkát generál, és megvárja, amíg mindegyik befejeződik a fő háttérfeladatban.

A sikeresen vagy sikertelenül befejezett háttérfeladatokat a rendszer 24 óráig tárolja, majd törli. Ha a befejezett háttérfeladatok száma meghaladja az 1000-et, a legrégebbi háttérfeladatok is törlődnek.

Ütemezett feladatok

Az ütemezett feladatok akkor használatosak, ha bizonyos időszakos vagy egyszeri műveleteket ütemezetten kell végrehajtani.

Az ütemezett feladatok az információs bázisban tárolódnak, és a konfigurációban meghatározott rutinfeladat metaadatai alapján jönnek létre. A metaadatok egy rutinfeladat olyan paramétereit adják meg, mint: hívott metódus, név, kulcs, felhasználási lehetőség, előre meghatározás jele stb. A rutinfeladat létrehozásakor még megadható az ütemezés (metaadatokban megadható), értékek ​a metódus paraméterei közül annak a felhasználónak a neve, akinek a nevében rutinfeladatokat végez stb.

Az ütemezett feladatok létrehozása és kezelése programozottan történik bármely kapcsolatról, és csak rendszergazdai jogokkal rendelkező felhasználók számára engedélyezett.

Jegyzet. A fájlverzióban végzett munka során lehetőség van rutinfeladatok létrehozására és szerkesztésére a feladatütemező elindítása nélkül.

A rutinfeladathoz társított metódus a rutinfeladat végrehajtásakor hívódik meg. A rutinfeladat metódusa lehet egy nem globális közös modul tetszőleges eljárása vagy funkciója, amely meghívható a kiszolgálón. Egy rutinfeladat paraméterei tetszőleges értékek lehetnek, amelyek továbbítása engedélyezett a szervernek. Egy rutinfeladat paramétereinek pontosan meg kell egyeznie az általa meghívott eljárás vagy függvény paramétereivel. Ha a rutinfeladat metódusa egy függvény, akkor a visszatérési értékét a rendszer figyelmen kívül hagyja.

Egy rutinfeladatnak lehet kulcsa – bármilyen alkalmazásérték. A kulcs korlátozást vezet be az ütemezett feladatok elindítására, mert időegységenként ugyanazon metaadat objektumhoz tartozó rutinfeladatok közül csak egy adott kulcsértékkel rendelkező rutinfeladat hajtható végre. A kulcs lehetővé teszi az azonos metaadat-objektumhoz társított rutinfeladatok csoportosítását egy adott alkalmazásjellemző szerint, így egy csoporton belül nem hajthat végre egynél több rutinfeladatot.

A konfigurálás során előre meghatározott rutinfeladatokat határozhat meg. Az előre meghatározott rutinfeladatok nem különböznek a szokásos rutinfeladatoktól, kivéve, hogy kifejezetten nem hozhatók létre vagy nem törölhetők. Ha az ütemezett feladat metaadataiban be van állítva előre meghatározott rutinfeladat előjele, akkor a konfiguráció frissítésekor az infobázisban automatikusan létrejön egy előre meghatározott rutinfeladat. Ha az előre meghatározott jelző törlődik, akkor az információs bázis konfigurációjának frissítésekor az előre meghatározott rutinfeladat automatikusan törlődik. Egy előre meghatározott ütemezett feladat (például ütemezés) tulajdonságainak kezdeti értékei a metaadatokban vannak beállítva. A jövőben, amikor az alkalmazás fut, ezek módosíthatók. Az előre meghatározott rutinfeladatoknak nincsenek paraméterei.

A rutinfeladat ütemezése határozza meg, hogy a rutinfeladatot mikor kell futtatni. Az ütemezés lehetővé teszi, hogy beállítsuk: a feladat kezdésének és befejezésének dátumát és időpontját, a végrehajtási időszakot, a hét napjait és hónapjait, amikorra az ütemezett feladatot végre kell hajtani stb. (lásd a beépített- nyelven).

Példák rutin feladatütemezésekre:

Minden órában, csak egy nap

RepeatDays Period = 0, RepeatDays Period = 3600

Minden nap naponta egyszer

RepeatDays Period = 1, RepeatDays Period = 0

Egy nap, egyszer

PeriodRepeatDays = 0

Minden második nap naponta egyszer

PeriodRepeatDays = 2

Óránként 01:00 és 07:00 között minden nap

PeriodRepeatDays = 1

Ismétlési periódus Napközben = 3600

Kezdési időpont = 01.00

Vége = 07.00

Minden szombaton és vasárnap 09.00 órakor

PeriodRepeatDays = 1

A hét napjai = 6, 7

Kezdési időpont = 09.00

Minden nap egy hétig, hagyj ki egy hetet

PeriodRepeatDays = 1

Időszak Hetek = 2

Egyszer 01:00-kor

Kezdési időpont = 01.00

Minden hónap utolsó napja 9:00.

PeriodRepeatDays = 1

NapHónapban = -1

Kezdési időpont = 09.00

Minden hónap ötödik napja 9:00

PeriodRepeatDays = 1

nap/hónap = 5

Kezdési időpont = 09.00

Minden hónap második szerdája 9:00-kor

PeriodRepeatDays = 1

DayWeekIn Month = 2

A hét napjai = 3

Kezdési időpont = 09.00

Ellenőrizheti, hogy egy feladat fut-e egy adott napon (a ScheduleTasks objektum RequiredExecution metódusa). Az ütemezett feladatokat mindig egy adott felhasználó neve alatt hajtják végre. Ha az ütemezett feladat felhasználója nincs megadva, akkor a végrehajtás a rendszergazdai jogokkal rendelkező alapértelmezett felhasználó nevében történik.

A rutinfeladatokat háttérfeladatok segítségével hajtják végre. Amikor az ütemező megállapítja, hogy egy ütemezett feladatot el kell indítani, az ütemezett feladat alapján automatikusan létrejön egy háttérfeladat, amely minden további feldolgozást végrehajt. Ha ez a rutinfeladat már fut, akkor az ütemezésétől függetlenül nem fut újra.

Az ütemezett feladatok újraindíthatók. Ez különösen igaz akkor, ha a rutinfeladat-metódus végrehajtását garantálni kell. Egy rutinfeladat akkor indul újra, ha rendellenesen leáll, vagy ha a munkavégző folyamat (az ügyfél-kiszolgáló verzióban) vagy az ügyfélfolyamat (a fájlverzióban), amelyen a rutinfeladat végrehajtásra került, rendellenesen leáll. Az ütemezett feladatban megadható, hogy hányszor kell újraindítani, valamint az újraindítások közötti intervallumot. Az újraindítható rutinfeladat metódus implementálásakor figyelembe kell venni, hogy újraindításkor a végrehajtása elölről indul, és nem a rendellenes leállás pillanatától folytatódik.

Ezt fontos megjegyezni Idő vége nem feltétlenül fejezi be a háttérmunkát a megadott időpontban. Néhány kijelentés:

* Egy háttérfeladat figyelmen kívül hagyhatja az automatikus törlését, ha nincs lefagyva, de továbbra is fut, mert nem minden platformművelet törölhető. Ha a beépített nyelv ciklikus kódja végrehajtódik, akkor a job törölhető, ellenkező esetben nem. Minden attól függ, hogy mit csinál a munka. * Befejezési idő – az a határ, amelyen belül a feladat inkább elkezdődhet, mint véget érhet? * A feladat kényszerített megszüntetése visszaállítja a tranzakció kezdetén végrehajtott módosításokat?

A háttérfeladatok végrehajtásának jellemzői fájl és kliens-szerver változatokban

A háttérfeladatok végrehajtásának mechanizmusa a fájl és a kliens-szerver verziókban eltérő.

  • A fájlverzióban létre kell hoznia egy dedikált ügyfélfolyamatot, amely háttérfeladatokat hajt végre. Ehhez az ügyfélfolyamatnak rendszeresen meg kell hívnia az ExecuteJobProcessing globális kontextusfüggvényt. Infobázisonként csak egy ügyfélfolyamat dolgozhat fel háttérfeladatokat (és ennek megfelelően hívhatja meg ezt a függvényt). Ha nem jött létre ügyfélfolyamat a háttérfeladatok feldolgozásához, akkor a jobmotor programozott elérésekor a „Job Manager nem aktív” hibaüzenet jelenik meg. Nem ajánlott olyan ügyfélfolyamatot használni, amely más funkciók háttérfeladatait dolgozza fel.

A háttérfeladatokat feldolgozó kliensfolyamat elindítása után a többi ügyfélfolyamat programozottan hozzáférhet a háttérfeladat-motorhoz, pl. háttérmunkákat futtathat és kezelhet.

A kliens-szerver verzióban egy feladatütemezőt használnak a háttérfeladatok végrehajtására, amely fizikailag a fürtkezelőben található. Az összes sorban álló háttérfeladat esetében az ütemező a legkevésbé terhelt munkavégző folyamatot kapja meg, és azt használja a megfelelő háttérfeladat futtatására. A dolgozói folyamat végrehajtja a munkát, és értesíti az ütemezőt a végrehajtás eredményeiről.

A kliens-szerver verzióban lehetőség van a rutinfeladatok végrehajtásának blokkolására. A rutinfeladatok végrehajtása a következő esetekben blokkolva van:

  • Az információs bázison a rutinfeladatok kifejezett blokkolása van telepítve. A zár a fürtkonzolon keresztül állítható be;
  • Az információs bázison van egy csatlakozási blokk. A zár a fürtkonzolon keresztül állítható be;
  • A True paraméterrel rendelkező SetExclusiveMode() metódus a beépített nyelvből lett meghívva;
  • Néhány más esetben (például az adatbázis-konfiguráció frissítésekor).

Metaadatok létrehozása egy rutinfeladathoz

Mielőtt programozottan hozna létre egy rutinfeladatot az információs bázisban, létre kell hoznia egy metaadat objektumot.

Ha metaadat objektumot szeretne létrehozni egy rutinfeladathoz a konfigurációs fa „Általános” ágában a „Rutinfeladatok” ághoz, hajtsa végre a „Hozzáadás” parancsot, és töltse ki a rutinfeladat következő tulajdonságait a tulajdonságok palettán:

Módszer neve – adja meg a rutinfeladat metódusának nevét.

Kulcs – adjon meg egy tetszőleges karakterlánc értéket, amely az ütemezett feladat kulcsaként lesz használva.

Ütemezés - jelzi a rutinfeladat ütemezését. Ütemezés létrehozásához kattintson a „Megnyitás” hivatkozásra, és a megnyíló ütemezési űrlapon állítsa be a szükséges értékeket.

Az „Általános” fülön a feladat kezdési és befejezési dátuma, valamint az ismétlési mód látható.

A „Napi” fülön a feladat napi ütemezése látható.

Adja meg az ütemtervet:

  • a feladat kezdési és befejezési időpontja;
  • feladatvégzési idő, amely letelte után erőszakkal megszűnik;
  • feladatismétlési időszak;
  • az ismétlések közötti szünet időtartama;
  • végrehajtás időtartama.

A feltételek tetszőleges kombinációjának megadása megengedett.

A „Heti” fülön a feladat heti ütemezése látható.

Jelölje be a hét azon napjaihoz tartozó jelölőnégyzeteket, amelyeken a feladat végrehajtásra kerül. Ha meg szeretné ismételni a feladatot, adja meg az ismétlési intervallumot hetekben. Például a feladat végrehajtása 2 hét alatt történik, az ismétlési érték 2.

A „Havi” fülön a feladat havi ütemezése látható.

Jelölje be azon hónapok jelölőnégyzeteit, amelyekben a feladat végrehajtásra kerül. Szükség esetén megadhat egy konkrét végrehajtási napot (hónapot vagy hetet) a hónap/hét elejétől vagy a végétől.

Használat - ha be van állítva, a feladat az ütemezésnek megfelelően fog végrehajtódni.

Előre definiált – ha be van állítva, a feladat előre meghatározott feladat.

Újrapróbálkozások száma rendellenes felmondás esetén - jelzi az újrapróbálkozások számát rendellenes felmondás esetén.

Újrapróbálkozási időköz abnormális befejezéskor – megadja az újrapróbálkozási időközt rendellenes befejezéskor. Példák

Háttérfeladat „Teljes szöveges keresési index frissítése” létrehozása:

BackgroundTasks.Run("UpdatingFullTextSearchIndex");

„Szekvenciák helyreállítása” rutinfeladat létrehozása:

Ütemezés = New ScheduleTask; Schedule.PeriodRepeatDays = 1; Schedule.RepeatPeriodDuringDay = 0;

Task = RoutineTasks.CreateRoutineTask("Szekvenciák visszaállítása"); Job.Schedule = Ütemezés; Task.Write();

Munkakonzol

Feldolgozás ITS-sel, rutinfeladatokat kezel:

Rutinfeladatokkal való munka

Munkaobjektumok

A jobobjektumokra nem hivatkoznak, hanem az adatbázisban tárolódnak valamilyen speciális tárolóban.

Ha az "Előre meghatározott" jelző engedélyezve van a metaadatokban, akkor egy ilyen objektum automatikusan létrejön az 1C:Enterprise indításakor, és mindig pontosan egy példányban létezik. Egy ilyen objektum nem törölhető.

Ha az "Előre definiált" jelző nincs beállítva, akkor az ilyen feladat objektumai programozottan jönnek létre és törlődnek, megadva az ütemezést és a paramétereket.

Feladatlista beszerzése

A feladatlista a módszerrel szerezhető be Szerezze be a RoutineTasks-t globális munkaügyi vezető Rutinfeladatok

ScheduledJobsManager

Get ScheduledJobs (GetScheduledJobs)

Szintaxis:

Get rutinfeladatok (<Отбор>)

Lehetőségek:

<Отбор>(választható)

Típus: Szerkezet. Kiválasztást meghatározó struktúra. A struktúra értékei a következők lehetnek: Egyedi azonosító, Kulcs, Metaadatok, Előre meghatározott, Használat, Név. Ha a kijelölés nincs megadva, minden rutinfeladat megtörténik.

Ha metaadatok alapján szűr, akkor a Metaadat értékként megadhatja a rutinfeladat metaadat-objektumát vagy a nevét.

Visszatérési érték:

Típus: Tömb.

Leírás:

Egy adott kijelöléshez tartozó rutinfeladatok tömbjét fogadja. Az ütemezett feladatok fogadása csak az adminisztrátor számára lehetséges.

Elérhetőség:

Rutin = RoutineTasks.GetRoutineTasks(Selection);

A rutinciklus minden rutinjához NewLine = Rutinfeladatok listája.Add(); NewRow.Metadata = Regular.Metadata.View(); NewLine.Name = Normál.Név; NewString.Key = Regular.Key; NewLine.Schedule = Schedule.Schedule; NewLine.User = Regular.UserName; NewString.Predefined = Regular.Predefined; NewString.Use = Regular.Use; NewString.Identifier = Regular.UniqueIdentifier;

LastTask = Regular.LastTask; Ha LastTask<>Undefined Akkor NewRow.Running = LastTask.Start; NewRow.State = LastTask.State; endIf; EndCycle;

Teremtés

A Create RoutineTask metódussal készült a rutinfeladatok kezelője számára:

RoutineTask = RoutineTasks.CreateRoutineTask(MetadataSelection);

RegularTask.Name = Név; RegularTask.Key = Kulcs; RegularTask.Use = Használat; RoutineTask.UserName = UsersChoice; RoutineTask.Number ofRepetitionsAtEmergencyCompletion =Ismétlések számaVészhelyzetBefejezéskor; ScheduledTask.RepeatIntervalAtEmergencyCompletion = RetryIntervalAtEmergencyCompletion; ScheduleTask.Schedule = Ütemezés; RegularTask.Record();

TaskObject = RoutineTasks.CreateRoutineTask("ExchangeExchange");

TaskObject.Name = Név; JobObject.Use = igaz;

A feladatobjektumnak van egy "Paraméterek" mezője, amelyben a metódus paraméterei vannak megadva:

Ütemezett munka

Lehetőségek(Paraméterek)

Használat:

Olvass és írj.

Leírás:

Típus: Tömb. Egy ütemezett feladat paramétereinek tömbje. A paraméterek számának és összetételének meg kell felelnie a rutinfeladat módszer paramétereinek.

Elérhetőség:

Szerver, vastag kliens, külső kapcsolat.

Jegyzet:

Az olvasási és írási lehetőségek csak a rendszergazdák számára állnak rendelkezésre.

Eltávolítás

Törölve a feladatobjektum Delete() metódusával:

ScheduledTask.Delete();

Állásobjektum beszerzése

  • lista a GetRoutineTasks metódussal:

Rutin = RoutineTasks.GetRoutineTasks(Selection);

  • a feladatkezelő metódus FindByUniqueIdentifier segítségével:

Feladat = ScheduledTasks.FindByUniqueIdentifier(UID);