Úlohy na pozadí: funkcie, možnosti, nastavenia. Programové spustenie úlohy na pozadí 1 s riadenými formulármi a nastavením súboru úloh na pozadí

Pravdepodobne každý programátor 1C 8.3 musel skôr alebo neskôr nastaviť vykonávanie určitých úloh podľa plánu. Nižšie dám Detailný popis tieto mechanizmy, dúfam, že budú užitočná informácia pre začínajúcich programátorov 1C. To je veľmi výhodné, pretože to nevyžaduje ľudské akcie, naplánovaná úloha je nakonfigurovaná raz a funguje podľa vášho plánu.

Podrobný návod s príkladom nájdete nižšie.

Aké sú naplánované úlohy a úlohy na pozadí v 1C

  • Naplánované úlohy je špeciálny mechanizmus 1C enterprise 8.3 určený na vykonávanie konkrétnej akcie v danom rozvrhu.
  • Práca na pozadí- objekty generované naplánovanou úlohou, ktorá priamo vykonáva inherentnú akciu bez účasti používateľa alebo programátora 1C 8.2.

Mechanizmus naplánovaných úloh a úloh na pozadí funguje vďaka funkcionalite DBMS v režime klient-server (SQL). Ak máte databázu súborov, úlohu možno tiež nakonfigurovať, ale trochu iným spôsobom.

Nastavenie úloh na pozadí v prevádzkovom režime klient-server 1C

Na začiatok si vytvorme nový objekt metadát – naplánovanú úlohu. Svoju úlohu pomenujem „LoadingCurrency Rates“. Zvážte paletu vlastností tohto konfiguračného objektu:

Získajte 267 1C video lekcií zadarmo:

  • Názov metódy— cesta k procedúre, ktorá sa vykoná v úlohe na pozadí podľa zadaného plánu. Postup musí byť v zdieľanom module. Odporúča sa nepoužívať štandardné, ale vytvoriť si vlastné. Nezabudnite, že úlohy na pozadí bežia na serveri!
  • Použitie- znak použitia naplánovanej úlohy.
  • vopred určené Označuje, či je naplánovaná úloha preddefinovaná. Ak chcete, aby naplánovaná úloha fungovala ihneď po umiestnení do databázy, zadajte tento príznak. V opačnom prípade budete musieť použiť spracovanie "Konzola úloh" alebo zavolať úlohu, aby sa spustila programovo.
  • Počet opakovaní pri zlyhaní úlohy— koľkokrát bola úloha na pozadí reštartovaná, ak bola vykonaná s chybou.
  • Interval opakovania úlohy- ako často sa úloha na pozadí reštartuje, ak bola dokončená s chybou.

A najzaujímavejšie nastavenie - Rozvrh:

Tu môžete nastaviť interval spustenia procedúry zadaný v poli "Názov metódy". Nechajte ma nastaviť

Pozor! Nezabudnite vypnúť blokovanie naplánovaných úloh a úloh na pozadí na úrovni DBMS!

Môžete to urobiť v administračnej utilite verzie klient-server alebo pri vytváraní novej databázy:

Nastavenie naplánovaných úloh v súborovom režime prevádzky 1C

V režime súborov je nastavenie takýchto úloh o niečo zložitejšie. Pre takúto úlohu musí byť spustená samostatná relácia programu 1C. Často to rieši inštitúcia „technického“ používateľa, ktorého relácia vždy beží.

V režime súborov nastane inicializácia naplánovanej úlohy pri spustení metódy "ExecuteJobProcessing()".

Pre konkrétneho používateľa je možné nakonfigurovať túto metódu na spustenie pomocou inej metódy −

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

  • Názov procedúry— názov postupu spojeného ako obsluha čakania. Názov exportovanej procedúry pre modul riadenej aplikácie (bežný aplikačný modul) alebo globálny zdieľaný modul. Postup musí byť umiestnený na klientovi.
  • Interval— obdobie medzi vykonaním operácií v sekundách.
  • raz- ako dokončiť úlohu, raz alebo nie.

ConnectWaitingHandler, 3600 );

Dvojminútové video ukazuje, ako nastaviť naplánovanú úlohu v konfigurátore 1C:

