1c sarcini de rutină. Sarcini de fundal: caracteristici, capabilități, setări. – Actualizare sarcini contabile


Cum să accelerați munca în 1C: Contabilitate 8.3 (versiunea 3.0) sau dezactivați sarcinile de rutină și de fundal

2019-01-15T13:28:19+00:00

Aceia dintre voi care ați reușit deja să treceți la noua ediție a 1C: Accounting 8.3 (versiunea 3.0) ați observat că a devenit mai lent decât doi. Câteva încetiniri ciudate, sarcini de fundal nesfârșite de mai multe ori pe zi, pe care nimeni nu i-a cerut să le îndeplinească fără știrea noastră.

Imediat după tranziție, contabilii mei mi-au spus că noua ediție a 1C: Contabilitatea 3.0, sincer, încetinește în comparație cu cele anterioare! Și este imposibil să lucrezi.

Am început să înțeleg și foarte curând am aflat că principala cauză a înghețurilor și a nemulțumirii ulterioare a utilizatorilor sunt sarcinile de rutină și de fundal, dintre care multe sunt activate implicit, deși pentru marea majoritate a contabililor nu sunt necesare.

Ei bine, de exemplu, de ce trebuie să rulăm sarcina „Extragere text” de o sută de ori pe zi dacă nu efectuăm o căutare full-text (contabili, nu vă speriați) în toate obiectele din baza noastră de date.

Sau de ce descarcă constant cursuri de schimb dacă nu avem tranzacții valutare sau le facem ocazional (și înainte de asta putem face clic pe butonul de descărcare a ratelor).

Același lucru este valabil și pentru încercarea constantă a 1C de a se conecta la site și de a verifica și actualiza clasificatoarele băncilor. Pentru ce? Eu însumi voi apăsa butonul pentru a actualiza clasificatoarele dacă nu găsesc malul drept după BIC-ul său.

Despre cum să o faceți în punctele de mai jos.

1. Accesați secțiunea „Administrare” și selectați elementul „Întreținere” din panoul de acțiuni ():

2. În fereastra care se deschide, găsiți și selectați elementul „Activități obișnuite și de fundal”:

3. Deschideți fiecare job care are coloana Activat. merită un coron.

4. Debifați „Activat” și faceți clic pe butonul „Salvare și închidere”.

5. Faceți acest lucru cu fiecare dintre sarcinile incluse și bucurați-vă de noua ediție. În general, după părerea mea, este mult mai bun decât deuce.

În același timp, platforma va activa în continuare unele dintre sarcinile programate pe care le-ați dezactivat.

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

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

Locuri de muncă programate și de fundal

Mecanismul jobului este proiectat pentru a executa orice aplicație sau funcționalitate conform unui program sau asincron.

Mecanismul postului îndeplinește următoarele sarcini:

  • Capacitatea de a determina 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 unui anumit job și obținerea stării de finalizare a acestuia (o valoare care indică succesul sau eșecul execuției sale);
  • Obținerea unei liste de sarcini curente;
  • Abilitatea de a aștepta finalizarea uneia sau mai multor sarcini;
  • Managementul jobului (posibilitate de anulare, blocare a executiei etc.).

Motorul de lucru este format din următoarele componente:

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

Lucrările de fundal și sunt concepute pentru a rula sarcinile aplicației în mod asincron. Lucrările de fundal sunt implementate folosind limbajul încorporat.

Sarcini programate și sunt concepute pentru a îndeplini sarcini programate. 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 și așa mai departe.

Un job programat are un program care determină la ce oră trebuie executată metoda asociată jobului programat. Programul, de regulă, este stabilit în baza de informații, dar poate fi setat ș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 job programat, planificatorul verifică periodic dacă data și ora curente se potrivesc cu programarea jobului programat. Dacă se potrivește, planificatorul programează acea lucrare să ruleze. Pentru a face acest lucru, conform acestei sarcini programate, planificatorul creează o sarcină de fundal care realizează procesarea efectivă.

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 sarcina de fundal conform programului specificat. Procedura trebuie să fie într-un modul partajat. 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 al utilizării 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, specificați semnul predeterminat. În caz contrar, va trebui să utilizați procesarea „Job Console” sau să apelați jobul pentru a rula programatic.

