Jak vypnout program plánovače úloh 1c. Automatické vypnutí počítače

Koncept asynchronního programování

Koncept asynchronního programování spočívá v tom, že výsledek funkce není k dispozici okamžitě, ale po nějaké době ve formě nějakého asynchronního (porušujícího normální pořadí provádění) volání.

Tito. Hlavní myšlenkou asynchronního programování je vydávat jednotlivá volání metod a pokračovat v další práci paralelně bez čekání na dokončení volání.

Některé metody, které minimalizují pravděpodobnost výjimek, nevyžadují asynchronní přístup, jiné jej však vyžadují hned na začátku vývoje.

Jak je patrné z grafů, u synchronního programovacího modelu neexistuje žádný koeficient užitečných interaktivních uživatelských akcí, protože systém blokuje uživatelské rozhraní, zatímco u asynchronního modelu uživatel pokračuje v aktivní práci v systému.

Při synchronním běhu má aplikace pouze jedno vlákno. Díky asynchronnímu programovacímu modelu můžete paralelně spouštět více vláken a reagovat na nové akce uživatelů během jejich běhu. Po provedení n-vlákna zobrazíte výsledek na obrazovce.

Úlohy na pozadí v 1C:Enterprise 8

V 1C:Enterprise 8 jsou úlohy na pozadí navrženy tak, aby prováděly aplikační úlohy asynchronně. Mohou generovat podřízené úlohy na pozadí, například pro paralelizaci složitých výpočtů na různých pracovních serverech klastru v režimu provozu klient-server.

Je možné omezit provádění úloh na pozadí, které mají stejné metody na základě konkrétního aplikačního kritéria. Programové vytváření a správa úloh na pozadí je možná z libovolného uživatelského připojení k systémové informační bázi. Úloha na pozadí běží jménem uživatele, který ji vytvořil.

Mechanismus úloh funguje v režimu klient-server i v souborovém režimu, ale možnosti správy a provádění úloh v obou verzích jsou poněkud odlišné.

Možnost klient-server

Ve verzi klient-server provádí plánování úloh plánovač úloh, který je fyzicky umístěn ve správci clusteru.

Plánovač pravidelně kontroluje, zda byly přijaty nějaké požadavky na spuštění úloh na pozadí. Pokud existují úlohy, které je třeba provést, plánovač určí nejméně zatížené pracovní procesy v clusteru a postupně každému z nich přiřadí jeho úkol ke spuštění. Stejný pracovní proces tedy může potenciálně provádět více úloh paralelně. Poté, co pracovní proces přijme úlohu, pracovní proces naváže připojení k informační databázi a provede úlohu v rámci tohoto připojení. Po dokončení úlohy pracovní proces oznámí plánovači, zda byla úloha dokončena úspěšně nebo neúspěšně.

Možnost souboru

Počínaje verzí platformy 8.3.3.641 vývojáři výrazně zjednodušili práci s úlohami na pozadí ve verzi souboru.

Dříve bylo pro automatické spouštění úloh nutné spustit samostatnou další relaci 1C:Enterprise, která se používala jako plánovač úloh. A v této relaci bylo nutné periodicky provádět vestavěnou jazykovou metodu ExecuteTaskProcessing(). Tento přístup byl značně těžkopádný, nepohodlný a značně omezoval použití pozadí a rutinních úloh v souborové verzi práce.

Nyní je vše mnohem jednodušší. Pokud se spustí tenký nebo tlustý klient a také pokud má webový server klientská připojení, pak se v každé z těchto aplikací automaticky spustí další vlákno s připojením k databázi. Tato vlákna se zabývají prováděním na pozadí a rutinními úkoly.

Každá z uvedených aplikací provádí své vlastní úlohy na pozadí. Pokud aplikace spustila několik úloh na pozadí, jsou prováděny postupně v pořadí, v jakém byly přijaty.

Zjevná nevýhoda úloh na pozadí 1C: jelikož jsou spouštěny na straně serveru, není zde možnost interaktivní práce s uživatelem (např. nelze zobrazit zprávu nebo jiné informace; všechna tato data je nutné ukládat v informační základně a dále zpracovávat v nějakým způsobem).

