Broj parametara pozadinskog posla se ne podudara. Rutinski i pozadinski zadaci (1Cv8)

Omogućuje nam izvođenje bilo kakvih izračuna u sustavu neprimjetno za korisnika, odnosno u pozadini. Štoviše, ovaj mehanizam nam omogućuje paraleliziranje procesa izračuna. Možemo čak i paralelizirati proceduru koja će se izvršiti. Da bismo to učinili, naš pozadinski posao mora pokrenuti još nekoliko pozadinskih poslova. U ovom slučaju procesi su paralelizirani i, ako imamo višeprocesorski, višejezgreni sustav, naš algoritam će raditi učinkovito. Nakon pokretanja nekoliko procesa, sustavu možemo reći da treba pričekati završetak tih procesa kako bi se rezultat nekako spojio.

Na primjer, u tipičnim konfiguracijama, dok korisnik radi, izvršavaju se razne vrste pozadinskih servisnih poslova. To se može dokazati zapisima u dnevniku koji bilježe činjenicu da su takve radnje izvršene. Štoviše, to ni na koji način ne utječe na rad korisnika, on ih jednostavno ne primjećuje.

U idealnom slučaju, pozadinski posao implementiran je u verziji klijent-poslužitelj, u kojem slučaju cjelokupno opterećenje ide na poslužitelj. Što se tiče verzije datoteke, pozadinski posao je moguć, ali ima neke osobitosti.

To je ono što će sustav proizvesti ako ne uzmete u obzir ove značajke i ne pokrenete pozadinski posao u datotečnoj verziji infobaze.


1C pozadinski posao ima neka ograničenja. Budući da radi na serverskoj strani, ne postoji mogućnost interaktivnog rada s korisnikom. Na primjer, ne možete prikazati poruku ili bilo kakvu informaciju. Sve te podatke potrebno je pohraniti u informacijsku bazu i na neki način dalje obrađivati.
Kontaktiranjem pomoćnika za sintaksu možete dobiti detaljnije informacije o pozadinskim poslovima 1C. Ovdje treba napomenuti da je ovaj objekt isključivo softverski i ni na koji način nije pohranjen u bazi podataka. Odnosno, stvaramo instancu klase, inicijaliziramo svojstva i pokrećemo je za izvođenje.

Koje alate imamo za upravljanje pozadinskim poslovima? Ova mogućnost je objekt metapodataka "Upravitelj zadataka u pozadini". Ovaj objekt ima metodu "Trčanje", pomoću ove metode pokreće se pozadinski posao.

Ima sljedeće parametre:
"Naziv metode"- naziv procedure ili funkcije koju treba izvršiti, a mora biti procedura ili funkcija konteksta poslužitelja;

"Opcije"- niz parametara čiji broj elemenata mora odgovarati broju parametara naše procedure/funkcije navedenih u parametru "Naziv metode";

"Ključ"- određeni ključ jedinstvenosti, koji je linija po kojoj sustav razumije treba li pokrenuti pozadinski zadatak ili je takav zadatak već pokrenut;

"Ime"- ovdje možete navesti proizvoljan opis naše metode.

Povratna vrijednost je objekt "Pozadinski zadatak", koji sadrži naziv trenutne metode, trenutni ključ i još nekoliko svojstava i metoda. Jedna od takvih metoda je metoda "Čekaj dovršeno". Njegova je svrha da možemo reći sustavu da ne radi ništa dok se pozadinski posao ne završi.

Pozadinski posao 1C 8.2, 8.3 - Primjer korištenja

Dajmo primjer rada s pozadinskim poslovima 1C. Prvo ćemo stvoriti jednostavan algoritam koji će nakratko učitati 1C sustav na takav način da u ovom trenutku ne možemo ništa učiniti.

Za ovo:

1. Kreirajmo zajednički modul "Rukovatelji pozadinskim zadacima", koji će se kompajlirati na strani poslužitelja;


2. U njemu ćemo opisati postupak izvoza "ProduceBackgroundCalculation(Parameter)", koji uzima jedan parametar vrste niza;

