1s lansering av schemalagda uppgifter i filläge. Universell proceduruppgift

1s lansering av schemalagda uppgifter i filläge.  Universell proceduruppgift
1s lansering av schemalagda uppgifter i filläge. Universell proceduruppgift

Jobbmekanism

Jobbmekanismen är utformad för att exekvera vilken applikation eller funktion som helst enligt ett schema eller asynkront.

Jobbmekanismen utför följande uppgifter:

  • Förmåga att bestämma rutinprocedurer vid systemkonfigurationsstadiet;
  • Utförande av specificerade åtgärder enligt schemat;
  • Exekveringen av ett anrop till en given procedur eller funktion är asynkron, dvs. utan att vänta på dess slutförande;
  • Spåra framstegen för ett specifikt jobb och få dess slutförandestatus (ett värde som indikerar framgång eller misslyckande av dess genomförande);
  • Få en lista över aktuella uppgifter;
  • Förmåga att vänta på slutförandet av en eller flera uppgifter;
  • Jobbhantering (möjlighet till avbokning, blockering av utförande etc.).

Jobbmotorn består av följande komponenter:

  • Metadata för schemalagda uppgifter;
  • Schemalagda uppdrag;
  • Bakgrundsjobb;
  • Schemaläggaren.

Bakgrundsjobb - utformade för att utföra applikationsuppgifter asynkront. Bakgrundsjobb implementeras med hjälp av det inbyggda språket.

Schemalagda uppgifter - utformade för att utföra applikationsuppgifter enligt ett schema. Schemalagda uppgifter lagras i infobasen och skapas baserat på metadata som definieras i konfigurationen. Metadata för schemalagda jobb innehåller information som namn, metod, användning och så vidare.

Ett schemalagt jobb har ett schema som bestämmer vid vilka tidpunkter metoden som är kopplad till det schemalagda jobbet ska utföras. Schemat ställs som regel in i infobasen, men kan också ställas in i konfigurationsstadiet (till exempel för fördefinierade schemalagda uppgifter).

Uppgiftsschemaläggaren används för att schemalägga utförandet av schemalagda uppgifter. För varje schemalagt jobb kontrollerar schemaläggaren med jämna mellanrum för att se om Det aktuella datumet och tidsschema för den schemalagda uppgiften. Om det matchar schemalägger schemaläggaren att jobbet ska köras. För att göra detta, enligt denna schemalagda uppgift, skapar schemaläggaren en bakgrundsuppgift som utför själva bearbetningen.

Bakgrundsjobb

Bakgrundsjobb är användbara för att utföra komplexa beräkningar, när resultatet av beräkningen kan erhållas efter lång tid. Jobbmotorn har möjlighet att utföra sådana beräkningar asynkront.

Ett bakgrundsjobb har en associerad metod som anropas när bakgrundsjobbet körs. En bakgrundsjobbmetod kan vara vilken procedur eller funktion som helst som inte är global delad modul som kan anropas på servern. Bakgrundsjobbparametrar kan vara alla värden som tillåts skickas till servern. Parametrarna för ett bakgrundsjobb måste exakt matcha parametrarna för proceduren eller funktionen som den anropar. Om bakgrundsjobbets metod är en funktion ignoreras dess returvärde.

Ett bakgrundsjobb kan ha en nyckel - vilket ansökningsvärde som helst. Nyckeln introducerar en begränsning för lansering av bakgrundsjobb - endast ett bakgrundsjobb kan utföras per tidsenhet med ett specifikt nyckelvärde och ett specificerat namn på bakgrundsjobbmetoden (metodnamnet består av modulnamnet och namnet på proceduren eller funktionen). Nyckeln låter dig gruppera bakgrundsjobb, som har samma metoder, enligt ett visst applikationsattribut, så att inte mer än ett bakgrundsjobb exekveras inom samma grupp.

Bakgrundsjobb skapas och hanteras programmatiskt från vilken anslutning som helst. Alla användare får skapa ett bakgrundsjobb. Samtidigt exekveras den på uppdrag av användaren som skapade den. En användare med administrativa rättigheter, eller användaren som skapade dessa bakgrundsuppgifter, tillåts ta emot uppgifter, samt vänta på att de slutförs, från vilken anslutning som helst.

Bakgrundsjobbet är enbart ett sessionsobjekt, men tillhör inte någon användarsession. För varje jobb skapas en speciell systemsession som körs på uppdrag av användaren som ringde. Bakgrundsjobb har inte beständigt tillstånd.

Ett bakgrundsjobb kan skapa andra bakgrundsjobb. I klient-serverversionen låter detta dig parallellisera komplexa beräkningar över klusterarbetsprocesser, vilket avsevärt kan påskynda beräkningsprocessen som helhet. Parallellisering implementeras genom att flera barnbakgrundsjobb skapas och väntar på att vart och ett av dem ska slutföras i huvudbakgrundsjobbet.

Lyckade eller misslyckade bakgrundsjobb lagras i 24 timmar och raderas sedan. Om antalet pågående bakgrundsjobb överstiger 1000, raderas även de äldsta bakgrundsjobben.