Je třeba poznamenat, že úlohy na pozadí jsou čistě softwarové objekty a nelze je ukládat do databáze. To znamená, že můžeme pouze vytvořit instanci třídy, inicializovat její vlastnosti a spustit ji ke spuštění.

Příklad asynchronního spouštění kódu v 1C:Enterprise 8

„Psaní programů, ve kterých výsledek volání funkce přichází neznámo kdy, je mnohem obtížnější než běžné. Vnořené hovory, zpracování chyb, kontrola nad tím, co se děje – všechno se komplikuje,“ to řeknou jen ti, kteří nevědí, jak správně využívat možnosti platformy, ale ne my!

Pojďme si ukázat jednoduchost a eleganci asynchronního spouštění kódu v 1C:Enterprise 8!

Krok 1. Vytvořme nový systém informační bezpečnosti pro vývoj konfigurace

Krok 2. V konfiguraci přidáme obecný modul „Asynchronous Handlers“

Proč jsme přidali sdílený modul? Všechno je zde jednoduché: k provádění asynchronních operací v 1C:Enterprise 8 se používají úlohy na pozadí, které mají svého vlastního správce - „BackgroundTask Manager“. Tento objekt má metodu „Spustit“, pomocí které se spouští úloha na pozadí.

Pojďme k asistentovi syntaxe.

Budeme tedy potřebovat společný modul.

Krok 3 Do obecného modulu „Asyncronous Handlers“ přidáme exportní proceduru OurLongOperation()

Postup OurLongOperation(Duration) Export // Simulace dlouhodobé akce (Duration sec.). OperationStartDate = CurrentDate(); While CurrentDate() - Datum zahájení operace< Длительность Цикл КонецЦикла; КонецПроцедуры

Krok 4. Přidejte do konfigurace zpracování „Asynchronous Programming Concept“ (můžete vytvořit externí zpracování)

Přidejte do formuláře jeden atribut:

Délka (číslo)

a dva týmy

Proveďte LongOperation;

Proveďte dlouho-dlouhou operaci asynchronně.

Krok 5. Podle asistenta syntaxe vyplňte modul formuláře

&Na klientské proceduře Proveďte Long-RunningOperation(Command) ExecuteLong-RunningOperationOnServer(); EndProcedure &OnServer Procedure ExecuteLongOperationOnServer() AsynchronousHandlers.OurLongOperation(Duration); Konec procedury &Na klientovi Procedura Provést dlouhodobou operaci asynchronně (příkaz) Provést dlouhodobou operaci asynchronně na serveru (); Konec procedury &Na serveru Procedura Provést dlouhotrvající operaci asynchronně Na serveru Server() Parametry = New Array; Parameters.Add(Duration); BackgroundTasks.Execute("AsynchronousHandlers.OurLongOperation", Parametry, New UniqueIdentifier, "Příklad konceptu asynchronního programování"); EndProcedure

Krok 6. Pojďme spustit a zkontrolovat!

Výsledek:

Pokud klikneme na tlačítko „Provést dlouhou operaci“, pak se uživatelské rozhraní zablokuje na „Trvání“ sekund;

Pokud klikneme na tlačítko „Provést dlouhotrvající operaci asynchronně“, uživatelské rozhraní není blokováno a programový kód se provádí paralelně.

Že je programový kód prováděn asynchronně, můžeme ověřit pohledem do logu.

Můžeme ladit programový kód, který běží na „pozadí“, pokud v parametrech ladění nastavíme příslušnou vlastnost.

Příklad asynchronního spouštění kódu v 1C:Enterprise 8 pomocí BSP

Podívejme se na příklad implementace konceptu asynchronního programování v 1C:Enterprise 8 v BSP na příkladu zpracování „Current Affairs“.

Logika je následující: při spuštění programu se inicializuje pracovní oblast úvodní stránky, kde lze zobrazit formulář pro zpracování „Aktuální záležitosti“. Tento formulář vyplňují aktuální záležitosti uživatele a jeho vyplnění nějakou dobu trvá. Pokud by vývojáři neměli možnost spouštět kód asynchronně, uživatelské rozhraní by bylo během vyplňování formuláře pro zpracování zablokováno!

Pojďme analyzovat programový kód formuláře.

Událost formuláře „When CreatedOnServer“ volá proceduru „RunBackgroundTask“ – to je to, co potřebujeme.

Aniž bychom se nechali rozptylovat nuancemi, pojďme analyzovat tento postup

A zde vidíme, že se používá správce úloh na pozadí a jeho metoda „Spustit“. Všimněte si, že vývojáři ukládají jedinečné ID pro úlohu na pozadí.

K tomu vývojáři používají metodu ConnectWaitHandler(<ИмяПроцедуры>, <Интервал>, <Однократно>).



V propojeném postupu Connectable_CheckTaskComplete() vývojáři funkci volají JobCompleted (TaskID)


Tato funkce kontroluje provedení úlohy na pozadí podle identifikátoru.

Je třeba poznamenat, že BSP vyvinul obecné moduly pro podporu dlouhodobých serverových operací.

Koncept asynchronního programování v 1C:Enterprise 8 tedy mírně zvyšuje složitost řešení problémů pro vývojáře, ale výrazně zlepšuje funkčnost programu z pohledu uživatele.

Ahoj.
Už z tématu je jasné, že si budeme povídat automatické vypnutí počítače. Téma je velmi aktuální jak pro domácnost, tak pro kancelář.

V práci se často stává, že zaměstnanec opustí své pracoviště, zapomene vypnout počítač a někdy potřebuje jít domů, ale na počítači se provádějí některé úkony a počítač nejde vypnout.

Po zadání všech nastavení klikněte na „Použít“ nebo „OK“.

Chcete-li používat všechny funkce nástroje Shutdown, musíte použít parametry příkazového řádku.
Chcete-li zobrazit parametry nástroje Shutdown, přejděte na příkazový řádek (START - Všechny programy - Příslušenství - Příkazový řádek) a zadejte příkaz

Vypnout/? zobrazí informace nápovědy k programu

Zde je jedna z kombinací pro vypnutí počítače
C:\WINDOWS\system32\shutdown.exe -s -f -t 60
Kde
-s vypnutí místního PC
-f povolit vynucené uzavření všech spuštěných aplikací
-t xx nastavuje časovou prodlevu před vyvoláním procedury vypnutí počítače v sekundách - xx. Výchozí 20 sec.

Některé také vypínají plánovač, když se nepoužívá, což zkracuje dobu spouštění systému Windows.
Chcete-li plánovač deaktivovat, musíte v registru přejít do sekce HKLM/SYSTEM/CurrentControlSet/Services/Schedule pro parametr Start REG_DWORD a nastavit hodnotu na 0. Chcete-li vrátit vše tak, jak bylo, musíte nastavit hodnotu do 2.

Zanechte prosím svůj názor v komentářích.

P.S. Abych uvolnil Stalinův vtip

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 uvedu podrobný popis těchto mechanismů, doufám, že to budou 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:

Nedávno vyšel nový verze 8.3.6 programy "1C:Enterprise".

Byla připravena řada změn, které by měly rozhraní udělat Taxi pohodlnější, zlepšit jeho použitelnost.

Použitelnost rozhraní Taxi ve verzi 8.3.6

Příkaz "Zobrazit v seznamu".

Ve starém, nespravovaném rozhraní byl příkaz „Najít v seznamu“. Tento příkaz nebyl implementován ve spravovaném rozhraní. Ale po analýze nashromážděných zkušeností a zpětné vazby bylo rozhodnuto vrátit tento příkaz do rozhraní. Protože uživatelé předchozích verzí 1C:Enterprise to považovali za nutné a pohodlné. Protože přítomnost takového příkazu jistě zvyšuje použitelnost programu.

Teď se to jmenuje "Zobrazit v seznamu":

Tento příkaz se objeví ve formě položky registru informací a ve formách objektů: referenční knihy, dokumenty, typy charakteristik, obchodní procesy, úkoly, typy výpočtů, účty, uzly výměnného plánu, externí zdrojové tabulky a dimenze krychle externího zdroje dat tabulky.

U dokumentů zahrnutých do deníků to nebude jeden příkaz, ale podnabídka. Umožní vám to přejít jak do seznamu dokumentů, tak do kteréhokoli z časopisů, ve kterých je tento dokument obsažen.

Zobrazení obrázků a textu v panelu sekce.

Nyní si uživatel může nezávisle vybrat jednu nebo druhou možnost umístění:

obrázek vlevo, text vpravo

nebo text pod obrázkem.

Ovládací panel grafického diagramu.

K rozhraní Taxi Panel příkazů grafického diagramu byl vrácen. K použití této funkce nejsou potřeba žádné speciální dovednosti. Je to tak, že příkazový panel formuláře má nyní další zdroj příkazů - grafický diagram. Umístěte na formulář grafické schéma. Přidejte skupinu do formuláře - příkazový panel. Určete pro něj zdroj příkazu – grafický diagram.

Rozhraní taxi ve verzi 8.3.6.

Vyhledejte v nabídce funkcí.

Použití nabídky funkcí ve velkých konfiguracích bylo výrazně zjednodušeno. Nyní můžete rychle najít příkazy, i když nevíte, ve které sekci jsou.

Vzhled nabídky funkcí se mírně změnil. V pravém horním rohu se objevilo vyhledávací pole a ikona nastavení. Příkazy nastavení pro panely „Nastavení navigace“ a „Nastavení akcí“ byly odstraněny pod ikonou nastavení.

A abyste našli jakýkoli příkaz, nyní stačí začít psát hledaná slova na klávesnici. Kurzor se automaticky přesune do vyhledávacího pole a v něm se zobrazí znaky, které zadáte. Vyhledávání se provádí současně napříč několika fragmenty řetězců. Při psaní z klávesnice musí být fragmenty řádků od sebe odděleny mezerami.

Chcete-li například najít doklady o příjmu, můžete napsat „doc“ a poté oddělit mezerou „post“:

Aby byla navigace ve výsledcích vyhledávání snazší, platforma:

  • Zvýrazňuje nalezené fragmenty řetězců (včetně názvů podsystémů a skupin příkazů);
  • Zobrazuje výsledky v hierarchii sekcí a podsystémů.

Pokud se všechny výsledky nevejdou do nabídky funkcí, zobrazí se svislý posuvník a nabídku lze posouvat pomocí myši.

Při vyhledávání můžete používat pouze klávesnici. Je to pohodlné. Vyhledávací pole můžete vymazat stisknutím klávesy Esc. A nyní můžete vyvolat samotné menu funkcí pomocí klávesy F10.

Vyhledávání se provádí na serveru. Při vyhledávání se místo ikony lupy v levém horním rohu zobrazí animovaná ikona „kruhu“.

Práce s nestandardním rozlišením obrazovky (DPI).

Malé písmo a špatné vidění jsou dlouhodobými problémy v interakci člověka s počítačem. Snažili se to vyřešit v různých dobách, různými lidmi, různými způsoby. Programátoři zvětšili velikost písma ve svých aplikacích. Uživatelé zmenšili velikost obrazovky a zvýšili rozlišení obrazovky (dpi). Vývojáři Windows implementovali škálování rozhraní. Ale všechny tyto metody neposkytovaly uživateli jednoduchý a pohodlný způsob, jak přizpůsobit aplikaci tak, aby vyhovovala jeho potřebám.

Po analýze těchto problémů a zpětné vazby byl 1C:Enterprise přepnut do režimu s ohledem na dpi. To znamená, že nyní 1C:Enterprise nezávisle provádí škálování.

Můžete si všimnout, že zmizela neostrost textů. Prvky formuláře se začaly měnit a zobrazovat tak, jak měly (ve staré verzi bylo zápatí tabulkové části „pod“ obrazovkou). Je použito správné vnitřní polstrování, umístění a velikost panelových prvků (zmizelo rolování panelu řezu).

Plánovač.

V mnoha konfiguracích je potřeba zobrazovat data ve formě kalendáře nebo rozvrhu. Úlohy vizuálního plánování například často vznikají při automatizaci kosmetických salonů, zubních a veterinárních klinik, fitness center atd. V případě potřeby by takové úlohy mohly být částečně automatizovány pomocí existujících nástrojů v platformě. Implementace takových řešení však byla vždy velmi pracná a jejich funkčnost je nedostatečná. Navíc se špatně přenášely z jedné konfigurace do druhé a nezaručovaly stejný výkon v různých klientských aplikacích a různých operačních systémech.

Z těchto důvodů platforma verze 8.3.6 byl implementován nový nástroj - Plánovač. Je určen k automatizaci plánování úkolů, událostí, schůzek, kalendářů, plánů a podobných úkolů.

Plánovač může obsahovat ne jednu, ale několik časových měřítek, z nichž každá má svou vlastní frekvenci. To je výhodné v případech, kdy je třeba zobrazená data identifikovat, například s přesností dne a hodiny:

Pokud se všechny prvky, které je třeba zobrazit, nevejdou do jedné buňky, Plánovač místo toho zobrazí „+ Více“ a počet prvků, které jsou skryté. Kliknutím na tento nápis zobrazíte seznam všech skrytých prvků a otevřete kterýkoli z nich:

V případě potřeby můžete zapnout nebo vypnout zobrazení aktuálního času v plánovači.

Položky plánovače mohou zobrazovat čas začátku a konce, pouze čas začátku nebo vůbec žádný čas.

Intervaly pozadí můžete obarvit, abyste například jinou barvou zvýraznili mimopracovní dobu nebo víkendy.

Přidání dat do plánovače je jednoduché kliknutí myší. Otevře se okno pro rychlou úpravu prvku plánovače:

V tomto okně můžete nastavit text prvku (události). Pokud potřebujete změnit další vlastnosti prvku, klikněte na tlačítko « Upravit" Toto okno otevře standardní formulář pro úpravu prvku plánovače:

V něm již můžete nastavit začátek a konec prvku, určit hodnoty měření, pokud jsou použity, a také nastavit plán pro prvek, pokud se tato událost opakuje.

Existující prvky můžete upravovat buď prostřednictvím těchto formulářů, nebo přetažením prvků a změnou jejich ohraničení pomocí myši:

Plánovač podporuje operace skupinových úprav. To znamená, že můžete vybrat několik prvků najednou a přesunout je, kopírovat, měnit nebo mazat:

Plánovač poskytuje drag and drop nejen uvnitř sebe, ale také do/z jiných formulářových prvků. Tato funkce může být užitečná například k tomu, aby bylo možné jednotlivé události přetáhnout do plánovače z obecného seznamu úkolů zobrazeného ve formě tabulky.

Pro jakýkoli prvek můžete nastavit plán - frekvenci, s jakou se bude tato událost opakovat. V tomto případě můžete omezit interval, během kterého se bude událost opakovat.

V případě potřeby můžete změnit nejen jednu z opakujících se událostí, ale všechny události současně. Chcete-li to provést, musíte v editačním formuláři zaškrtnout políčko « Použít úpravy na všechna opakování":

Uživatelé si často stěžují, že „1C 8.3 je pomalý“: formuláře dokumentů se otevírají pomalu, zpracování dokumentů trvá dlouho, program se spouští, generování sestav trvá dlouho a tak dále.

Navíc se takové „závady“ mohou vyskytnout v různých programech:

Důvody mohou být různé. Nejedná se o obnovené dokumenty, slabý počítač nebo server, server 1C je nesprávně nakonfigurován.

V tomto článku se chci podívat na jeden z nejjednodušších a nejčastějších důvodů pomalého programu – . Tato instrukce bude relevantní pro uživatele souborových databází pro 1-2 uživatele, kde neexistuje konkurence o zdroje.

Pokud máte zájem o serióznější optimalizaci možností klient-server pro provoz systému, navštivte sekci webu.

Kde jsou naplánované úlohy v 1C 8.3?

Než jsem měl čas načíst program, bylo v 1C dokončeno mnoho úloh na pozadí. Můžete je zobrazit v nabídce „Správa“ a poté v nabídce „Podpora a údržba“:

Získejte 267 videolekcí na 1C zdarma:

Takto vypadá okno s dokončenými úkoly:

A zde je kompletní seznam všech naplánovaných úloh, které jsou spuštěny:

Mezi těmito úkoly můžete vidět například „“, načítání různých klasifikátorů, kontrola relevance verze programu a tak dále. Například pro téměř všechny tyto úkoly nemám využití. Nevedu měnové záznamy, sám řídím verze a podle potřeby načítám klasifikátory.

Proto je v mém (a ve většině případů i ve vašem) zájmu deaktivovat nepotřebné úkoly.

Zakázání rutinních úloh a úloh na pozadí v 1C 8.3