Cum se configurează smartphone-uri și PC-uri. Portal informativ

1s 8.3 parametrii de dispunere a datelor. Creați un nou raport

Atenţie! Aceasta este o versiune introductivă a lecției, ale cărei materiale pot fi incomplete.

Conectați-vă la site ca student

Conectați-vă ca student pentru a accesa materialele școlare

Sistem de compunere a datelor 1C 8.3 pentru începători: conectarea seturi de date

  • Scrieți un raport care să afișeze clienții și produsele lor preferate. Fiecare client are o culoare preferată, iar fiecare produs are propria sa culoare - pe baza acestor culori, trebuie să determinați „favoritul” produsului. De exemplu, dacă culoarea preferată a lui Andrey este roșu, atunci una dintre alimentele sale preferate va fi roșiile (sunt roșii).
  • Aplicați două seturi de date în raport. Primul set este reprezentat de date din tabelul de director „Clienți”. Al doilea sunt datele din tabelul directorului „Food”.
  • Implementează legătura dintre aceste două seturi, astfel incat raportul sa contina doar produsele preferate pentru fiecare client.

Creați un nou raport

Deschideți baza de date „Gastronom” în configurator și creați un nou raport prin meniul principal:

Tip document - „Raport extern”:

Sub forma unui nou raport, indicați numele „Lecția 6” și faceți clic pe butonul „Deschide diagrama compoziției datelor”:

Lăsați numele implicit al schemei:

Adăugarea primului set de date

În diagrama care se deschide, accesați fila „Seturi de date” și selectați „Adăugați un set de date - Interogare” folosind semnul plus verde:

Apelați constructorul cererii:

Indicăm tabelul „Clienți” și câmpurile care trebuie obținute din cerere:

Adăugarea unui al doilea set de date

Adăugați un al doilea set de date:

Selectați-l (DataSet2) și apelați din nou constructorul de interogare:

Indicăm tabelul directorului „Food” și câmpurile care trebuie obținute din cerere:

Textul de solicitare rezultat a fost:

Vă rugăm să rețineți că în prezent avem două seturi de date în raport: Data Set1 și Data Set2. Fiecare are propriul text și date de solicitare.

A face numele mai descriptive

Pentru claritate, să redenumim DataSet1 în Customers și DataSet2 în Food.

Faceți acest lucru făcând dublu clic pe fiecare dintre seturi:

Putem folosi datele din fiecare set din raportul nostru. Vom accesa aceste date prin câmpuri.

În prezent, setul „Clienți” are următoarele câmpuri: „Nume” și „Culoare Favorită”, iar setul „Mâncare” are: „Nume” și „Culoare”.

Vedem că numele se suprapun și ne putem încurca cu ușurință. Deci, să schimbăm numele câmpurilor pentru a fi mai semnificative.

Selectați setul „Clienți” și modificați numele câmpurilor astfel:

Apoi selectați setul „Mâncare” și schimbați numele câmpurilor astfel:

Apelarea constructorului de setări

În cele din urmă, accesați fila „Setări” și faceți clic pe bagheta magică pentru a afișa designerul de setări:

Tipul raportului - „Lista...”:

Selectați câmpurile pentru raport din ambele seturi:

Vezi de ce a fost atât de important să schimbi numele câmpurilor? În stadiul setărilor de compoziție a datelor, nu vedem din ce seturi provin aceste câmpuri. Vedem doar numele lor.

Verificarea raportului

Salvăm raportul și îl generăm în modul utilizator:

Da. Bine, dar nu chiar. A avut loc o așa-numită îmbinare încrucișată a două seturi (ar trebui să fiți foarte familiarizați cu acest lucru de la îmbinările în interogările pe care le-am studiat în modulele anterioare). Fiecare înregistrare din tabelul Clienți are o înregistrare corespunzătoare din tabelul Alimente.

Dar din toate aceste înregistrări trebuie să lăsăm doar pe acelea al căror câmp „Culoarea preferată a clientului” este egal cu câmpul „Color alimentară”:

Conectăm două seturi de date

Pentru a face acest lucru, vom conecta două seturi de date (Clienți și Alimente) folosind câmpurile Customer's FavoriteColor și FoodColor.

Accesați fila „Legături seturi de date” și faceți clic pe butonul plus pentru a adăuga un nou link:

Configuram parametrii ca in figura de mai jos:

O sa fac o explicatie.

Sursa și receptorul comunicării. Ei bine, totul este clar aici. Indicăm primul set (Clienți) și al doilea set (Food) de date. Aș dori să atrag o atenție deosebită asupra faptului că comunicarea se va desfășura conform principiului unire stânga exterioară(am tratat-o ​​la tema cererilor din modulele anterioare). Pe baza acestui lucru, trebuie să alegeți care set va fi sursa și care receptor.

