ACS și surse de date externe. Setul de date este un obiect. Skd sursa de date externă, încărcați din TK și apoi obțineți solduri pentru fiecare document Numele obiectului care conține date skd

Uneori se întâmplă ca datele din raport să nu poată fi obținute folosind o interogare sau o combinație de interogări. Trebuie să utilizați unele proceduri pentru a colecta date, iar datele sunt plasate într-un tabel de valori. Se pune întrebarea - aceste date pot fi utilizate în schema de compunere a datelor? La urma urmei, instrumentul SKD este puternic și convenabil. Se pare că este posibil să utilizați datele din tabelul de valori ca sursă de date pentru un raport în ACS și nu este deloc dificil să faceți acest lucru. Acest articol va arăta cum să creați un astfel de raport pentru formularele obișnuite.
Deci, cum creați un raport SKD folosind datele dintr-un tabel de valori? Despre totul în ordine.
Mai întâi de toate, deschideți configuratorul și creați un nou raport extern.

Deschideți modulul obiect și creați o procedură predefinită OnResultComposition (ResultDocument, DecryptionData, StandardProcessing)

În cadrul acestei proceduri, vom colecta date și vom genera un raport.
În procedura WhenComposingResult, dezactivăm procesarea standard. StandardProcessing = Fals;
Apoi formăm un tabel de valori într-un mod arbitrar. Numele coloanelor din tabelul de valori trebuie să se potrivească cu câmpurile viitoare ale setului de date din ACS.:


De exemplu, să adăugăm trei rânduri de date. Apoi, creăm rezultatul raportului pas cu pas.

  • Din schemă obținem setările implicite.

  • Trimitem datele de decriptare variabilei corespunzătoare.

  • Formăm layout-ul folosind generatorul de layout.

  • Trecem schema, setările și datele de decriptare în aspect.

  • Efectuăm conectarea utilizând procesorul de legături. Pentru a face acest lucru, executați metoda Initialize() a procesorului de compoziție de date. Ca parametri, trecem aspectul compoziției datelor, seturile de date externe (tip: Structură, cheia structurii trebuie să se potrivească cu numele obiectului din schema de compunere a datelor, valoarea este tabelul de valori generat), datele de decriptare.

  • Golim câmpul documentului foaie de calcul.

  • Afișăm rezultatul într-o foaie de calcul.
Rezultatul este următorul cod:
DataCompositionSchema = GetLayout( „Schema de aspect de bază a datelor”); //Settings = DataCompositionScheme.DefaultSettings; // - Dacă procedați așa cum se arată mai sus (recomandat pentru unele resurse), atunci când schimbați setările în modul client // nu veți vedea aceste modificări, deoarece setările vor fi întotdeauna implicite. Cum se face corect - mai jos Settings = Settings Composer. GetSettings(); DecryptData = New DataCompositionDecryptData; Layout Layout Builder = Noua versiune de date Layout Layout Builder; LayoutLayout = LayoutComposer. Execute(DataCompositionScheme, Settings, DecryptionData); ExternalDataSet = Structură nouă( „ExampleValueTable”, TZConcluzie); DataCompositionProcessor = DataCompositionProcessor nou; DataCompositionProcessor. Initialize(LayoutLayout, ExternalDataSet, DecodeData); DocumentResult. clar(); OutputProcessor = Nou OutputProcessorofDataCompositionResultIntoSpreadsheetDocument; Procesor de ieșire. SetDocument(DocumentResult); Procesor de ieșire. Ieșire(DataCompositionProcessor); Adăugați aspectul aspectului. Putem lăsa numele ca implicit.

Creăm un set de date. Pentru a face acest lucru, adăugăm un nou set de date de tip Object. În numele obiectului care conține câmpul de date, plasăm numele pe care l-am specificat ca cheie la crearea structurii ExternalDataSet. Apoi adăugăm câmpuri. Numele trebuie să se potrivească exact cu numele coloanelor din tabelul cu valori. Apoi, putem specifica valori valide, formate etc.

Adăugați resurse dacă este necesar. Ei vor număra rezultatele. În cazul nostru, acestea sunt câmpurile Cantitate și Cantitate.

În fila Setări, folosind constructorul de setări, formăm versiunea implicită a raportului

Ne salvăm raportul. Îl lansăm în client și îl formăm. Un exemplu de executare a unui raport ACS folosind date din tabelul de valori este prezentat în imagine.


Asta e tot. Destul de simplu, nu?

Raportul rezultat pentru un exemplu poate fi descărcat

Uneori, pentru a obține un anumit rezultat al asamblarii, este necesar să se creeze legături de seturi de date în ACS. Despre când este necesar și cum să o facem, vom încerca să spunem în articolul nostru.

Schema de compoziție a datelor implementată în 1C acceptă trei tipuri de surse de date (Fig. 1)

Surse de date

Cea mai evidentă și utilizată sursă de date de către dezvoltatori este Solicitarea.

