itthon / Dolgozzon az interneten / 1s szerver rutinfeladatok. Univerzális szabályozási feladat. Háttérmunkák fájl módban

1s szerver rutinfeladatok. Univerzális szabályozási feladat. Háttérmunkák fájl módban

1 Munkamotor
2 háttérmunka
3 Ütemezett feladatok
4 A háttérfeladatok végrehajtásának sajátosságai fájl és kliens-szerver verziókban
5 Ütemezett feladat metaadatainak létrehozása
6 Munkakonzol
7 Ütemezett feladatokkal való munka
7.1 Munkaobjektumok
7.2 A munkák listájának lekérése
7.3 Létrehozás
7.4 Törlés
7.5 Munkatárgy beszerzése

Munka mechanizmus

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

A munkamechanizmus a következő feladatokat látja el:

  • Képes rutin eljárások meghatározására a rendszerkonfiguráció szakaszában;
  • Meghatározott műveletek végrehajtása ütemterv szerint;
  • Egy adott eljárás vagy függvény hívásának végrehajtása aszinkron, azaz. anélkül, hogy megvárná annak befejezését;
  • Egy adott munka előrehaladásának nyomon követése és annak befejezettségi állapotának megállapítása (a végrehajtás sikerességét vagy kudarcát jelző érték);
  • Az aktuális feladatok listájának beszerzése;
  • Képes kivárni egy vagy több feladat elvégzését;
  • Jobkezelés (lemondási lehetőség, végrehajtás letiltása stb.).

A munkamotor a következő alkatrészekből áll:

  • Ütemezett feladatok metaadatai;
  • Ütemezett feladatok;
  • Háttérmunkák;
  • Feladat ütemező.

Háttérfeladatok – az alkalmazási feladatok aszinkron végrehajtására tervezték. A háttérfeladatokat a beépített nyelv segítségével valósítják meg.

Ütemezett feladatok – az alkalmazási feladatok ütemezett végrehajtására tervezték. Az ütemezett feladatok az információs bázisban tárolódnak, és a konfigurációban meghatározott metaadatok alapján jönnek létre. Az ütemezett feladat metaadatai olyan információkat tartalmaznak, mint a név, a módszer, a használat stb.

Az ütemezett jobok ütemezése meghatározza, hogy az ütemezett jobhoz tartozó metódust mikor kell végrehajtani. Az ütemezés általában az infobázisban van beállítva, de beállítható a konfigurációs szakaszban is (például előre meghatározott ütemezett feladatokhoz).

A feladatütemező az ütemezett feladatok 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ő ütemezi a feladat futtatását. Ehhez ennek az ütemezett feladatnak megfelelően az ütemező létrehoz egy háttérfeladatot, amely elvégzi a tényleges feldolgozást.

Háttérmunkák

A háttérmunkák hasznosak összetett számítások elvégzéséhez, amikor a számítás eredménye hosszú idő után megkapható. A munkamotor rendelkezik eszközökkel az ilyen számítások aszinkron végrehajtására.

A háttérfeladathoz van egy társított metódus, amely a háttérfeladat futtatásakor kerül meghívásra. Bármely nem globális eljárás vagy függvény működhet háttérfeladat módszerként. közös modul, amely a szerveren hívható. 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 a háttérfeladat metódusának megadott nevével (a metódus neve a modul nevéből és a az eljárás vagy funkció). A kulcs lehetővé teszi az azonos metódusokkal rendelkező háttérjobok csoportosítását egy bizonyos alkalmazásattribútum szerint, így egy csoporton belül legfeljebb egy háttérfeladat 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. Ezzel egyidejűleg az azt létrehozó felhasználó nevében is végrehajtódik. Az adminisztrátori jogokkal rendelkező felhasználó, illetve az ezeket a háttérfeladatokat létrehozó felhasználó bármilyen kapcsolatról fogadhat feladatokat, és várhatja azok befejezését.

A háttérfeladat pusztán egy munkamenet objektum, de nem tartozik egyetlen felhasználói munkamenethez sem. Minden feladathoz létrejön egy speciális rendszermunkamenet, 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 munkafolyamatai között, ami jelentősen felgyorsíthatja a számítási folyamat egészét. A párhuzamosítás több gyermek háttérmunka létrehozásával valósul meg, és megvárja, amíg mindegyik befejeződik a fő háttérfeladatban.

A sikeres vagy sikertelen háttérfeladatokat a rendszer 24 óráig tárolja, majd törli. Ha a futó háttérfeladatok száma meghaladja az 1000-et, akkor 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 kell végrehajtania az ütemezésnek megfelelően.