1C Enterprise má vo svojich konfiguráciách naplánované úlohy a úlohy na pozadí. Tieto úlohy sú naplánované podľa plánu pre každú úlohu. Niektoré z úloh sa na začiatku vykonávajú na časovači po určitom počte sekúnd, čo môže nepriaznivo ovplyvniť výkon a jednoznačne narúšať prácu v informačnej databáze.

Ak chcete upraviť naplánované úlohy a úlohy na pozadí na karte správy, vyberte vľavo "Pravidelné úlohy a úlohy na pozadí". Zobrazí sa zoznam existujúcich úloh, ich stav, plán a ďalšie informácie.

Niekoľkonásobným kliknutím na ktorúkoľvek z úloh sa otvorí okno s vlastnosťami tejto úlohy. Tu môžete zmeniť mnohé nastavenia podľa svojho vkusu, vrátane plánu tejto úlohy. Ak chcete zakázať úlohu, políčko „Povolené“ musí byť zrušené. Ale ak sa má úloha spustiť podľa plánu, je mimoriadne dôležité použiť samostatného používateľa s plnými právami pre všetky úlohy na pozadí.

Parametre harmonogramu úloh sú veľmi flexibilné, ale aj tak je žiaduce nastaviť všetky úlohy tak, aby bežala iba 1 úloha súčasne a najlepšie v mimopracovnom čase. Výnimkou môže byť len synchronizácia viacerých súvisiacich infobáz, napríklad podnikové účtovníctvo + mzdy a personálny manažment.

Stiahnutie bankového klasifikátora – nedeľa 4:30
Načítavanie výmenných kurzov - každý deň; 7:00
Extrahovanie textov - každý deň; 6:00.
Správy pre účty pracovného toku – každý deň; každých 10 800 sekúnd.
Aktualizácia jednotiek - každý deň; od 5:00:00 raz denne
Aktualizácia úloh účtovníka - každý deň; od 6:30:00 raz denne
Aktualizácia indexu PPD (fulltextové vyhľadávanie) - každý deň; každých 10 800 sekúnd.
Súhrnná prestavba - každý deň, podľa dňa v týždni [sobota]; od 3:00:00 raz denne
Prepočet aktuálnych hodnôt relatívnych dátumov zákazu zmien - každý deň; od 7:00:00 raz denne
Zlúčiť index PPD (úplné textové vyhľadávanie) - každý deň; od 4:00:00 raz denne
Odstránenie zastaraných informácií o synchronizácii - každý deň; od 3:30:00 raz denne
Nastavenie obdobia vypočítaných súčtov - každý deň, 5. deň v mesiaci; od 1:00:00 raz denne

Koncepcia asynchrónneho programovania

Asynchrónna koncepcia programovania spočíva v tom, že výsledok vykonania funkcie nie je dostupný okamžite, ale po určitom čase vo forme nejakého asynchrónneho (porušujúceho normálne poradie vykonávania) volania.

Tie. Hlavnou myšlienkou asynchrónneho programovania je začať jednotlivé volania metód a pokračovať v ďalšej práci paralelne bez čakania na dokončenie volaní.

Niektoré metódy, ktorých pravdepodobnosť výnimiek je minimalizovaná, nepotrebujú asynchrónny prístup, iné ho však vyžadujú na samom začiatku vývoja.

Ako je zrejmé z grafov, v modeli synchrónneho programovania neexistuje koeficient užitočných interaktívnych akcií používateľa, pretože systém blokuje používateľské rozhranie, zatiaľ čo v asynchrónnom modeli používateľ naďalej aktívne pracuje v systéme.

Pri synchrónnom vykonávaní má aplikácia iba jedno vlákno. S modelom asynchrónneho programovania môžete spúšťať mnoho paralelných vlákien a reagovať na nové akcie používateľov počas ich spúšťania. Po dokončení n-vlákna zobrazíte výsledok na obrazovke.

Úlohy na pozadí v 1C:Enterprise 8

V 1C:Enterprise 8 sú úlohy na pozadí navrhnuté tak, aby vykonávali aplikačné úlohy asynchrónne. Môžu vytvárať podradené úlohy na pozadí, napríklad na paralelizáciu zložitých výpočtov na rôznych pracovných serveroch klastra v režime prevádzky klient-server.