Schemalagda uppdrag

Schemalagda uppgifter används när du behöver utföra vissa periodiska eller engångsåtgärder i enlighet med schemat.

Schemalagda uppgifter lagras i infobasen och skapas baserat på metadata för den schemalagda uppgiften som definieras i konfigurationen. Metadata definierar sådana parametrar för en schemalagd uppgift som: anropad metod, namn, nyckel, förmåga att använda, tecken på förutbestämning, etc. utföras rutinuppgift, och så vidare.

Skapandet och hanteringen av schemalagda uppgifter utförs programmatiskt från vilken anslutning som helst och är endast tillåten för användare med administrativa rättigheter.

Notera. När du arbetar i filversionen är det möjligt att skapa och redigera schemalagda uppgifter utan att starta uppgiftsschemaläggaren.

En schemalagd uppgift är associerad med en metod som anropas när den schemalagda uppgiften körs. En schemalagd jobbmetod kan vara vilken procedur eller funktion som helst i en icke-global delad modul som kan anropas på servern. Schemalagda jobbparametrar kan vara alla värden som tillåts skickas till servern. Parametrarna för ett schemalagt jobb måste exakt matcha parametrarna för proceduren eller funktionen som den anropar. Om den schemalagda jobbmetoden är en funktion ignoreras dess returvärde.

En schemalagd uppgift kan ha en nyckel - vilket värde som helst. Nyckeln introducerar en begränsning för lanseringen av schemalagda uppgifter, sedan per tidsenhet, bland de schemalagda uppgifterna associerade med samma metadataobjekt, kan endast en schemalagd uppgift med ett visst nyckelvärde utföras. Nyckeln låter dig gruppera schemalagda uppgifter associerade med samma metadataobjekt enligt ett visst applikationsattribut så att inte mer än en schemalagd uppgift exekveras inom en grupp.

Under konfigurationen kan du definiera fördefinierade schemalagda jobb. Fördefinierade schemalagda jobb skiljer sig inte från vanliga schemalagda jobb, förutom att de inte uttryckligen kan skapas eller tas bort. Om metadata för den schemalagda uppgiften är inställd på tecken på en fördefinierad schemalagd uppgift, sedan när du uppdaterar konfigurationen skapas en fördefinierad schemalagd uppgift automatiskt i infobasen. Om den fördefinierade kryssrutan är avmarkerad, kommer den fördefinierade schemalagda uppgiften att raderas automatiskt i infobasen när konfigurationen uppdateras. De initiala värdena för egenskaperna för en fördefinierad schemalagd uppgift (till exempel schema) ställs in i metadata. I framtiden, när applikationen körs, kan de ändras. Fördefinierade schemalagda jobb har inga parametrar.

Det schemalagda jobbschemat bestämmer vid vilka tidpunkter det schemalagda jobbet ska startas. Schemat låter dig ställa in: datum och tid för uppgiftens början och slut, utförandeperioden, veckodagar och månader då den schemalagda uppgiften ska utföras etc. (se beskrivningen av den inbyggda på språk).

Exempel på schemalagda uppgiftsscheman:

Varje timme, bara en dag

Försök igen PeriodDays = 0, Försök igen PeriodDuringDay = 3600

Varje dag en gång om dagen

Försök igen PeriodDays = 1, Försök igen PeriodDuringDay = 0

En dag, en gång

Försöksperiod dagar = 0

Varannan dag en gång om dagen

Försöksperiod dagar = 2

Varje timme från 01.00 till 07.00 varje dag

Försöksperiod dagar = 1

Försök igen under dagen = 3600

Starttid = 01.00

Sluttid = 07.00

Varje lördag och söndag kl 09.00

Försöksperiod dagar = 1

Veckodagar = 6, 7

Starttid = 09.00

Varje dag en vecka, veckopass

Försöksperiod dagar = 1

PeriodVeckor = 2

Klockan 01.00 en gång

Starttid = 01.00

Sista dagen i varje månad kl 9.00.

Försöksperiod dagar = 1

DagInMånad = -1

Starttid = 09.00

Femte i varje månad kl 9.00

Försöksperiod dagar = 1

DagInMånad = 5

Starttid = 09.00

Andra onsdagen i varje månad klockan 9.00

Försöksperiod dagar = 1

Veckodag i månaden = 2

Veckodagar = 3

Starttid = 09.00

Du kan kontrollera om en uppgift körs för ett givet datum (RequiredExecution-metoden för ScheduledTasks Schedule-objektet). Schemalagda uppgifter utförs alltid på namnet på en specifik användare. Om användaren av det schemalagda jobbet inte anges, så sker körningen på uppdrag av standardanvändaren med administrativa rättigheter.

Schemalagda jobb utförs med bakgrundsjobb. När schemaläggaren bestämmer att en schemalagd uppgift ska startas skapas automatiskt en bakgrundsuppgift baserat på denna schemalagda uppgift, som utför all vidare bearbetning. Om den här schemalagda uppgiften redan körs kommer den inte att köras igen, oavsett dess schema.