Az ütemezett feladatok az információs bázisban tárolódnak, és a konfigurációban meghatározott ütemezett feladat metaadatai alapján jönnek létre. A metaadatok egy ütemezett feladat olyan paramétereit határozzák meg, mint: hívott metódus, név, kulcs, használati képesség, előre meghatározott előírás stb. rutinfeladat, satöbbi.

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 ütemezett feladatok létrehozására és szerkesztésére a feladatütemező elindítása nélkül.

Az ütemezett feladat egy metódushoz van társítva, amelyet az ütemezett feladat végrehajtásakor hív meg. Az ütemezett job módszer lehet egy nem globális megosztott modul bármely olyan eljárása vagy funkciója, amely meghívható a kiszolgálón. Az ütemezett feladat paraméterei bármilyen értéket megadhatnak, amelyet át lehet adni a szervernek. Az ütemezett job paramétereinek pontosan meg kell egyeznie az általa meghívott eljárás vagy függvény paramétereivel. Ha az ütemezett feladat metódusa egy függvény, akkor a visszatérési értékét a rendszer figyelmen kívül hagyja.

Az ütemezett feladatnak lehet kulcsa – bármilyen alkalmazott érték. A kulcs korlátozást vezet be az ütemezett feladatok elindítására, mivel időegységenként az azonos metaadat-objektumhoz tartozó ütemezett feladatok közül csak egy ütemezett feladat hajtható végre egy bizonyos kulcsértékkel. A kulcs lehetővé teszi az ugyanazon metaadat-objektumhoz társított ütemezett feladatok csoportosítását egy bizonyos alkalmazásattribútum szerint, így egy csoporton belül legfeljebb egy ütemezett feladat hajtható végre.

A konfigurálás során előre meghatározott ütemezett munkákat adhat meg. Az előre meghatározott ütemezett jobok nem különböznek a szokásos ütemezett joboktól, kivéve, hogy kifejezetten nem hozhatók létre vagy nem törölhetők. Ha az ütemezett feladat metaadatai a következőre vannak állítva előre meghatározott ütemezett feladat jele, akkor a konfiguráció frissítésekor automatikusan létrejön egy előre meghatározott ütemezett feladat az infobázisban. Ha az előre meghatározott jelölőnégyzet nincs bejelölve, akkor a konfiguráció frissítésekor az előre meghatározott ütemezett feladat automatikusan törlődik az információs bázisból. Egy előre meghatározott ütemezett feladat tulajdonságainak kezdeti értékei (például ütemezés) 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 ütemezett feladatoknak nincsenek paraméterei.

Az ütemezett job ütemezése határozza meg, hogy az ütemezett job mely időpontokban induljon el. Az ütemezés lehetővé teszi a következők beállítását: a feladat kezdésének és befejezésének dátuma és időpontja, a végrehajtás időtartama, a hét napjai és hónapjai, amikor az ütemezett feladatot végre kell hajtani stb. (lásd a beépített feladat leírását). nyelven).

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

Minden órában, csak egy nap

Újrapróbálkozási periódusnapok = 0, újrapróbálkozási periódusDuringDay = 3600

Minden nap naponta egyszer

Retry PeriodDays = 1, Retry PeriodDuringDay = 0

Egy nap, egyszer

Újrapróbálkozási időszak Napok = 0

Minden második nap naponta egyszer

Újrapróbálkozási időszak napja = 2

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

Újrapróbálkozási időszak napjai = 1
Újrapróbálkozási időszak a nap folyamán = 3600
Kezdési időpont = 01.00
Vége = 07.00

Minden szombaton és vasárnap 09.00 órakor

Újrapróbálkozási időszak napjai = 1
A hét napjai = 6, 7
Kezdési időpont = 09.00

Minden nap egy hét, elmúlik a hét

Újrapróbálkozási időszak napjai = 1
Időszak Hetek = 2

Egyszer 01:00-kor

Kezdési időpont = 01.00

Minden hónap utolsó napja 9:00.

Újrapróbálkozási időszak napjai = 1
NapHónapban = -1
Kezdési időpont = 09.00

Minden hónap ötödikén 9:00-kor

Újrapróbálkozási időszak napjai = 1
nap/hónap = 5
Kezdési időpont = 09.00

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

Újrapróbálkozási időszak napjai = 1
A hét napja a hónapban = 2
A hét napjai = 3
Kezdési időpont = 09.00

Ellenőrizheti, hogy a feladat fut-e adott dátum(a ScheduleRegularTasks objektum RequiredExecution módszere). Az ütemezett feladatokat mindig egy adott felhasználó nevén hajtják végre. Ha az ütemezett job felhasználója nincs megadva, akkor a végrehajtás a rendszergazdai jogosultságokkal rendelkező alapértelmezett felhasználó nevében történik.