Generatorul de interogări implementat în versiunea 8 a 1C este foarte convenabil și, în cele mai multe cazuri, puteți lega mai multe tabele împreună, puteți face grupările și selecțiile necesare chiar în el.

În cazuri complexe, când este necesară sau mai adecvată utilizarea execuției unui cod (de exemplu, încărcarea datelor dintr-un fișier terță parte) sau când nu este posibilă utilizarea unei interogări, sursa de date „Obiect” vine la salvarea. Un cod arbitrar executat într-un modul trebuie să aibă o structură la ieșire, la care ACS-ul poate accesa.

A treia sursă de date este „Combinație”. De fapt, această sursă poate fi considerată ca unul dintre tipurile de comunicare. Combină (reduce mai multe tabele într-unul singur), fără a compara, însă, coincidența anumitor câmpuri. Adică, dacă cele două tabele care se unesc au 3, respectiv 4 rânduri, atunci sursa de date rezultată va avea 7 rânduri.

Formularea problemei

Ca teren de testare, vom alege baza SCP, versiunea 1.3.92.3, care funcționează în modul normal de aplicare.

Ne confruntăm cu următoarea sarcină: folosind doar ACS, să creăm un raport care să afișeze un tabel al articolelor achiziționate din document, cu prețuri preluate din dosarul transmis de contraparte.

Astfel, trebuie:

  1. Luați partea tabelară a documentului de chitanță;
  2. Încărcați un fișier în sursa de date „Obiect”;
  3. Conectați aceste două surse printr-un parametru specific (în cazul nostru, acesta va fi cod);
  4. Ieșiți tabelul rezultat.

Procesul de execuție

Să trecem prin toți pașii de mai sus:

  • Creăm o cerere către partea tabelară a documentului de primire (Fig. 2)

Fig.2

  • Creați un obiect de set de date (Fig.3);

Fig.3

Aici este important să fim atenți la „Numele obiectului care conține datele”, acesta este numele pe care va trebui să îl specificăm în codul modulului de raport.

  • Accesați modulul de raport și creați acolo procedura „On Result Composition” (Fig. 4);


Fig.4

Nu vom descrie procedura de obținere a datelor dintr-un fișier extern, vom fi atenți la partea de cod care trebuie să fie prezentă în aspect, astfel încât să putem primi date pentru „Setul de date 2” (Fig. 5).

Fig.5

Important! Când se creează un „Obiect” în codul de procedură la conectare, valoarea parametrului StandardProcessing trebuie să fie False.

Accesați fila Legături seturi de date.

Seturi de legătură

Mergem la fila corespunzătoare a schemei (Fig. 6).

Vedem o secțiune tabelară care este foarte asemănătoare cu secțiunea tabulară găsită în generatorul de interogări, cu câteva excepții. Setul sursă și Setul destinație link nu pot fi setate la Toate, dar au fost adăugate mai multe coloane suplimentare.

În relațiile cu seturile de date, puteți stabili doar o relație similară cu îmbinarea din stânga exterioară a unui generator de interogări.

Înainte de a crea un link, să definim scopul coloanelor:

  1. Sursa linkului este primul set de date din care vor fi luate toate valorile disponibile;
  2. Receptorul de comunicare este un set de date din care vor fi selectate valorile corespunzătoare stării noastre;
  3. Expresia sursă este câmpul sau expresia primului set de date cu care se potrivește;
  4. Expresia receptor este o expresie de câmp sau de set dependent;
  5. Parametru – dacă specificați un nume de parametru în acest câmp, atunci comunicarea cu setul de receptor se va realiza numai după valoarea specificată în parametru;
  6. Lista parametrilor - determină posibilitatea utilizării unei liste de valori ca parametru;
  7. Condiție de legătură - prin specificarea unei expresii aici folosind câmpurile sursă, puteți crea o condiție, a cărei îndeplinire va servi drept semnal pentru stabilirea unei legături;
  8. Valoarea inițială - arată valoarea inițială a relației;
  9. Legătură necesară - determină dacă sunt implicate câmpurile folosite în sursă (setat la FALSE) sau în țintă (setat la TRUE) și, pe baza acesteia, adaugă linkul la aspect.

Prin urmare:

  • Rezultatul solicitării noastre va acționa ca o sursă de link;
  • Obiectul va acționa ca receptor;
  • Expresia sursă va fi „NomenclatureCode”;
  • Expresia receptor „Nomenclatură”;
  • Comunicarea va fi obligatorie (Figura 7).

Dacă am fi indicat numele oricărei nomenclaturi, sau tipul ei de reproducere, sau altceva, ca o condiție de comunicare, am fi putut obține o mostră mai precisă pentru sarcina noastră. Rezultatul acțiunilor noastre poate fi văzut în Fig. 8

Fig.8

Nu a existat nicio potrivire pentru cele două rânduri de jos ale raportului din fișierul de preț.

În această filă, puteți crea un număr nelimitat de seturi de date. Setul de date este sursa datelor.

Există mai multe tipuri de seturi de date:

  • Cerere;
  • Un obiect;
  • O asociere.

