1c konzola úloh spravované aplikace. Rutinní úlohy a úlohy na pozadí (vytvoření, konfigurace, spouštění). Vytvoření rutinního úkolu

Některé úkoly ve správě dokumentů a účetnictví může být nutné provádět pravidelně. Například dvacátého. Nebo denně.

Typicky se společnost snaží vytvořit pravidla pro provádění takových úkolů – kdo, kdy a jak by měl úkol splnit, kdo by ho měl řídit.

Takové úkoly se nazývají regulované, tj. vykonávané v souladu s předpisy.

V IT se sledování často provádí regulovaně.

To je správci systému dobře známo – existuje speciální programy, které pravidelně kontrolují výkon serverů a síťové infrastruktury a hlásí SMS popř emailem správce.

Podobné věci existují i ​​pro webmastery – pro kontrolu dostupnosti webu během dne.

V 1C jsou monitorovací úlohy a jakékoli další pravidelné úlohy, které by měly být prováděny automaticky podle plánu, prováděny pomocí mechanismu 1C Scheduled Tasks.

Promluvme si o nich dnes.

Plánované úkoly 1C

Naplánované úlohy 1C jsou ty, které vám umožňují provádět je tak, jak to dělají, ale podle plánu.

Samotná rutinní úloha 1C v konfigurátoru je způsob, jak specifikovat nastavení a nastavit plán. Mimochodem, plán lze později dynamicky změnit v režimu 1C Enterprise.

Úlohy na pozadí lze vytvářet z textu programu v jazyce 1C libovolně bez regulační úkol 1C – pro paralelní výpočty na serveru.

Provádění rutinních úloh 1C lze dočasně zakázat - in.

Přidání rutinního úkolu 1C

Úlohy rutiny 1C se nacházejí v konfiguraci ve větvi Obecné/Úlohy rutiny 1C. Pojďme přidat nový regulační úkol 1C a uvést jeho název.

Ve vlastnosti rutinní úlohy 1C je uveden název metody, stejně jako v. Funkce bude umístěna ve společném modulu se zaškrtnutým políčkem Server ve vlastnostech, to znamená, že modul musí být přidán předem.

Vlastnost naplánované úlohy 1C – Název úlohy – určuje název, pod kterým se úloha zobrazí v nástrojích pro správu úloh.

Vlastnost rutinní úlohy 1C – Key – vám umožňuje seskupit několik různých rutinních úloh 1C. Najednou lze spustit pouze jednu úlohu se stejnou hodnotou klíče. Samotná hodnota může být libovolná. Prázdná hodnota se při kontrole nebere v úvahu (to znamená, že je považována za prázdnou).

Vlastnost rutinní úlohy 1C – Předdefinováno – určuje, že při spuštění 1C Enterprise bude taková úloha vytvořena v jedné kopii s plánem uvedeným v konfigurátoru. Nepředdefinované úkoly se zobrazují programově v době plánu.

V typické konfigurace, například Accounting edition 2.0, takové rutinní úlohy 1C jako Aktualizace konfigurace a Přepočet součtů jsou předdefinovány, ale jako Výměna dat nebo Odložené pohyby předdefinovány nejsou.

Použití – povolí úlohu (to znamená, že se provede pouze v případě, že je zaškrtnuto políčko Použití).

Opakovat při abnormálním ukončení – jak asi tušíte, znamená restartování úlohy, pokud se nepodařilo úspěšně dokončit napoprvé – můžete určit, kolikrát se má restartovat a jak dlouho po abnormálním ukončení.

Správa a monitorování rutinních úloh 1C

Pro správu rutinních úloh 1C je k dispozici speciální standardní zpracovatelská Job Console. Lze jej nalézt také na.

Toto zpracování patří k tzv. univerzálnímu externímu standardnímu zpracování 1C, které často není součástí konfigurace, ale je distribuováno samostatně např. na ITS discích.

Pomocí zpracování konzoly úloh můžete:

  • Povolí/zakáže provádění rutinní úlohy 1C
  • Přiřadit/změnit plán naplánované úlohy 1C (a další parametry)
  • Zadejte uživatele 1C, jehož jménem bude rutinní úloha 1C provedena
  • Podívejte se, jaké úkoly byly dokončeny, kdy a s jakým výsledkem, chyby při plnění úkolů 1C
  • Proveďte úkol.