Az ütemezett feladatok végrehajtása háttérfeladatok segítségével történik. 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 az ütemezett feladat már fut, akkor az ütemezésétől függetlenül nem fut újra.

Az ütemezett munkák újraindulhatnak. Ez különösen akkor igaz, ha az ütemezett feladatmódszer végrehajtását garantálni kell. Az ütemezett feladat újraindul, ha rendellenesen leállt, vagy ha a munkavégző folyamat (az ügyfél-kiszolgáló verzióban) vagy az ügyfélfolyamat (a fájlverzióban), amelyen az ütemezett feladat futott, rendellenesen leállt. Az ütemezett feladatnál megadhatja, hogy hányszor kell újraindítani, valamint megadhatja az újraindítások közötti intervallumot. Az újraindítható ütemezett job metódusának megvalósításánál figyelembe kell venni, hogy újraindításkor a végrehajtása elölről indul, és nem az összeomlá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ést, ha nincs lefagyva, hanem az ok miatt tovább fut
hogy nem lehet minden platformműveletet visszavonni. Ha végrehajtják ciklikus kód beépített nyelvet, majd törölje a munkát
másképp nem lehet. Minden attól függ, hogy mit csinál a munka.
* Befejezési idő – az a határ, amelyen belül egy feladat elkezdődhet és nem érhet véget?
* Kényszer megszüntetés A job visszaállítja a tranzakció kezdetének pillanatában végrehajtott módosításokat?

A háttérfeladatok végrehajtásának sajátosságai fájl és kliens-szerver verziókban

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 ExecuteJobProcessing globális kontextusfüggvényt rendszeresen meg kell hívni az ügyfélfolyamatban. Infobázisonként csak egy ügyfélfolyamat dolgozzon fel háttérfeladatokat (és ezért hívjon ezt a funkciót). 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.

Miután a háttérfeladatokat kezelő kliensfolyamat fut, a többi ügyfélfolyamat lehetőséget kap erre programhoz való hozzáférés a háttérmunka mechanizmushoz, azaz. háttérmunkákat futtathat és kezelhet.

A kliens-szerver verzióban a feladatütemezőt a háttérfeladatok végrehajtására használják, amely fizikailag a fürtkezelőben található. Az összes sorban álló háttérfeladat ütemezője a legkevésbé terhelt munkavégző folyamatot kapja, é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 az ütemezett feladatok végrehajtásának blokkolására. Az ütemezett feladatok végrehajtásának blokkolása a következő esetekben történik:

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

Ütemezett munka metaadatainak létrehozása

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

Ütemezett job metaadat objektum létrehozásához a konfigurációs fában az Ütemezett jobok ág Általános ágában, hajtsa végre a Hozzáadás parancsot, és töltse ki az ütemezett feladat alábbi tulajdonságait a tulajdonságok palettán:

Metódus neve – Adja meg az ütemezett munkamódszer nevét.

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

Ütemezés – az ütemezett feladat ütemezését adja meg. Ütemezés létrehozásához kattintson a "Megnyitás" linkre, és állítsa be a szükséges értékeket a megnyíló ütemezési űrlapon.

Az Általános lap megadja a feladat kezdő és befejező dátumát, valamint az ismétlési módot.

A „Napi” lap meghatározza a feladat napi ütemezését.

Adja meg az ütemtervet:

  • a feladat kezdési és befejezési időpontja;
  • a feladat befejezési időpontja, amely után kényszeresen befejeződik;
  • 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ója megengedett.

A feladat heti ütemezése a Heti lapon van megadva.

Jelölje be a hét azon napjaihoz tartozó jelölőnégyzeteket, amelyeken a feladat futni fog. Ha meg szeretné ismételni a munkát, adja meg az újrapróbálkozási időközt hetekben. Például a feladat 2 hét alatt fut le, az ismétlés értéke 2.

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

Jelölje be azoknak a hónapoknak a jelölőnégyzeteit, amelyekben a feladat futni fog. Ha szükséges, 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 egy előre meghatározott feladat.

Újrapróbálkozások száma összeomláskor – Megadja az összeomláskor végrehajtott újrapróbálkozások számát.

Újrapróbálkozási időköz összeomláskor – Megadja az összeomláskor jelentkező újrapróbálkozási időközt. Példák

Háttérfeladat létrehozása "A teljes szöveges keresési index frissítése":

BackgroundJobs.Run("UpdatingFullTextSearchIndex");

Ütemezett feladat létrehozása "Szekvenciák visszaállítása":

Ütemezés = New ScheduleRegulationTask;
Schedule.RepeatPeriodDays = 1;
Schedule.RepeatPeriodDuringDay = 0;

