Pozadinski poslovi na zasebnom serveru. Univerzalni proceduralni zadatak

Vjerovatno ni jedna ozbiljna konfiguracija na 1C 8.3 ili 8.2 ne može bez upotrebe zakazanih i pozadinskih zadataka. Veoma su zgodne, jer će se izvršavati po jasno definisanom rasporedu bez intervencije korisnika i programera.

Na primjer, trebate razmjenjivati ​​podatke s drugim programom jednom dnevno. Koristeći rutinske i pozadinske zadatke, 1C će moći samostalno obavljati ove radnje, na primjer, tokom neradnog vremena. Ova metoda ni na koji način neće utjecati na rad korisnika i uštedjet će vrijeme.

Prvo, hajde da shvatimo šta oni znače i po čemu se razlikuju:

  • Planirani zadatak omogućava vam da pokrenete bilo koje specifične radnje prema unaprijed konfiguriranom rasporedu.
  • Pozadinski posao je objekat koji sadrži radnje koje treba izvršiti.

Pretpostavimo da naša kompanija nešto prodaje i ima svoju web stranicu s cijenama. Jednom dnevno želimo da ih rasteretimo kako bismo održali relevantnost.

Otvorite konfiguraciju i dodajte zakazani zadatak.

Podešavanje svojstava

Uzmite u obzir najviše važnih parametara, koji mora biti popunjen u svojim svojstvima.

  • u polju" Naziv metode» odabire se postupak nekog konkretnog opšteg modula koji će se direktno izvršavati. On će naznačiti sve radnje za postavljanje cijena na našu web stranicu. Imajte na umu da će se izvršenje odvijati na serveru. Ovo je logično, jer se rutinske operacije izvode bez intervencije korisnika.
  • Planirani zadatak se može onemogućiti ili omogućiti po potrebi. Nema potrebe da mu svaki put menjate raspored. Da biste to učinili, u paleti svojstava označite ili poništite " Upotreba».
  • Još jedna važna postavka je da li će ovaj zakazani zadatak biti unaprijed određeno, ili ne. Unaprijed definirani zakazani poslovi se pokreću automatski. Ako ova zastavica nije postavljena, morat ćete ih pokrenuti programski ili koristiti obradu "Job Console" sa ITS-om.
  • Također možete odrediti broj ponavljanja i interval između njih nakon sudara. Abnormalni završetak se odnosi na situacije kada zadaci nisu završeni zbog greške.

Podešavanje rasporeda

Posljednji korak je postavljanje rasporeda za naše otpremanje na stranicu pomoću odgovarajuće hiperveze u paleti svojstava.

Otvoriće se pred vama tipično podešavanje rasporedi u 1C 8.3. Nema tu ništa komplikovano. U ovom primjeru, postavili smo pokretanje našeg upload-a cijena na stranicu svakodnevno od pet do sedam ujutro. U slučaju da planirani zadatak nema vremena da se odradi prije 7:00 sati, bit će završen sljedećeg dana.

Blokiranje planiranih zadataka

Pokrenite standardni uslužni program 1C Enterprise Server Administration i otvorite svojstva baze podataka u kojoj ste kreirali zakazani zadatak (za verzije 1C klijent-server).

U prozoru koji se otvori (nakon unosa login i lozinke za pristup IB) provjerite da nije postavljena zastavica na stavci „Blokiranje planiranih zadataka je omogućeno“. Ako naiđete na situaciju u kojoj zadatak ne radi, prvo provjerite ovu postavku.

Na isti način možete potpuno onemogućiti zakazane zadatke u 1C 8.3. Da biste onemogućili određene pozadinske poslove, možete koristiti obradu "Background Jobs Console" ugrađenu u nedavna izdanja.

Pozadinski i zakazani poslovi u načinu rada datoteka

U ovom načinu rada, postavljanje i pokretanje ovih poslova je mnogo teže organizirati. Najčešće, dodatni Račun, čija će sjednica uvijek biti otvorena.

Aktivacija zakazanih zadataka u ovom slučaju se vrši metodom "PerformProcessingTasks()".

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