Schemalagda jobb har möjlighet att starta om. Detta gäller särskilt när den schemalagda uppgiftsmetoden måste garanteras att exekveras. En schemalagd uppgift startas om när den avslutades på ett onormalt sätt, eller när arbetsprocessen (i klient-serverversionen) eller klientprocessen (i filversionen) där den schemalagda uppgiften kördes avslutades på ett onormalt sätt. I en schemalagd uppgift kan du ange hur många gånger den behöver startas om, samt intervallet mellan omstarterna. När du implementerar metoden för ett omstartbart schemalagt jobb, bör det tas med i beräkningen att när det startas om kommer dess exekvering att börja från början och inte fortsätta från det ögonblick det kraschade.

Det är viktigt att komma ihåg det sluttid kommer inte nödvändigtvis att avsluta bakgrundsjobbet vid den angivna tiden. Några uttalanden:

* Ett bakgrundsjobb kan ignorera sitt eget automatisk avbokning, om det inte frös, men fortsätter att arbeta på det skälet att inte alla plattformsoperationer kan ångras. Om det utförs cyklisk kod inbyggt språk kan jobbet avbrytas annars inte. Allt beror på vad jobbet gör. * Sluttid - gränsen inom vilken en uppgift kan starta och inte sluta? * Tvingat slutförande av jobbet rullar tillbaka ändringarna till det ögonblick då transaktionen startade?

Egenskaper med att utföra bakgrundsuppgifter i fil- och klient-serverversioner

Mekanismerna för att utföra bakgrundsjobb i fil- och klient-serverversionerna är olika.

  • I filversionen måste du skapa en dedikerad klientprocess som kommer att utföra bakgrundsuppgifter. För att göra detta måste den globala kontextfunktionen ExecuteJobProcessing anropas med jämna mellanrum i klientprocessen. Endast en klientprocess per informationsbas måste behandla bakgrundsjobb (och därför ringa denna funktion). Om ingen klientprocess har skapats för att bearbeta bakgrundsjobb, kommer felet "Jobbhanteraren är inte aktiv" att genereras när du programmerar åtkomst till jobbmotorn. Det rekommenderas inte att använda klientprocessen som bearbetar bakgrundsjobb för andra funktioner.

Efter att klientprocessen som hanterar bakgrundsjobben är igång, ges andra klientprocesser möjlighet att programåtkomst till bakgrundsjobbmekanismen, dvs. kan köra och hantera bakgrundsjobb.

I klient-serverversionen används uppgiftsschemaläggaren för att utföra bakgrundsjobb, som fysiskt finns i klusterhanteraren. Schemaläggaren för alla köade bakgrundsjobb får den minst belastade arbetsprocessen och använder den för att köra motsvarande bakgrundsjobb. Arbetarprocessen utför jobbet och meddelar schemaläggaren om exekveringsresultaten.

I klient-serverversionen är det möjligt att blockera exekvering av schemalagda uppgifter. Blockering av utförandet av schemalagda uppgifter sker i följande fall:

  • En explicit blockering av schemalagda uppgifter har ställts in på infobasen. Låset kan ställas in via klusterkonsolen;
  • Ett anslutningsblock har satts på infobasen. Låset kan ställas in via klusterkonsolen;
  • Metoden SetExclusiveMode() anropades från det inbyggda språket med parametern True;
  • I vissa andra fall (till exempel vid uppdatering av databaskonfigurationen).

Skapa metadata för schemalagda jobb

Innan du programmatiskt skapar en schemalagd uppgift i infobasen måste du skapa ett metadataobjekt för den.

För att skapa ett schemalagt jobbmetadataobjekt i konfigurationsträdet i grenen Allmänt för grenen Schemalagda jobb, kör kommandot Lägg till och fyll i följande egenskaper för det schemalagda jobbet i egenskapspaletten:

Metodnamn - Ange namnet på den schemalagda jobbmetoden.

Nyckel - ange ett godtyckligt strängvärde som ska användas som nyckel för den schemalagda uppgiften.

Schema - anger schemat för den schemalagda uppgiften. För att skapa ett schema, klicka på länken "Öppna" och ställ in de nödvändiga värdena i schemaformuläret som öppnas.

Fliken Allmänt anger start- och slutdatum för uppgiften och upprepningsläget.

Fliken "Dagligen" anger det dagliga schemat för uppgiften.

Ange schemat:

  • starttid och sluttid för uppgiften;
  • sluttiden för uppgiften, varefter den kommer att slutföras med kraft;
  • uppgift upprepa period;
  • varaktigheten av pausen mellan repetitioner;
  • utförandetiden.

En godtycklig kombination av villkor är tillåten.

Veckoschemat för uppgiften anges på fliken Veckovis.

Markera kryssrutorna för de dagar i veckan då uppgiften kommer att köras. Om du vill upprepa jobbet anger du intervallet för återförsök i veckor. Till exempel, uppgiften körs om 2 veckor, upprepningsvärdet är 2.

På fliken "Månadsvis" anges månadsschemat för uppgiften.

Markera kryssrutorna för de månader då uppgiften kommer att köras. Om det behövs kan du ange en specifik dag (månad eller vecka) för genomförandet från början av månaden/veckan eller slutet.