Task = ScheduledTasks.Create ScheduledTask("RestoringSequences");
Task.Schedule = Ütemezés;
Task.Write();

Munkakonzol

Feldolgozás ITS-sel, ütemezett feladatok kezelése: Task Console.epf

Dolgozzon ütemezett feladatokkal

Munkaobjektumok

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

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

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

Feladatlista beszerzése

A feladatok listája a módszerrel szerezhető be GetRegularAssignments globális munkaügyi vezető Ütemezett feladatok

Ütemezett Jobs Manager

GetScheduledJobs (GetScheduledJobs)

Szintaxis:

GetRegular Tasks(<Отбор>)

Lehetőségek:

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

Típus: Szerkezet. A kijelölé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 beállítva, az összes ütemezett feladat megtörténik.

Ha metaadatok alapján szűr, megadhatja az ütemezett feladat metaadat-objektumát vagy annak nevét Metaadat értékként.

Visszatérési érték:

Típus: Tömb.

Leírás:

Ütemezett feladatok tömbjét kapja meg a megadott kijelöléshez. Az ütemezett feladatok fogadása csak a rendszergazda számára lehetséges.

Elérhetőség:

A szabályozási ciklus minden egyes szabályozásához
NewLine = ListRegulationTasks.Add();
NewString.Metadata = Scheduled.Metadata.View();
NewLine.Name = Ütemezett.Név;
NewString.Key = Ütemezett.Kulcs;
NewString.Schedule = Ütemezett.Ütemezés;
NewString.User = Regular.UserName;
NewString.Predefined = Ütemezett.Előre definiált;
NewString.Usage = Regulatory.Usage;
NewString.Identifier = Scheduled.UniqueIdentifier;

LastTask = Ütemezett.LastTask;
Ha a LastJob Undefined Akkor
NewString.Running = LastTask.Start;
NewString.Status = LastJob.Status;
EndIf;
EndCycle;

Teremtés

Az ütemezett feladatkezelő CreateRegularTask metódusával készült:

ScheduledJob = ScheduledJobs.Create ScheduledJob(MetadataChoice);

Ütemezett feladat.Name = Név;
ScheduledTask.Key = Kulcs;
ScheduledTask.Use = Használat;
ScheduledTask.UserName = UsersChoice;
ScheduledTask.Number of RepetitionsWhen Crashing = RetriesWhen Crashing;
ScheduledTask.RetryIntervalOnAccident = RetryIntervalOnAccident;
ScheduledTask.Schedule = Ütemezés;
ScheduledTask.Write();

TaskObject = ScheduledTasks.Create ScheduledTask("ExecuteExchange");

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

A jobobjektumnak van egy "Paraméterek" mezője, amelyben a metódus paraméterei be vannak állítva:

Ütemezett munka

Paraméterek

Használat:

Olvasás és írás.

Leírás:

Típus: Tömb. Ütemezett feladatparaméterek tömbje. A paraméterek számának és összetételének meg kell felelnie az ütemezett feladatmódszer paramétereinek.

Elérhetőség:

Szerver, kövér kliens, külső csatlakozás.

Jegyzet:

Az olvasási és írási képesség csak a rendszergazda számára elérhető.

Eltávolítás

A munkaobjektum Delete() metódusával törölve:

ScheduledTask.Delete();

Állásobjektum beszerzése

  • lista a GetRegularTasks metódussal:
    Ütemezett = ScheduledTasks.Get ScheduledTasks(Selection);
  • a feladatkezelő FindByUniqueID metódusán keresztül:
    Feladat = ScheduledTasks.FindBy UniqueIdentifier(UID);

[a link megtekintéséhez regisztrálnod kell]

Hozzon létre egy ütemezett feladatot

Hozzon létre egy ütemezett feladatot "Feldolgozás végrehajtása".

Tiltsa le az ütemezett feladatok használatát, hogy ne induljon el automatikusan a konfiguráció frissítésekor.

Rendeljen hozzá egy eljárást, amely egy ütemezett feladat indításakor indul el:Ütemezett feladatok modul. Ütemezett TaskPerformingProcessing.

Maga az eljárás így néz ki:

Procedure ScheduledTaskPerformanceProcessing(Key) Export

Ütemezett feladatok paraméterei.PerformProcessing with Parameters(Key);

Vége eljárás

A rutinfeladatokhoz könyvtárat készítünk

Ütemezett munkánk számos háttérfolyamatot hozhat létre – minden feldolgozáshoz egyet. Az 1C8 platformon minden feladatnak van kulcsa. Az ütemezett job módszer azonban nem ismeri a háttérfeladat kulcsát, ezért a háttérfeladat paramétereit kell használnia. Ennek eredményeként a háttérfeladatot láthatjuk a feladatkonzolon, de ebből a konzolból nem tudunk kézzel háttérfeladatot létrehozni, mert kézi paraméterekkel rendelkező feladatok nem jönnek létre.

"Ütemezett feladatok paraméterei" könyvtár :

Kellékek :

· CodeBeforeLaunch- korlátlan karakterlánc - 1C nyelvű kód, amelyet az indítás előtt végre kell hajtani.

· Feldolgozás a konfigurációból - karakterlánc (100) - A konfigurációból származó feldolgozás azonosítója

· Feldolgozás a könyvtárból - sor (100) - hivatkozás a "Külső feldolgozás" könyvtárelemre, ha van ilyen a konfigurációban

· Az 1C alkalmazáson keresztüli végrehajtás - logikai érték - létrejön külön alkalmazás 1C és egy ütemezett feladat indul el benne. Létrehozva a 8.1-hez, ahol nem minden alkalmazási módszer érhető el azon a kiszolgálón, amelyen az ütemezett feladat fut.

· LaunchCode- - korlátlan karakterlánc - 1C nyelvű kód, amely az ütemezett feladat indításakor kerül végrehajtásra.

Hozzon létre egy elem alakzatot :

A "Regisztráció létrehozása" gombra kattintva Task" programozottan létrehoz egy ütemezett feladatot egy kulcskóddal:

Eljárás MainActionsFormsCreateReglTask(Button)

Változó referencia;

Kulcs = ShortLP(kód);

Task = ScheduledTasks.Create ScheduledTask("PerformingProcessing");

Task.Name = Kulcs;

Job.Key = Kulcs;

Paraméterek = Új tömb();

Options.Add(Key);

Task.Parameters = Paraméterek;

Task.Write();

Vége eljárás

Ütemezett munka indítása

Minden általunk létrehozott ütemezett feladathoz tartozik egy kulcs:

Ez a kulcs az "Ütemezett feladatok paraméterei" mappa kódjának felel meg, ezt keresi a feladat indításakor. Ha a szótárelem nem található, a feladat nem hajtódik végre.

Továbbá, ha megadják a kódotCodeBeforeLaunch akkor ez a kód lefut. Továbbá, ha a változó Teljesítsd hamisra értékeli, a feladat nem kerül végrehajtásra. Elemzésben elérhető változó Lehetőségek, ahol az "Ütemezett feladatok paraméterei" könyvtár talált elemére mutató hivatkozás található.

A részletek kiválasztott értékétől függően vagy az 1C nyelvű kód elindul, vagy a feldolgozás a konfigurációtól kezdődik, vagy a feldolgozás a szabványos „Külső feldolgozás” kézikönyvből indul.

Az 1C81 esetében a végrehajtást egy új alkalmazás biztosítja - így olyan kódot használhat, amely csak az ügyfélen érhető el, beleértve a külső feldolgozás használatát. Ehhez jelölje be a „Futtatás az 1C alkalmazáson keresztül” négyzetet. Ellenkező esetben az ütemezett feladat végrehajtásra kerül a szerveren.

Azt javaslom, hogy az újonnan létrehozott ütemezett feladat "Felhasználó" mezőjébe állítsa be a felhasználót, hogy a feladat bizonyos jogosultságokkal lehessen végrehajtani. Azt javaslom, hogy ennek a felhasználónak adjon teljes jogot. Van felhasználóm "robot».

Az ütemezett feladat ütemezése az ütemezett feladat űrlapjából az „Ütemezés” hivatkozással jön létre. Használhatja az "Ütemezett feladatok konzolja" feldolgozást.

A regiszterek időszakos tisztítása (például az "Objektumverziók" információs regiszter az SCP-konfigurációban), számítások elvégzése ütemezetten, dokumentumok meghatározott időpontban történő feladása - ez messze nem teljes lista rutinfeladatok segítségével végrehajtható műveletek 1C.

Hozzon létre egy feladatot

Nem célunk a futtatható modul kódjának leírása, megmutatjuk Általános elvek működése és eljárási feladat létrehozása.

A szabályozási feladat nélkülözhetetlen:

  1. Ha az egyik feltételként megadott feladatkészletben szükség van egy bizonyos algoritmus időszakos végrehajtására;
  2. Ha a kódot az adatbázis kezelőinek és felhasználóinak intézkedéseitől függetlenül végre kell hajtani;
  3. Ha a végrehajtható eljárás elindítása nem függ az objektumokkal előforduló külső eseményektől információs bázis.