Solicitarea este o cerere obișnuită 1s, doar limbajul de interogare este ușor extins. Pentru comoditate, puteți utiliza constructorul de interogări.

Un obiect este un set extern de date, cum ar fi un tabel de valori.

Unire - unirea mai multor seturi de date de interogare și tipuri de obiecte.

În acest articol, vom trece pe scurt peste toate filele designerului de scheme de compoziție a datelor. Seturi de date În această filă, puteți crea un număr nelimitat de seturi de date. Setul de date este sursa datelor. Există mai multe tipuri de seturi de date: Solicitare; Un obiect; O asociere. Solicitarea este o cerere obișnuită 1s, doar limbajul de interogare este ușor extins. Pentru comoditate, puteți utiliza constructorul de interogări. Un obiect este un set extern de date, cum ar fi un tabel de valori. Unire - unirea mai multor seturi de date de interogare și tipuri de obiecte. Relații cu seturile de date Această filă descrie relațiile cu seturile de date. Aici puteți specifica ce seturi de date să legați și după ce câmpuri și cu ce parametri. Cel mai important lucru de reținut este că într-o schemă de compoziție a datelor, atunci când se leagă seturi, este întotdeauna folosită un Left Join! Câmpuri calculate În această filă, puteți crea câmpuri suplimentare care nu sunt descrise în fila Seturi de date. Expresiile de calcul includ limbajul de expresie al compoziției datelor, câmpurile din seturile de date de bază și funcțiile de modul partajate non-global. Resurse Resursele sunt date rezumative pentru grupări. Pe filă, puteți atribui câmpuri din seturi de date ca resursă, precum și din câmpuri calculate. De asemenea, pentru resurse, este specificată expresia prin care acestea sunt calculate și este posibil să se precizeze gruparea după care se va calcula expresia pentru resurse. Pe baza valorilor resurselor se calculează și totalurile raportului. Parametri Parametrii de date sunt utilizați de obicei într-un set de date de interogare. Toți parametrii descriși în interogare apar în fila Parametri. În această filă, puteți specifica titlul, tipurile disponibile, valoarea disponibilă și alte lucruri. Mai multe despre opțiuni mai târziu. Aspecte În mod implicit, aspectul raportului generat este generat automat de sistemul de compunere a datelor. Dar sistemul are și capacitatea dezvoltatorului de a proiecta zone individuale ale raportului (câmpuri, grupări, resurse ...). Toate aspectele individuale ale zonelor create în această filă sunt legate numai la raportul curent. Scheme imbricate Schemele imbricate sunt utilizate atunci când datele dintr-un raport trebuie utilizate în altul. Cu alte cuvinte, „încorporam” o schemă de compoziție a datelor în alta, indicând o relație printr-un câmp comun. Un exemplu de utilizare a schemelor imbricate poate fi găsit în acest articol. Setări În această filă, dezvoltatorul creează setări standard pentru generarea unui raport. Structura ierarhică este stabilită în partea superioară a ferestrei. Structura de generare a rapoartelor poate consta din următoarele elemente: Grupare; Masa; Diagramă; Schemă imbricată În partea inferioară a ferestrei, setările sunt specificate pentru întregul raport și pentru fiecare element al structurii raportului. Pe scurt în filele de setări: Câmpuri selectate – lista câmpurilor afișate în raport; Selectare – diverse selecții ale înregistrărilor de raport; Ordine – sortarea înregistrărilor în raport; Parametri de date – valoarea parametrilor raportului; Câmpuri personalizate - câmpuri de raport suplimentare create de utilizator; Formatare condiționată – este setată formatarea condiționată a înregistrărilor raportului; Alte setări - tot felul de setări suplimentare, cum ar fi: titlul raportului, aspectul designului, aspectul câmpului etc....

41
Am făcut recent un raport cu un număr nedefinit de coloane. Am fost reticent să mă încurc cu codul, am decis să o fac pe ACS. Nu a fost nicio problemă cu aceasta, a fost necesar să se extindă rezultatul la un aspect arbitrar (propriu titlu + ... 27
Chiar dacă cursanții SKD întâlnesc acest lucru în prima sau a doua zi, ar trebui să fie în secțiunea Întrebări frecvente. Un exemplu simplu de ieșire programatică a unui raport pe un aspect folosind setările implicite. //Obțineți schema de la... 18
La generarea rapoartelor pe ACS, în mod implicit, toate grupările sunt extinse, dar se întâmplă să fie necesară afișarea unui raport cu grupările restrânse imediat după generare! Acest cod din modulul de raport vă permite să restrângeți... 10
Pe această filă, puteți specifica ce fel de conexiuni se realizează între două sau mai multe seturi de date, în funcție de ce parametri și condiții..png 1. "Sursa link" - este indicat primul set de date, de la... 9
Că atunci când elaborează rapoarte, este necesar ca un utilizator cu drepturi limitate să genereze un raport complet fără a verifica drepturile! Mai ales dacă este configurat RLS. Există mai multe moduri de a face acest lucru: 1. Instalați...