Procedura PerformBackgroundCalculation(Parameter) ExportStartTime = CurrentDate() ; Dok CurrentDate() - Vrijeme početka< = 6 Цикл КонецЦикла ; КонецПроцедуры Процедура КнНажатие() ОбработчикиФоновыхЗаданий. ПроизветиФоновоеВычисление("Neki parametar") ; Kraj postupka
Spreman. Sada, kada pokrenete obradu i pritisnete gumb, sustav se zamrzne na nekoliko sekundi, tijekom kojih se ništa ne može učiniti. To je upravo ono što smo trebali učiniti.

Sada ćemo osigurati da se ti izračuni provode u pozadini, odnosno da se pozadinski zadatak 1C 8.2, 8.3 izvršava, ali nas ne ometa.

Za ovo:

1. U obradi, u događaju klika na gumb, napišite sljedeći kod.

Procedura KnPress() Parametri = Novi niz; Mogućnosti. Dodati( "Neki parametar") ; Pozadinski zadatak. Trčanje ( "Rukovatelji pozadinskim zadacima. Izvršite računanje u pozadini", parametri, novi jedinstveni identifikator, "Test") ; Kraj postupka

Ovdje prosljeđujemo ime zajedničke procedure modula kao prvi parametar, a niz parametara kao drugi. Trećem parametru treba proslijediti jedinstveni ključ, a četvrtom parametru neki opis naše procedure.

Vjerojatno niti jedna ozbiljna konfiguracija na 1C 8.3 ili 8.2 ne može bez upotrebe rutinskih i pozadinskih zadataka. Vrlo su praktični jer će se izvršavati prema jasno definiranom rasporedu bez intervencije korisnika ili programera.

Na primjer, trebate razmijeniti podatke s drugim programom jednom dnevno. Koristeći rutinske i pozadinske zadatke, 1C će moći samostalno obavljati ove radnje, na primjer, tijekom neradnog vremena. Ova metoda ni na koji način neće utjecati na korisničko iskustvo i pomoći će uštedjeti vrijeme.

Prvo, shvatimo što oni znače i koja je njihova razlika:

  • Planirani zadatak omogućuje vam pokretanje bilo koje specifične radnje prema unaprijed konfiguriranom rasporedu.
  • Pozadinski posao je objekt koji sadrži radnje koje treba izvesti.

Pretpostavimo da naša tvrtka nešto prodaje i ima vlastitu web stranicu na kojoj se nalaze cijene. Želimo ih učitati jednom dnevno kako bismo održali relevantnost.

Otvorite konfiguraciju i dodajte zakazani zadatak.

Postavljanje svojstava

Pogledajmo najvažnije parametre koje je potrebno ispuniti u njegovim svojstvima.

  • U polju" Naziv metode» odabire postupak određenog općeg modula koji će se izravno izvršiti. Prikazat će sve korake za učitavanje cijena na našu web stranicu. Imajte na umu da će se izvršenje odvijati na poslužitelju. To je logično, jer se rutinske operacije izvode bez sudjelovanja korisnika.
  • Zakazani zadatak može se onemogućiti ili omogućiti prema potrebi. Nema potrebe svaki put uređivati ​​njegov raspored. Da biste to učinili, u paleti svojstava postavite ili uklonite oznaku " Korištenje».
  • Još jedna važna stvar je postaviti hoće li ovaj rutinski zadatak biti unaprijed određen, ili ne. Predefinirani planirani zadaci pokreću se automatski. Ako ova značajka nije instalirana, morat ćete ih pokrenuti programski ili koristiti obradu "Task Console" s ITS-om.
  • Također možete odrediti broj ponavljanja i razmak između njih u slučaju abnormalnog prekida. Neuobičajeni prekid odnosi se na one situacije kada poslovi nisu dovršeni zbog pogreške.

Postavljanje rasporeda

Posljednji korak je postavljanje rasporeda za naš prijenos na web mjesto pomoću odgovarajuće hiperveze u paleti svojstava.