Sursa de expresie. Indicăm aici o expresie sau pur și simplu un câmp din setul de date sursă (am specificat câmpul ClientFavoriteColor din setul Clienți aici).

Expresia receptorului. Indicăm aici o expresie sau pur și simplu un câmp din setul de date receptor (am indicat câmpul ColorFood din setul Food).

Astfel, această conexiune va lăsa din lista anterioară doar acele rânduri pentru care câmpul FavoriteColor al Clientului este egal cu câmpul FoodColor.

Să salvăm raportul și să-l rulăm în modul utilizator:

Grozav!

O sa fac o explicatie despre domeniu" Condiția de comunicare„, despre care programatorii începători își lovesc atât de des sulițele.

Condiția de conectare este un câmp auxiliar. Puteți scrie expresii acolo implicând câmpuri numai din setul de date specificat în sursa linkului.

În acest caz, pentru toate rândurile din sursa linkului, această expresie (condiția linkului) va fi verificată înainte ca linkul să fie făcut. Și dacă această expresie este TRUE, atunci se va încerca să se stabilească legături între acest rând și rândurile de la receptorul de legătură. Dacă expresia este FALSĂ, atunci nu se vor face astfel de încercări.

Unul dintre cele mai convenabile și unice instrumente de dezvoltare din 1C este sistemul de compoziție a datelor (DCS). Puține sisteme de informații permit dezvoltatorilor să creeze rapoarte fără a scrie cod. Acest mecanism a fost dezvoltat pentru a simplifica și accelera dezvoltarea formularelor de raportare și pentru a oferi mai multe oportunități utilizatorilor în lucrul cu datele de ieșire. Acesta din urmă este foarte apreciat de utilizatorii avansați, care datorită acestui lucru pot personaliza în mod independent raportul în funcție de propriile nevoi, fără a aștepta acțiunile dezvoltatorilor.

Crearea unui raport în 1C prin SKD

Procesul de elaborare a unui raport folosind ACS poate fi împărțit în următoarele etape:

  1. Crearea unei cereri. Puteți scrie o solicitare manual sau puteți face fără cod folosind o interfață convenabilă;
  2. Stabilirea raportului. Selectați câmpuri, totaluri, grupări, parametri, design raport;
  3. După aceasta, tot ce trebuie să facem este să conectăm raportul rezultat la configurație în orice mod disponibil.

În ciuda capacității utilizatorilor de a personaliza rapoartele privind sistemul de control acces, acestea trebuie create prin intermediul configuratorului.

Să ne uităm la un exemplu de creare a unui raport extern asupra unui sistem de control al accesului:


Acum mergem la 1C, deschidem raportul nostru pentru a ne asigura că acțiunile întreprinse sunt corecte. Toate datele sunt reflectate, grupările pot fi restrânse și extinse. După cum puteți vedea, sistemul de control al accesului vă permite să primiți rapoarte cu drepturi depline fără a scrie cod, cu excepția cerințelor non-standard. Având în vedere că majoritatea rapoartelor au o structură similară, cunoașterea sistemului de control al accesului va reduce semnificativ timpul de dezvoltare a acestor obiecte.

Acest mecanism a devenit foarte popular datorită suportului său pentru capabilități extinse de raportare. Mai mult, nu numai dezvoltatorii, ci și utilizatorii obișnuiți le pot folosi.

Capabilitati ACS

Sunt situații când am făcut un raport, apoi vine un utilizator și cere să facă o mică modificare. De exemplu, în loc de numele produselor, afișați numerele de articol. SKD permite utilizatorilor să facă astfel de modificări în mod independent, utilizând butonul „Mai multe” - „Modificați opțiunea...”.


Fereastra care se deschide este similară cu fereastra de setări din raportul din configurator și are și funcții similare. Pentru a rezolva sarcina, utilizatorul trebuie să meargă la fila „Câmpuri” și să schimbe câmpul „Nomenclatură”. Acest câmp de editare se deschide făcând dublu clic și butonul „Selectați...” devine disponibil.


Fereastra care se deschide ne oferă posibilitatea de a selecta orice valoare care va apărea în câmpul „Nomenclatură”. Unele câmpuri au un semn plus în stânga - dezvoltatorul a plasat link-uri în aceste câmpuri, ceea ce înseamnă că le putem vedea detaliile. Deschidem „Nomenclatură” și vedem articolul de care avem nevoie. Selectează-l și selectează-l.