Användning - om den är inställd kommer uppgiften att utföras enligt schemat.

Fördefinierat - om det är inställt är jobbet ett fördefinierat jobb.

Antal återförsök vid krasch - Anger antalet återförsök vid krasch.

Återförsöksintervall vid krasch - Anger återförsöksintervallet vid krasch. Exempel

Skapa ett bakgrundsjobb "Uppdatera sökindexet i fulltext":

BackgroundJobs.Run("UpdatingFullTextSearchIndex");

Skapa en schemalagd uppgift "Återställa sekvenser":

Schedule = New ScheduleRegulationTask; Schedule.RepeatPeriodDays = 1; Schedule.RepeatPeriodDuringDay = 0;

Task = ScheduledTasks.Create ScheduledTask("RestoringSequences"); Task.Schedule = Schema; Task.Record();

Jobbkonsol

Bearbetar med ITS, hanterar schemalagda uppgifter:

Arbeta med schemalagda uppgifter

Jobbobjekt

Jobbobjekt refereras inte, utan lagras i databasen i någon speciell lagring.

Om flaggan "Fördefinierad" är aktiverad i metadata, så skapas ett sådant objekt automatiskt när 1C:Enterprise startar och alltid finns i exakt en instans. Ett sådant objekt kan inte tas bort.

Om flaggan "Fördefinierad" inte är inställd, skapas och raderas objekten för en sådan uppgift programmatiskt, och specificerar schemat och parametrarna.

Få en lista över uppgifter

Listan över uppgifter kan erhållas med metoden GetRegularAssignments global jobbchef Schemalagda aktiviteter

Chef för schemalagda jobb

GetScheduledJobs (GetScheduledJobs)

Syntax:

Få regelbundna uppgifter(<Отбор>)

Alternativ:

<Отбор>(frivillig)

Typ: Struktur. Strukturen som definierar urvalet. Strukturvärden kan vara: UniqueIdentifier, Key, Metadata, Predefined, Usage, Name. Om val inte är inställt, erhålls alla schemalagda uppgifter.

Om du filtrerar efter metadata kan du ange antingen det schemalagda jobbmetadataobjektet eller dess namn som metadatavärde.

Returvärde:

Typ: Array.

Beskrivning:

Får en rad schemalagda uppgifter för det angivna urvalet. Att ta emot schemalagda uppgifter är endast möjligt för administratören.

Tillgänglighet:

Scheduled = ScheduledTasks.Get ScheduledTasks(Selection);

För varje Scheduled from Scheduled Loop NewLine = ScheduledTasksList.Add(); NewString.Metadata = Scheduled.Metadata.View(); NewLine.Name = Scheduled.Name; NewString.Key = Scheduled.Key; NewString.Schedule = Scheduled.Schedule; NewString.User = Regular.UserName; NewString.Predefined = Scheduled.Predefined; NewString.Usage = Regulatory.Usage; NewString.Identifier = Scheduled.UniqueIdentifier;

LastTask = Scheduled.LastTask; Om LastQuest<>Undefined Then NewString.Running = LastTask.Start; NewString.Status = LastJob.Status; EndIf; EndCycle;

Skapande

Skapat med CreateRegularTask-metoden i den schemalagda uppgiftshanteraren:

ScheduledJob = ScheduledJobs.Create ScheduledJob(MetadataChoice);

Schemalagd Task.Name = Namn; ScheduledTask.Key = Nyckel; ScheduledTask.Use = Använd; ScheduledTask.UserName = UsersChoice; ScheduledTask.Number of RepetitionsWhen Crashing = Antal repetitionsWhen Crashing; ScheduledTask.RetryIntervalOnAccident = RetryIntervalOnAccident; ScheduledTask.Schedule = Schema; ScheduledTask.Write();

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

TaskObject.Name = Namn; JobObject.Use = true;

Jobobjektet har ett "Parameters"-fält där metodparametrarna ställs in:

Schemalagt jobb

alternativ(Parametrar)

Användande:

Läser och skriver.

Beskrivning:

Typ: Array. En rad schemalagda uppgiftsparametrar. Antalet och sammansättningen av parametrarna måste motsvara parametrarna för den schemalagda uppgiftsmetoden.

Tillgänglighet:

Server, fet klient, yttre sammanfogning.

Notera:

Möjligheten att läsa och skriva är endast tillgänglig för administratören.

Borttagning

Borttagen med metoden Delete() för jobbobjektet:

ScheduledTask.Delete();

Få ett jobbobjekt

  • lista via metoden GetRegularTasks:

Scheduled = ScheduledTasks.Get ScheduledTasks(Selection);

  • genom metoden FindByUniqueID för jobbansvarig:

Task = ScheduledTasks.FindBy UniqueIdentifier(UID);

1C Enterprise har schemalagda och bakgrundsuppgifter i sina konfigurationer. Dessa jobb är schemalagda enligt schemat för varje jobb. Vissa av uppgifterna utförs initialt på en timer efter en viss mängd sekunder, vilket kan påverka prestandan negativt och tydligt störa arbetet i infobasen.