Vidjet ćete tipičnu postavku rasporeda u 1C 8.3. Ovdje nema ništa komplicirano. U ovom primjeru postavili smo pokretanje našeg učitavanja cijena na stranicu svaki dan od pet do sedam ujutro. U slučaju da se planirani zadatak ne stigne izvršiti prije 7:00, bit će izvršen već sljedeći dan.

Blokiranje zakazanih zadataka

Pokrenite standardni uslužni program "Administriranje 1C Enterprise Servers" i otvorite svojstva infobaze u kojoj ste stvorili rutinski zadatak (za klijent-poslužiteljske verzije 1C).

U prozoru koji se otvori (nakon što unesete svoje korisničko ime i lozinku za pristup informacijskoj sigurnosti), provjerite da potvrdni okvir "Blokiranje rutinskih zadataka je omogućeno" nije označen. Ako naiđete na situaciju u kojoj zadatak ne radi, prvo provjerite ovu postavku.

Na isti način možete potpuno onemogućiti rutinske zadatke u 1C 8.3. Da biste onemogućili određene pozadinske poslove, možete koristiti obradu "Konzola pozadinskih poslova" ugrađenu u najnovija izdanja.

Pozadinski i planirani zadaci u načinu datoteke

U ovom načinu rada, postavljanje i pokretanje ovih zadataka mnogo je teže organizirati. Najčešće se stvara dodatni račun čija će sesija uvijek biti otvorena.

U ovom slučaju, rutinski zadaci se aktiviraju pomoću metode “RunTaskProcessing()”.

Također možete koristiti sljedeću konstrukciju:

Kao naziv procedure, morate navesti naziv procedure klijenta koja će se izvršiti. Interval pokazuje koliko će sekundi kasnije izvršenje biti izvršeno. Parametar "Jednokratno" nije potreban. Odražava hoće li se ovaj postupak izvesti jednom ili nekoliko puta.

Praćenje pogrešaka u pozadinskim poslovima

U zapisniku možete vidjeti napredak pozadinskih poslova, kao i prisutnost mogućih grešaka. U filtru odaberite aplikaciju “Pozadinski posao” i po potrebi odaberite važnost interesa, npr. samo “Pogreške”.

Dnevnik će prikazati sve unose koji odgovaraju vašem odabiru, zajedno s komentarom koji će vam pomoći da shvatite razlog pogreške.

Mehanizam posla

Motor poslova dizajniran je za izvođenje bilo koje aplikacije ili funkcije prema rasporedu ili asinkrono.

Mehanizam zadataka rješava sljedeće zadatke:

  • Sposobnost definiranja regulatornih procedura u fazi konfiguracije sustava;
  • Izvršenje navedenih radnji prema rasporedu;
  • Pozivanje određene procedure ili funkcije asinkrono, tj. bez čekanja na njegov završetak;
  • Praćenje napretka određenog zadatka i dobivanje statusa njegovog završetka (vrijednost koja pokazuje je li bio uspješan ili ne);
  • Dobivanje popisa tekućih zadataka;
  • Sposobnost čekanja da se završi jedan ili više zadataka;
  • Vođenje poslova (mogućnost otkazivanja, blokada izvršenja i sl.).

Mehanizam posla sastoji se od sljedećih komponenti:

  • Metapodaci rutinskih zadataka;
  • Redovni zadaci;
  • Pozadinski poslovi;
  • Planer zadataka.

Pozadinski poslovi dizajnirani su za asinkrono izvršavanje aplikacijskih zadataka. Pozadinski zadaci implementirani su pomoću ugrađenog jezika.

Planirani zadaci - dizajnirani za izvršavanje primijenjenih zadataka prema rasporedu. Rutinski zadaci pohranjeni su u informacijskoj bazi i kreirani na temelju metapodataka definiranih u konfiguraciji. Metapodaci regulatornog zadatka sadrže informacije kao što su naziv, metoda, upotreba itd.