Fereastra pentru modificarea opțiunilor de raport conține multe funcții utile ale sistemului de compunere a datelor. De exemplu, utilizatorul poate schimba în mod independent ordinea grupărilor, poate adăuga selecție sau poate aplica design condiționat. Finalizăm editarea și generăm un raport - după cum puteți vedea, întreaga gamă de produse este acum afișată sub formă de articole.


Mecanismul SKD 1C:Enterprise 8.3 are, de asemenea, funcționalități extinse pentru dezvoltatori. La elaborarea raportului, am folosit doar 2 file - „Seturi de date” și „Setări”, dar există multe mai multe dintre ele în ACS. Pentru a utiliza toate funcțiile sistemului de compunere a datelor, trebuie să înțelegeți pentru ce este fiecare dintre file:

  1. Seturi de date – toate interogările implicate în generarea raportului sunt listate aici;
  2. Conexiuni seturi de date – utilizate pentru a construi conexiuni între diferite interogări din prima filă;
  3. Câmpuri calculate – o listă de câmpuri adăugate care nu sunt din cerere. Cel mai adesea folosit în cazurile în care, pe baza valorilor mai multor câmpuri, trebuie să obțineți 1 valoare din cerere;
  4. Resurse. În 1C, acesta este numele câmpurilor pentru care trebuie să cunoașteți rezultatele. Resursele suportă diverse operații aritmetice - sumă, cantitate, maxim și altele;
  5. Opțiuni. Sunt folosite dacă pentru generarea unui raport este necesar ca utilizatorul să introducă anumite date - data, diviziunile sau nomenclatorul, de exemplu;
  6. Aspecte. Proiectat pentru cazurile în care utilizatorii doresc să vadă un raport conceput în mod unic. Puteți crea un loc separat pentru semnături sau o nouă parte superioară a raportului - toate acestea se pot face aici;
  7. Diagrame imbricate. Acestea sunt necesare atunci când raportul dvs. trebuie să conțină date din alte rapoarte;
  8. Setări. Secțiunea declară câmpurile afișate, grupările și configurează aspectul raportului.


Numărul de posibilități încorporate în mecanismul ACS de către dezvoltatori este mare, dar multe dintre ele sunt utilizate extrem de rar. Chiar și programatorii experimentați 1C s-ar putea să nu folosească unele funcții după ani de muncă. Pentru a începe să lucrați cu succes în sistemul de control acces, este suficient să cunoașteți conceptele de bază și setările frecvent utilizate. În cazuri rare, documentația va veni în ajutor.

Una dintre cele mai importante domenii ale software-ului de afaceri este raportarea. Soarta unei afaceri poate depinde (și nu într-un sens figurat!) de cât de ușor este să personalizați un raport existent la nevoile în schimbare ale afacerii (și ale legislației) sau să creați unul nou, fie că este un raport pentru biroul fiscal sau o diagramă a dependenței cererii de bunuri de sezon și de alți factori . Un sistem de raportare puternic și flexibil care facilitează extragerea datelor necesare din sistem, prezentarea lor într-o formă ușor de înțeles, permițând utilizatorului final să reconfigureze un raport standard pentru a vedea datele într-o lumină nouă - acesta este idealul pe care fiecare sistemul de afaceri ar trebui să depună eforturi pentru.

În platforma 1C:Enterprise, un mecanism numit „Sistemul de compunere a datelor” (abreviat ca DCS) este responsabil pentru generarea de rapoarte. În acest articol vom încerca să oferim o scurtă descriere a ideii și arhitecturii mecanismului ACS și a capacităților acestuia.


ACS este un mecanism bazat pe o descriere declarativă a rapoartelor. Sistemul de control acces este conceput pentru generarea de rapoarte și pentru afișarea informațiilor cu o structură complexă. Apropo, pe lângă dezvoltarea rapoartelor, mecanismul ACS este folosit și în 1C:Enterprise într-o listă dinamică, un instrument pentru afișarea informațiilor din listă cu funcționalitate bogată (afișarea listelor plate și ierarhice, design condiționat de rânduri, grupări etc. ).

Puțină istorie

În prima versiune a platformei 1C:Enterprise 8, versiunea 8.0, rapoartele au fost făcute astfel:
  1. Una sau mai multe interogări au fost scrise în limbajul de interogare 1C (limbaj asemănător SQL, mai multe despre el mai jos).
  2. A fost scris un cod care a transferat rezultatele interogărilor executate într-un document sau o diagramă de calcul. Codul ar putea face, de asemenea, lucrări care nu ar putea fi făcute într-o interogare - de exemplu, a calculat valori folosind limbajul 1C încorporat.