Je možné obmedziť vykonávanie úloh na pozadí, ktoré majú rovnaké metódy, podľa určitého atribútu aplikácie. Programové vytváranie a správa úloh na pozadí je možná z akéhokoľvek používateľského pripojenia informačnú základňu systémov. Úloha na pozadí sa spustí ako používateľ, ktorý ju vytvoril.

Mechanizmus úloh funguje vo verziách práce klient-server aj v súboroch, ale možnosti správy a vykonávania úloh v oboch verziách sú trochu odlišné.

Možnosť klient-server

Vo verzii klient-server sú úlohy naplánované plánovačom úloh, ktorý je fyzicky umiestnený v správcovi klastrov.

Plánovač pravidelne kontroluje požiadavky na spustenie úloh na pozadí. Ak existujú úlohy, ktoré je potrebné vykonať, plánovač určí najmenej zaťažené pracovné procesy klastra a postupne každému z nich priradí úlohu na vykonanie. Rovnaký pracovný postup teda môže potenciálne spúšťať viacero úloh paralelne. Po prijatí úlohy do pracovného toku pracovný tok vytvorí spojenie s informačnou bázou a vykoná úlohu v rámci tohto spojenia. Po spustení úlohy pracovný tok upozorní plánovač na úspech alebo zlyhanie úlohy.

Možnosť súboru

Počnúc verziou platformy 8.3.3.641 vývojári výrazne zjednodušili prácu s úlohami na pozadí vo verzii súboru.

Predtým si automatické vykonávanie úloh vyžadovalo spustenie samostatnej ďalšej relácie 1C:Enterprise používanej ako plánovač úloh. A v tejto relácii bolo potrebné pravidelne vykonávať metódu vstavaného jazyka ExecuteProcessingJobs(). Tento prístup bol dosť ťažkopádny, nepohodlný a výrazne obmedzoval používanie úloh na pozadí a naplánovaných úloh v súborovej verzii práce.

Teraz je všetko oveľa jednoduchšie. Ak sa spustí tenký alebo hrubý klient alebo ak má webový server pripojenia klientov, každá z týchto aplikácií automaticky spustí ďalšie vlákno s pripojením k databáze. Tieto vlákna sa zaoberajú skutočnosťou, že vykonávajú na pozadí a plánované úlohy.

Každá z týchto aplikácií spúšťa svoje vlastné úlohy na pozadí. Ak aplikácia spustila niekoľko úloh na pozadí, vykonajú sa postupne v poradí, v akom boli prijaté.

Zjavné mínus 1C úlohy na pozadí: keďže sa vykonávajú na strane servera, nie je tu možnosť interaktívnej práce s používateľom (napríklad nemôžete zobraziť správu ani iné informácie, všetky tieto údaje je potrebné uložiť v rámci infobázy a ďalej nejakým spôsobom spracovávať) .

Treba poznamenať, že úlohy na pozadí sú čisto programové objekty a nemôžu byť uložené v databáze. To znamená, že môžeme vytvoriť iba inštanciu triedy, inicializovať jej vlastnosti a spustiť ju na vykonanie.

Príklad asynchrónneho vykonávania kódu v 1C:Enterprise 8

„Písanie programov, v ktorých výsledok volania funkcie prichádza v neznámom čase, je oveľa náročnejšie ako bežné programy. Vnorené hovory, spracovanie chýb, kontrola nad tým, čo sa deje - všetko sa stáva komplikovanejším, “hovoria to len tí, ktorí nevedia, ako správne využívať možnosti platformy, ale nie my!

Poďme demonštrovať všetku jednoduchosť a eleganciu asynchrónneho vykonávania kódu v 1C:Enterprise 8!

Krok 1. Vytvorme nový IB pre vývoj konfigurácie

Krok 2 V konfigurácii pridajte všeobecný modul "AsynchronousHandlers"

Prečo sme pridali spoločný modul? Všetko je tu jednoduché: na vykonávanie asynchrónnych operácií v 1C:Enterprise 8 sa používajú úlohy na pozadí, ktoré majú svojho vlastného správcu - „BackgroundTask Manager“. Tento objekt má metódu "Spustiť", pomocou ktorej sa spustí úloha na pozadí.

