Activități programate și de fundal (creare, configurare, lansare). Joburi programate și de fundal (creare, configurare, lansare) 1c 8.3 joburi programate formulare gestionate din consolă

Probabil că nici o singură configurație serioasă pe 1C 8.3 sau 8.2 nu poate face fără utilizarea joburilor programate și de fundal. Sunt foarte convenabile, deoarece vor fi executate conform unui program clar definit, fără intervenția utilizatorului sau 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 în mod independent, de exemplu, în orele nelucrătoare... Această metodă nu va afecta în niciun fel experiența utilizatorului și va ajuta la economisirea de timp.

Mai întâi, să ne dăm seama ce înseamnă și care este diferența lor:

  • Sarcină de rutină vă permite să executați orice acțiuni specifice conform unui program preconfigurat.
  • Lucru de fundal Este un obiect care conține acțiunile de efectuat.

Să presupunem că firma noastră vinde ceva și are propriul site cu prețuri. Dorim să le descarcă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.

  • In camp " 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 a face acest lucru, setați sau debifați „ Utilizare».
  • 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 în mod programatic sau să utilizați procesarea „sarcini de consolă” din ITS.
  • De asemenea, puteți specifica numărul de repetări și intervalul dintre ele la terminarea anormală. Terminarea anormală se referă la acele situații în care sarcinile nu au funcționat din cauza unei erori.

Configurarea programului

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

Veți vedea o setare tipică de program în 1C 8.3. Nu este nimic dificil aici. Ca parte a acestui exemplu, am configurat lansarea descarcarii noastre de preturi pentru site in fiecare zi de la cinci la sapte dimineata. În cazul în care sarcina programată nu are timp să fie finalizată înainte de ora 7:00, aceasta va fi finalizată a doua zi.

Blocarea joburilor programate

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

În fereastra care se deschide (după introducerea numelui de autentificare și a parolei de acces la IB), verificați dacă steagul nu este setat pe elementul „Blocare sarcini de rutină inclus. " Dacă vă confruntați cu o situație în care sarcina nu funcționează, primul lucru de făcut este să verificați această setare.

În același mod, puteți dezactiva complet sarcinile programate în 1C 8.3. Pentru a dezactiva anumite lucrări de 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 sarcini este mult mai dificil de organizat. Cel mai adesea, un suplimentar Cont, a cărui sesiune va fi mereu deschisă.

În acest caz, joburile programate sunt activate folosind metoda „RunJobProcessing ()”.

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

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

Urmărirea erorilor în joburile de fundal

Vedeți progresul joburilor de fundal, precum și disponibilitatea posibile greșeli poate fi găsit în jurnalul de înregistrare. În filtru, setați filtrul la aplicația „Luc de fundal” și, dacă este necesar, selectați importanța de interes, de exemplu, doar „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
Configurații: Toate configurațiile

2012-11-13
53852

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

Destul de des, în IT, se respectă reglementările de monitorizare. Această metodă este bine cunoscută administratorilor, deoarece pentru aceasta există programe speciale care sunt folosite pentru a verifica periodic starea de sănătate a infrastructurii de rețea și a serverelor. Aceștia anunță administratorul cu privire la problemele detectate prin 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 pe un program în mod automatîn 1C. Să luăm în considerare acest subiect mai detaliat.

Sarcini programate 1C

Obiectul 1C, care se numește „Scheduled Tasks” - face posibilă procesarea informațiilor nu după ce a apărut o problemă, ci conform unui program. În configurator, o lucrare programată este o modalitate de a configura setările și de a seta un program. În plus, este posibilă modificarea ulterioară a programului în modul 1C Enterprise.

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

Toate configurațiile tipice au o setare de utilizator care vă permite să specificaț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 calculul paralel pe server, sarcina de fundal poate fi creată din textul programului folosind limbajul 1C, fără a utiliza sarcina 1C programată. Acțiunea unei sarcini programate poate fi dezactivată temporar utilizând consola de gestionare a serverului 1C.

Adăugarea unui job programat

Sarcinile programate se află î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 Numele metodei. Aici, trebuie să specificați funcția de gestionare, așa cum se întâmplă în abonamentul la eveniment. Această funcție va fi localizată în modulul general și va fi indicată de caseta de selectare Server din proprietăți. Aceasta înseamnă că modulul necesar trebuie adăugat în prealabil.

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 Scheduled Job Properties este o cheie care vă permite să grupați mai multe joburi programate diferite. În acest caz, o singură activitate cu aceeași valoare a cheii poate fi pornită la un moment dat. Aici, valoarea poate fi arbitrară, dar este obligatoriu să o completați, deoarece valoarea goală nu este luată în considerare de sistem.