Létrehozásához lépjen az információs bázisba "Konfigurátor" módban. Ezután a konfigurációs fában megtaláljuk a „Rendszeres feladatok” ágat, amely az „Általános” fülön található, és kattintson a „Hozzáadás” gombra (1. ábra).

Nézzük meg közelebbről a tulajdonságai ablakát (2. ábra):
2. ábra

  1. Név, szinonimák és megjegyzések – a mezők kitöltésének szabályai és alapelvei minden konfigurációs objektum esetében hasonlóak, és nem szükséges újra leírni őket;
  2. A metódusnév egy általános modul eljárása, amely a lehető legpontosabban írja le a kívánt algoritmust (a kiválasztó gomb megnyomásával megnyílnak az elérhető eljárások, amelyek ábrázolása az általános modul nevéből és az eljárás nevéből áll a az asztal);
  3. Kulcs - nem annyira az eljárási feladat egyediségét határozza meg, hanem az egyediségét háttérfolyamat, munkakör alapján indított, hosszkorlátos;
  4. Ütemezés - cikkünk külön bekezdését szenteljük ennek az elemnek a leírásának;
  5. Használat - ennek a négyzetnek a bejelölése határozza meg a feladat tevékenységét, az IGAZ azt jelenti, hogy a feladat az ütemezésnek megfelelően indul el és hajtódik végre;
  6. Előre definiált – ha az elemnél van ez a jelölőnégyzet, akkor ezek a feladatok nem törölhetők, automatikusan létrejönnek a konfiguráció adatbázisba mentésekor;
  7. Ismétlések száma - ha kivétel történik a végrehajtás során, akkor újraindul, hogy ne forduljon elő végtelen ciklus, a program korlátozza az újraindítások számát;
  8. Újrapróbálkozási időköz – az összeomlott feladatok újraindításai közötti idő másodpercben.

Nézzük meg közelebbről a menetrendet.

Az ütemezett feladat ütemezése

3. ábra

Mindenekelőtt az ablak aljára kell figyelni, ott van a részletes információk a feladat elvégzésének gyakoriságára és időpontjára vonatkozó lebontással.

Általános lap:

  • a feladat kezdő dátuma;
  • A feldolgozás befejezési dátuma;
  • A feladat ismétlésének gyakorisága.

Ha ezen a lapon nincs megadva dátum, akkor a feladathoz nincs időkorlát.

Könyvjelző „Napi” (4. ábra)
4. ábra

A feladat kezdési és befejezési idejét, valamint napközbeni indítási gyakoriságát megadó beviteli mezők mellett tartalmazza táblázatos rész számára részletes beállításokat végrehajtási gyakoriság.

A "Napi" és a "Heti" fülek a megfelelő időszakokra vonatkozó információkat tartalmaznak.

A működés jellemzői

A működés kliens-szerver verziójában az ütemezett feladatok végrehajtását a szerver eszközök határozzák meg. Az adminisztrációs konzolon engedélyezheti és letilthatja a feladatok futtatásának lehetőségét egy adott adatbázishoz.

A munka fájlverziójával sokkal bonyolultabb a helyzet. A platform egy bizonyos kiadása előtt a háttér- és ütemezett eljárások végrehajtása csak akkor történt meg, ha az ExecuteJobProcessing() metódus aktiválva volt a rendszer indításakor egy adott felhasználónál. Ebben az esetben az algoritmusok időszakosan indultak el, amíg a módszert kezdeményező felhasználó a programban volt.

Jelenleg a háttérmunkák munkája a munka fájl verziójában egyenletesen oszlik el az adatbázisban jogosult felhasználók között, ha a program a további paraméter AllowExecuteSheduledJobs, ez a folyamat lesz felelős a rutin karbantartásért.

Fájl módban működő adatbázisban a háttér- és karbantartási munkák végrehajtását teljesen letilthatja az adatbázissal rendelkező mappában található DoNotCopy.txt fájl törlésével vagy átnevezésével. A fájl jelenléte jelzi a platformnak, hogy a munka az eredetiben, és nem az adatbázis másolatában történik.

Ezenkívül a szabványos 1C szállításokban lehetővé vált az ütemezett munka közvetlenül a programból történő kezelése anélkül, hogy a "Configurator"-ba menne. A „ZUP” konfigurációban, 3.1.3.223-as verzióban az Adminisztráció->Karbantartás->Ütemezett műveletek->Ütemezett és háttérfeladatok menüből nyithatja meg a vezérlőlapot (5. ábra)
5. ábra

A megnyitott űrlap intuitív felülettel rendelkezik, és lehetővé teszi a következőket:


A feladat végrehajtását közvetlenül az űrlapról is elindíthatja.