Numărul de reîncercări atunci când o sarcină se blochează– de câte ori a fost repornit jobul de fundal dacă a fost executat cu o eroare.

Interval de reîncercare pentru anularea lucrării– cât de des va fi repornită sarcina de fundal dacă a fost executată cu o eroare.

Setarea programului

Programa executarea sarcinii:

În fiecare oră, doar o ziReîncercați PeriodDays = 0, Retry PeriodDuringDay = 3600
În fiecare zi, o dată pe ziReîncercați PeriodDays = 1, Retry PeriodDuringDay = 0
O zi, o datăZilele perioadei de reîncercare = 0
Din două în două zile, o dată pe ziZilele perioadei de reîncercare = 2
În fiecare oră de la 01.00 la 07.00 în fiecare ziRetryPeriodDays = 1RepeatPeriodDay = 3600StartTime = 01.00

Ora de încheiere = 07.00

În fiecare sâmbătă și duminică la ora 09.00Perioada de repetare a zilelor = 1 zile ale săptămânii = 6, 7StartTime = 09.00
În fiecare zi, o săptămână, trece o săptămânăRepetați perioada de zile = 1 Perioada de săptămâni = 2
La 01.00 o datăOra de pornire = 01.00
Ultima zi a fiecărei luni la ora 9:00.Perioada de repetare a zilelor = 1DayInMonth = -1StartTime = 09.00
A cincea a fiecărei luni la ora 9:00Perioada de repetare a zilelor = 1DayInMonth = 5StartTime = 09.00
A doua zi de miercuri a fiecărei luni la ora 9:00Repetați PeriodDays = 1DayWeekInMonth = 2DaysWeek = 3

Ora de începere = 09.00

Particularități ale efectuării sarcinilor de fundal în versiunile fișier și client-server

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

În format de fișier trebuie să creați un proces client dedicat care va efectua sarcini de fundal. Pentru a face acest lucru, funcția de context global ExecuteJobProcessing trebuie apelată periodic în procesul client. Doar un proces client pe bază de informații ar trebui să proceseze joburi de fundal (și, prin urmare, apelează această funcție). Dacă nu a fost creat niciun proces client pentru a procesa joburi de fundal, atunci când accesați programatic motorul de job, va fi generată eroarea „Managerul jobului nu este activ”. Nu este recomandat să utilizați procesul client care procesează joburi de fundal pentru alte funcții.

După ce procesul clientului procesează joburile de fundal este pornit, alte procese client pot accesa programatic mecanismul jobului de fundal, de exemplu. poate rula și gestiona joburi de fundal.

În versiunea client-server Pentru a executa joburi 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 proces de lucru și îl folosește pentru a rula jobul de fundal corespunzător. Procesul de lucru execută jobul și notifică planificatorul despre 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 sarcinilor programate a fost setată în baza de informații. Blocarea poate fi setata prin consola cluster;
  • Un bloc de conexiune a fost setat pe baza de informații. 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.

". În acesta, vom lua în considerare noi funcții care nu se referă la interfața sistemului, dar extind semnificativ funcționalitatea platformei 1C:Enterprise 8.

Aplicabilitate

Articolul tratează platforma 1C:Enterprise versiunea 8.3.4.437. Toate funcționalitățile descrise în articol au fost actualizate la versiunea 8.3.11.

Alte inovații în 1C: Enterprise 8.3

Să continuăm să ne familiarizăm cu inovațiile platformei 1C:Enterprise 8.3.

Activități de fundal și programate în baza de informații pentru fișiere

În multe configurații tipice de platformă 8.2 a existat o constantă care indica utilizatorul sub care au fost efectuate sarcinile în versiunea fișierului.

Când sistemul a început să funcționeze sub acest utilizator, a fost conectat un handler de așteptare, care la o anumită frecvență a numit metoda limbajului încorporat ExecuteProcessingJobs().

Această abordare a creat dificultăți și inconveniente suplimentare pentru utilizarea sarcinilor programate în baza de fișiere.

Acest lucru ar putea fi deosebit de critic atunci când lucrați cu configurații precum „Automatizare cuprinzătoare” sau „Managementul întreprinderii de producție”în care sarcinile de rutină joacă un rol destul de important.

Dacă Acesta este FișierIB, atunci
=
Constants.UserForPerformingRegularTasksInFileVariant.Get();
În cazul în care un glValueVariable(„gCurrentUser”) =
UserToPerformRegularJobs Apoi
// cu un interval de secunde, numim procedura de lucru cu sarcinile programate
Suport RegularTaskForFileVersion();
IntervalPentru Sondaj=
Constants.IntervalForPollingRegularTasksInFileVariant.Get();
În cazul în care un IntervalPentru Sondaj= Nedefinit
SAU IntervalPentru Sondaj= 0 Atunci
IntervalPentru Sondaj= 60 ;
EndIf ;
ConnectHandlerWaiting(„SuportRegularAssignmentForFileVersion”,
IntervalPentru Sondaj);
EndIf ;
EndIf ;

În platformă 8.3 Am implementat munca de fundal și sarcinile programate în baza de informații de fișiere fără a utiliza apelul metodei context global ExecuteProcessingJobs().

Sarcinile de fundal și programate sunt executate direct într-una dintre aplicațiile client (client subțire, gros) sau printr-o extensie de server web.

Un job de fundal început de o sesiune este executat de aceeași aplicație client care a inițiat-o.

Lucrările de fundal sunt executate secvenţial, de exemplu. pe o singură aplicație client la un moment dat, poate fi executată o singură activitate de fundal (inclusiv cele programate).

Sarcinile programate sunt efectuate de o singură aplicație client. Tasta de linie de comandă este utilizată pentru a controla lansarea sarcinilor programate. /AllowExecuteScheduledJobs.

Sarcinile programate sunt executate de prima aplicație client în ordinea lansării, care nu este interzis să execute sarcini programate (pentru a dezactiva sesiunea, aceasta trebuie pornită cu parametrul liniei de comandă /AllowExecuteScheduledJobs -Off).

Când această sesiune se termină, execuția trece la oricare dintre sesiunile care rulează rămase.

Dacă linia de lansare a aplicației client specifică în mod explicit necesitatea lansării sarcinilor programate (linia de comandă specifică /AllowExecuteScheduledJobs -Force), apoi sarcinile programate încep să ruleze pe acesta, indiferent de prezența altor sesiuni.

Sarcinile programate sunt procesate o dată la 60 de secunde.

Rețineți că sarcinile programate ale soluției aplicate (în versiunea de fișier) au început să fie executate nu mai devreme de 1 minut după lansarea aplicației client. Începând cu versiunea 8.3.8, acest timp a fost dublat și, prin urmare, sarcinile programate încep să ruleze la maximum 2 minute după pornirea clientului (în versiunea de fișier).

Această decizie se datorează scăderii întârzierii la începerea cererii. În plus, în versiunea 8.3.7, a fost adăugată capacitatea de a determina rapid dacă sesiunea curentă este o sesiune de job de fundal. Acest lucru este implementat printr-o nouă metodă de context global GetCurrentInfobaseSession(), precum și printr-o nouă metodă pentru o sesiune de bază de informații GetBackgroundTask().

Mai jos este codul care ilustrează cele de mai sus:

Click pe imagine pentru marire.

Calculul sumei de control

Platforma are acum mecanisme pentru calcularea sumelor de verificare a datelor.

Reamintim că o sumă de control (hash) este o anumită valoare calculată dintr-un set de date prin aplicarea unui anumit algoritm și utilizată pentru a verifica integritatea datelor în timpul transmiterii sau stocării.

Hashe-urile pot fi utilizate pentru a verifica identitatea datelor (de exemplu, trebuie să vă asigurați că fișierul nu a fost deteriorat în timpul transferului; verificați dacă au fost făcute modificări fișierului și, dacă da, apoi încărcați-l din nou în baza de date) .

Pentru a face acest lucru, platforma a implementat un obiect HashingData, disponibil pe server, client gros, conexiune externă și server de aplicații mobile.

Acest obiect are două metode: Adăuga()și Pentru a adăuga un fișier(), care actualizează suma hash pe baza datelor transmise în parametri.

Platformă 8.3.4.437 acceptă calculul următoarelor funcții hash: CRC32, MD5, SHA1, SHA256. Dar funcțiile SHA1și SHA256 nu este acceptat pe platforma mobilă.

Să luăm în considerare un exemplu simplu. Se presupune că pe server în directorul programului există un fișier „ agent.exe". Trebuie să calculezi MD5-sumă pentru acest fișier.

Pentru a face acest lucru, vom crea o prelucrare externă, pe forma căreia vom plasa comanda calculati. Handler-ul conține următorul cod:

&AtClient
Procedură Calculați (comandă)
Rezultat = CalculateOnServer();
Raport (Șir (Rezultat));
EndProcedure
&Pe server
Funcţie CalculateOnServer()
Hash = Nou HashingData(HashFunction .MD5 );
Hash.AddFile(CatalogPrograme() + "ragent.exe");
Returnează Hash.HashSum ;
EndFunctions

În versiunea platformei 8.3.10+ în metodă Adăuga() obiect HashingData a devenit posibilă utilizarea unui flux de date binare, ceea ce a simplificat foarte mult utilizarea acestora în rezolvarea diverselor probleme aplicate de actualizare a sumelor hash.

Lucrul cu versiuni securizate de protocoale SMTP/POP3

În platformă 8.3 a devenit posibil să se utilizeze versiuni securizate de protocoale SMTP/POP3(există termeni SMTPS/POP3S sau SSLSMTP/SSLPOP3).

Pentru obiect InternetPostalProfile noi proprietăți implementate:

  • Utilizați SSLSMTP;
  • UtilizațiSSLPOP3;
  • Numai Secured AuthenticationSMTP;
  • NumaiSecured AuthenticationPOP3.

Proprietăți Autentificare SMTPși Autentificare POP3 obiect InternetPostalProfile, precum si enumerari Metoda de autentificare SMTși Metoda de autentificare POP3 utilizarea este depreciată - sunt acceptate pentru compatibilitate.

Folosind un protocol securizat SMTPS vă permite să trimiteți e-mail de la 1C folosind căsuța poștală Google.

Luați în considerare un exemplu. Pe formular vom plasa câmpuri pentru introducerea subiectului scrisorii și a adresei destinatarului, iar pentru introducerea textului scrisorii - un câmp de document formatat.

Click pe imagine pentru marire.

Prin apăsarea butonului Trimite se va executa urmatorul cod:

&AtClient
Procedură Trimitere (comandă) Mail = New InternetMail ; Profil = Nou InternetPostalProfile;
Profil.SMTPServerAddress= "smtp.googlemail.com" ;
Profil.Utilizator SMTP= “[email protected]” ;
Profil. Parola SMTP= "PAROLA" ;
Profil.Utilizați SSLSMTP= adevărat;
Port Profil.SMTP = 465 ; Atentat, încercare
Mail.Connect(Profil);
Excepție
Raport(Descrierea erorii());
Întoarcere ;
EndTry ; MailMessageText= “” ;
Atașamente = Structură nouă ;
Text.GetHTML(MailMessageText, Atasamente ); MailMessage= Nou InternetMailMessage;
MailMessage.Recipients.Add(La care );
MailMessage.Subiect= Subiect ;
MailMessage.Textes.Add(MailMessageText,
MailMessageTextType.HTML); Mail.Send ( MailMessage); Mail.Deconectare();
EndProcedure

Rețineți că, în exemplul nostru, dacă serverul SMTP nu a putut trimite un mesaj de e-mail către destinatarii, atunci metoda Mail.Send(MailMessage) a făcut o excepție. Acest lucru a cauzat unele inconveniente pentru dezvoltatori, deoarece. motivul aruncării excepției nu era evident.

În versiunea 8.3.9, acest comportament s-a schimbat, iar acum metoda Send() returnează o potrivire, a cărei cheie este destinatarul, iar valoarea este diagnosticarea de la serverul de e-mail. Acest lucru vă permite să determinați cu exactitate motivele pentru trimiterea nereușită a unui mesaj e-mail către fiecare dintre destinatari. În modul de compatibilitate versiunea 8.3.8, comportamentul nu s-a schimbat.

Imprimare fata-verso

În platformă 8.2 Platforma în sine nu controla imprimarea duplex; a fost posibilă controlul acestei funcții numai folosind driverul de imprimantă.

În platformă 8.3 a devenit posibil să se controleze imprimarea duplex pentru un document foaie de calcul, o schemă grafică (din limbajul încorporat și interactiv) și un document text (numai interactiv).

Enumerările de sistem au apărut în limbajul încorporat:

  • TipImprimare cu două fețe(Niciunul, FlipUp, FlipLeft);
  • (Automat, MirrorUp, MirrorLeft, Nu utilizați).

Și obiectele Document foaie de calculși GraphicScheme au apărut proprietăți Imprimare fata-versoși InterleavingPage Aranjamente, cu care puteți modifica aspectul paginilor tipărite.

În versiunea 8.3.9 a platformei, enumerarea sistemului DuplexType are o nouă valoare Utilizați setările imprimantei. Selectarea acestei valori a permis ca setările imprimantei să fie utilizate la tipărirea documentelor de sistem. În modul de compatibilitate versiunea 8.3.8, comportamentul nu s-a schimbat și setările corespunzătoare ale imprimantei sunt ignorate.

Dialogul de publicare a bazei de informații de pe serverul web a fost făcut mai funcțional. Acum, publicarea din configurator vă permite să setați toți parametrii fișierului implicit.vrd.

Pentru dialogul de publicare a clientului web și a serviciilor web prin configurator, se implementează următoarele:

  • capacitatea de a controla disponibilitatea serviciilor Web în mod implicit (atribut pointEnableCommon element ws);
  • capacitatea de a controla execuția joburilor de fundal în versiunea fișierului (atribut permitexecutescheduledjobs element ws).

Dacă caseta de selectare „Publicați serviciile web în mod implicit” pe marcaj "De bază" este setat, apoi când publicația este actualizată, serviciile Web selectate vor fi publicate automat.

În caz contrar, serviciile web vor fi marcate ca nepublicate. Acest steag corespunde atributului pointEnableCommon element wsîn dosar implicit.vrd pentru configurarea clientului web și a serviciilor web.

Atribut pointEnableCommon ws element este responsabil pentru posibilitatea de a utiliza servicii web în această bază de informații care sunt publicate fără a specifica în mod explicit permisiunea de utilizare (atribut permite element punct).

Dacă atributul are o valoare Adevărat, apoi toate serviciile Web pentru care valoarea atributului nu este specificată în mod explicit permite element punct, va fi permis să utilizeze.

În caz contrar, utilizarea unor astfel de servicii web va fi interzisă.

Setare „Lucrări de fundal în modul fișier” se potrivește cu atributul permitexecutescheduledjobs element ws din fișier implicit.vrd.

Atribut permitexecutescheduledjobs controlează capacitatea de a executa sarcini programate de către extensia serverului web pentru versiunea fișierului infobase.

Atributul poate lua următoarele valori:

  • oprit– în acest caz, extensia serverului web nu va efectua sarcini programate. Sarcinile programate vor fi efectuate de o aplicație client (dacă există) care se conectează direct la baza de informații, fără a utiliza un server web.
  • forta– în acest caz, extensia de server web va efectua sarcini programate.
    Dacă valoarea acestui atribut nu este setată, atunci sarcinile programate vor fi efectuate de aplicația care va fi utilizată pentru prima conexiune la baza de informații.

Fereastra de publicare a unui serviciu web din versiunea actuală a platformei a devenit și mai convenabilă și mai ergonomică. Acum, parametrii care descriu autentificarea OpenID sunt plasați într-o filă separată.

Numerotarea obiectelor bazei de informații

În platformă 8.3 a fost reproiectat mecanismul de numerotare automată a obiectelor infobazei. Unicitatea numărului sau codului (inclusiv a celui obținut ca urmare a generării automate a numărului sau codului) este întotdeauna controlată în timpul înregistrării obiectului.

O indicație a numărului sau codului care nu este unic a fost adăugată textului mesajului despre o încălcare a unicității unui număr sau cod.

Utilizarea unui număr sau cod liber sa schimbat. Un nou număr sau cod este atribuit fără a utiliza numere sau coduri libere, dacă există deja numere sau coduri emise cu un număr mare (în ordine) sau un prefix de cod.

Funcții agregate ale limbajului de expresie a sistemului de compoziție a datelor

Noi funcții de agregare sunt implementate în limbajul de expresie al sistemului de compunere a datelor:

  • Fiecare();
  • Orice();
  • Deviația standard a populației();
  • Eșantion de abatere standard();
  • VarianceSampling();
  • Varianta populatiei();
  • Covarianța populației();
  • SampleCovariance();
  • Corelație();
  • Panta de regresie();
  • RegressionSegment();
  • RegressionCount();
  • RegressionR2();
  • RegressionMeanX();
  • RegressionMeanY();
  • RegressionMeanSXX();
  • RegressionMeanSYY();
  • RegressionMeanSXY().

După cum puteți vedea din nume, acestea sunt funcții statistice, ceea ce înseamnă că dezvoltatorii au posibilitatea de a crea rapoarte complexe fără a recurge la elaborarea unor proceduri de calcul a datelor statistice.

Click pe imagine pentru marire.

După cum puteți vedea din figură, nu există funcții noi în lista derulantă, cu toate acestea, dacă le introduceți manual, atunci nu va apărea niciun mesaj de eroare și va fi generat raportul:

Interesantă este și noua funcție ClasificareABC(). Rezultatul funcției va fi numărul clasei, începând de la 1 (1 corespunde clasei A, 2 clasei B, 3 clasei C etc.).

Să demonstrăm cum funcționează această funcție. Creați un nou raport extern „Clasificarea mărfurilor” pe baza cererii:

ALEGE
Bunuri de consumBunuri.Marfuri,
Consumul de Bunuri Bunuri Cantitate
DIN
Document.Cheltuieli cu bunuri.Bunuri CUM Bunuri de consumBunuri

Definiți un nou câmp calculat Clasă:

Click pe imagine pentru marire.

Să configuram resursele după cum urmează:

Click pe imagine pentru marire.

În modul utilizator, raportul arată astfel:

În concluzie, observăm că, de la ediție la ediție în platforma 1C 8.3, mecanismul ACS este în mod constant îmbunătățit și rafinat și nu este posibil să aducem aceste modificări în totalitate în cadrul articolului nostru „începător”. Da, acest lucru pare redundant, deoarece, lucrând la versiunea actuală a platformei, puteți utiliza oricând diverse sisteme de ajutor pentru a ajuta la analiza unuia sau altuia aspect al funcționării acestui mecanism.

În plus, nu uitați de cursul nostru separat Dezvoltarea profesională a rapoartelor din 1C 8.3 privind Sistemul de compunere a datelor, care analizează atomului toate subtilitățile și capcanele atunci când lucrați cu acest mecanism. Vedeți demo pentru dvs.

Deci, să rezumam rezultatele intermediare. Până în acest moment, ne-am familiarizat cu noile caracteristici ale interfeței Taxi și formularele gestionate, precum și cu unele caracteristici nefurnizate anterior ale platformei în sine. Acum este timpul să vedem ce caracteristici convenabile au devenit disponibile dezvoltatorului în configurator.

Platforme: 1C:Enterprise 8.3, 1C:Enterprise 8.2, 1C:Enterprise 8.1
Configurații: Toate configurațiile

2012-11-13
53989

În fluxul de lucru, există sarcini care necesită execuție periodică - de exemplu, în a douăzecea, 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 îndeplinite conform reglementărilor și se numesc reglementate.

Destul de des, IT respectă regulile de monitorizare. Această metodă este binecunoscută administratorilor, deoarece pentru aceasta există programe speciale folosite pentru a verifica periodic starea de sănătate a infrastructurii de rețea și a serverelor. Aceștia anunță administratorul despre problemele detectate prin SMS sau e-mail.

Un sistem similar este valabil pentru webmasteri, în timp ce disponibilitatea site-ului este verificată în 24 de ore. Cu ajutorul mecanismului „Regular Tasks” din 1C, sunt efectuate sarcini de monitorizare, precum și sarcini periodice care sunt programate în mod automat în 1C. Să luăm în considerare acest subiect mai detaliat.

Sarcini programate 1C

Obiectul 1C, care se numește „Sarcini regulate” - face posibilă procesarea informațiilor nu după ce apare o problemă, ci conform unui program. În configurator, o lucrare programată este o modalitate de a configura setări și de a stabili 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, trebuie să începeți o sesiune 1C în modul 1C Enterprise și să începeți execuția unei sarcini programate în ea.

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

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

Adăugarea unui job programat

Sarcinile programate se află în — Configurator — General — Sarcini programate. Adăugați o nouă „sarcină” și furnizați un nume. Apoi, trebuie să mergeți la proprietățile „Sarcinii”. Și alegeț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 marcată cu un Server „pasăre” în proprietăți. Aceasta înseamnă că modulul necesar trebuie adăugat în prealabil.

Numele sarcinii din Proprietățile sarcinii programate vă permite să definiți numele acesteia, care va apărea ulterior în instrumentele de gestionare a sarcinilor. Funcția Proprietăți lucrare programată 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 lansată în același timp. Aici, valoarea poate fi arbitrară, dar este obligatoriu să o completați, deoarece valoarea goală nu este luată în considerare de sistem.

În ediția Contabilitate 2.0, care este o configurație tipică, sarcinile programate precum: „Recalcularea totalurilor” și „Actualizarea configurației” sunt predefinite și, cum ar fi, de exemplu, „Mișcări întârziate” și „Schimb de date” nu sunt predefinite.

Crash Retry - Repornește o lucrare care rulează. Prevăzut pentru o lansare care nu a fost finalizată cu succes prima dată. Aici este indicat de câte ori puteți reporni și cât timp după accident.

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

Procesarea standard „Job Console”, care poate fi găsită pe discurile ITS, este responsabilă de gestionarea sarcinii programate. Această prelucrare este un standard extern universal de prelucrare 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;

Indicaț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ă;

Sarcini programate și copii ale bazei 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 date de lucru;

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

Din anumite motive, sarcina programată nu este activată î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 este asociată numai cu propria sa bază de date, atunci aceasta nu implică consecințe negative. Dar, adesea, o sarcină programată poate salva fișiere sau alte date, poate trimite e-mailuri și poate face 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

Când creați sarcini programate, este important să verificați dacă sarcina poate fi executată ca sarcină programată. Este important de știut că modulul server nu oferă multe dintre lucrurile care sunt posibile pe client. În continuare, o sarcină care se ocupă de ceva care se află în afara bazei de date - un rol important în aceasta este jucat de drepturile utilizatorului Windows sub care este efectuată sarcina.

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

Adesea, la păstrarea înregistrărilor, devine necesară efectuarea periodică a anumitor acțiuni fără intervenția utilizatorului. Sarcinile programate și de fundal în 1C sunt mecanismele care sunt prevăzute în acest scop în cea de-a opta versiune a programului și permit:

  • Configurați livrarea la timp a documentelor;
  • Calculați soldurile și totalurile;
  • Asigurați postarea regulată;
  • Verificați și ștergeți datele irelevante.

Fundal și sarcină programată - ce este și unde este configurată

O sarcină programată este un mecanism încorporat în 1C care vă permite să configurați și, în conformitate cu programul și frecvența stabilite, să efectuați o anumită secvență de acțiuni.

O sarcină de fundal este o acțiune generată de o operațiune programată și nu necesită participarea directă a utilizatorului.

O sarcină programată este creată în modul configurator:

  • În fereastra arborelui de configurare găsim ramura corespunzătoare (Fig. 1);
  • Faceți clic pe butonul de adăugare;
  • În fereastra care se deschide, trebuie să specificați un nume care vă permite să identificați obiectul din configurație;

Fig.2

  • Vis-a-vis de inscripția „Schedule” (Fig. 2) există o inscripție „Open”, făcând clic pe care se deschide o fereastră pentru setarea orei și frecvenței de execuție a handlerului (Fig. 3);

Fig.3

  • De asemenea, este necesar să completați „Numele metodei” (aici se va introduce numele procedurii apelate din modulul general și care descrie algoritmul de comportament al programului);
  • Câmpurile „Nume” și „Cheie” vă permit să grupați obiecte;
  • Caseta bifată „Utilizare” indică activitatea operațiunii programate;
  • „Predefinit” ar trebui setat dacă handlerul trebuie lansat imediat după ce este adăugat la baza de date, altfel poate fi lansat din procesarea corespunzătoare (mai multe despre asta mai jos);
  • Parametrii Retry Count și Retry Interval descriu comportamentul programului în cazul în care apare o excepție în timpul executării unui job de fundal.

Deci, folosind mecanismul operațiunilor programate, puteți seta programul și acțiunile principale ale joburilor de fundal. Să ne uităm acum la caracteristicile lor.

Caracteristicile joburilor de fundal

Caracteristica principală a acestui mecanism este că procesul de fundal rulează asincron.

Ce inseamna asta. Faptul este că, cu un model de lucru sincron, dacă se execută orice algoritm, interfața cu utilizatorul este blocată. În cazul nostru, utilizatorul poate continua să introducă și să editeze date, chiar dacă procedura este în derulare. Modelul de programare asincronă implică separarea firelor de calcul.

Astfel, joburile de fundal din 1C își pot genera propriile procese, distribuind calculele pe diferite servere care fac parte din același cluster.

Caracteristici de lucru în modul client-server

  • Programarea și controlul execuției sunt efectuate de către planificatorul din clusterul de servere;
  • Dacă apare o solicitare de execuție, planificatorul caută procese de lucru în cluster cu o încărcare minimă și le distribuie sarcini pentru execuție;
  • Fiecare proces poate efectua mai multe calcule paralele;
  • După ce sarcina ajunge, procesul se conectează la baza de date și execută algoritmul în ea;
  • Procesul raportează rezultatele către planificator.

Lucrări de fundal în modul fișier

Înainte de versiunea platformei 8.3.3.641, lucrul cu joburi de fundal în versiunea fișierului prezenta unele dificultăți:

  1. A fost necesar să se lanseze o sesiune separată care să funcționeze non-stop, înlocuind planificatorul;
  2. Această sesiune ar fi trebuit să execute periodic metoda ExecuteJobProcessing().

După actualizare, fiecare pornire a clientului gros și subțire, dacă cheia AllowExecuteScheduledJobs este specificată în setările de lansare (Fig. 4) în câmpul „Additional”, inițiază un fir de conexiune suplimentar la baza de date, care nu afectează utilizatorul. lucrează în orice fel, dar efectuează doar sarcini de fundal.operații.

Fig.4

Trebuie avut în vedere că, chiar și în versiunea fișierului de lucru, procesele de fundal nu permit lucrul interactiv cu utilizatorul (mesajele de serviciu, avertismentele, întrebările nu vor fi afișate). Adică trebuie să fie codificate ca și cum ar fi executate pe partea de server.

Cum să dezactivați sarcinile programate

Sarcinile neutilizate pot fi dezactivate pur și simplu debifând caseta de selectare „Utilizați” din proprietățile obiectului.

Dacă administratorul trebuie să interzică utilizarea operațiunilor de rutină și de fundal pentru întreaga bază de date în ansamblu (de exemplu, mai multe baze de date sunt stocate pe server, dintre care doar una este cea principală, iar restul sunt folosite doar pentru dezvoltare) , este necesar să folosiți utilitarul de administrare a bazei de date. De asemenea, puteți bifa caseta „Setați blocarea sarcinilor programate” din baza de date creată pe server.

În plus, discurile ITS au o procesare specială „Job Console”, care vă permite să editați programul proceselor de fundal și să le schimbați activitatea.

Alegerea editorilor
Mai devreme sau mai târziu, mulți utilizatori au o întrebare despre cum să închidă programul dacă nu se închide. De fapt subiectul nu este...

Afișările pe materiale reflectă mișcarea stocurilor în cursul activității economice a subiectului. Nicio organizație nu poate fi imaginată...

Documentele de numerar din 1C 8.3 sunt întocmite, de regulă, în două documente: un ordin de numerar de intrare (denumit în continuare PKO) și un ordin de numerar de ieșire ...

Trimiteți acest articol pe e-mailul meu În contabilitate, o factură de plată în 1C este un document pe care o organizație ...
1C: Managementul comerțului 11.2 Depozite pentru păstrare În continuarea subiectului modificărilor din 1C: Managementul comerțului UT 11.2 în ...
Poate fi necesar să verificați o plată Yandex.Money pentru a confirma tranzacțiile în curs și pentru a urmări primirea fondurilor de către contrapărți....
În plus față de o copie obligatorie a situațiilor contabile (financiare) anuale, care, în conformitate cu Legea federală din ...
Cum se deschide fișierele EPF Dacă apare o situație în care nu puteți deschide un fișier EPF pe computer, pot fi mai multe motive....
Debit 10 - Conturile contabile Credit 10 sunt asociate cu mișcarea și mișcarea materialelor în organizație. Pentru Debit 10 - Credit 10 sunt reflectate...