Abordarea este simplă, dar nu cea mai convenabilă - există setări vizuale minime, totul trebuie programat „corp la mână”. Iar unul dintre atuurile de la acea vreme a platformei complet noi „1C:Enterprise 8” a fost reducerea la minimum în soluția de aplicare a cantității de cod care trebuie scris manual, în special prin design vizual. Ar fi logic să urmați aceeași cale în mecanismul de raportare. Acest lucru a fost realizat prin dezvoltarea unui nou mecanism - Sistemul de compunere a datelor.

Una dintre ideile care au stat la baza sistemului de control al accesului a fost flexibilitatea și personalizarea rapoartelor, care era accesibilă atât dezvoltatorului, cât și utilizatorului final. În mod ideal, aș dori să ofer utilizatorului final acces la același set de instrumente de proiectare a rapoartelor ca și dezvoltatorului. Ar fi logic să se creeze un singur set de instrumente disponibile pentru toată lumea. Ei bine, deoarece instrumentele necesită participarea utilizatorului final, înseamnă că utilizarea programării în ele ar trebui redusă la minimum (cel mai bine este să o eliminați complet), iar setările vizuale ar trebui utilizate la maximum.

Formularea problemei

Sarcina în fața echipei de dezvoltare a fost să creeze un sistem de raportare bazat nu pe un algoritmic (adică prin scrierea codului), ci pe o abordare declarativă a creării de rapoarte. Și credem că problema a fost rezolvată cu succes. Din experiența noastră, aproximativ 80% din raportarea necesară poate fi implementată folosind ACS fără o singură linie de cod (cu excepția scrierii formulelor pentru câmpurile calculate), mai ales prin setări vizuale.
Dezvoltarea primei versiuni a SDS a durat aproximativ 5 persoane-ani.

Două limbi

Există două limbi implicate în crearea rapoartelor. Unul este un limbaj de interogare folosit pentru a prelua date. Al doilea este limbajul de expresie al compoziției datelor, destinat scrierii expresiilor utilizate în diferite părți ale sistemului, de exemplu, în setările de compoziție a datelor, pentru a descrie expresiile câmpurilor utilizator.

Limbajul de interogare

Limbajul de interogare se bazează pe SQL și este ușor de învățat pentru cei care cunosc SQL. Exemplu de cerere:

Este ușor să vezi analogii secțiunilor standard pentru interogările SQL - SELECT, FROM, GROUP BY, ORDER BY.

În același timp, limbajul de interogare conține un număr semnificativ de extensii menite să reflecte specificul problemelor financiare și economice și să maximizeze reducerea eforturilor de dezvoltare a soluțiilor aplicative:

  • Accesarea câmpurilor folosind un punct. Dacă câmpurile unui tabel sunt de tip referință (stochează link-uri către obiecte dintr-un alt tabel), dezvoltatorul se poate referi la ele în textul solicitării prin „.”, iar sistemul nu limitează numărul de niveluri de imbricare. a unor astfel de link-uri (de exemplu, Comanda clientului. Contractul. Organizația. Telefon).
  • Formarea multidimensională și pe mai multe niveluri a rezultatelor. Totalurile și subtotalurile se formează ținând cont de grupare și ierarhie, nivelurile pot fi parcurse în orice ordine cu însumări și se asigură construirea corectă a totalurilor în funcție de dimensiunile de timp.
  • Suport pentru mese virtuale. Tabelele virtuale furnizate de sistem vă permit să obțineți date aproape gata făcute pentru majoritatea sarcinilor aplicației, fără a fi nevoie să creați interogări complexe. Astfel, un tabel virtual poate furniza date despre soldurile produselor pe perioade la un anumit moment în timp. În același timp, tabelele virtuale folosesc la maximum informațiile stocate, de exemplu, totaluri calculate anterior etc.
  • Tabele temporare. Limbajul de interogare vă permite să utilizați tabele temporare în interogări. Cu ajutorul lor, puteți îmbunătăți performanța interogării, în unele cazuri puteți reduce numărul de blocări și puteți face textul interogării mai ușor de citit.
  • Cereri de lot. Pentru a face lucrul cu tabelele temporare mai convenabil, limbajul de interogare acceptă lucrul cu interogări în lot - astfel, crearea unui tabel temporar și utilizarea acestuia sunt plasate într-o singură interogare. O cerere de lot este o succesiune de cereri separate prin punct și virgulă (";"). Cererile din lot sunt executate una dupa alta. Rezultatul executării unei cereri de lot, în funcție de metoda utilizată, va fi fie rezultatul returnat de ultima solicitare din lot, fie o matrice de rezultate din toate interogările din lot în secvența în care urmează interogările din lot .
  • Preluarea reprezentărilor câmpurilor de referință. Fiecare tabel de obiecte (în care este stocată o carte de referință sau un document) are un câmp virtual - „Vizualizare”. Acest câmp conține o reprezentare textuală a obiectului și facilitează munca creatorului raportului. Deci, pentru un document, acest câmp conține toate informațiile cheie - numele tipului de document, numărul și data acestuia (de exemplu, „Vânzare 000000003 din 07/06/2017 17:49:14”), salvând dezvoltatorul de la scrierea unui câmp calculat.
  • si etc.
Mecanismul de solicitare modifică automat cererea ținând cont de rolurile cărora îi aparține utilizatorul în numele căruia se execută cererea (adică, utilizatorul va vedea doar datele pe care are dreptul să le vadă) și opțiunile funcționale (adică, în conformitate cu cu cele configurate în funcționalitatea soluției aplicației).

Există, de asemenea, extensii speciale de limbaj de interogare pentru sistemele de control al accesului. Extinderea se realizează folosind instrucțiuni sintactice speciale incluse în acolade și plasate direct în corpul cererii. Folosind extensii, dezvoltatorul stabilește ce operațiuni va putea efectua utilizatorul final atunci când personaliza raportul.

De exemplu:

  • ALEGE. Această propoziție descrie câmpurile pe care utilizatorul le va putea selecta pentru ieșire. După acest cuvânt cheie, sunt listate aliasurile câmpurilor din lista principală de selecție a interogărilor care vor fi disponibile pentru configurare, separate prin virgule. Exemplu: (SELECTARE articol, depozit)
  • UNDE. Sunt descrise câmpurile pe care utilizatorul poate aplica selecția. Această propunere utilizează câmpuri de tabel. Utilizarea alias-urilor câmpurilor din lista de selecție nu este permisă. Fiecare parte a uniunii poate conține propriul element WHERE. Exemple: (WHERE Item.*, Warehouse), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
  • si etc.
Exemplu de utilizare a extensiilor:

Limbajul de exprimare al compoziției datelor

Limbajul de expresie al compoziției datelor este conceput pentru a scrie expresii utilizate, în special, pentru a descrie expresii de câmp personalizate. SKD vă permite să definiți câmpuri personalizate într-un raport folosind fie propriile expresii, fie seturi de opțiuni cu condiții pentru selectarea lor (analog cu CASE în SQL). Câmpurile personalizate sunt similare cu câmpurile calculate. Ele pot fi setate atât în ​​configurator, cât și în modul 1C:Enterprise, dar funcțiile modulelor comune nu pot fi folosite în expresii de câmp personalizate. Prin urmare, câmpurile personalizate sunt destinate utilizatorului mai degrabă decât dezvoltatorului.

Exemplu:

Procesul de creare a unui raport privind sistemul de control al accesului

Când creăm un raport, trebuie să creăm un aspect care să definească modul în care datele vor fi afișate în raport. Puteți crea un aspect bazat pe o diagramă de aspect de date. O diagramă de aspect al datelor descrie esența datelor care sunt furnizate raportului (de unde să obțineți datele și cum puteți controla aspectul acestora). Schema de compunere a datelor este baza pe care pot fi generate tot felul de rapoarte. Schema de compunere a datelor poate conține:
  • solicitați text cu instrucțiuni pentru sistemul de compunere a datelor;
  • descrierea mai multor seturi de date;
  • descrierea detaliată a câmpurilor disponibile;
  • descrierea relațiilor dintre mai multe seturi de date;
  • descrierea parametrilor de achiziție a datelor;
  • descrierea structurilor de câmp și grupărilor;
  • si etc.

De exemplu, puteți adăuga o interogare la schema de compunere a datelor ca un set de date și puteți apela constructorul de interogare, care vă permite să creați grafic o interogare de complexitate arbitrară:

Rezultatul lansării designerului de interogări va fi textul interogării (în limbajul de interogare 1C:Enterprise). Acest text poate fi ajustat manual dacă este necesar:

Pot exista mai multe seturi de date într-o schemă de aspect de date, seturile de date pot fi legate în aspect în orice mod, pot fi adăugate câmpuri calculate, pot fi specificați parametrii de raport etc. Merită menționată o caracteristică interesantă a mecanismului de interogare din 1C:Enterprise. Interogările sunt traduse în cele din urmă într-un dialect al SQL specific SGBD-ului cu care funcționează direct aplicația. În general, încercăm să folosim la maximum capacitățile serverelor DBMS (suntem limitați de faptul că folosim doar acele capabilități care sunt disponibile simultan în toate DBMS-urile suportate de platforma 1C:Enterprise - MS SQL, Oracle, IBM DB2 , PostgreSQL). Astfel, la nivel de interogare în câmpurile calculate, putem folosi doar acele funcții care sunt traduse în SQL.