Kopie databází a rutinních úloh 1C

Pokud používáte server 1C, nastane následující situace:

  • Pro vaše vlastní účely (například pro programování) se vytvoří kopie pracovní databáze
  • Práce, testování atd. v kopii databáze
  • V takové testovací databázi zapomenete vypnout rutinní úlohy 1C.

Zatímco rutinní úkoly 1C provádějí úkoly související pouze s jejich informační základnou, pak v tom není nic.

Rutinní úlohy 1C však mohou často ukládat jakékoli soubory, data do jiných databází, provádět výměny a odesílat e-maily.

V tomto případě můžete získat zajímavou směs mezi výsledkem provádění rutinních úloh 1C v pracovní databázi a kopiemi.

Rutinní úlohy 1C pro kopie pracovní databáze musí být zakázány v .

Plnění a neplnění regulačních úkolů 1C

Při vytváření rutinních úloh 1C si musíte pamatovat:

  • Úkoly se plní samy – je třeba je hlídat
  • Úlohy jsou prováděny v modulu na serveru
  • Úlohy jsou prováděny pod jiným uživatelem Windows s různými právy.

Nejprve musíte zkontrolovat, zda je úloha prováděna a může být dokončena jako rutinní úloha 1C.

Za druhé, modul serveru znamená, že mnoho věcí, které jsou k dispozici na klientovi, není k dispozici. Například někdy nelze všechny dokumenty odeslat pouze na server, protože jejich algoritmus může zajistit, že odesílání spouští ručně uživatel a lze použít neserverové funkce, např.
Upozornění ("Ahoj!")

Zatřetí, pokud se úkol zabývá něčím mimo databázi 1C, stanou se důležitá práva uživatele systému Windows, pod kterým je úkol prováděn.

Třetí bod je zvláště důležitý při vývoji. Pokud modul nelze na serveru spustit, úloha nebude provedena vůbec. Chcete-li to zkontrolovat, musíte úlohu spustit alespoň jednou a vidět výsledek „Úloha dokončena“ ve zpracování konzoly úloh.

Pravděpodobně se žádná seriózní konfigurace na 1C 8.3 nebo 8.2 neobejde bez použití rutinních úloh a úloh na pozadí. Jsou velmi pohodlné, protože budou prováděny podle jasně definovaného plánu bez zásahu uživatele nebo programátora.

Jednou denně si například potřebujete vyměnit data s jiným programem. Pomocí rutinních úloh a úloh na pozadí bude 1C moci provádět tyto akce nezávisle, například v mimopracovní dobu. Tato metoda nijak neovlivní uživatelskou zkušenost a pomůže ušetřit čas.

Nejprve pojďme zjistit, co znamenají a jaký je jejich rozdíl:

  • Naplánovaný úkol umožňuje spouštět jakékoli konkrétní akce podle předem nakonfigurovaného plánu.
  • Práce na pozadí je objekt, který obsahuje akce, které mají být provedeny.

Předpokládejme, že naše společnost něco prodává a má vlastní webové stránky, kde jsou umístěny ceny. Chceme je nahrávat jednou denně, abychom zachovali relevanci.

Otevřete konfiguraci a přidejte naplánovanou úlohu.

Nastavení vlastností

Podívejme se na nejdůležitější parametry, které je potřeba v jeho vlastnostech vyplnit.

  • V poli" Název metody» vybere postup konkrétního obecného modulu, který se přímo spustí. Uvede všechny kroky pro nahrání cen na naše webové stránky. Vezměte prosím na vědomí, že spuštění bude probíhat na serveru. Je to logické, protože rutinní operace se provádějí bez účasti uživatele.
  • Naplánovanou úlohu lze podle potřeby zakázat nebo povolit. Není potřeba pokaždé upravovat jeho rozvrh. Chcete-li to provést, na paletě vlastností nastavte nebo zrušte příznak " Používání».
  • Další důležitou věcí je nastavení, zda tento rutinní úkol bude předem určený, nebo ne. Předdefinované naplánované úlohy se spouštějí automaticky. Pokud tato funkce není nainstalována, budete je muset spustit programově nebo použít zpracování „Task Console“ s ITS.
  • Můžete také určit počet opakování a interval mezi nimi v případě abnormálního ukončení. Abnormální ukončení se týká situací, kdy úlohy nebyly dokončeny kvůli chybě.