Ime procedure mora biti ime klijentske procedure koja će se izvršiti. Interval pokazuje koliko sekundi će izvršenje trajati. Parametar "Jednom" nije obavezan. Odražava da li će se dati postupak izvršiti jednom ili više puta.

Praćenje grešaka u poslovima u pozadini

Pogledajte napredak pozadinskih poslova, kao i dostupnost moguće greške može biti u registru. U filteru postavite odabir na aplikaciju "Pozadinski zadatak" i, ako je potrebno, odaberite značaj koji vas zanima, na primjer samo "Greške".

Dnevnik će prikazati sve unose koji odgovaraju vašem odabiru s komentarom koji možete koristiti da shvatite uzrok greške.

Planirani zadaci 1C je poseban mehanizam sistema dizajniran da automatski izvrši određenu radnju pozadini i prema određenom rasporedu (na primjer, slanje izvještaja, odlaganje, preuzimanje kurseva itd.).

Pozadinski posao - predmet, generiran planiranim zadatkom, koji direktno izvodi predviđenu radnju bez sudjelovanja korisnika ili programera.

Pozadinski zadatak 1C:

  1. izvedeno pod Windows korisnik, pod kojim se pokreće proces 1C serverskog programa.
  2. može se proizvoljno kreirati u 1C jeziku bez zakazanog zadatka (za paralelno računanje na serveru).

BITAN! Pozadinski poslovi se pokreću na serveru.

Razlika između zakazanog zadatka i pretplate na događaj:

  • omogućava vam da izvršite rukovalac ne kada se događaj dogodi (kao što se dešava), već prema rasporedu.

Mehanizam zakazanih i pozadinskih poslova radi:

  • automatski - u klijent-server režimu rada (zbog funkcionalnosti DBMS-a);
  • interaktivno - kada se koristi datoteka baze podataka, izvršavanjem naredbe ExecuteProcessingJobs() iz sesije u načinu rada 1C: Enterprise.