Rutinski zadatak ima raspored koji određuje u koje vrijeme se mora izvršiti metoda povezana s rutinskim zadatkom. Raspored je u pravilu naveden u informacijskoj bazi, ali se također može navesti u fazi konfiguracije (na primjer, za unaprijed definirane rutinske zadatke).

Planer zadataka koristi se za planiranje izvršavanja rutinskih zadataka. Za svaki planirani posao, planer povremeno provjerava odgovaraju li trenutni datum i vrijeme rasporedu planiranog posla. Ako odgovara, planer dodjeljuje taj zadatak za izvršenje. Kako bi to učinio, za ovaj zakazani zadatak, planer stvara pozadinski zadatak, koji obavlja stvarnu obradu.

Pozadinski poslovi

Pozadinski poslovi prikladni su za korištenje za izvođenje složenih izračuna kada je za dobivanje rezultata izračuna potrebno dugo vremena. Motor poslova ima sredstva za asinkrono izvođenje takvih izračuna.

Pozadinskom poslu pridružena je metoda koja se poziva kada se pozadinski posao izvodi. Metoda pozadinskog posla može biti bilo koja procedura ili funkcija neglobalnog zajedničkog modula koji se može pozvati na poslužitelju. Parametri pozadinskog posla mogu biti bilo koje vrijednosti koje je dopušteno proslijediti poslužitelju. Parametri pozadinskog posla moraju točno odgovarati parametrima procedure ili funkcije koju poziva. Ako je metoda pozadinskog posla funkcija, njezina povratna vrijednost se zanemaruje.

Pozadinski posao može imati ključ - bilo koju vrijednost aplikacije. Ključ uvodi ograničenje pokretanja pozadinskih poslova - samo jedan pozadinski posao može se izvršiti po jedinici vremena s određenom vrijednošću ključa i zadanim nazivom metode pozadinskog posla (ime metode sastoji se od naziva modula i naziva procedure ili funkcija). Ključ vam omogućuje grupiranje pozadinskih poslova koji imaju iste metode prema specifičnim karakteristikama aplikacije tako da se unutar jedne grupe ne izvršava više od jednog pozadinskog posla.

Pozadinski poslovi se stvaraju i njima se upravlja programski s bilo koje veze. Svaki korisnik može stvoriti pozadinski posao. Štoviše, izvršava se u ime korisnika koji ga je stvorio. Primanje zadataka, kao i čekanje na njihov završetak, dopušteno je s bilo koje veze prema korisniku s administratorskim pravima ili korisniku koji je kreirao te pozadinske poslove.

Pozadinski posao je isključivo objekt sesije i ne pripada nijednoj korisničkoj sesiji. Za svaki zadatak kreira se posebna sesija sustava koja se izvodi u ime korisnika koji je uputio poziv. Pozadinski poslovi nemaju trajno stanje.

Pozadinski posao može proizvesti druge pozadinske poslove. U verziji klijent-poslužitelj to vam omogućuje paraleliziranje složenih izračuna u radničkim procesima klastera, što može značajno ubrzati proces izračuna u cjelini. Paralelizacija se provodi stvaranjem nekoliko podređenih pozadinskih poslova i čekanjem da svaki od njih završi u glavnom pozadinskom poslu.

Pozadinski poslovi koji se uspješno ili neuspješno dovrše pohranjuju se 24 sata i zatim brišu. Ako broj dovršenih pozadinskih poslova premaši 1000, najstariji pozadinski zadaci također se brišu.

Planirani zadaci

Planirani zadaci se koriste kada je potrebno izvršiti određene periodične ili jednokratne radnje prema rasporedu.

Planirani zadaci pohranjuju se u informacijsku bazu i kreiraju se na temelju metapodataka rutinskog zadatka definiranog u konfiguraciji. Metapodaci određuju takve parametre rutinskog zadatka kao što su: pozvana metoda, naziv, ključ, mogućnost korištenja, znak predodređenosti itd. Prilikom izrade rutinskog zadatka možete dodatno odrediti raspored (može se navesti u metapodacima), vrijednosti ​​parametara metode, ime korisnika u čije ime se izvršavaju rutinski zadaci itd.