För att redigera schemalagda uppgifter och bakgrundsuppgifter på administrationsfliken, välj "Vanliga uppgifter och bakgrundsuppgifter" till vänster. En lista över befintliga uppgifter, deras status, schema och annan information visas.

Genom att klicka ett par gånger på någon av uppgifterna öppnas ett fönster med egenskaperna för denna uppgift. Här kan du ändra många inställningar efter din smak, inklusive schemat för denna uppgift. För att inaktivera en uppgift måste kryssrutan "Aktiverad" vara avmarkerad. Men om uppgiften ska köras enligt ett schema är det extremt viktigt att använda en separat användare med fullständiga rättigheter för alla bakgrundsuppgifter.

Uppgiftsschemaparametrarna är mycket flexibla, men det är ändå önskvärt att ställa in alla uppgifter på ett sådant sätt att endast 1 uppgift körs samtidigt och helst under icke-arbetstid. Ett undantag kan endast vara synkronisering av flera relaterade infobaser, till exempel företagsredovisning + löne- och personalhantering.

Bank Classifier Ladda ner - söndag 04:30
Laddar växelkurser - varje dag; 7:00
Extrahera texter - varje dag; 6:00.
Meddelanden för arbetsflödeskonton - varje dag; var 10800:e sek.
Uppdatera enheter - varje dag; från 5:00:00 en gång om dagen
Uppdatera revisorns uppgifter - varje dag; från 6:30:00 en gång om dagen
Uppdatering av PPD-index (fulltextsökning) - varje dag; var 10800:e sek.
Samlad ombyggnad - varje dag, per dag i veckan [lördag]; från 3:00:00 en gång om dagen
Omräkning nuvarande värden relativa förändringsförbudsdatum - varje dag; från 7:00:00 en gång om dagen
Sammanfoga index PPD (fulltextsökning) - varje dag; från 4:00:00 en gång om dagen
Radering av föråldrad synkroniseringsinformation - varje dag; från 3:30:00 en gång om dagen
Ställa in perioden för beräknade totaler - varje dag, den 5:e dagen i månaden; från 1:00:00 en gång om dagen

Vissa uppgifter inom dokumenthantering och redovisning kan behöva utföras med jämna mellanrum. Till exempel på de tjugonde siffrorna. Eller dagligen.

Vanligtvis försöker företaget skapa regler om genomförandet av sådana uppgifter – vem, när och hur ska utföra uppgiften, vem som ska kontrollera den.

Sådana uppgifter kallas - reglerade, det vill säga utförs enligt föreskrifterna.

Inom IT är övervakning ofta rutin.

Det är välkänt systemadministratör- Det finns specialprogram, som regelbundet kontrollerar servrarnas och nätverksinfrastrukturens tillstånd och skickar SMS eller e-post administratör.

Liknande saker finns för webbansvariga - att kontrollera tillgängligheten på webbplatsen under dagen.

I 1C utförs övervakningsuppgifter och alla andra periodiska uppgifter som ska utföras automatiskt enligt ett schema med hjälp av 1C Scheduled Tasks-mekanismen.

Låt oss prata om dem idag.

Schemalagda uppgifter 1C

Schemalagda uppgifter 1C är en som låter dig utföra som den gör, men enligt schema.

Själva 1C-rutinuppgiften i konfiguratorn är ett sätt att specificera inställningar och ställa in ett schema. Förresten, schemat kan ändras dynamiskt senare i 1C Enterprise-läget.

Bakgrundsuppgifter kan skapas från programtexten på 1C-språket godtyckligt utan en schemalagd uppgift 1C - för parallell beräkning på servern.

Utförandet av rutinuppgifter 1C kan tillfälligt inaktiveras - in.

Lägga till en schemalagd uppgift 1C

Schemalagda uppgifter 1C finns i konfigurationen i grenen Allmänt / Schemalagda uppgifter 1C. Låt oss lägga till en ny schemalagd uppgift 1C, ange dess namn.

I egenskapen för den schemalagda uppgiften 1C anges namnet på metoden, såväl som i. Funktionen kommer att finnas i en gemensam modul med kryssrutan Server markerad i egenskaperna, det vill säga modulen måste läggas till i förväg.

Egenskapen för den schemalagda uppgiften 1C - Uppgiftsnamn - bestämmer namnet under vilket uppgiften kommer att visas i uppgiftshanteringsverktygen.

Egenskapen för den schemalagda uppgiften 1C - Nyckel - låter dig gruppera flera olika schemalagda uppgifter 1C. Endast en uppgift med samma nyckelvärde kan köras samtidigt. Värdet i sig kan vara godtyckligt. tomt värde inte beaktas vid kontroll (det vill säga att den anses inte fylld).

Egenskapen för den schemalagda uppgiften 1C - Fördefinierad - bestämmer att när du startar 1C Enterprise kommer en sådan uppgift att skapas och i en enda kopia med det schema som anges i konfiguratorn. Icke-fördefinierade uppgifter visas programmatiskt när schemat kommer.

I typiska konfigurationer, till exempel Accounting 2.0, är ​​sådana rutinmässiga 1C-uppgifter som konfigurationsuppdatering och omräkning av totaler fördefinierade, och som datautbyte eller uppskjutna rörelser är inte fördefinierade.