Dar la nivelul schemei de compunere a datelor, putem deja adăuga câmpuri personalizate și folosi funcții în ele în limbajul de dezvoltare 1C încorporat (inclusiv cele scrise de noi), ceea ce extinde foarte mult capacitățile rapoartelor. Din punct de vedere tehnic, arată așa - tot ce poate fi tradus în SQL este tradus în SQL, interogarea este executată la nivel DBMS, rezultatele interogării sunt plasate în memoria serverului de aplicații 1C și SKD calculează pentru fiecare înregistrare valorile ​​de câmpuri calculate ale căror formule sunt scrise în limbajul 1C.


Adăugarea câmpurilor personalizate

Puteți adăuga un număr arbitrar de tabele și diagrame la raport:


Designer de rapoarte


Raport de execuție

Folosind SKD, utilizatorul poate adăuga selecții complexe la raport (care vor fi adăugate la cerere în locurile potrivite), design condiționat (permițând formatarea diferită a câmpurilor afișate - cu font, culoare etc., în funcție de valorile acestora). ) și mult mai mult. .

Procesul de construire și generare a unui raport poate fi descris pe scurt după cum urmează:

  • Dezvoltatorul în timpul proiectării cu ajutorul unui designer (sau în timpul rulării folosind cod) determină schema de aspect al datelor:
    • Textul cererii/cererilor
    • Descrierea câmpurilor calculate
    • Relații dintre cereri (dacă sunt mai multe)
    • Opțiuni de raportare
    • Setări implicite
    • etc.
  • Setările de mai sus sunt salvate în aspect
  • Utilizatorul deschide raportul
    • Posibil efectuează setări suplimentare (de exemplu, modifică valorile parametrilor)
    • Faceți clic pe butonul „Generați”.
  • Setările utilizatorului sunt aplicate schemei de compoziție a datelor definită de dezvoltator.
  • Se formează un aspect intermediar al compoziției datelor, care conține instrucțiuni despre unde să primească datele. În special, interogările specificate în aspect sunt ajustate. Astfel, câmpurile care nu sunt utilizate în raport sunt eliminate din cerere (acest lucru se face pentru a minimiza cantitatea de date primite). Toate câmpurile care participă la formulele de câmp calculate sunt adăugate la interogare.
  • Procesorul de compunere a datelor intră în joc. Procesorul de layout execută interogări, conectează seturi de date, calculează valori pentru câmpurile și resursele calculate și efectuează grupări. Într-un cuvânt, face toate calculele care nu au fost efectuate la nivel de SGBD.
  • Procesorul de ieșire a datelor lansează o solicitare de execuție și afișează datele primite într-o foaie de calcul, diagramă etc.


Procesul de generare a unui raport folosind mecanismul ACS

Încercăm să minimizăm cantitatea de date de raport transferate de la server la aplicația client. La afișarea datelor într-un document foaie de calcul, la deschiderea unui document foaie de calcul, transferăm de pe server doar acele linii pe care utilizatorul le vede la începutul documentului. Pe măsură ce utilizatorul se deplasează de-a lungul liniilor documentului, datele lipsă sunt descărcate de pe server la client.

Setari personalizate

Toate instrumentele ACS sunt disponibile atât pentru dezvoltator, cât și pentru utilizatorul final. Dar practica a arătat că utilizatorul final este adesea intimidat de abundența capabilităților instrumentului. Mai mult decât atât, în majoritatea cazurilor, utilizatorul final nu are nevoie de toată puterea setărilor - este suficient pentru el să aibă acces rapid la configurarea unuia sau doi parametri de raport (de exemplu, perioada și contrapartea). Pornind de la o anumită versiune a platformei, dezvoltatorul de rapoarte are posibilitatea de a marca ce setări de raport sunt disponibile utilizatorului. Acest lucru se face utilizând caseta de selectare „Includeți în setările utilizatorului”. De asemenea, setările raportului au acum un indicator „Mod de afișare”, care ia una dintre cele trei valori:
  • Acces rapid. Setarea va fi afișată direct în partea de sus a ferestrei de raport.
  • Comun. Setarea va fi disponibilă prin butonul „Setări”.
  • Nu este disponibil. Setarea nu va fi disponibilă pentru utilizatorul final.


Setarea modului de afișare în timpul de proiectare


Afișați setarea în modul Acces rapid în timpul rulării (sub butonul Generare)

Planuri de dezvoltare

Una dintre domeniile noastre prioritare în dezvoltarea sistemelor de control al accesului este simplificarea setărilor utilizatorilor. Experiența noastră arată că pentru unii utilizatori finali, lucrul cu setările utilizatorului este încă o activitate majoră. Luăm în considerare acest lucru și lucrăm în această direcție. În consecință, va deveni, de asemenea, mai ușor pentru dezvoltatori să lucreze cu sisteme de control al accesului, deoarece Noi, ca și înainte, dorim să oferim un singur instrument pentru crearea rapoartelor atât pentru dezvoltator, cât și pentru utilizatorul final.