Stvaranje i upravljanje planiranim zadacima izvodi se programski s bilo koje veze i dopušteno je samo korisnicima s administratorskim pravima.

Bilješka. Kada radite u datotečnoj verziji, moguće je kreirati i uređivati ​​rutinske zadatke bez pokretanja planera zadataka.

S rutinskim zadatkom povezana je metoda koja se poziva kada se rutinski zadatak izvrši. Metoda rutinskog zadatka može biti bilo koja procedura ili funkcija neglobalnog zajedničkog modula koji se može pozvati na poslužitelju. Parametri rutinskog zadatka mogu biti bilo koje vrijednosti koje je dopušteno prenijeti na poslužitelj. Parametri rutinskog zadatka moraju točno odgovarati parametrima procedure ili funkcije koju poziva. Ako je metoda rutinskog zadatka funkcija, tada se njezina povratna vrijednost zanemaruje.

Rutinski zadatak može imati ključ - bilo koju vrijednost aplikacije. Ključ uvodi ograničenje pokretanja planiranih zadataka, jer po jedinici vremena, među rutinskim zadacima povezanim s istim objektom metapodataka, može se izvršiti samo jedan rutinski zadatak s određenom vrijednošću ključa. Ključ vam omogućuje grupiranje rutinskih zadataka povezanih s istim objektom metapodataka prema specifičnim karakteristikama aplikacije tako da se unutar jedne grupe ne izvodi više od jednog rutinskog zadatka.

Tijekom konfiguracije možete definirati unaprijed definirane rutinske zadatke. Unaprijed definirani rutinski zadaci ne razlikuju se od uobičajenih rutinskih zadataka, osim što se ne mogu izričito stvoriti ili izbrisati. Ako je u metapodacima planiranog zadatka postavljeno znak unaprijed određenog rutinskog zadatka, tada će se prilikom ažuriranja konfiguracije u infobazi automatski kreirati predefinirani rutinski zadatak. Ako se unaprijed određena zastavica poništi, tada će se prilikom ažuriranja konfiguracije u informacijskoj bazi unaprijed definirani rutinski zadatak automatski izbrisati. Početne vrijednosti svojstava unaprijed definiranog planiranog zadatka (na primjer, raspored) postavljene su u metapodacima. U budućnosti, kada je aplikacija pokrenuta, oni se mogu promijeniti. Unaprijed definirani rutinski zadaci nemaju parametre.

Raspored rutinskog zadatka određuje u koje vrijeme treba pokrenuti rutinski zadatak. Raspored omogućuje postavljanje: datuma i vremena početka i završetka zadatka, razdoblja izvršenja, dana u tjednu i mjesecima do kojih se planirani zadatak mora izvršiti itd. (pogledajte opis izgrađenog u jeziku).

Primjeri rasporeda rutinskih zadataka:

Svaki sat, samo jedan dan

Razdoblje ponavljanja dana = 0, Razdoblje ponavljanja dana = 3600

Svaki dan jednom dnevno

Razdoblje ponavljanja dana = 1, Razdoblje ponavljanja dana = 0

Jedan dan, jedan put

PeriodRepeatDays = 0

Svaki drugi dan jednom dnevno

PeriodRepeatDays = 2

Svaki sat od 01.00 do 07.00 svaki dan

PeriodRepeatDays = 1

Period ponavljanja tijekom dana = 3600

Vrijeme početka = 01.00

Vrijeme završetka = 07.00

Svake subote i nedjelje u 09.00

PeriodRepeatDays = 1

Dani u tjednu = 6, 7

Vrijeme početka = 09.00 sati

Svaki dan jedan tjedan, preskočite tjedan

PeriodRepeatDays = 1

Razdoblje Tjedni = 2

Jednom u 01.00

Vrijeme početka = 01.00

Zadnji dan svakog mjeseca u 9:00.

PeriodRepeatDays = 1

Dan u mjesecu = -1

Vrijeme početka = 09.00 sati

Peti dan svakog mjeseca u 9:00

PeriodRepeatDays = 1

Dan u mjesecu = 5

Vrijeme početka = 09.00 sati

Druge srijede u mjesecu u 9:00

PeriodRepeatDays = 1

DanTjedanUMjesecu = 2

Dani u tjednu = 3

Vrijeme početka = 09.00 sati

Možete provjeriti izvodi li se zadatak za određeni datum (metoda RequiredExecution objekta ScheduleTasks). Planirani zadaci uvijek se izvode pod imenom određenog korisnika. Ako korisnik planiranog zadatka nije naveden, izvršenje se događa u ime zadanog korisnika koji ima administratorska prava.

Rutinski zadaci se izvršavaju pomoću pozadinskih zadataka. Kada planer utvrdi da treba pokrenuti planirani zadatak, automatski se stvara pozadinski posao na temelju tog planiranog zadatka, koji obavlja svu daljnju obradu. Ako se ovaj rutinski zadatak već izvodi, neće se ponovno pokrenuti, bez obzira na njegov raspored.

Planirani zadaci mogu se ponovno pokrenuti. To je osobito istinito kada se mora zajamčiti izvršenje metode rutinskog zadatka. Rutinski zadatak ponovno se pokreće kada se nenormalno prekine ili kada se radni proces (u verziji klijent-poslužitelj) ili klijentski proces (u verziji datoteke) na kojem je rutinski zadatak izvršen nenormalno prekine. U planiranom zadatku možete odrediti koliko puta se mora ponovno pokrenuti, kao i interval između ponovnih pokretanja. Prilikom implementacije metode rutinskog zadatka koji se može ponovno pokrenuti, morate uzeti u obzir da će nakon ponovnog pokretanja njegovo izvršenje započeti od početka, a ne nastaviti od trenutka abnormalnog prekida.

Važno je to zapamtiti Vrijeme završetka neće nužno dovršiti pozadinski posao u navedeno vrijeme. Neke izjave:

* Pozadinski posao može zanemariti svoje automatsko otkazivanje ako nije zamrznut, ali se nastavlja izvoditi jer se ne mogu otkazati sve operacije platforme. Ako se izvrši ciklički kod ugrađenog jezika, tada se posao može otkazati, inače ne. Sve ovisi o tome što posao radi. * Vrijeme završetka - granica unutar koje zadatak može započeti, a ne završiti? * Prisilno prekidanje zadatka vraća promjene napravljene na početak transakcije?

Značajke izvršavanja pozadinskih poslova u varijantama datoteka i klijent-poslužitelj

Mehanizmi za izvršavanje pozadinskih poslova u verziji datoteka i klijent-poslužitelj su različiti.

  • U datotečnoj verziji morate stvoriti namjenski klijentski proces koji će obavljati pozadinske poslove. Da bi to učinio, klijentski proces mora povremeno pozivati ​​funkciju globalnog konteksta ExecuteJobProcessing. Samo jedan klijentski proces po informacijskoj bazi treba obrađivati ​​pozadinske poslove (i, sukladno tome, pozivati ​​ovu funkciju). Ako proces klijenta nije kreiran za obradu pozadinskih poslova, tada će se prilikom programskog pristupa mehanizmu poslova prikazati pogreška "Upravitelj poslova nije aktivan". Ne preporučuje se korištenje procesa klijenta koji obrađuje pozadinske poslove za druge funkcije.

Nakon što se pokrene klijentski proces koji obrađuje pozadinske poslove, drugi klijentski procesi mogu programski pristupiti mehanizmu za pozadinske poslove, tj. može pokrenuti i upravljati pozadinskim poslovima.

U verziji klijent-poslužitelj za izvršavanje pozadinskih poslova koristi se planer zadataka koji se fizički nalazi u upravitelju klastera. Za sve pozadinske poslove u redu čekanja, planer dobiva najmanje opterećen radni proces i koristi ga za pokretanje odgovarajućeg pozadinskog posla. Radnički proces izvršava posao i obavještava planer o rezultatima izvršenja.

U verziji klijent-poslužitelj moguće je blokirati izvršavanje rutinskih zadataka. Izvršenje rutinskih zadataka blokirano je u sljedećim slučajevima:

  • Na informacijskoj bazi instalirano je eksplicitno blokiranje rutinskih zadataka. Zaključavanje se može postaviti preko konzole klastera;
  • Na infobazi postoji blok veze. Zaključavanje se može postaviti preko konzole klastera;
  • Metoda SetExclusiveMode() s parametrom True pozvana je iz ugrađenog jezika;
  • U nekim drugim slučajevima (na primjer, prilikom ažuriranja konfiguracije baze podataka).

Stvaranje metapodataka za rutinski zadatak

Prije nego što programski kreirate rutinski zadatak u informacijskoj bazi, trebate za njega stvoriti objekt metapodataka.

Za stvaranje objekta metapodataka za rutinski zadatak u stablu konfiguracije u grani "Općenito" za granu "Rutinski zadaci", izvršite naredbu "Dodaj" i ispunite sljedeća svojstva rutinskog zadatka u paleti svojstava:

Naziv metode - označite naziv metode rutinskog zadatka.

Ključ - odredite proizvoljnu vrijednost niza koja će se koristiti kao ključ planiranog zadatka.

Raspored - označava raspored rutinskog zadatka. Za izradu rasporeda kliknite na poveznicu "Otvori" i u obrascu rasporeda koji se otvori postavite potrebne vrijednosti.

Na kartici "Općenito" naznačeni su datum početka i završetka zadatka i način ponavljanja.

Na kartici "Dnevno" prikazan je dnevni raspored zadatka.

Navedite raspored:

  • vrijeme početka i vrijeme završetka zadatka;
  • vrijeme završetka zadatka, nakon čega će se prisilno prekinuti;
  • period ponavljanja zadatka;
  • trajanje pauze između ponavljanja;
  • trajanje izvršenja.

Dopušteno je navesti proizvoljnu kombinaciju uvjeta.

Na kartici “Tjedno” prikazan je tjedni raspored zadatka.

Odaberite potvrdne okvire za dane u tjednu u kojima će se zadatak izvršiti. Ako želite ponoviti zadatak, odredite interval ponavljanja u tjednima. Na primjer, zadatak se izvrši za 2 tjedna, vrijednost ponavljanja je 2.

Na kartici “Mjesečno” prikazan je mjesečni raspored zadatka.

Odaberite potvrdne okvire za mjesece u kojima će zadatak biti izvršen. Ako je potrebno, možete odrediti određeni dan (mjesec ili tjedan) izvršenja od početka mjeseca/tjedna ili kraja.

Korištenje - ako je postavljeno, zadatak će se izvršavati prema rasporedu.

Unaprijed definirano - ako je postavljeno, zadatak je unaprijed definiran zadatak.

Broj ponovnih pokušaja u slučaju nenormalnog prekida - označava broj ponovnih pokušaja u slučaju nenormalnog prekida.

Interval ponovnog pokušaja nakon abnormalnog prekida - navodi interval ponovnog pokušaja nakon abnormalnog prekida. Primjeri

Stvaranje pozadinskog posla “Ažuriranje indeksa pretraživanja cijelog teksta”:

BackgroundTasks.Run("UpdatingFullTextSearchIndex");

Stvaranje rutinskog zadatka “Oporavak sekvenci”:

Raspored = New ScheduleTask; Schedule.PeriodRepeatDays = 1; Schedule.RepeatPeriodDuringDay = 0;

Zadatak = RoutineTasks.CreateRoutineTask("Vraćanje sekvenci"); Posao.Raspored = Raspored; Task.Write();

Konzola poslova

Obrada s ITS-om, upravlja rutinskim zadacima:

Rad s rutinskim zadacima

Objekti posla

Objekti posla nisu navedeni, ali su pohranjeni u bazi podataka u nekoj posebnoj pohrani.

Ako je u metapodacima omogućena zastavica "Unaprijed", tada se takav objekt automatski kreira kada se pokrene 1C:Enterprise i uvijek postoji u točno jednoj instanci. Takav se objekt ne može izbrisati.

Ako zastavica "Unaprijed" nije postavljena, tada se objekti takvog zadatka stvaraju i brišu programski, navodeći raspored i parametre.

Dobivanje popisa zadataka

Popis zadataka može se dobiti pomoću metode Nabavite RoutineTasks globalni menadžer poslova Rutinski zadaci

ScheduledJobsManager

Dobijte planirane poslove (GetScheduledJobs)

Sintaksa:

Nabavite RutineTasks(<Отбор>)

Mogućnosti:

<Отбор>(neobavezno)

Tip: Struktura. Odabir definiranja strukture. Vrijednosti strukture mogu biti: UniqueIdentifier, Key, Metadata, Predefined, Usage, Name. Ako odabir nije naveden, dobivaju se svi rutinski zadaci.

Ako filtrirate prema metapodacima, tada kao vrijednost metapodataka možete navesti objekt metapodataka rutinskog zadatka ili njegov naziv.

Povratna vrijednost:

Vrsta: niz.

Opis:

Prima niz rutinskih zadataka za određeni odabir. Primanje planiranih zadataka moguće je samo za administratora.

Dostupnost:

Rutina = RoutineTasks.GetRoutineTasks(Selekcija);

Za svaku rutinu ciklusa rutine NewLine = List of RoutineTasks.Add(); NewRow.Metadata = Regular.Metadata.View(); NewLine.Name = Regular.Name; NewString.Key = Regular.Key; NewLine.Schedule = Raspored.Raspored; NewLine.User = Regular.UserName; NewString.Predefined = Regular.Predefined; NewString.Use = Regular.Use; NewString.Identifier = Regular.UniqueIdentifier;

ZadnjiZadatak = Regular.LastTask; Ako je LastTask<>Nedefinirano Then NewRow.Running = LastTask.Start; NewRow.State = LastTask.State; završi ako; EndCycle;

Stvaranje

Kreirano metodom Create RoutineTask za upravitelja rutinskih zadataka:

RoutineTask = RoutineTasks.CreateRoutineTask(MetadataSelection);

RegularTask.Name = Ime; RegularTask.Key = Ključ; RegularTask.Use = Upotreba; RoutineTask.UserName = UsersChoice; RoutineTask.Number ofRepetitionsAtEmergencyCompletion =Broj ponavljanjanakonEmergencyCompletion; ScheduledTask.RepeatIntervalAtEmergencyCompletion = RetryIntervalAtEmergencyCompletion; ScheduleTask.Schedule = Raspored; RegularTask.Record();

TaskObject = RoutineTasks.CreateRoutineTask("ExchangeExchange");

TaskObject.Name = Ime; JobObject.Use = True;

Objekt zadatka ima polje "Parametri" u kojem su navedeni parametri metode:

ScheduledJob

Mogućnosti(Parametri)

Upotreba:

Čitati i pisati.

Opis:

Vrsta: niz. Niz parametara za planirani zadatak. Broj i sastav parametara mora odgovarati parametrima metode rutinskog zadatka.

Dostupnost:

Server, debeli klijent, vanjska veza.

Bilješka:

Mogućnosti čitanja i pisanja dostupne su samo administratoru.

Uklanjanje

Izbrisano pomoću metode Delete() objekta zadatka:

ScheduledTask.Delete();

Dobivanje objekta za posao

  • popis putem GetRoutineTasks metode:

Rutina = RoutineTasks.GetRoutineTasks(Selekcija);

  • putem FindByUniqueIdentifier metode upravitelja zadataka:

Zadatak = ScheduledTasks.FindByUniqueIdentifier(UID);