Användning - inkluderar uppgiften (det vill säga, den kommer endast att köras om kryssrutan Användning är markerad).

Försök att krascha igen - som du lätt kan gissa innebär att du startar om jobbet om det inte kunde slutföras framgångsrikt första gången - det anges hur många gånger som ska startas om och efter hur många efter kraschen.

1C schemalagd uppgiftshantering och övervakning

För att hantera schemalagda uppgifter 1C finns det en speciell typisk bearbetning av Task Console. Den finns även på .

Denna bearbetning avser den så kallade universella externa typiska 1C-behandlingen, som ofta inte ingår i konfigurationen, utan distribueras separat, till exempel på ITS-diskar.

Med Job Console Processing kan du:

  • Aktivera/inaktivera utförandet av den schemalagda uppgiften 1C
  • Tilldela / ändra schemat för den schemalagda uppgiften 1C (och andra parametrar)
  • Ange den 1C-användare för vars räkning den schemalagda uppgiften 1C kommer att utföras
  • Visa - vilka uppgifter som slutfördes när och med vilket resultat, fel vid slutförande av 1C-uppgifter
  • Utföra en uppgift.

Kopior av databaser och rutinuppgifter 1C

Om server 1C används, uppstår följande situation:

  • För sina egna ändamål (till exempel för programmering) görs en kopia av arbetsdatabasen
  • I en kopia av databasen bearbetas, testas och så vidare.
  • Det glöms bort att stänga av rutinmässiga 1C-uppgifter i en sådan testbas.

Medan rutinmässiga 1C-uppgifter utför uppgifter som endast är relaterade till deras infobas, så finns det ingenting i detta.

Men ofta kan 1C rutinuppgifter spara alla fildata till andra databaser, utbyta, skicka e-post.

I det här fallet kan en intressant blandning uppstå mellan resultatet av att utföra rutinmässiga 1C-uppgifter i arbetsdatabasen och kopior.

1C rutinuppgifter för i kopior av arbetsbasen måste inaktiveras i.

Uppfyllelse och icke-uppfyllelse av rutinuppgifter 1C

När du skapar schemalagda uppgifter 1C måste du komma ihåg:

  • Uppgifter som sköts av sig själva - de måste övervakas
  • Uppgifter körs i en modul på servern
  • Uppgifter utförs under en annan Windows-användare, under olika rättigheter.

Först måste du kontrollera att uppgiften körs och kan utföras som en schemalagd 1C-uppgift.

För det andra innebär servermodulen att många saker som är tillgängliga på klienten inte är tillgängliga. Till exempel, ibland kan inte alla dokument bara läggas upp på servern, eftersom deras algoritm kan tillhandahålla att inlägget startas manuellt av användaren och icke-serverfunktioner kan användas, till exempel
Alert ("Hej!")

För det tredje, om uppgiften handlar om något utanför 1C-basen, blir rättigheter viktiga. Windows-användare Under vilken jobbet körs.

Den tredje punkten är särskilt viktig i utvecklingen. Om modulen inte kan köras på servern kommer uppgiften i princip inte att exekveras. För att kontrollera måste du köra uppgiften minst en gång och se resultatet "Task completed" i bearbetningen av Task Console.

När man arbetar i 1C finns det många rutinoperationer som måste startas eller formas enligt ett schema genom att utföra en eller annan åtgärd, till exempel: lägga upp dokument eller ladda ner data till 1C från en webbplats.

Jag postade nyligen en artikel: det är dags att automatisera detta:

Schemalagda och bakgrundsjobb

Jobbmekanismen är utformad för att exekvera vilken applikation eller funktion som helst enligt ett schema eller asynkront.

Jobbmekanismen utför följande uppgifter:

  • Förmåga att bestämma rutinprocedurer vid systemkonfigurationsstadiet;
  • Utförande av specificerade åtgärder enligt schemat;
  • Exekveringen av ett anrop till en given procedur eller funktion är asynkron, dvs. utan att vänta på dess slutförande;
  • Spåra framstegen för ett specifikt jobb och få dess slutförandestatus (ett värde som indikerar framgång eller misslyckande av dess genomförande);
  • Få en lista över aktuella uppgifter;
  • Förmåga att vänta på slutförandet av en eller flera uppgifter;
  • Jobbhantering (möjlighet till avbokning, blockering av utförande etc.).

Jobbmotorn består av följande komponenter:

  • Metadata för schemalagda uppgifter;
  • Schemalagda uppdrag;
  • Bakgrundsjobb;
  • Schemaläggaren.

Bakgrundsjobb & är designade för att köra applikationsuppgifter asynkront. Bakgrundsjobb implementeras med hjälp av det inbyggda språket.

Schemalagda uppgifter & är designade för att utföra schemalagda uppgifter. Schemalagda uppgifter lagras i infobasen och skapas baserat på metadata som definieras i konfigurationen. Metadata för schemalagda jobb innehåller information som namn, metod, användning och så vidare.