Karakteristike rutinskih i pozadinskih zadataka 1C:

  1. Planirana instanca poslamogu se kreirati programski. Ako je zakazani zadatak unaprijed definiran (oznaka "Predefined" je postavljena u svojstvima), tada će zadatak biti kreiran u jednoj instanci s rasporedom navedenim u konfiguratoru. Instance NIJE unaprijed definiranih poslova pojavljuju se prema rasporedu koji je programski postavljen u Enterprise modu.
  2. Bilo koji broj planiranih zadataka može se izvršiti istovremeno, ali dva posla neće raditi ( da izbjegne sudare):
    • sa istim ključem (do ključ - svojstvo zakazanog zadatka koje vam omogućava grupiranje nekoliko zadataka istog tipa);
    • povezan sa istim objektom metapodataka.
  3. Procedura se može koristiti kao metoda planiranog zadatka., koji može imati bilo koji broj parametara. Broj parametara metode planiranog zadatka odgovara broju parametara samog planiranog zadatka.
  4. Da bi kreirao zakazani zadatak, korisnik mora imati administratorska prava.
  5. Ako je planirani zadatak definiran u konfiguratoru (u odgovarajućem objektu) kao što je unaprijed definirano, tada se unaprijed definirana instanca zakazanog zadatka ne može označiti za brisanje i izbrisati (ali se može promijeniti i uvijek će biti dostupni na listi predložaka zakazanih zadataka).
  6. Ako se funkcija koristi kao metoda planiranog posla, povratna vrijednost funkcije se zanemaruje.
  7. Da bi se osigurao rad zakazanih i pozadinskih poslovaiu verziji datoteke i klijent-server nema potrebe za pokretanjem 1C:Enterprise instance.

    Komentar

    ... U klijent-server načinu rada, planirane zakazane zadatke pokreće upravitelj klastera. Dakle, čak i ako nije uspostavljena veza klijenta sa info bazom, planirani zadaci će se izvršavati (pod uslovom da nisu zabranjeni za određenu infobazu). IN verzija datoteke rade za auto start Planirani poslovi zahtijevaju namjensku klijentsku vezu koja će se koristiti kao planer poslova. Čekanje se mora pokrenuti na ovoj vezi, uz određenu periodičnost izvršavanja poziva metode 1. jezika ExecuteProcessingJobs().

    [sakrij]

  8. Pozadinski poslovi dozvoljavaju izvršiti proceduru asinhrono.
  9. Bilo koji broj pozadinskih poslova može se izvoditi u isto vrijeme, ali ne možete pokrenuti dva posla s istim ključem i imenom metode.
  10. Završeni pozadinski poslovi su objekti sesije, pohranjuju se neko vrijeme (u baza informacija nisu sačuvani). Pozadinski posao je objekt jezika 1C:Enterprise koji postoji samo tokom sesije.
  11. Postavljanje planiranog zadatka u klijent-server načinu rada 1C

    Planirani zadatak je konfigurisan u paleti svojstava ovaj objekat konfiguraciju.

    Crtež palete svojstava 1C objekta "Redovni zadaci"

    [sakrij]

    Paleta svojstava objekta "Redovni zadaci":

  • Naziv metode je putanja do procedure koja je u javnom vlasništvu i koja će se izvršavati u pozadinskom zadatku prema navedenom rasporedu. Preporučuje se da ne koristite standardne, već da kreirate svoje.
  • Ime - definira ime prikazano u kontrolama posla.
  • Ključ - omogućava vam da grupišete nekoliko različitih zakazanih zadataka 1C, dok se istovremeno može pokrenuti samo jedan posao sa istom vrijednošću ključa. Sama vrijednost može biti proizvoljna. Prazna vrijednost se ne uzima u obzir prilikom kontrole (odnosno, smatra se praznom).
  • Upotreba - oznaka za korištenje zakazanog posla.
  • unaprijed određeno- zastavica označava da li je zakazani zadatak unapred definisan, tj. pokreće se odmah nakon postavljanja u bazu podataka (zadatak će biti kreiran u jednoj instanci sa rasporedom navedenim u konfiguratoru). Nepredefinirani zadaci se pojavljuju programski u vrijeme rasporeda (morate koristiti obradu "Job Console" ili programski pozvati pokretanje zadatka).
  • Broj ponovnih pokušaja kada se posao sruši- koliko puta ponovo pokrenut pozadinski posao ako je izvršena sa greškom.
  • Interval ponovnog pokušaja prekida posla- učestalost ponovnog pokretanja pozadinskog zadatka ako je izvršen s greškom.
  • Raspored - postavljanje intervala za pokretanje procedure navedenog u polju "Naziv metode".

Za upravljanje poslovima u pozadini, možete koristiti obradu sa ITS diska "", što vam omogućava:

  • pratiti rad planiranih i pozadinskih zadataka;
  • brisati i kreirati nove pozadinske poslove koristeći ugrađeni jezik;
  • privremeno onemogućite zakazane zadatke (?).

Značajke postavljanja planiranih zadataka 1C:

    Zadaci se izvršavaju automatski - moraju se provjeriti (pratiti).

    [sakrij]

Postavljanje planiranih zadataka u načinu rada datoteke 1C

IN režim datoteke za zakazani zadatak mora se pokrenuti zasebna sesija 1C programa. Često se to rješava definiranjem "tehničkog" korisnika čija je sesija uvijek pokrenuta.

Događa se inicijalizacija zakazanog zadatka:

  1. općenito - pri pokretanju metode ExecuteProcessingJobs();
  2. za određenog korisnika - kada se metoda pokrene ConnectWaitingHandler(<ИмяПроцедуры>, <Интервал>, <Однократно>) (radi na klijentu).
  • ProcedureName je ime izvezene procedure modula (obični modul aplikacije) ili globalnog zajedničkog modula koji je uključen kao rukovalac čekanja. Procedura se mora nalaziti na klijentu.
  • Interval - period između izvršavanja operacija u sekundama.
  • Jednom - broj izvršenja zadatka (jednom ili ne).

Kreirajte zakazani zadatak

Kreirajmo zakazani zadatak "Izvođenje obrade".

Onemogućite upotrebu zakazanog zadatka kako se ne bi automatski pokrenuo kada se konfiguracija ažurira.