Nastavení rozvrhu

Posledním krokem je nastavení plánu nahrávání na web pomocí odpovídajícího hypertextového odkazu v paletě vlastností.

Typické nastavení plánu uvidíte v 1C 8.3. Není zde nic složitého. V tomto příkladu jsme nastavili spuštění našeho nahrávání cen na web každý den od pěti do sedmi ráno. V případě, že naplánovaný úkol nestihne být dokončen do 7:00, bude dokončen hned následující den.

Blokování naplánovaných úloh

Spusťte standardní obslužný program „Správa podnikových serverů 1C“ a otevřete vlastnosti informační databáze, kde jste vytvořili rutinní úlohu (pro verze klient-server 1C).

V okně, které se otevře (po zadání přihlašovacího jména a hesla pro přístup k zabezpečení informací), zkontrolujte, zda není zaškrtnuto políčko „Blokování rutinních úloh je povoleno“. Pokud narazíte na situaci, kdy úloha nefunguje, zkontrolujte nejprve toto nastavení.

Stejným způsobem můžete zcela zakázat rutinní úlohy v 1C 8.3. Chcete-li zakázat konkrétní úlohy na pozadí, můžete použít zpracování „Background Job Console“ zabudované do nejnovějších verzí.

Pozadí a naplánované úlohy v režimu souborů

V tomto režimu je nastavení a spouštění těchto úloh mnohem obtížnější na organizaci. Nejčastěji se vytvoří další účet, jehož relace bude vždy otevřená.

Aktivace naplánovaných úloh v v tomto případě se provádí při použití metody „RunTaskProcessing()“.

Můžete také použít následující konstrukci:

Jako název procedury musíte zadat název procedury klienta, která bude provedena. Interval ukazuje, o kolik sekund později bude provedení provedeno. Parametr „Jednorázově“ není vyžadován. Odráží, zda bude tento postup proveden jednou nebo vícekrát.

Sledování chyb v úlohách na pozadí

Zobrazte průběh úloh na pozadí a také dostupnost možné chyby najdete v knize jízd. Ve filtru vyberte aplikaci „Zakázka na pozadí“ a případně vyberte důležitost zájmu, např. pouze „Chyby“.

Protokol zobrazí všechny položky, které odpovídají vašemu výběru, spolu s komentářem, který vám pomůže pochopit důvod chyby.

Pravděpodobně každý programátor 1C 8.3 musel dříve nebo později nastavit provádění určitých úkolů podle plánu. Níže dám Detailní popis z těchto mechanismů, doufám, že bude užitečné informace pro začínající programátory 1C. To je velmi výhodné, protože to nevyžaduje lidský zásah, rutinní úloha se nakonfiguruje jednou a funguje podle vašeho plánu.

Níže naleznete podrobné pokyny na příkladu.

Co jsou rutinní úkoly a úkoly na pozadí v 1C

  • Naplánované úkoly je speciální mechanismus 1C Enterprise 8.3 určený k provádění konkrétní akce podle daného plánu.
  • Práce na pozadí- objekty generované rutinní úlohou, které přímo provádějí zamýšlenou akci bez účasti uživatele nebo programátora 1C 8.2.

Mechanismus naplánovaných úloh a úloh na pozadí funguje v režimu klient-server (SQL), díky funkcionalitě DBMS. Pokud máte databázi souborů, pak lze úlohu také nakonfigurovat, ale podle trochu jiného principu.

Nastavení úloh na pozadí v režimu klient-server 1C

Nejprve vytvořte nový objekt metadat – rutinní úkol. Svůj úkol nazvu „Načítání kurzů měn“. Podívejme se na paletu vlastností tohoto konfiguračního objektu:

Získejte 267 videolekcí na 1C zdarma:

  • Název metody— cesta k proceduře, která bude provedena v úloze na pozadí podle daného plánu. Postup musí být ve společném modulu. Doporučuje se nepoužívat standardní, ale vytvořit si vlastní. Nezapomeňte, že úlohy na pozadí běží na serveru!
  • Používání— známka používání rutinního úkolu.
  • Předurčeno— označuje, zda je rutinní úkol předem určen. Pokud chcete, aby rutinní úloha fungovala ihned po umístění do databáze, zadejte tento příznak. V opačném případě budete muset použít zpracování Job Console nebo nechat úlohu spustit programově.
  • Počet opakování, když se úloha ukončí abnormálně— kolikrát byla úloha na pozadí restartována, pokud byla provedena s chybou.
  • Interval opakování při abnormálním ukončení úlohy— jak často bude úloha na pozadí restartována, pokud byla dokončena s chybou.

A nejzajímavější je nastavení Plán:

Zde nakonfigurujete interval spouštění procedury zadaný v poli „Název metody“. Řekněme, že jsem nakonfiguroval

Pozornost! Nezapomeňte zakázat blokování provádění rutinních úloh a úloh na pozadí na úrovni DBMS!

To lze provést v obslužném programu pro správu verze klient-server nebo při vytváření nové databáze:

Nastavení rutinních úloh v režimu souborů 1C

V režimu souborů je nastavení takových úloh poněkud obtížnější. Pro takový úkol musí být spuštěna samostatná relace programu 1C. To se často řeší vytvořením „technického“ uživatele, jehož relace je vždy spuštěna.

V režimu souborů se rutinní úloha inicializuje při spuštění metody „RunTaskProcessing()“.

Pro konkrétního uživatele můžete nakonfigurovat tuto metodu tak, aby se spouštěla ​​pomocí jiné metody −

ConnectWaitHandler( <ИмяПроцедуры>, <Интервал>, <Однократно>).

  • Název procedury— název postupu připojeného jako obsluha čekání. Název exportované procedury spravovaného aplikačního modulu (běžného aplikačního modulu) nebo globálního sdíleného modulu. Postup musí být umístěn na klientovi.
  • Interval— doba mezi provedeními operací v sekundách.
  • Jednou- jak dokončit úkol, jednou nebo ne.

ConnectWaitHandler, 3600 );

Dvouminutové video, které ukazuje, jak nastavit rutinní úlohu v konfigurátoru 1C:

Při práci v 1C existuje mnoho rutinních operací, které musí být spuštěny nebo naplánovány k provedení jedné nebo druhé akce, například: odesílání dokumentů nebo načítání dat do 1C z webu.

Nedávno jsem zveřejnil článek: Je čas to automatizovat:

Rutinní úkoly a úkoly na pozadí

Modul úloh je navržen tak, aby vykonával jakoukoli aplikaci nebo funkci podle plánu nebo asynchronně.

Mechanismus úloh řeší následující úlohy:

  • Schopnost definovat regulační postupy ve fázi konfigurace systému;
  • Provádění určených akcí podle harmonogramu;
  • Volání dané procedury nebo funkce asynchronně, tzn. bez čekání na jeho dokončení;
  • Sledování průběhu konkrétního úkolu a získávání stavu jeho dokončení (hodnota udávající, zda byl úspěšný či nikoli);
  • Získání seznamu aktuálních úkolů;
  • Schopnost čekat na dokončení jednoho nebo více úkolů;
  • Vedení zakázky (možnost zrušení, blokace exekuce atd.).

Mechanismus práce se skládá z následujících součástí:

  • Metadata rutinních úkolů;
  • Pravidelné úkoly;
  • Pracovní místa na pozadí;
  • Plánovač úkolů.

Úlohy na pozadí a jsou navrženy tak, aby prováděly aplikační úlohy asynchronně. Úlohy na pozadí jsou implementovány pomocí vestavěného jazyka.

Naplánované úlohy a jsou navrženy k provádění úloh aplikace podle plánu. Rutinní úlohy jsou uloženy v informační bázi a jsou vytvářeny na základě metadat definovaných v konfiguraci. Metadata regulačního úkolu obsahují informace, jako je název, metoda, použití atd.

Rutinní úloha má plán, který určuje, ve kterých časech musí být metoda spojená s rutinní úlohou provedena. Plán je zpravidla specifikován v informační bázi, ale může být také specifikován ve fázi konfigurace (například pro předdefinované rutinní úlohy).

Plánovač úloh se používá k plánování provádění rutinních úloh. U každé naplánované úlohy plánovač pravidelně kontroluje, zda Aktuální datum a čas plánu rutinních úkolů. Pokud se shoduje, plánovač přiřadí tuto úlohu ke spuštění. Chcete-li to provést, plánovač pro tuto naplánovanou úlohu vytvoří úlohu na pozadí, která provede skutečné zpracování.

Myslím, že to s popisem stačí - pojďme k implementaci:

Vytvoření rutinního úkolu

Název metody– cesta k proceduře, která bude provedena v úloze na pozadí podle daného plánu. Postup musí být ve společném modulu. Doporučuje se nepoužívat standardní společné moduly, ale vytvořit si vlastní. Nezapomeňte, že úlohy na pozadí běží na serveru!

Používání– známka použití rutinního úkolu.

Předurčeno– označuje, zda je rutinní úkol předem určen.

Pokud chcete, aby rutinní úloha fungovala ihned po umístění do databáze, zadejte atribut Předurčeno. V opačném případě budete muset použít zpracování „Konzola úloh“ nebo spustit úlohu programově.

Počet opakování, když se úloha ukončí abnormálně– kolikrát byla úloha na pozadí restartována, pokud byla provedena s chybou.

Interval opakování při abnormálním ukončení úlohy– jak často bude úloha na pozadí restartována, pokud byla dokončena s chybou.

Nastavení rozvrhu

Plán dokončení úkolu:

Každou hodinu, jen jeden denObdobí RepeatDays = 0, RepeatDays Period = 3600
Každý den jednou denněObdobí RepeatDays = 1, RepeatDays Period = 0
Jeden den, jednouPeriodRepeatDays = 0
Každý druhý den jednou denněPeriodRepeatDays = 2
Každou hodinu od 01:00 do 07:00 každý denPeriodRepeatDays = 1RepeatPeriodDuringDay = 3600StartTime = 01:00

Čas ukončení = 07:00

Každou sobotu a neděli v 09:00Období RepeatDays = 1 WeekDays = 6, 7 StartTime = 09:00
Každý den po dobu jednoho týdne, týden přeskočtePeriodRepeatDays = 1 PeriodWeeks = 2
Jednou v 01:00Čas začátku = 01:00
Poslední den každého měsíce v 9:00.PeriodRepeatDays = 1DayInMonth = -1StartTime = 09:00
Pátý den každého měsíce v 9:00PeriodRepeatDays = 1DayInMonth = 5StartTime = 09:00
Druhou středu v měsíci v 9:00PeriodRepeatDays = 1DayWeekMonth = 2DaysWeek = 3

Čas začátku = 09:00

Funkce spouštění úloh na pozadí ve variantách soubor a klient-server

Mechanismy pro provádění úloh na pozadí ve verzi souboru a klient-server se liší.

Ve verzi souboru musíte vytvořit vyhrazený klientský proces, který bude provádět úlohy na pozadí. K tomu musí klientský proces pravidelně volat funkci globálního kontextu ExecuteJobProcessing. Pouze jeden klientský proces za informační základna musí zpracovávat úlohy na pozadí (a podle toho volat tuto funkci). Pokud nebyl vytvořen klientský proces pro zpracování úloh na pozadí, pak se při programovém přístupu k enginu úloh zobrazí chyba „Správce úloh není aktivní“. Nedoporučuje se používat klientský proces, který zpracovává úlohy na pozadí pro jiné funkce.

Jakmile jsou spuštěny úlohy zpracování klientského procesu na pozadí, ostatní klientské procesy jsou schopny programově přistupovat k enginu úloh na pozadí, tzn. může spouštět a spravovat úlohy na pozadí.

Ve verzi klient-server K provádění úloh na pozadí se používá plánovač úloh, který je fyzicky umístěn ve správci clusteru. Pro všechny úlohy na pozadí ve frontě získá plánovač nejméně zatížený pracovní proces a použije jej ke spuštění odpovídající úlohy na pozadí. Pracovní proces provede úlohu a oznámí plánovači výsledky provedení.

Ve verzi klient-server je možné blokovat provádění rutinních úloh. Provádění rutinních úloh je blokováno v následujících případech:

  • Na informační základnu bylo nainstalováno explicitní blokování rutinních úkolů. Zámek lze nastavit pomocí konzoly clusteru;
  • Na infobázi je blok připojení. Zámek lze nastavit pomocí konzoly clusteru;
  • Metoda SetExclusiveMode() s parametrem True byla volána z vestavěného jazyka;
  • V některých jiných případech (například při aktualizaci konfigurace databáze).

Zpracování spouštění a prohlížení naplánovaných úloh můžete stáhnout zde.