Ett schemalagt jobb har ett schema som bestämmer vid vilka tidpunkter metoden som är kopplad till det schemalagda jobbet ska utföras. Schemat ställs som regel in i infobasen, men kan också ställas in i konfigurationsstadiet (till exempel för fördefinierade schemalagda uppgifter).

Uppgiftsschemaläggaren används för att schemalägga utförandet av schemalagda uppgifter. För varje schemalagt jobb kontrollerar schemaläggaren med jämna mellanrum om det aktuella datumet och tiden matchar schemat för det schemalagda jobbet. Om det matchar schemalägger schemaläggaren att jobbet ska köras. För att göra detta, enligt denna schemalagda uppgift, skapar schemaläggaren en bakgrundsuppgift som utför själva bearbetningen.

Med beskrivningen tror jag att det räcker - låt oss gå vidare till implementeringen:

Skapa ett schemalagt jobb

Metodnamn– sökväg till proceduren som kommer att utföras i bakgrundsuppgiften enligt det angivna schemat. Förfarandet måste vara i en delad modul. Det rekommenderas att inte använda vanliga vanliga moduler, utan att skapa dina egna. Glöm inte att bakgrundsjobb körs på servern!

Användande- ett tecken på användningen av en schemalagd uppgift.

förbestämd– indikerar om det schemalagda jobbet är fördefinierat.

Om du vill att den schemalagda uppgiften ska fungera direkt efter att den placerats i databasen, ange tecknet förbestämd. Annars måste du använda "Jobbkonsol"-bearbetningen eller anropa jobbet för att köras programmatiskt.

Antal återförsök när ett jobb kraschar– hur många gånger bakgrundsjobbet startades om om det kördes med ett fel.

Försöksintervall för att avbryta jobb– hur ofta bakgrundsuppgiften kommer att startas om om den kördes med ett fel.

Schemainställning

Schema uppgiftsutförande:

Varje timme, bara en dagFörsök igen PeriodDays = 0, Försök igen PeriodDuringDay = 3600
Varje dag en gång om dagenFörsök igen PeriodDays = 1, Försök igen PeriodDuringDay = 0
En dag, en gångFörsöksperiod dagar = 0
Varannan dag en gång om dagenFörsöksperiod dagar = 2
Varje timme från 01.00 till 07.00 varje dagRetryPeriodDays = 1RepeatPeriodDay = 3600StartTime = 01.00

Sluttid = 07.00

Varje lördag och söndag kl 09.00Upprepa period av dagar = 1 veckodag = 6, 7StartTime = 09.00
Varje dag en vecka, veckopassUpprepa period av dagar = 1 period av veckor = 2
Klockan 01.00 en gångStarttid = 01.00
Sista dagen i varje månad kl 9.00.Upprepa period av dagar = 1DagInMånad = -1Starttid = 09.00
Femte i varje månad kl 9.00Upprepa period av dagar = 1DagInMånad = 5Starttid = 09.00
Andra onsdagen i varje månad klockan 9.00Upprepa PeriodDays = 1DayWeekInMonth = 2DaysWeek = 3

Starttid = 09.00

Egenskaper med att utföra bakgrundsuppgifter i fil- och klient-serverversioner

Mekanismerna för att utföra bakgrundsjobb i fil- och klient-serverversionerna är olika.

I filformat du måste skapa en dedikerad klientprocess som kommer att utföra bakgrundsuppgifter. För att göra detta måste den globala kontextfunktionen ExecuteJobProcessing anropas med jämna mellanrum i klientprocessen. Endast en klientprocess per infobas ska bearbeta bakgrundsjobb (och därför kalla denna funktion). Om ingen klientprocess har skapats för att bearbeta bakgrundsjobb, kommer felet "Jobbhanteraren är inte aktiv" att genereras när du programmerar åtkomst till jobbmotorn. Det rekommenderas inte att använda klientprocessen som bearbetar bakgrundsjobb för andra funktioner.

Efter att klientprocessen som bearbetar bakgrundsjobb har startat kan andra klientprocesser programmässigt komma åt bakgrundsjobbmekanismen, dvs. kan köra och hantera bakgrundsjobb.

I klient-serverversion För att utföra bakgrundsjobb används uppgiftsschemaläggaren, som är fysiskt placerad i klusterhanteraren. Schemaläggaren för alla köade bakgrundsjobb får den minst belastade arbetsprocessen och använder den för att köra motsvarande bakgrundsjobb. Arbetarprocessen utför jobbet och meddelar schemaläggaren om exekveringsresultaten.

I klient-serverversionen är det möjligt att blockera exekvering av schemalagda uppgifter. Blockering av utförandet av schemalagda uppgifter sker i följande fall:

  • En explicit blockering av schemalagda uppgifter har ställts in på infobasen. Låset kan ställas in via klusterkonsolen;
  • Ett anslutningsblock har satts på infobasen. Låset kan ställas in via klusterkonsolen;
  • Metoden SetExclusiveMode() anropades från det inbyggda språket med parametern True;
  • I vissa andra fall (till exempel vid uppdatering av databaskonfigurationen).

Bearbetar lansering och visning av schemalagda jobb du kan ladda ner här.