Obráťme sa na asistenta syntaxe.

Budeme teda potrebovať spoločný modul.

Krok 3 Vo všeobecnom module "AsynchronousHandlers" pridajte exportnú procedúru OurDurationOperation()

Procedúra OurDurationOperation(Duration) Export // Simulácia nepretržitej akcie (Duration sek.). OperationStartDate = CurrentDate(); Kým CurrentDate() - OperationStartDate< Длительность Цикл КонецЦикла; КонецПроцедуры

Krok 4 Do konfigurácie pridáme spracovanie „AsynchronousProgrammingConcept“ (môžete vytvoriť externé spracovanie)

Pridajte jeden atribút do formulára:

Trvanie (číslo)

a dva tímy

Vykonajte dlhú operáciu;

Vykonajte Long-runningOperation asynchrónne.

Krok 5 Podľa asistenta syntaxe vyplňte modul formulára

&AtClient Procedúra PerformLongOperation(Command) PerformLongOperationOnServer(); EndProcedure &OnServer Procedure PerformLongOperationOnServer() AsynchronousHandlers.OurLongOperation(Duration); EndProcedure &OnClient Procedure ExecuteLong-runningOperationAsynchronously(Command) ExecuteLong-runningOperationAsynchronouslyOnServer(); EndProcedure &AtServer Procedure PerformLong-runningOperation AsynchronouslyAtServer() Parameters = New Array; Parameters.Add(Duration); BackgroundJobs.Run("AsynchronousHandlers.Our LongOperation", Parametre, Nový UniqueIdentifier, "Príklad konceptu asynchrónneho programovania"); EndProcedure

Krok 6 Spúšťame a kontrolujeme!

výsledok:

Ak klikneme na tlačidlo „Vykonať dlhú operáciu“, používateľské rozhranie sa zablokuje na sekundy „Trvanie“;

Ak klikneme na tlačidlo „Vykonať dlhotrvajúcu operáciu asynchrónne“, používateľské rozhranie sa nezablokuje a programový kód sa vykoná paralelne.

To, že programový kód beží asynchrónne, môžeme overiť pohľadom na protokol.

Programový kód, ktorý beží na „pozadí“ môžeme odladiť, ak v možnostiach ladenia nastavíme príslušnú vlastnosť.

Príklad asynchrónneho vykonávania kódu v 1C:Enterprise 8 pomocou BSP

Zoberme si príklad implementácie konceptu asynchrónneho programovania v 1C:Enterprise 8 v BSP na príklade spracovania Current Affairs.

Logika je nasledovná: počas spúšťania programu sa inicializuje pracovný priestor úvodná stránka, kde si môžete zobraziť spracovateľský formulár „Aktuálne udalosti“. Tento formulár je vyplnený aktuálnymi záležitosťami používateľa a jeho vyplnenie si vyžaduje čas. Ak by vývojári nemali možnosť asynchrónne spúšťať kód, používateľské rozhranie by bolo zablokované po dobu vypĺňania formulára na spracovanie!

Poďme analyzovať programový kód formulára.

Udalosť formulára "OnCreateOnServer" volá procedúru "RunBackgroundJob" - to je to, čo potrebujeme.

Bez toho, aby sme sa rozptyľovali nuansami, analyzujeme tento postup

A tu vidíme, že sa používa správca úloh na pozadí a jeho metóda Execute. Upozorňujeme, že vývojári uchovávajú jedinečné ID úlohy na pozadí.

Na tento účel vývojári používajú metódu ConnectWaitingHandler(<ИмяПроцедуры>, <Интервал>, <Однократно>).



V háčikovom postupe Pluggable_CheckJobExecution() vývojári volajú funkciu JobCompleted (JobId)


Táto funkcia kontroluje vykonanie úlohy na pozadí podľa ID.

Je potrebné poznamenať, že BSP vyvinul spoločné moduly na podporu prevádzky dlhodobých serverových operácií.

Asynchrónny koncept programovania v 1C:Enterprise 8 teda mierne zvyšuje náročnosť riešenia problémov pre vývojára, no výrazne zlepšuje funkčnosť programu z pohľadu používateľa.

Niektoré úlohy v správe dokumentov a účtovníctve môže byť potrebné vykonávať pravidelne. Napríklad na dvadsiatych číslach. Alebo denne.

Väčšinou sa firma snaží vytvárať pravidlá o realizácii takýchto úloh – kto, kedy a ako má úlohu vykonávať, kto ju má kontrolovať.

Takéto úlohy sa nazývajú - regulované, to znamená, že sa vykonávajú podľa predpisov.

V IT je monitorovanie často rutinou.

Je to dobre známe systémový administrátor- existuje špeciálne programy, ktoré pravidelne kontrolujú stav serverov a sieťovej infraštruktúry a posielajú SMS resp email správca.

Podobné veci existujú aj pre webmasterov – skontrolovať dostupnosť stránky počas dňa.

V 1C sa monitorovacie úlohy a akékoľvek ďalšie pravidelné úlohy, ktoré by sa mali vykonávať automaticky podľa plánu, vykonávajú pomocou mechanizmu 1C Scheduled Tasks.

Povedzme si o nich dnes.

Plánované úlohy 1C

Naplánované úlohy 1C sú úlohy, ktoré vám umožňujú vykonávať tak, ako to robí, ale podľa plánu.

Samotná rutinná úloha 1C v konfigurátore je spôsob, ako špecifikovať nastavenia a nastaviť plán. Mimochodom, plán je možné neskôr dynamicky meniť v režime 1C Enterprise.

Úlohy na pozadí je možné vytvárať z textu programu v jazyku 1C ľubovoľne bez naplánovanej úlohy 1C - pre paralelné počítanie na serveri.

Vykonávanie rutinných úloh 1C je možné dočasne deaktivovať - ​​v.

Pridanie naplánovanej úlohy 1C

Plánované úlohy 1C sú v konfigurácii vo vetve Všeobecné / Plánované úlohy 1C. Pridajme novú naplánovanú úlohu 1C, zadajte jej názov.

Vo vlastnosti plánovanej úlohy 1C je uvedený názov metódy, ako aj v. Funkcia bude umiestnená v spoločnom module so zaškrtnutým políčkom Server vo vlastnostiach, to znamená, že modul musí byť pridaný vopred.

Vlastnosť naplánovanej úlohy 1C – Názov úlohy – určuje názov, pod ktorým sa úloha zobrazí v nástrojoch na správu úloh.

Vlastnosť naplánovanej úlohy 1C - Key - umožňuje zoskupiť niekoľko rôznych naplánovaných úloh 1C. V rovnakom čase môže byť spustená iba jedna úloha s rovnakou hodnotou kľúča. Samotná hodnota môže byť ľubovoľná. Prázdna hodnota sa pri kontrole neberie do úvahy (to znamená, že sa považuje za nevyplnenú).

Vlastnosť naplánovanej úlohy 1C - Preddefinované - určuje, že pri spustení 1C Enterprise sa takáto úloha vytvorí a v jednej kópii s plánom uvedeným v konfigurátore. Nepreddefinované úlohy sa objavia programovo, keď príde plán.

AT typické konfigurácie, napríklad Accounting Revision 2.0, také rutinné úlohy 1C, ako je aktualizácia konfigurácie a prepočet výsledkov, sú preddefinované, ale napríklad výmena údajov alebo odložené pohyby nie sú preddefinované.

Využitie – zahŕňa úlohu (to znamená, že sa vykoná len vtedy, ak je zaškrtnuté políčko Využitie).

Opakovanie zlyhania - ako môžete ľahko uhádnuť, znamená reštartovanie úlohy, ak sa nepodarilo úspešne dokončiť prvýkrát - je uvedené, koľkokrát sa má reštartovať a koľkokrát po zlyhaní.

Správa a monitorovanie naplánovaných úloh 1C

Na správu naplánovaných úloh 1C existuje špeciálne typické spracovanie konzoly úloh. Dá sa nájsť aj na .

Toto spracovanie sa vzťahuje na takzvané univerzálne externé typické 1C spracovanie, ktoré často nie je zahrnuté v konfigurácii, ale distribuované samostatne, napríklad na diskoch ITS.

So spracovaním Job Console môžete:

  • Povoliť / zakázať vykonanie naplánovanej úlohy 1C
  • Priradiť / zmeniť plán naplánovanej úlohy 1C (a ďalšie parametre)
  • Zadajte používateľa 1C, v mene ktorého sa vykoná naplánovaná úloha 1C
  • Zobraziť - aké úlohy boli dokončené, kedy a s akým výsledkom, chyby pri dokončení úloh 1C
  • Vykonajte úlohu.

Kópie databáz a rutinných úloh 1C

Ak sa použije server 1C, nastane nasledujúca situácia:

  • Pre ich vlastné účely (napríklad na programovanie) sa vytvorí kópia pracovnej databázy
  • V kópii databázy sa pracuje, testuje atď.
  • V takejto testovacej základni sa zabúda vypnúť rutinné úlohy 1C.

Zatiaľ čo rutinné úlohy 1C vykonávajú úlohy súvisiace iba s ich informačnou základňou, potom v tom nie je nič.

Rutinné úlohy 1C však často môžu ukladať údaje o akýchkoľvek súboroch do iných databáz, vymieňať si a odosielať e-maily.

V tomto prípade môže vzniknúť zaujímavá zmes medzi výsledkom vykonávania rutinných úloh 1C v pracovnej databáze a kópiami.

Rutinné úlohy 1C pre kópie pracovnej základne musia byť deaktivované.

Plnenie a neplnenie rutinných úloh 1C

Pri vytváraní naplánovaných úloh 1C si musíte pamätať:

  • Úlohy prebiehajú samé od seba – treba ich sledovať
  • Úlohy bežia v module na serveri
  • Úlohy sa vykonávajú pod iným používateľom systému Windows s rôznymi právami.

Najprv musíte skontrolovať, či je úloha spustená a možno ju vykonať ako naplánovanú úlohu 1C.

Po druhé, modul servera znamená, že veľa vecí, ktoré sú dostupné na klientovi, nie je dostupných. Napríklad niekedy nie je možné zaúčtovať všetky dokumenty iba na server, pretože ich algoritmus môže ustanoviť, že odosielanie spustí manuálne používateľ a možno použiť neserverové funkcie, napr.
Upozornenie ("Ahoj!")

Po tretie, ak sa úloha zaoberá niečím mimo základne 1C, potom sa práva stanú dôležitými. Používateľ systému Windows Pod ktorým sa úloha spúšťa.

Pri vývoji je obzvlášť dôležitý tretí bod. Ak modul nemožno vykonať na serveri, úloha sa v zásade nevykoná. Pre kontrolu je potrebné spustiť úlohu aspoň raz a vidieť výsledok „Úloha dokončená“ v spracovaní Konzoly úloh.

Pri uchovávaní záznamov je často potrebné pravidelne vykonávať určité činnosti bez zásahu používateľa. Naplánované úlohy a úlohy na pozadí v 1C sú mechanizmy, ktoré sú na tento účel poskytnuté v ôsmej verzii programu a umožňujú:

  • Nastavte včasné doručovanie dokumentov;
  • Vypočítajte zostatky a súčty;
  • Zabezpečte pravidelné vysielanie;
  • Skontrolujte a odstráňte nepodstatné údaje.

Pozadie a naplánovaná úloha - čo to je a kde je nakonfigurovaná

Plánovaná úloha je mechanizmus zabudovaný do 1C, ktorý vám umožňuje konfigurovať a v súlade so stanoveným harmonogramom a frekvenciou vykonávať určitú postupnosť akcií.

Úloha na pozadí je akcia generovaná plánovanou operáciou a nevyžaduje priamu účasť používateľa.

Naplánovaná úloha sa vytvorí v režime konfigurátora:

  • V okne konfiguračného stromu nájdeme príslušnú vetvu (obr. 1);
  • Kliknite na tlačidlo Pridať;
  • V okne, ktoré sa otvorí, musíte zadať názov, ktorý vám umožní identifikovať objekt v konfigurácii;

Obr.2

  • Oproti nápisu „Rozvrh“ (obr. 2) je nápis „Otvoriť“, kliknutím na ktorý sa otvorí okno pre nastavenie času a frekvencie vykonávania psovoda (obr. 3);

Obr.3

  • Ďalej je potrebné vyplniť „Názov metódy“ (tu bude zadaný názov procedúry vyvolanej zo všeobecného modulu a popisujúci algoritmus správania programu);
  • Polia „Názov“ a „Kľúč“ vám umožňujú zoskupovať objekty;
  • Zaškrtnuté políčko „Použitie“ označuje aktivitu plánovanej operácie;
  • "Predefinovaný" by mal byť nastavený, ak má byť handler spustený ihneď po pridaní do databázy, inak môže byť spustený z príslušného spracovania (viac o tom nižšie);
  • Parametre Počet opakovaní a Interval opakovaní popisujú správanie programu v prípade, že sa vyskytne výnimka pri vykonávaní úlohy na pozadí.

Takže pomocou mechanizmu plánovaných operácií môžete nastaviť plán a hlavné akcie úloh na pozadí. Poďme sa teraz pozrieť na ich vlastnosti.

Vlastnosti úloh na pozadí

Hlavnou črtou tohto mechanizmu je, že proces na pozadí prebieha asynchrónne.

Čo to znamená. Faktom je, že pri synchrónnom pracovnom modeli, ak sa vykoná akýkoľvek algoritmus, je používateľské rozhranie zablokované. V našom prípade môže používateľ pokračovať v zadávaní a úprave údajov, aj keď je procedúra spustená. Model asynchrónneho programovania zahŕňa oddelenie výpočtových vlákien.

Úlohy na pozadí v 1C teda môžu generovať svoje vlastné procesy a distribuovať výpočty medzi rôzne servery, ktoré sú súčasťou toho istého klastra.

Funkcie práce v režime klient-server

  • Plánovanie a riadenie vykonávania vykonáva plánovač zo serverového klastra;
  • Ak sa objaví požiadavka na spustenie, plánovač vyhľadá pracovné procesy klastra s minimálnym zaťažením a rozdelí im úlohy na vykonanie;
  • Každý proces môže vykonávať viacero paralelných výpočtov;
  • Po príchode úlohy sa proces pripojí k databáze a vykoná v nej algoritmus;
  • Proces hlási výsledky plánovačovi.

Úlohy na pozadí v režime súborov

Pred verziou platformy 8.3.3.641 prinášala práca s úlohami na pozadí vo verzii súboru určité ťažkosti:

  1. Bolo potrebné spustiť samostatnú reláciu, ktorá by fungovala nepretržite a nahradila plánovač;
  2. Táto relácia by mala pravidelne vykonávať metódu ExecuteJobProcessing().

Po aktualizácii každé spustenie hrubého a tenkého klienta, ak je v nastaveniach spustenia (obr. 4) v poli „Ďalšie“ zadaný kľúč AllowExecuteScheduledJobs, iniciuje ďalšie vlákno pripojenia k databáze, ktoré nemá vplyv na používateľa pracovať akýmkoľvek spôsobom, ale vykonáva iba úlohy na pozadí.operácie.

Obr.4

Je potrebné vziať do úvahy, že ani v súborovej verzii prevádzky procesy na pozadí neumožňujú interaktívnu prácu s používateľom (nezobrazia sa servisné hlásenia, upozornenia, otázky). To znamená, že musia byť zakódované, ako keby boli spustené na strane servera.

Ako zakázať naplánované úlohy

Nepoužívané úlohy je možné zakázať jednoduchým zrušením začiarknutia políčka „Použiť“ vo vlastnostiach objektu.

Ak administrátor potrebuje zakázať používanie rutinných operácií a operácií na pozadí pre celú databázu ako celok (napríklad na serveri je uložených niekoľko databáz, z ktorých iba jedna je hlavná a ostatné sa používajú iba na vývoj) , musíte použiť pomocný program na správu databázy. Môžete tiež zaškrtnúť políčko "Nastaviť blokovanie naplánovaných úloh" v databáze vytvorenej na serveri.

Disky ITS majú navyše špeciálne spracovanie „Job Console“, ktoré vám umožňuje upravovať plán procesov na pozadí a meniť ich aktivitu.