Să ne uităm la procesul de creare a unui raport în 1C 8.3 folosind sistemul de compoziție a datelor. De exemplu, să luăm următoarea sarcină: raportul trebuie să introducă date din partea tabelară a mărfurilor din documentele de vânzări de bunuri și servicii pentru o anumită perioadă și pentru organizația selectată. De asemenea, ar trebui să grupeze datele după câmpurile Cont, Link la document și Articol.

Un exemplu de raport rezultat poate fi descărcat de la.

Folosind meniul Fișier->Nou, adăugați un nou raport extern, dați-i un nume și salvați-l pe disc. Să creăm o diagramă de aspect utilizând butonul Deschide diagrama de aspect de date.

Scrierea unei cereri 1C pentru SKD

După crearea diagramei de aspect, trebuie să scriem o interogare care va colecta date pentru raport. Pentru a face acest lucru, în fila Seturi de date, creați un set de date Interogare.

Acum puteți începe să scrieți o interogare; există un câmp special pentru aceasta în setul de date. Puteți scrie fie manual, fie folosind un constructor (care este mult mai convenabil). În raportul nostru, interogarea este cea mai simplă:

|SELECTARE | Vânzări de Bunuri și Servicii Bunuri Link, | Vânzări de bunuri și servicii Bunuri. Link. Organizație, | Vânzări de bunuri și bunuri de servicii Link. Contraparte, | Vânzări de bunuri și servicii de bunuri Nomenclatură, | Vânzări de bunuri și servicii Bunuri Vânzări de bunuri și bunuri de servicii Cota TVA, | Vânzări de Bunuri și Servicii Bunuri Valoarea TVA, | Vânzări de Bunuri și Servicii Bunuri Preț | DE LA | Document.Vânzări de bunuri și servicii.Bunuri | CUM SE VINDE PRODUSE SI SERVICII PRODUSE | UNDE | Vânzări de bunuri și servicii Bunuri Link. Data | ÎNTRE &Începutul perioadei ȘI &Sfârșitul perioadei | Și vânzările de bunuri și bunuri de servicii. Link. Organizație | = &Organizare

Setarea câmpurilor pentru set de date

După scrierea cererii, ACS va completa automat tabelul cu setările de teren.

Vă voi spune pe scurt despre câteva setări:


Configurarea resurselor

În sistemul de compunere a datelor, câmpurile de resurse înseamnă câmpuri ale căror valori sunt calculate pe baza înregistrărilor detaliate incluse în grupare. În esență, resursele sunt rezultate de grup sau generale ale unui raport. În cazul nostru, resursele vor fi câmpurile Sumă și Sumă TVA. Totalurile pentru resurse pot fi calculate folosind funcțiile limbajului de expresie SKD, dintre care cele mai simple sunt Sum(), Average(), Maximum(), Minimum() și Quantity(). Pentru a seta resursele de raport, trebuie să mergeți la fila Resurse și să trageți câmpurile necesare ale raportului în tabelul de resurse. După aceasta, trebuie să setați o expresie (în cazul nostru, Sum()), puteți selecta și grupările pentru care doriți să vedeți totalurile pentru această resursă, acest lucru se poate face în coloana Calculate by....

Vă rugăm să rețineți că nu puteți crea grupări pe baza câmpurilor selectate în resurse.

Toți parametrii specificați în cerere vor fi afișați în fila Parametri schema de aspect. În cazul nostru, acestea sunt Începutul Perioadei, Sfârșitul Perioadei și Organizarea. Să trecem prin câteva dintre setările lor:

  1. Coloanele Nume, Titlu și Tip sunt completate automat, iar valorile lor nu trebuie modificate în mod inutil;
  2. Este disponibilă o listă de valori. Dacă doriți să treceți o listă ca parametru, trebuie să setați acest steag, altfel doar primul element al listei va merge acolo.
  3. Sens. Aici puteți specifica o valoare implicită pentru parametru. În exemplul nostru, vom selecta valoarea Elements pentru parametrul Organizations (un link gol către directorul Organizations).
  4. Includeți în câmpurile disponibile. Dacă ștergeți acest flag, parametrul nu va fi vizibil în setări: în câmpurile selectate, selecție.
  5. Limitare de disponibilitate. Steagul este responsabil pentru capacitatea de a seta valoarea parametrului în setările ACS.

Configurarea structurii raportului

Să mergem la fila Setări, aici putem specifica grupări de rapoarte, câmpuri afișate în raport, selecții, sortări etc. Condițiile sarcinii spun că raportul ar trebui să grupeze datele pe câmpuri: Cont, Link și Articol, le vom indica unul după altul în zona de grupare.

În fila Câmpuri selectate, trageți resursele noastre (Suma, Suma TVA) din câmpurile disponibile în câmpurile de raport.

Să adăugăm selecții după Contractant și Articol pentru ușurința utilizării raportului. Vom șterge steaguri pentru utilizarea selecției; utilizatorul le va seta atunci când este necesar.

Aceasta completează configurarea raportului; acum îl puteți rula în modul întreprindere.

Generarea unui raport

Pentru un raport privind sistemul de control al accesului în 1C, nu este necesară crearea unui formular; sistemul de layout în sine îl va genera. Deschideți raportul în modul 1C Enterprise 8.

Înainte de a-l crea, faceți clic pe butonul Setări și completați valorile parametrilor. Puteți, de asemenea, să setați selecția, dacă este necesar, să modificați grupările, sortarea etc.

Urmărește și videoclipul despre crearea de rapoarte privind sistemul de control acces:

Atunci când se creează rapoarte folosind un sistem de compunere a datelor (DCS), este convenabil să se afișeze parametrii de raport (cel puțin cei mai des utilizați) pe formular, pentru a nu forța utilizatorul să pătrundă în fereastra standard de setări DCS.

Să vedem cum se poate face acest lucru folosind forme obișnuite 1C. Să facem imediat o rezervă că în acest articol vom lua în considerare exact ieșirea parametrilor în formular, adică. parametrii în sine în sistemul de control al accesului trebuie deja creați.

Există două moduri de a transmite parametrii ACS într-o formă obișnuită:

  • ieșirea întregului tabel de setări ale parametrilor
  • ieșirea parametrilor individuali sub formă de câmpuri de intrare.

Tabelul cu setările parametrilor afișat în formular este similar cu tabelul cu setările parametrilor generat de instrumentele ACS. Pentru a-l afișa pe formular trebuie să creați un element de control TabularField, care are proprietatea Date indica Setări Composer.Settings.Data Options

În acest caz, utilizatorului i se vor afișa toți parametrii sistemului de control acces care nu au o restricție de disponibilitate.

Cu toate acestea, în unele cazuri, această metodă poate să nu pară atât de frumoasă și nu foarte ușor de utilizat. Să ne uităm la cum să afișați parametrii ACS într-un formular separat, sub formă de câmpuri de intrare obișnuite.

  1. Să creăm detaliile raportului corespunzătoare parametrilor. În exemplul nostru, acestea vor fi detaliile Data de începere, Data de încheiere, Organizație. Să setăm tipurile de date adecvate pentru ele.
  2. Să creăm câmpuri de intrare pe formular pentru fiecare dintre parametri și să le conectăm prin proprietate Date cu detalii ale raportului. Pentru fiecare câmp de intrare, ar fi bine să creați lângă el o etichetă cu numele parametrului, astfel încât utilizatorul să înțeleagă ce parametru editează.
  3. Pentru fiecare câmp de intrare trebuie să creați o procedură pentru handlerul de evenimente Când se schimbă, care va seta valoarea selectată de utilizator la parametrii ACS. În exemplu, am creat o procedură și am atribuit-o pentru a schimba evenimentele din toate cele trei câmpuri de intrare. Adică, atunci când un parametru se modifică, toți trei sunt resetati. Din punct de vedere al performanței, cel mai probabil acest lucru nu este eficient, dar... Nu sunt mulți parametri, diferența nu este vizibilă. Dacă există un număr mare de parametri, merită să setați fiecare într-o procedură separată. Deci, codul de procedură pentru handler Când se schimbă va arata asa:

    Procedură ParametersOnChange(Element)

    ParameterStartDate = SettingsLinker. Setări. Parametrii datelor. Elemente. Find("Începutul perioadei"); //Căutarea este efectuată după numele parametrului ACS
    ParameterStartDate Utilizare = Adevărat; //Parametrul va fi folosit în timpul selecției
    ParameterStartDate Valoare = StartDate; //Parametrului i se atribuie valoarea atributului raport

    ParameterDataCon = LinkerSettings. Setări. Parametrii datelor. Elemente. Find("EndPeriod");
    ParameterDateCon. Utilizare = Adevărat;
    ParameterDateCon. Valoare = EndDay(EndDate) ;

    ParameterOrg = BuilderSettings. Setări. Parametrii datelor. Elemente. Find("Organizație");
    ParameterOrg. Utilizare = Adevărat;
    ParameterOrg. Valoare = Organizație;

    Sfârșitul procedurii

Cele mai bune articole pe această temă