Periodisk rengöring av register (till exempel informationsregistret "Objektversioner" i SCP-konfigurationen), utföra beräkningar enligt ett schema, posta dokument vid en viss tidpunkt - detta är långt ifrån full listaåtgärder som kan genomföras med hjälp av rutinuppgifter 1C.

Skapa en uppgift

Vi syftar inte till att beskriva koden för den körbara modulen, vi kommer att visa generella principer funktion och skapande av en proceduruppgift.

Regleruppgiften är oumbärlig:

  1. Om det i uppgiften som ett av villkoren finns ett behov av att periodiskt exekvera en viss algoritm;
  2. Om koden måste exekveras oavsett vad operatörer och användare av databasen gör;
  3. Om lanseringen av den körbara proceduren inte beror på externa händelser som inträffar med infobasobjekt.

För att skapa den måste du gå till infobasen i läget "Konfigurator". Därefter hittar vi grenen "Vanliga uppgifter" i konfigurationsträdet, de finns på fliken "Allmänt" och klicka på knappen "Lägg till" (Fig. 1)

Låt oss ta en närmare titt på dess egenskapsfönster (Fig. 2):
Fig.2

  1. Namn, synonym och kommentar - reglerna och principerna för att fylla i dessa fält är liknande för alla konfigurationsobjekt och det finns ingen anledning att beskriva dem igen;
  2. Metodnamn är en procedur för en allmän modul som beskriver den nödvändiga algoritmen så exakt som möjligt (om du trycker på väljarknappen öppnas de tillgängliga procedurerna, vars representation består av namnet på den allmänna modulen och namnet på proceduren i olika kolumner av bordet);
  3. Nyckel - bestämmer inte så mycket det unika i den processuella uppgiften, utan det unika bakgrundsprocessen, lanserad på grundval av ett jobb, har en längdgräns;
  4. Schema - vi kommer att ägna ett separat stycke i vår artikel till beskrivningen av detta element;
  5. Användning - att markera denna ruta bestämmer aktiviteten för uppgiften, TRUE betyder att uppgiften kommer att startas och köras enligt schemat;
  6. Fördefinierad – om elementet har den här kryssrutan kan dessa uppgifter inte tas bort, de skapas automatiskt när konfigurationen sparas i databasen;
  7. Antal repetitioner - om ett undantag inträffar under exekveringen kommer det att startas om så att en ändlös loop inte uppstår, programmet begränsar antalet omstarter;
  8. Återförsöksintervall - tid i sekunder mellan omstarter av kraschade jobb.

Låt oss ta en närmare titt på schemat.

Schema för den schemalagda uppgiften

Fig.3

Först och främst bör uppmärksamhet ägnas nedre del windows visas den där detaljerad information med en uppdelning av hur ofta och vid vilken tidpunkt uppgiften ska utföras.

Fliken Allmänt:

  • Startdatum för uppgiften;
  • Bearbetningsslutdatum;
  • Frekvens för att upprepa uppgiften.

Om inga datum anges på den här fliken, kommer ingen tidsgräns att anges för uppgiften.

Bokmärk "Dagligen" (bild 4)
Fig.4

Förutom inmatningsfält för uppgiftens start- och sluttid och frekvensen av dess lansering under dagen, innehåller den tabelldel För detaljerade inställningar exekveringsfrekvens.

Flikarna "Dagligen" och "Veckovis" innehåller information för respektive period.

Funktioner

I klient-serverversionen av operationen bestäms utförandet av schemalagda uppgifter av serververktygen. Från administrationskonsolen kan du aktivera och inaktivera möjligheten att köra jobb för en viss databas.

Situationen är mycket mer komplicerad med filversionen av arbetet. Före en viss release av plattformen utfördes exekveringen av bakgrunds- och schemalagda procedurer endast om metoden ExecuteJobProcessing() aktiverades vid systemstart under en viss användare. I det här fallet lanserades algoritmerna med jämna mellanrum så länge som användaren som initierade metoden fanns i programmet.

För närvarande är arbetet med bakgrundsjobb i filversionen av arbetet jämnt fördelat mellan användare som är auktoriserade i databasen, om programmet startades med ytterligare parameter AllowExecuteSheduledJobs, det är denna process som kommer att ansvara för rutinunderhåll.

Du kan helt inaktivera utförandet av bakgrunds- och underhållsarbete i en databas som arbetar i filläge genom att ta bort eller byta namn på filen DoNotCopy.txt i mappen med databasen. Närvaron av denna fil talar om för plattformen att arbetet utförs i originalet och inte i en kopia av databasen.

Dessutom blev det i vanliga 1C-leveranser möjligt att hantera schemalagda arbeten direkt från programmet utan att gå till "Konfiguratorn". I "ZUP"-konfigurationen, version 3.1.3.223, kan du öppna kontrollformuläret från menyn Administration->Underhåll->Schemalagda operationer->Schemalagda och bakgrundsuppgifter (Fig. 5)
Fig. 5

Den öppnade formen har en intuitiv tydligt gränssnitt och tillåter:


Du kan också starta uppgiftskörningen direkt från formuläret.