Dodijelite proceduru koja će se pokrenuti kada se pokrene planirani zadatak:Modul zakazanih zadataka. Planirana obrada zadataka.

Sama procedura izgleda ovako:

Procedura ScheduledTaskPerformanceProcessing(Key) Izvoz

Parametri planiranih zadataka.PerformProcessing sa parametrima(Ključ);

EndProcedure

Kreiramo direktorij za rutinske zadatke

Naš zakazani posao može pokrenuti mnoge pozadinske procese - po jedan za svaku obradu. Svaki zadatak na platformi 1C8 ima ključ. Ali metoda planiranog posla ne poznaje ključ pozadinskog posla, tako da trebate koristiti parametre pozadinskog posla. Kao rezultat toga, možemo vidjeti pozadinski zadatak u konzoli zadataka, ali ne možemo ručno kreirati pozadinski zadatak iz ove konzole, jer poslovi sa ručnim parametrima se ne kreiraju.

Imenik "Parametri planiranih zadataka" :

Requisites :

· CodeBeforeLaunch- neograničen niz - kod na 1C jeziku, koji se mora izvršiti prije pokretanja.

· Obrada iz konfiguracije - string (100) - ID obrade iz konfiguracije

· Obrada iz direktorija - red (100) - veza do elementa direktorija "Spoljna obrada", ako postoji u konfiguraciji

· Prođite kroz 1C aplikaciju - boolean - kreirat će se posebna 1C aplikacija i u njoj će se pokrenuti zakazani zadatak. Kreirano za 8.1 gdje nisu sve metode aplikacije dostupne na poslužitelju na kojem se izvodi planirani posao.

· LaunchCode- - neograničen niz - kod na 1C jeziku, koji će se izvršiti kada se pokrene zakazani zadatak.

Kreirajte oblik elementa :

Klikom na "Kreiraj reg. zadatak" programski kreira zakazani zadatak s šifrom ključa:

Procedura MainActionsFormsCreateReglTask(Button)

Variable Reference;

Ključ = ShortLP(Kôd);

Zadatak = ScheduledTasks.Create ScheduledTask("PerformingProcessing");

Task.Name = Ključ;

Job.Key = Ključ;

Parametri = Novi niz();

Opcije.Dodaj(Ključ);

Task.Parameters = Parametri;

Task.Write();

EndProcedure

Pokretanje zakazanog posla

Svaki planirani zadatak koji smo kreirali ima ključ:

Ovaj ključ odgovara kodu direktorija "Parametri planiranih zadataka", traži se prilikom pokretanja zadatka. Ako element rječnika nije pronađen, zadatak se ne izvršava.

Nadalje, ako je dat kodCodeBeforeLaunch tada će se ovaj kod izvršiti. Nadalje, ako je varijabla Ispuni procijeni na false, zadatak se neće izvršiti. Varijabla dostupna u analizi Opcije, gdje je pohranjena veza do pronađenog elementa direktorija "Parametri planiranih zadataka".

Ovisno o odabranim vrijednostima detalja, ili će se pokrenuti kod na 1C jeziku, ili će obrada početi od konfiguracije, ili će obrada početi iz standardne referentne knjige "Vanjski obrada".

Za 1C81, izvršenje je omogućeno u novoj aplikaciji - tako da možete koristiti kod koji je dostupan samo na klijentu, uključujući korištenje eksterna obrada. Da biste to učinili, označite okvir "Pokreni kroz aplikaciju 1C". U suprotnom, planirani zadatak će se izvršiti na serveru.

Preporučujem da postavite korisnika u polje "Korisnik" novokreiranog zakazanog zadatka tako da se zadatak izvršava pod određenim pravima. Preporučujem da ovom korisniku date puna prava. imam korisnika "robot».

Raspored zakazanog zadatka kreira hiperlink "Raspored" iz obrasca zakazanog zadatka. Možete koristiti obradu "Konzola zakazanih zadataka".

Mehanizam zadataka je jedan od alata za administraciju 1C. To uključuje:

  • planirani zadaci, kao opšti konfiguracioni objekat, neophodan da se naznači šta tačno treba da se radi i kojom frekvencijom;
  • i pozadinske poslove, kao objekt ugrađenog jezika koji generiraju zakazani poslovi.
Razmotrite relevantna ispitna pitanja.

Pitanje 09.59 ispita 1C: Platforma profesionalna. Zakazana instanca posla:

  1. mogu se kreirati programski
  2. može se kreirati u obliku liste, kojoj se pristupa preko komande glavnog menija programa ("Operacije / Planirani zadaci")
  3. uvijek se kreira samo jedna instanca (kada se kreira odgovarajući konfiguracijski objekt)
  4. definira se samo u konfiguracijskom načinu na kartici Ostalo pomoću tipke "Kompozicija".
  5. tačni odgovori 1 i 2
Tačan odgovor je prvi. Ako je zakazani zadatak unaprijed definiran (sl.), tada će zadatak biti kreiran u jednoj instanci sa rasporedom navedenim u konfiguratoru. Instance NIJE unaprijed definiranih poslova pojavljuju se prema rasporedu postavljenom u Enterprise modu, programski.
Pitanje 09.60 ispita 1C: Platforma profesionalna. Broj istovremeno izvršavanja zakazanih zadataka može biti:
  1. bilo koji bez ograničenja
  2. bilo koji broj, ali neće pokrenuti dva posla s istim ključem i imenom metode
  3. bilo koji broj, ali dva zadatka sa istim ključem i imenom neće biti izvršena
  4. bilo koji broj, ali neće pokrenuti dva posla s istim ključem i povezanim s istim objektom metapodataka
Tačan odgovor je šest. Ključ je svojstvo zakazanog posla koje vam omogućava da grupišete nekoliko poslova istog tipa. Samo jedan zadatak s jednom vrijednošću ključa može se pokrenuti u isto vrijeme (prazna vrijednost se ne računa). Također, samo jedan zadatak registracije se izvršava istovremeno na određenom objektu, kako bi se izbjegle kolizije.
Pitanje 09.62 ispita 1C: Platforma profesionalna. Kao metoda planiranog zadatka, može se koristiti procedura u kojoj:
  1. ne bi trebalo da ima parametre
  2. može postojati samo jedan parametar (lista vrijednosti)
  3. može postojati samo jedan parametar (struktura)
  4. može postojati samo jedan parametar (niz)
  5. može biti bilo koji broj parametara
Tačan odgovor je peti. Broj parametara metode planiranog zadatka odgovara broju parametara samog planiranog zadatka.
Pitanje 09.63 ispita 1C: Platforma profesionalna. Da bi kreirao zakazani zadatak, korisnik mora imati:
  1. administratorska prava
  2. prava za korištenje ovog konfiguracijskog objekta (podesivo u ulozi)
  3. prava za kreiranje novih instanci ovog konfiguracijskog objekta (podesivo u ulozi)
  4. bilo koja prava, metoda planiranog posla se izvršava u privilegovanom načinu
Tačan odgovor je prvi, samo administratori imaju pravo.
Pitanje 09.64 ispita 1C: Platforma profesionalna. Ako je planirani zadatak definiran u konfiguratoru (u odgovarajućem konfiguracijskom objektu) kao unaprijed definiran, tada ga karakterizira (odaberite najpotpuniji odgovor):
  1. nije moguće kreirati ne-predefiniranu instancu zakazanog zadatka sa vezanjem za objekt metapodataka unaprijed definiranog zakazanog zadatka
  2. unaprijed definirana zakazana instanca posla ne može se označiti za brisanje i ne može se izbrisati
  3. samo unaprijed definirane instance zakazanih zadataka su pohranjene u infobazi, nepredefinirane instance su objekti sesije i nisu pohranjeni u bazi podataka
  4. tačni odgovori 1 i 2
  5. tačni odgovori 2 i 3
  6. tačni odgovori 1, 2, 3
Tačan odgovor je drugi. Unaprijed definirane planirane instance posla mogu se mijenjati, ali ne i brisati. Oni će uvijek biti dostupni na listi šablona:
Pitanje 09.67 ispita 1C: Platforma profesionalna. Ako se funkcija koristi kao metoda planiranog posla, tada:
  1. povratna vrijednost funkcije se zanemaruje
  2. dolazi do greške prilikom pokušaja izvršenja zadatka
  3. sistem će čekati izvršenje ovog zadatka (izvršenje se neće dogoditi asinhrono)
  4. vrijednost će biti vraćena odgovarajućem parametru planiranog posla
Tačan odgovor je prvi.
Pitanje 09.61 ispita 1C: Platforma profesionalna. Kako planirani i pozadinski poslovi mogu biti povezani?
  1. Planirani posao može pokrenuti pozadinski posao
  2. Planirani posao nužno pokreće pozadinski posao
  3. Pozadinski posao nužno generiše zakazani posao
  4. Nema veze
Tačan odgovor je drugi - pozadinski zadatak je objekt generiran planiranim zadatkom i mora biti kreiran, inače sam zakazani zadatak gubi svoje značenje.
Pitanje 09.65 ispita 1C: Platforma profesionalna. Da biste osigurali rad zakazanih i pozadinskih zadataka, morate:
  1. Pokretanje 1C: Enterprise sa zastavicom "Scheduler" postavljenom pri pokretanju
  2. dostupnost pokretanja 1C:Enterprise s periodičnim izvršavanjem odgovarajuće metode sistema
  3. dostupnost pokretanja 1C:Enterprise s periodično izvršavajućim odgovarajućim metodom sistema (ali samo u verziji datoteke sistema koji funkcioniše)
  4. i u verzijama datoteka i klijent-server, nema potrebe za pokretanjem 1C:Enterprise instance
U praksi, tačan odgovor je treći. U klijent-server načinu rada, planirane zakazane zadatke pokreće upravitelj klastera. Dakle, čak i ako nije uspostavljena veza klijenta sa info bazom, planirani zadaci će se izvršavati (pod uslovom da nisu zabranjeni za određenu infobazu). U verziji datoteke rada, da biste automatski pokrenuli planirane zadatke, morate imati namjensku klijentsku vezu koja se koristi kao planer zadataka. Obrada čekanja mora biti pokrenuta na ovoj vezi, pozivajući metodu 1. jezika ExecuteJobProcessing() u nekim intervalima.
Prema odgovorima, tačan odgovor je četvrti.
Pitanje 09.57 ispita 1C: Platforma profesionalna. Pozadinski poslovi vam omogućavaju:
  1. izvršiti proceduru prema rasporedu
  2. izvršiti proceduru asinhrono
  3. restart u slučaju pada
  4. tačni odgovori 1 i 2
  5. tačni odgovori 2 i 3
  6. tačni odgovori 1, 2, 3
Tačan odgovor je drugi. Asinhroni znači ne čekati da se procedura završi.
Pitanje 09.58 ispita 1C: Platforma profesionalna. Broj istovremeno pokrenutih pozadinskih poslova može biti:
  1. bilo koji bez ograničenja
  2. samo jedan zadatak po bazi podataka
  3. samo jedan posao po sesiji korisnika
  4. bilo koji broj, ali ne možete pokrenuti dva posla s istim ključem i imenom metode
  5. bilo koji broj, ali ne možete pokrenuti dva zadatka s istim ključem i imenom
  6. bilo koji broj, ali ne možete pokrenuti dva posla s istim ključem i povezanim s istim objektom metapodataka
Tačan odgovor je četvrti.
Pitanje 09.66 ispita 1C: Platforma profesionalna. Završeni pozadinski poslovi:
  1. pohranjene u infobazi
  2. su objekti sesije, pohranjeni su neko vrijeme (nisu pohranjeni u bazi podataka)
  3. nije pohranjen ni na koji način.
Tačan odgovor je šesti - posao u pozadini je objekt jezika 1C:Enterprise koji postoji samo za vrijeme trajanja sesije.

Ovaj članak daje primjer rada sa poslovima u pozadini, kao u Pokreću se pozadinski zadaci 1C kako možete dobiti listu zadataka koristeći metodu "GetBackgroundJobs()". Dakle, ova metoda nam vraća neki niz. Hajde da vidimo šta sadrži.

Odmah ću rezervisati da je gornji primjer razvijen u klijent-server verziji baze podataka.

Gornja slika prikazuje sadržaj ovog niza.

Obratite pažnju na teren "država". Sadrži informacije o tome da li je pokrenuti pozadinski posao uspješno dovršen ili još uvijek radi.

Sadrži i informacije o neuspješnom izvršavanju zadatka. Ovaj niz također sadrži informacije o ključevima, jedinstvenim identifikatorima, nazivima pozadinskih poslova. Informacije o pokrenutim i završenim zadacima pohranjuju se u infobazu, ali postoji ograničenje broja pohranjenih zapisa u tabeli. Ovaj broj je oko 1000 zapisa. Odnosno, kada se dodaju novi elementi, stari se uklanjaju. Također, zadatak se uklanja iz tabele ako je završen prije više od jednog dana.

Primjer rada s pozadinskim zadatkom 1C - Metoda "GetBackgroundTasks"

Pogledajmo i rad sa poslovima u pozadini koristeći metodu primjera "GetBackgroundJobs()". IN ovu metodu moguće je postaviti filter na primljene zapise. To jest, kao parametar metode, moramo proći strukturu.

Struktura može sadržavati polja: Jedinstveni identifikator, ključ, stanje, početak, kraj, ime, ime metode, zakazani zadatak.

Na primjer, ako su nam potrebni samo poslovi koji se izvršavaju, nametnuli bismo selekciju s imenom elementa strukture "State" i vrijednošću bismo postavili sistemsku enumeraciju "State of the Background Task" u aktivno stanje. Dakle, prvo morate osigurati da se zapisi o izvršavanju pozadinskih zadataka 1C pojavljuju u demo bazi podataka.


Učinimo sljedeće da implementiramo primjer:
1. Kreirajmo zajednički modul "BackgroundHandleri" Ono što radi na serveru.

I dodajte mu sljedeći kod:

Procedura IzvođenjeBackgroundComputation(parametar) Izvoz

StartTime = CurrentDate() ;

ByeCurrentDate() - Vrijeme početka Ciklus

EndCycle ;

EndProcedure

2. Kreirajte obradu, postavite dugme na obrazac "Izvršite zadatak u pozadini" i u proceduru za rukovanje događajem klika na dugme, dodajte sledeći kod:

&OnClient procedura ExecuteJob(Command) ExecuteBackgroundJobOnServer() ; EndProcedure

Opis nazvane procedure:

&AtServer procedura ExecuteBackgroundJobAtServer() BackgroundJob Parameters = New Array; Parametri BackgroundJob-a. Dodati( "Neki parametar" "Test" ) ; BackgroundJobParameters = Novi niz; Parametri BackgroundJob-a. Dodati( "Neki parametar") ; BackgroundTasks. Izvrši ( "BackgroundJobHandlers.PerformBackgroundComputation", BackgroundJobParameters, New UniqueIdentifier, "Test 2") ; EndProcedure // ExecuteBackgroundJobOnServer()

Sada pokrenimo 1C u poslovnom modu i pokrenimo pozadinski zadatak.


Spreman. Ovim akcijama osigurali smo da se zapisi o izvršavanju pozadinskih zadataka 1C pojave u našoj demo bazi podataka, te sada možemo demonstrirati primjer dobijanja njihovog niza koji se nalazi u našoj bazi podataka.

Dodavanje drugog dugmeta u obrazac "Nabavite pozadinske poslove". Napišimo sljedeći kod u proceduri rukovanja klikovima:

&OnClient procedura GetBackgroundJobs(Command) GetBackgroundJobsOnServer() ; EndProcedure

Tekst procedure na serveru:

&AtServer procedura GetBackgroundJobsAtServer() Parametri odabira = Nova struktura("Ime" , "Test 2") ; BackgroundJobsList = Pozadinski poslovi. GetBackgroundTasks(Opcije odabira) ; Za svaki zadatak Sa liste pozadinskih zadataka Izvještaj o petlji (Zadatak. Ime) ; EndCycle ; EndProcedure // GetBackgroundJobsOnServer()

Pokrenite 1C za izvršenje i pritisnite dugme "Nabavite pozadinske poslove".



Učitavanje...
Top