A cikk címében felvetett kérdés sok, ezzel a termékkel dolgozó rendszergazdára vonatkozik. Amennyire lehetséges, megpróbálunk beszélni az 1C teljesítményét befolyásoló paraméterekről, és megdöntjük a népszerű mítoszokat. Ma egy újabb eset példáján szeretnénk elmondani egy másik szempontot, amely komolyan befolyásolhatja a teljesítményt - az ütemezett feladatokat.

Kezdjük egy valós esettel. Nem is olyan régen az egyik ügyfelünk keresett meg minket az 1C "fékek" miatti panasszal az egyik alkalmazottjától. A tünetek abban nyilvánultak meg, hogy egy bizonyos idő elteltével a Trade Management 10 konfigurációja nagyon lelassulni kezdett, vagyis egy ideig lefagyott.

A helyzet részletesebb elemzésével kiderült, hogy ez csak egy alkalmazottnál fordul elő, és minden munkahelyen sokáig előfordul, de ha korábban kb másodpercig tartott a "fék", akkor most, a frissítés után akár 15-20 másodpercig is tarthatnak, ami rendkívül kényelmetlenné teszi a munkát.

Elvileg a kezdeti adatok már elegendőek az első következtetések levonásához. Vegyük újra őket:

  • A "fékek" folyamatosan, bizonyos gyakorisággal fordulnak elő
  • Csak egy felhasználónál "lassít".
  • Bármely munkahelyen "lelassul".

Hogy megerősítsük sejtéseinket, nézzük meg Számviteli beállítások:

Valójában a „problémás” felhasználó rutinfeladatokat végrehajtó felhasználóként szerepel. Mint kiderült, egyszer ennek a felhasználónak a nevében működött a RIB automatikus cserefeladata. Hogy pontosan mi volt az oka az epizodikus "fékezésnek", azt még meg kell vizsgálni. Ezt is könnyű megtenni:

És itt van az "alkalom hőse" - a teljes szöveges keresési index frissítésének feladata, amely 2,5 percenként indult el. Ebben az esetben a probléma teljesen megoldódott az ütemezett feladatok végrehajtásának letiltásával ennél a felhasználónál, de ez nem mindig lehetséges vagy tanácsos, ezért az alábbiakban megvizsgáljuk, hogyan kezelhetők az ütemezett feladatok, és hogyan biztosítható, hogy ne legyenek negatív hatása a teljesítményre.

Általános alkalmazás

Konfigurációk alapján rendszeres alkalmazása a rutinfeladatok kezelésére nincs egyetlen eszköztár. Ez nagyrészt annak tudható be, hogy kezdeti kidolgozásuk idején maga az eljárási feladatok koncepciója meglehetősen rosszul alakult.

Sok ütemezett feladatot a hozzájuk társított alrendszerek konfigurációja kezel. Például az adatcserével kapcsolatos rutinfeladatokra vonatkozó beállításokat az Egységes Állami Automatikus Információs Rendszerhez kapcsolódó cserebeállításokban kell keresni az alkoholkereskedelmi beállításoknál stb.

Első pillantásra minden teljesen logikus, de egyetlen eszköz hiánya megnehezíti a konfigurált ütemezett feladatok ellenőrzését és beállításainak optimálisságát. Nos, ha van egy-két feladat, és ha több is van, vagy, mint esetünkben, gyanúja van valamelyik ütemezett feladatnak, de fogalma sincs, hogy ki és mit állított be ebben az adatbázisban.

Ebben az esetben érdemes használni külső feldolgozás ConsoleQuests (JobsConsole), amely az ITS lemez szabványos feldolgozási készletében található. A Feldolgozás egyetlen felületet biztosít az összes job számára, és lehetővé teszi azok központi konfigurálását, valamint az éppen futó jobok vezérlését.

Ez a lista alaposan tanulmányozni kell, minden felesleges feladatot ki kell kapcsolni, a szükségeseket pedig a sürgős igényeknek és a józan észnek megfelelően ütemezni kell. Például a mi esetünkben nem kell 30 másodpercenként egyszer feldolgozni az EGAIS válaszokat (ez a beállítás tesztelésre készült), működési módban pedig elég lesz ezt mondjuk félóránként megtenni.

Felügyelt alkalmazás

A felügyelt alkalmazásra épülő konfigurációkban az ütemezett feladatoknak van jelentősebb szerepük, ezek segítségével különféle feladatokat lehet végrehajtani az infobázis karbantartására, naprakészen tartására, ugyanakkor az ütemezett feladatok okozzák leggyakrabban " fékek".

A rutinfeladatok kezeléséhez van egy szállodai tétel a menüben Adminisztráció – Támogatás és karbantartás.

Azonnal észrevehető, hogy a feladatok jelentősen megnövekedtek (például ugyanazt a konfigurációt vettük - Retail), és ezek hozzáértő konfigurációja jelentősen javíthatja az infobázis teljesítményét. Az alapértelmezett beállításokat az 1C egy átlagos gömb alakú cég vákuumban történő igényei alapján végzi el, és meg sem közelíti az optimálisat.

Először is letiltjuk azt, ami egyértelműen felesleges, amivel nem működik. Ezután optimalizáljuk a ritkán használt funkciók ütemezését, például a Lakossági bankosztályozó frissítése, valamint a partnerek ellenőrzése hetente egyszer, munkaidőn kívül, vagy a munkanap végén (elején) végezhető el.

Különös figyelmet kell fordítani mindenre, ami ezzel kapcsolatos keresési index. Teljes szöveges keresés természetesen kényelmes dolog, de az indexével dolgozni nagyon-nagyon erőforrás-igényes feladat. Ezért nem szabad túlzásba esni és elhagyni, hanem komolyan át kell tekinteni és módosítani kell a paramétereit.

Kezdjük azzal szöveg kinyerése, ezzel a művelettel kereshetsz a csatolt fájlok tartalmában, tehát ha nem használod, ne keresd, vagy csak képeid vannak ott, akkor ezt a műveletet minden esetben letiltható, hogy 85 másodpercenként egyszer hajtsa végre - ez nyilvánvaló felsorolás.

PPA index frissítés- az egyik legerőforrásigényesebb művelet, alapértelmezés szerint percenként egyszer kerül végrehajtásra.

Most pedig gondoljuk át, milyen gyakran adnak hozzá vagy frissítenek információkat az adatbázisban, amelyre a leggyakrabban keres? Nyilván nem minden percben, így elég lesz jóval ritkábban frissíteni az indexet: óránként, naponta egyszer vagy akár hetente egyszer.

Ugyanez vonatkozik a a PPD index egyesítése, ha naponta egyszer frissíti az indexet, akkor az egyesítést hetente egyszer kell beállítani, miközben a munka kezdeteként a legkevésbé zavaró időpontot választja.

Ezek az egyszerű műveletek lehetővé teszik, hogy anélkül, hogy a konfiguráció funkcionalitását nagymértékben károsítaná, növelje a vele végzett munka kényelmét. új szint megtagadva a meglehetősen erőforrásigényes műveletek gyakori elvégzését. Csak ne essen túlzásokba, helyesen ítélje meg, mennyire van szüksége bizonyos funkciókra, és milyen gyakran kell elvégeznie a hozzájuk kapcsolódó feladatokat.

  • Címkék:

A megtekintéséhez engedélyezze a JavaScriptet

A felhasználók gyakran panaszkodnak, hogy „az 1C 8.3 lelassul”: a dokumentum űrlapok lassan nyílnak meg, a dokumentumokat hosszú ideig feladják, a program elindul, a jelentések hosszú ideig generálódnak stb.

Ezenkívül az ilyen "hibák" különböző programokban fordulhatnak elő:

Az okok eltérőek lehetnek. Nincs helyreállítva papírokkal, gyenge számítógép vagy a szerver, az 1C szerver rosszul van konfigurálva.

Ebben a cikkben az egyik legegyszerűbb és leggyakoribb okot szeretném megvizsgálni lassú munka programok - . Ez az utasítás 1-2 felhasználós fájladatbázisok felhasználói számára lesz releváns, ahol nincs verseny az erőforrásokért.

Ha érdekli a rendszer kliens-szerver opcióinak komolyabb optimalizálása, látogassa meg az oldal rovatát.

Hol vannak az ütemezett feladatok az 1C 8.3

Mielőtt időm lett volna betölteni a programot, rengeteg háttérfeladatot végeztek el 1C-ben. Megtekintheti őket az „Adminisztráció” menüben, majd a „Támogatás és karbantartás” menüben:

Ingyenes 267 1C videóleckéket kaphat:

Így néz ki a befejezett feladatokat tartalmazó ablak:

És itt van az összes futó ütemezett feladat teljes listája:

Ezek között olyan feladatok láthatók, mint a "", különböző osztályozók betöltése, a program verziójának relevanciájának ellenőrzése stb. Például nincs szükségem szinte mindegyik feladatra. Devizanyilvántartást nem vezetek, a verziókat magam ellenőrzöm, szükség szerint töltök fel osztályozókat.

Ennek megfelelően az én (és a legtöbb esetben az Ön) érdeke a szükségtelen feladatok letiltása.

Ütemezett és háttérfeladatok letiltása az 1C 8.3-ban