Sarcini programate și de fundal (creare, configurare, lansare). Joburi planificate și în fundal (creare, configurare, lansare) 1c 8.3 formulare gestionate de consolă de locuri de muncă planificate

Probabil, nicio configurație serioasă pe 1C 8.3 sau 8.2 nu se poate descurca fără utilizarea lucrărilor planificate și de fundal. Sunt foarte convenabile, deoarece vor fi executate conform unui program clar definit, fără intervenția utilizatorului sau a programatorului.

De exemplu, trebuie să faceți schimb de date cu un alt program o dată pe zi. Folosind sarcini programate și de fundal, 1C va putea efectua aceste acțiuni pe cont propriu, de exemplu, în afara programului de lucru. Această metodă nu va afecta în niciun fel experiența utilizatorului și vă va ajuta să economisiți timp.

În primul rând, să ne dăm seama ce înseamnă și care este diferența lor:

  • Sarcină de rutină vă permite să rulați orice acțiuni specifice pe un program preconfigurat.
  • Lucrare de fundal Este un obiect care conține acțiunile care trebuie efectuate.

Să presupunem că firma noastră vinde ceva și are propriul său site web cu prețuri. Vrem să le descărcăm o dată pe zi pentru a le menține relevanța.

Deschideți configurația și adăugați o lucrare programată.

Setarea proprietăților

Să luăm în considerare cei mai importanți parametri care trebuie completați în proprietățile sale.

  • În câmp " Numele metodei»Se selectează procedura unui anumit modul general, care va fi executat direct. Acesta va indica toate acțiunile de încărcare a prețurilor pe site-ul nostru. Rețineți că execuția va avea loc pe server. Acest lucru este logic, deoarece operațiunile de rutină sunt efectuate fără intervenția utilizatorului.
  • Lucrarea programată poate fi dezactivată sau activată după cum este necesar. Nu trebuie să-i schimbi programul de fiecare dată. Pentru aceasta, setați sau debifați „ Folosind».
  • O altă setare importantă este dacă această sarcină programată va fi predeterminat, sau nu. Lucrările programate predefinite încep automat. Dacă acest semn nu este setat, atunci va trebui să le rulați programatic sau să utilizați procesarea „Console task” din ITS.
  • De asemenea, puteți specifica numărul de repetări și intervalul dintre ele la încetarea anormală. Încetarea anormală se referă la acele situații în care sarcinile nu au funcționat din cauza unei erori.

Configurați programarea

În pasul final, vom seta programul pentru încărcarea noastră pe site folosind hyperlinkul corespunzător din paleta de proprietăți.

Veți vedea o setare tipică a programului în 1C 8.3. Aici nu este nimic dificil. Ca parte a acestui exemplu, am creat lansarea descărcării prețurilor pentru site în fiecare zi de la cinci la șapte dimineața. În cazul în care sarcina programată nu are timp să se finalizeze înainte de ora 7:00, va fi finalizată a doua zi.

Blocarea locurilor de muncă programate

Rulați utilitarul standard „Administrarea serverelor 1C Enterprise” și deschideți proprietățile bazei de date în care ați creat sarcina programată (pentru versiunile client-server ale 1C).

În fereastra care se deschide (după ce ați introdus datele de conectare și parola pentru acces la IB), verificați dacă semnalizatorul de pe articolul „Blocarea sarcinilor programate este activat” nu este setat. Dacă vă confruntați cu o situație în care sarcina nu funcționează, verificați mai întâi această setare.

În același mod, puteți dezactiva complet sarcinile programate în 1C 8.3. Pentru a dezactiva anumite lucrări în fundal, puteți utiliza procesarea „Background Job Console” încorporată în cele mai recente versiuni.

Activități de fundal și programate în modul fișier

În acest mod, configurarea și rularea acestor joburi este mult mai dificil de organizat. Cel mai adesea, se creează un cont suplimentar, a cărui sesiune va fi întotdeauna deschisă.

În acest caz, joburile programate sunt activate utilizând metoda "RunJobProcessing ()".

De asemenea, puteți utiliza următoarea construcție:

Ca nume al procedurii, trebuie să specificați numele procedurii client de executat. Intervalul arată câte secunde va dura execuția. Parametrul „Odată” este opțional. Acesta reflectă dacă această procedură va fi efectuată o dată sau de mai multe ori.

Urmărirea erorilor în lucrările de fundal

Puteți vizualiza progresul sarcinilor de fundal, precum și prezența posibilelor erori în jurnal. În filtru, setați filtrul la aplicația „Lucrare în fundal” și, dacă este necesar, selectați importanța interesului, de exemplu, numai „Erori”.

Jurnalul va afișa toate intrările care se potrivesc cu selecția dvs., cu un comentariu care indică motivul erorii.

Platforme: 1C: Enterprise 8.3, 1C: Enterprise 8.2, 1C: Enterprise 8.1
Configurări: Toate configurațiile

2012-11-13
53852

Există sarcini în fluxul de lucru care necesită execuție periodică - de exemplu, pe a douăzecea sau zilnic. De regulă, în companiile special create pentru aceasta, sunt create anumite reguli în care se indică când și cum ar trebui îndeplinită sarcina necesară și cine ar trebui să controleze procesul. Astfel de sarcini sunt îndeplinite în conformitate cu reglementările și sunt numite - reglementate.

Destul de des, în IT, sunt respectate reglementările de monitorizare. Această metodă este foarte familiară administratorilor, deoarece pentru aceasta există programe speciale care sunt utilizate pentru a verifica periodic starea infrastructurii de rețea și a serverelor. Aceștia notifică administratorul problemelor detectate folosind SMS sau e-mail.

Un sistem similar funcționează pentru webmasteri, în timp ce disponibilitatea site-ului este verificată în timpul zilei. Cu ajutorul mecanismului „Sarcini programate” din 1C, sunt efectuate sarcini de monitorizare, precum și sarcini periodice care sunt efectuate conform unui program în modul automat în 1C. Să luăm în considerare acest subiect în detaliu.

Sarcini programate 1C

Obiectul 1C, care se numește „Sarcini programate” - face posibilă prelucrarea informațiilor nu după o problemă, ci după o programare. În configurator, o lucrare programată este o modalitate de a configura setările și de a seta un program. În plus, este posibil să se schimbe ulterior programul în modul 1C Enterprise.

Când utilizați o bază de date de fișiere, lucrările nu sunt executate automat. Pentru a porni procesul, este necesar să porniți o sesiune 1C, în modul 1C Enterprise și deja să începeți executarea unei sarcini programate.

Toate configurațiile tipice au o setare de utilizator care vă permite să clarificați că atunci când rulează 1C, sarcinile programate vor fi efectuate automat.

Utilizarea versiunii client-server a 1C face posibilă efectuarea automată a sarcinilor pe server. La ora programată - este lansată sarcina de fundal, care efectuează acțiunile necesare. Pentru calcul paralel pe server, o lucrare de fundal poate fi creată din textul programului folosind limbajul 1C, fără a utiliza jobul programat 1C. Acțiunea unei sarcini programate poate fi dezactivată temporar folosind consola de administrare a serverului 1C.

Adăugarea unui job programat

Sarcinile programate sunt localizate în - Configurator - General - Sarcini programate. Adăugați un nou „job” și furnizați un nume. Apoi, trebuie să accesați proprietățile „Sarcini”. Și selectați Nume metodă. Aici, trebuie să specificați funcția de gestionare, la fel cum se întâmplă în abonamentul la eveniment. Această funcție va fi localizată în modulul general și indicată de caseta de selectare Server din proprietăți. Aceasta înseamnă că modulul necesar trebuie adăugat în avans.

Numele jobului din Proprietățile unui job programat vă permite să definiți numele acestuia, care va apărea apoi în instrumentele de gestionare a jobului. Funcția Proprietăți lucrări programate este o cheie care vă permite să grupați mai multe lucrări programate diferite. În acest caz, o singură sarcină cu aceeași valoare cheie poate fi lansată odată. Aici, valoarea poate fi arbitrară, dar este obligatorie să o completați, deoarece valoarea goală nu este luată în considerare de sistem.

În revizuirea contabilității 2.0, care este o configurație tipică, sarcinile programate precum „Recalcularea totalurilor” și „Actualizarea configurației” sunt predefinite, dar, de exemplu, „Mișcări amânate” și „Schimb de date” nu sunt predefinite.

Încercați din nou la terminarea anormală - Reporniți o lucrare activă. Prevederea pentru lansare nu a avut succes prima dată. Aici, este indicat de câte ori puteți reporni și cât timp după o întrerupere anormală.

Instrumente de monitorizare și gestionare pentru sarcina planificată 1C

Pentru gestionarea jobului programat, procesarea tipică „Job Console”, care poate fi găsită pe discurile ITS, este responsabilă. Acest tratament este un tratament tipic extern universal al 1C. De regulă, nu este inclus în configurație, dar este achiziționat separat.

Cu ajutorul acestuia, puteți efectua următoarele acțiuni:

Activați și dezactivați sarcina programată;

Alocați și modificați programul;

Desemnați numele utilizatorului cu care va fi efectuată sarcina programată;

Vedeți sarcinile finalizate (când și cu ce rezultat), precum și erorile sarcinii;

Programați copii de locuri de muncă și baze de date

Când utilizați serverul 1C, poate apărea următorul moment:

Pentru programare, trebuie să faceți o copie a bazei de lucru;

Nevoia de a lucra cu copii ale bazei de date (testare);

Din anumite motive, o activitate planificată nu este inclusă în baza de date de testare.

Dacă una dintre aceste situații a apărut în timpul executării sarcinilor de către o sarcină programată, care sunt asociate doar cu propria bază de date, atunci aceasta nu implică consecințe negative. Dar, adesea, o sarcină de rutină poate salva fișiere sau alte date, trimite e-mailuri și face schimb. În acest caz, poate exista confuzie între rezultatele „jobului” și copii. Pentru a preveni acest lucru, trebuie să dezactivați „sarcinile” în consola de administrare a serverului.

Sarcini de rutină finalizate și nerealizate

Când creați sarcini programate, este important să verificați dacă sarcina poate fi efectuată ca sarcină programată. Este important să știți că modulul server nu oferă multe lucruri posibile pentru client. Mai mult, o sarcină care se ocupă de ceva care se află în afara bazei - un rol important în aceasta este jucat de drepturile utilizatorului Windows sub care se execută sarcina.

Ultimul factor este deosebit de important, deoarece dacă modulul nu este executat pe server, atunci sarcina nu poate fi finalizată în principiu. Pentru a verifica, trebuie să executați o sarcină și să evaluați rezultatul.

Când lucrați în 1C, există multe operațiuni de rutină care trebuie lansate sau formate într-un program prin efectuarea uneia sau a acțiunii respective, de exemplu: păstrarea documentelor sau descărcarea datelor pe 1C de pe site.

Am postat recent un articol: este timpul să automatizăm acest lucru:

Locuri de muncă programate și de fundal

Motorul de lucru este conceput pentru a executa o anumită aplicație sau funcționalitate în mod programat sau asincron.

Mecanismul de sarcini rezolvă următoarele sarcini:

  • Abilitatea de a defini proceduri de rutină în etapa de configurare a sistemului;
  • Executarea acțiunilor specificate într-un program;
  • Executarea unui apel către o anumită procedură sau funcție este asincronă, adică fără a aștepta finalizarea acestuia;
  • Urmărirea progresului unei sarcini specifice și obținerea stării sale de finalizare (o valoare care indică succesul sau eșecul finalizării sale);
  • Obținerea unei liste de sarcini curente;
  • Capacitatea de a aștepta finalizarea uneia sau mai multor sarcini;
  • Managementul postului (capacitatea de a anula, de a bloca execuția etc.).

Motorul de lucru constă din următoarele componente:

  • Metadatele sarcinilor programate;
  • Sarcini de rutină;
  • Lucrări de fundal;
  • Planificator de sarcini.

Lucrările în fundal și sunt concepute pentru a rula sarcini ale aplicației în mod asincron. Lucrările de fundal sunt implementate utilizând limbajul încorporat.

Sarcini programate și sunt concepute pentru a efectua sarcini de aplicație conform unui program. Sarcinile programate sunt stocate în baza de date și sunt create pe baza metadatelor definite în configurație. Metadatele lucrărilor programate conțin informații precum numele, metoda, utilizarea etc.

O lucrare planificată are un program care definește la ce puncte de timp ar trebui executată metoda asociată lucrării planificate. Programarea, de regulă, este specificată în baza de date, dar poate fi specificată și în etapa de configurare (de exemplu, pentru sarcini programate predefinite).

Planificatorul de sarcini este utilizat pentru a programa execuția sarcinilor planificate. Pentru fiecare sarcină planificată, planificatorul verifică periodic dacă data și ora curente se află în programul sarcinii planificate. Dacă da, programatorul atribuie o astfel de sarcină pentru a fi executată. Pentru a face acest lucru, pentru această sarcină planificată, planificatorul creează o sarcină de fundal care efectuează procesarea reală.

Cu descrierea, cred că este suficient - să trecem la implementare:

Crearea unui job programat

Numele metodei - calea către procedura care va fi executată în lucrarea de fundal în conformitate cu programul specificat. Procedura ar trebui să se afle într-un modul comun. Se recomandă să nu utilizați module obișnuite tipice, ci să vă creați propriile. Nu uitați că joburile de fundal rulează pe server!

Folosind - semnul utilizării unei sarcini programate.

Predeterminat- indică dacă jobul programat este predefinit.

Dacă doriți ca sarcina programată să funcționeze imediat după plasarea în baza de date, specificați semnul Predeterminat... În caz contrar, va trebui să utilizați procesarea „Job Console” sau să invocați programarea lansării sarcinii.

Numărul de reîncercări în cazul finalizării anormale a sarcinii - de câte ori a fost repornită lucrarea de fundal dacă a fost finalizată cu o eroare.

Interval de reîncercare pentru încetarea anormală a postului - cât de des va fi repornită lucrarea de fundal dacă a fost executată cu o eroare.

Configurați programarea

orar finalizarea sarcinii:

În fiecare oră, doar o ziRepeatDays Period \u003d 0, RepeatPeriodDuring a Day \u003d 3600
În fiecare zi, o dată pe ziRepeatPeriodDays \u003d 1, RepeatPeriodOverDay \u003d 0
Într-o zi, o datăPerioada RepeatDays \u003d 0
În fiecare zi, o dată pe ziRepetați PeriodDays \u003d 2
În fiecare oră de la 01.00 la 07.00 în fiecare ziDayRepeat Period \u003d 1RepeatPeriodDuring the Day \u003d 3600 Start Time \u003d 01.00

Ora de încheiere \u003d 07.00

În fiecare sâmbătă și duminică la ora 09.00RepeatDays Period \u003d 1DaysWeeks \u003d 6, 7 Start Time \u003d 09.00
În fiecare zi, o săptămână, o săptămânăZile de perioadă de recurență \u003d 1PeriodWeeks \u003d 2
La ora 01.00 o datăOra de început \u003d 01.00
Ultima zi a fiecărei luni la ora 9:00.RepeatDays Period \u003d 1DayInMonth \u003d -1Start Time \u003d 09.00
A cincea din fiecare lună la 9:00RepeatDays Period \u003d 1DayInMonth \u003d 5Start Time \u003d 09.00
A doua miercuri a fiecărei luni la ora 9:00Repetați PeriodDays \u003d 1DayWeekInMonth \u003d 2DaysWeeks \u003d 3

Ora de început \u003d 09.00

Specificații privind executarea lucrărilor de fundal în versiunile de fișiere și client-server

Mecanismele pentru executarea lucrărilor de fundal în fișierul și versiunile client-server sunt diferite.

În versiunea de fișier trebuie să creați un proces dedicat client care să gestioneze lucrările de fundal. Pentru a face acest lucru, procesul clientului trebuie să apeleze periodic funcția de context global RunProcessingJobs. Doar un proces client pentru fiecare bază de date ar trebui să proceseze lucrări de fundal (și, prin urmare, să numească această funcție). Dacă nu a fost creat niciun proces client pentru a procesa lucrări de fundal, atunci eroarea „Job manager nu este activ” va fi afișată la accesarea programată a motorului de job. Nu se recomandă utilizarea procesului client care procesează lucrări de fundal pentru alte funcții.

După ce a început procesul clientului care efectuează procesarea jobului de fundal, alte procese client pot accesa programatic motorul jobului de fundal, adică poate rula și gestiona lucrări de fundal.

În versiunea client-server pentru a executa sarcini de fundal, se utilizează planificatorul de sarcini, care este localizat fizic în cluster manager. Planificatorul pentru toate lucrările de fundal aflate în coadă primește fluxul de lucru cel mai puțin ocupat și îl folosește pentru a executa lucrarea de fundal corespunzătoare. Fluxul de lucru rulează lucrarea și notifică planificatorului rezultatele execuției.

În versiunea client-server, este posibilă blocarea executării sarcinilor planificate. Blocarea executării sarcinilor programate are loc în următoarele cazuri:

  • O blocare explicită a lucrărilor programate este instalată pe baza de date. Blocarea poate fi setată prin consola cluster;
  • O blocare a conexiunii este instalată pe baza de date. Blocarea poate fi setată prin consola cluster;
  • Metoda SetExclusiveMode () a fost apelată din limbajul încorporat cu parametrul True;
  • În alte cazuri (de exemplu, la actualizarea configurației bazei de date).

Procesarea lansării și vizualizării lucrărilor programate puteți descărca aici.

Probabil, fiecare programator 1C 8.3, mai devreme sau mai târziu, a trebuit să configureze executarea anumitor sarcini într-un program. Mai jos voi oferi o descriere detaliată a acestor mecanisme, sper că acestea vor fi informații utile pentru programatorii novici 1C. Este foarte convenabil, deoarece nu necesită acțiune umană, o sarcină programată este configurată de 1 dată și funcționează conform programului dvs.

Veți găsi instrucțiuni detaliate într-un exemplu de mai jos.

Ce sunt sarcinile programate și de fundal în 1C

  • Sarcini programate Este un mecanism special 1C Enterprise 8.3 conceput pentru a efectua o acțiune specifică pentru un anumit program.
  • Lucrare de fundal - obiecte generate de o sarcină programată care efectuează direct acțiunea atribuită fără participarea utilizatorului sau a programatorului 1C 8.2.

Mecanismul lucrărilor planificate și de fundal funcționează într-un mod de operare client-server (SQL), datorită funcționalității SGBD. Dacă aveți o bază de date de fișiere, atunci sarcina poate fi, de asemenea, configurată, dar într-un mod ușor diferit.

Configurarea lucrărilor de fundal în modul client-server 1C

În primul rând, să creăm un nou obiect de metadate - o lucrare programată. Voi numi sarcina mea „Încărcarea monedei valutare”. Luați în considerare paleta de proprietăți a acestui obiect de configurare:

Obțineți gratuit 267 tutoriale video 1C:

  • Numele metodei - calea către procedura care va fi executată în lucrarea de fundal în conformitate cu programul specificat. Procedura ar trebui să se afle într-un modul comun. Se recomandă să nu utilizați standarde, ci să vă creați propriile. Nu uitați că joburile de fundal rulează pe server!
  • Folosind - semnul utilizării unei sarcini programate.
  • Predeterminat - indică dacă jobul programat este predefinit. Dacă doriți ca sarcina programată să înceapă să funcționeze imediat după plasarea în baza de date, indicați acest semn. În caz contrar, va trebui să utilizați procesarea Consolei de locuri de muncă sau să invocați programarea lansării lucrărilor.
  • Numărul de reîncercări în cazul finalizării anormale a sarcinii - de câte ori a fost repornită lucrarea de fundal dacă a fost finalizată cu o eroare.
  • Interval de reîncercare pentru încetarea anormală a postului - cât de des va fi repornită lucrarea de fundal dacă a fost executată cu o eroare.

Și cel mai interesant decor este Orar:

Aici este configurat intervalul de pornire a procedurii specificate în câmpul „Numele metodei”. Să presupunem că am configurat

Atenţie!Nu uitați să dezactivați blocarea executării lucrărilor planificate și în fundal la nivelul SGBD!

Acest lucru se poate face în utilitarul de administrare client-server sau când creați o nouă bază de date:

Configurarea sarcinilor programate în modul fișier 1C

În modul fișier, configurarea unor astfel de lucrări este ceva mai dificilă. Pentru o astfel de sarcină, trebuie lansată o sesiune separată a programului 1C. Acest lucru este adesea gestionat de instituția utilizatorului „tehnic”, a cărui sesiune rulează întotdeauna.

În modul fișier, jobul programat este inițializat atunci când este pornită metoda RunJobProcessing ().

Pentru un anumit utilizator, puteți configura această metodă pentru a rula utilizând o altă metodă -

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

  • Denumirea procedurii - numele procedurii conectate ca handler de așteptare. Numele procedurii exportate a unui modul de aplicație gestionat (modul de aplicație obișnuit) sau a unui modul global partajat. Procedura trebuie localizată pe client.
  • Interval - perioada dintre execuțiile operațiunilor în secunde.
  • O singura data - cum să finalizați sarcina, o dată sau nu.

ConnectWaitingHandler, 3600);

Un videoclip de două minute care arată cum să configurați o sarcină programată în configuratorul 1C:

 

Ar putea fi util să citiți: