1C sarcina de fundal ne permite să facem orice calcule în sistem imperceptibil pentru utilizator, adică în fundal. Mai mult decât atât, acest mecanism ne permite să paralelizăm procesul de calcul. Putem chiar paraleliza procedura care va fi executata. Pentru a face acest lucru, sarcina noastră de bază ar trebui să deruleze mai multe funcții de bază. În acest caz, procesele sunt paralelizate și, dacă avem un sistem multi-procesor, multi-core, algoritmul nostru va funcționa eficient. După ce executați mai multe procese, putem spune sistemului că este necesar să așteptați finalizarea acestor procese pentru a reduce într-un fel rezultatul.
De exemplu, în configurații tipice, în timp ce utilizatorul se execută, se efectuează diferite sarcini de bază ale serviciului. Acest lucru poate fi evidențiat prin înregistrările din jurnalul de înregistrare, în care se înregistrează efectuarea unor astfel de acțiuni. Și acest lucru nu afectează munca utilizatorului, el nu le observă.În mod ideal, sarcina de fundal este implementată în varianta client-server, în acest caz toată încărcătura se duce către server. În ceea ce privește versiunea de fișier, lucrarea de fundal este posibilă, dar are câteva caracteristici.
Asta va da sistemul dacă nu țineți cont de aceste caracteristici și executați sarcina de fundal în versiunea de fișier a bazei de date de informații.
1C de lucru de fundal are unele limitări. Deoarece este executat pe partea de server, nu există posibilitatea de lucru interactiv cu utilizatorul. De exemplu, nu puteți imprima un mesaj, bine, orice informație. Toate aceste date trebuie să fie stocate în baza de informații și apoi prelucrate cumva. Privind la asistentul de sintaxă, puteți obține informații mai detaliate despre sarcinile de fundal 1C. Aici este de remarcat faptul că acest obiect este exclusiv de software și nu este salvat în baza de date în nici un fel. Adică, creăm o instanță a clasei, inițializăm proprietățile și executăm-o.Ce instrumente avem pentru a gestiona sarcinile de fundal? Acest instrument este obiectul metadate "ManagerFunds". Acest obiect are o metodă "Run". cu această metodă, lucrarea de fundal abia începe.
El are următoarele opțiuni: „METHODNAME“ - numele procedurii sau o funcție care urmează să fie efectuate, și ar trebui să fie un context procedură sau o funcție de server; „Opțiuni“ - o serie de parametri, numărul de elemente care trebuie să corespundă cu numărul de parametri de procedură / funcției noastre specificate în parametrul „METHODNAME“; „Cheie“ - o cheie unică, care reprezintă un loc în care sistemul știe dacă pentru a rula un loc de muncă de fond sau au nevoie de un loc de muncă a fost pornit; "Name" - aici puteți specifica o descriere arbitrară a metodei noastre.
Valoarea returnată este obiectul "Atribut de fond". conținând numele curent al metodei, cheia curentă și alte câteva proprietăți și metode. O astfel de metodă este metoda "Așteptați pentru finalizare". Sarcina lui este că putem spune sistemului că nu se face nimic până când nu se termină sarcina de fundal.
Lucrarea de bază 1C 8.2, 8.3 - Exemplu de utilizare
Iată un exemplu de lucru cu sarcinile de fundal 1C. În primul rând, vom crea un algoritm simplu care va încărca pe scurt sistemul 1C astfel încât să nu putem face nimic în acest moment.
1. Creați un modul comun "HandlersFundled". care vor fi compilate pe partea de server;
2. Vom descrie procedura de export "Producem calculul financiar (parametru)". care ia un parametru șir;
3. Apoi, vom crea o prelucrare externă și în cazul apăsării unui buton vom pune codul care începe algoritmul nostru;
Efectuat. Acum, când procesarea este pornită și butonul este apăsat, sistemul se blochează pentru câteva secunde, timp în care nimic nu se poate face. Este exact ceea ce trebuia să facem.
Acum oferim produsul acestor calcule în fundal, adică sarcina de fundal 1C 8.2, 8.3 este satisfăcut, dar nu ne-a oprit.
1. În procesul de prelucrare, în cazul apăsării butonului, vom scrie următorul cod.
Aici primul parametru este numele procedurii modulului general, iar al doilea - matricea parametrilor. Al treilea parametru este de a trece cheia unică, iar al patrulea este o descriere a procedurii noastre.
Efectuat. Acum putem verifica. Reporniți butonul de procesare, sistemul nu îngheață și lucrăm fără obstacole.
Apropo, asigurați-vă că lucrarea de fundal 1C funcționează prin căutarea în intrarea din jurnal. În aceste înregistrări, este stabilită când a fost pornită lucrarea de fundal.
Exemplul de mai sus arată cum lucrează lucrarea de fundal 1C 8.2, 8.3. Modul în care poate fi util în dezvoltarea algoritmilor.
Descărcați baza de date cu un exemplu aici
N-ai citit-o încă? Veți fi interesat.
Fluxurile de lucru 1C Reglarea optimă a numărului de procese de lucru 1C.
Un exemplu de lucru cu un arbore al valorilor din 1C. Partea a doua - Adăugarea posibilității de a plasa daws și potrivirea linia de imagine. Luați în considerare exemplul modului de a adăuga valori în arborele valorilor pentru manechine și de a compara fiecare linie specifică cu imaginea cerută.
Un exemplu de lucru cu un arbore al valorilor din 1C. Prima parte este adăugarea de linii. Lucrul cu arborele de valori este puțin diferit de lucrul cu tabela de valori, în special, acest lucru este văzut în operațiunea de adăugare a rândurilor. Ne uităm la un exemplu.
Debugarea sarcinilor de fundal (rutină) în 1C 8 Uneori este nevoie să depanați o sarcină de fundal (rutină). Aceasta este adesea problema.
Programare la distanță în 1C. Care sunt avantajele? Alegerea colaborării cu programatorul de la distanță 1C, alegeți economia potrivită a fondurilor și calitatea ridicată a sarcinilor.