În Revizia contabilă 2.0, care este o configurație tipică, sarcinile programate precum „Recalcularea totalurilor” și „Actualizarea configurației” sunt predefinite, dar precum, de exemplu, „Mișcări întârziate” și „Schimb de date” nu sunt predefinite.

Reîncercați la terminarea anormală - Reporniți o lucrare activă. Prevăzut pentru o lansare care nu a fost finalizată cu succes prima dată. Aici, este indicat de câte ori poate fi repornit și cât timp după o terminare anormală.

Instrumente de monitorizare și management pentru sarcina programată 1C

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

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

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

Atribuiț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 de sarcină;

Programați lucrări și copii ale bazei de date

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

Pentru programare este necesar să se facă o copie a bazei de lucru;

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

Din anumite motive, o sarcină programată 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 numai cu propria sa 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, efectuați un schimb. În acest caz, poate exista confuzie între rezultatele „lucrării” și copii. Pentru a preveni acest lucru, trebuie să dezactivați „sarcinile” din consola de gestionare a serverului.

Sarcini de rutină finalizate și neterminate

În timpul creării sarcinilor programate, este important să se verifice dacă sarcina poate fi efectuată ca sarcină programată. Este important de știut că modulul server nu oferă multe dintre lucrurile care sunt posibile pe client. Apoi, o sarcină care se ocupă de ceva care se află în afara bazei - rol importantîn același timp, se joacă drepturile utilizatorului Windows, în baza cărora este îndeplinită 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ă rulați o sarcină și să evaluați rezultatul.

Când se lucrează în 1C, există multe operațiuni de rutină care trebuie lansate sau formate pe un program prin efectuarea uneia sau acelea acțiuni, de exemplu: păstrarea documentelor sau descărcarea datelor în 1C de pe site.

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

Joburi programate și de fundal

Motorul de job este proiectat pentru a executa o anumită aplicație sau funcționalitate conform unui program sau asincron.

Mecanismul sarcinii rezolvă următoarele sarcini:

  • Capacitatea de a defini proceduri de rutină în etapa de configurare a sistemului;
  • Executarea actiunilor specificate conform programului;
  • Executarea unui apel la 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 de finalizare a acesteia (o valoare care indică succesul sau eșecul finalizării acesteia);
  • Obținerea unei liste de sarcini curente;
  • Capacitatea de a aștepta finalizarea uneia sau mai multor sarcini;
  • Managementul jobului (anularea, blocarea executiei etc.).

Motorul de lucru este format din următoarele componente:

  • Metadatele sarcinilor programate;
  • Sarcini de rutină;
  • Locuri de muncă de fundal;
  • Planificator de sarcini.

Lucrări de fundal și sunt menite să le facă sarcini aplicate asincron. Lucrările de fundal sunt implementate folosind limbajul încorporat.

Sarcini programate și sunt concepute pentru a îndeplini sarcinile aplicației conform unui program. Sarcinile programate sunt stocate în baza de informații și sunt create pe baza metadatelor definite în configurație. Metadatele jobului programat conțin informații precum numele, metoda, utilizarea etc.

Un job programat are un program care definește la ce momente trebuie executată metoda asociată jobului programat. Programul, de regulă, este specificat în baza de informații, dar poate fi specificat și în etapa de configurare (de exemplu, pentru sarcini programate predefinite).

Programatorul de sarcini este utilizat pentru a programa execuția sarcinilor programate. Pentru fiecare sarcină programată, planificatorul verifică periodic dacă data și ora curente sunt în programul sarcinii programate. Dacă da, planificatorul atribuie o astfel de sarcină pentru a fi executată. Pentru a face acest lucru, pentru această sarcină programată, planificatorul creează o sarcină de fundal care realizează 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 jobul de fundal conform programului specificat. Procedura ar trebui să fie într-un modul comun. Se recomandă să nu utilizați module obișnuite, ci să vă creați propriile module. Nu uitați că joburile de fundal rulează pe server!

Utilizare- un semn de utilizare a unei sarcini programate.

Predeterminat- indică dacă jobul programat este predefinit.

Dacă doriți ca sarcina de rutină să funcționeze imediat după ce a fost plasată în baza de date, indicați semnul Predeterminat... În caz contrar, va trebui să utilizați procesarea „Job Console” sau să invocați începerea jobului în mod programatic.

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

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

Configurarea programului

Programa finalizarea sarcinii:

În fiecare oră, doar o ziPerioada RepeatDays = 0, RepeatPeriodDuring a Day = 3600
În fiecare zi, o dată pe ziPerioada RepeatDays = 1, RepeatPeriodDuring a Day = 0
O zi, o datăPerioada RepeatDays = 0
Din două în două zile, o dată pe ziRepetați PeriodDays = 2
În fiecare oră de la 01.00 la 07.00 în fiecare ziDayRepeat Period = 1RepeatPeriodDuring the Day = 3600Start Time = 01.00

Ora de încheiere = 07.00

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

Ora de începere = 09.00

Specificații privind executarea joburilor de fundal în versiuni de fișiere și client-server

Mecanismele de executare a joburilor de fundal în versiunile fișier și client-server sunt diferite.

V versiunea fișierului trebuie să creați un proces client dedicat care se va ocupa de joburile de fundal. Pentru a face acest lucru, procesul client trebuie să apeleze periodic funcția de context global RunProcessingJob. Doar un proces client pe bază de informații ar trebui să proceseze joburi de fundal (și, prin urmare, apelează această funcție). Dacă procesul client pentru procesarea joburilor de fundal nu este creat, atunci când se accesează programatic motorul de job, va fi afișată eroarea „Managerul jobului nu este activ”. Nu este recomandat ca procesele client care procesează joburile de fundal să fie utilizate pentru alte funcții.

După ce procesul client care efectuează procesarea jobului în fundal a început, restul proceselor client pot accesa programatic motorul jobului în fundal, de exemplu. poate rula și gestiona joburi de fundal.

În versiunea client-server pentru a executa sarcini de fundal, se folosește planificatorul de activități, care se află fizic în managerul de cluster. Planificatorul pentru toate joburile de fundal aflate în coadă primește cel mai puțin ocupat flux de lucru și îl folosește pentru a executa jobul de fundal corespunzător. Procesul de lucru rulează jobul și notifică planificatorul cu privire la rezultatele execuției.

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

  • O blocare explicită a joburilor programate este instalată în baza de informații. Blocarea poate fi setata prin consola cluster;
  • Pe baza de informații este instalată o blocare a conexiunii. Blocarea poate fi setata 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 vizualizarea joburilor programate poti descarca aici.

Probabil, fiecare programator 1C 8.3 mai devreme sau mai târziu a trebuit să configureze execuția 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 începători 1C. Este foarte convenabil, deoarece nu necesită acțiune umană, o sarcină programată este configurată 1 dată și funcționează conform programului tău.

Veți găsi instrucțiuni detaliate pe un exemplu de mai jos.

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

  • Sarcini programate- aceasta este mecanism special 1C Enterprise 8.3, conceput pentru a performa anumită acțiune conform programului stabilit.
  • Lucru de fundal- obiecte generate de o sarcină programată care realizează direct acțiunea atribuită fără participarea unui utilizator sau programator 1C 8.2.

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

Configurarea joburilor de fundal în modul client-server 1C

Mai întâi, să creăm un nou obiect de metadate - un job programat. Îmi voi numi sarcina „Încărcare valută”. Luați în considerare paleta de proprietăți a acestui obiect de configurare:

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

  • Numele metodei- calea către procedura care va fi executată în jobul de fundal conform programului specificat. Procedura ar trebui să fie într-un modul comun. Este recomandat să nu folosiți cele standard, ci să vă creați propriile. Nu uitați că joburile de fundal rulează pe server!
  • Utilizare- un semn de utilizare a unei sarcini programate.
  • Predeterminat- indică dacă jobul programat este predefinit. Dacă doriți ca sarcina programată să funcționeze imediat după ce a fost plasată în baza de date, indicați acest semn. În caz contrar, va trebui să utilizați procesarea Job Console sau să invocați lansarea jobului în mod programatic.
  • Numărul de reîncercări în cazul finalizării anormale a sarcinii- de câte ori a fost repornit jobul de fundal dacă a fost finalizat cu o eroare.
  • Interval de reîncercare pentru terminarea anormală a jobului- cât de des va fi repornit jobul de fundal dacă a fost executat cu o eroare.

Și cel mai interesant decor este Programa:

Aici puteți configura intervalul de pornire a procedurii specificat în câmpul „Nume metodă”. Să zicem că am configurat

Atenţie! Nu uitați să dezactivați blocarea execuției joburilor programate și în fundal la nivel DBMS!

Acest lucru se poate face în utilitarul de administrare client-server sau la crearea unei noi baze 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ă mereu.

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

Pentru un anumit utilizator, puteți configura această metodă să ruleze folosind 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 partajat global. Procedura trebuie să fie 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: