Contacte

1c CCD este descărcată în tabelul de valori. Un exemplu de utilizare a unei surse de date externe în LCD. Citiți jurnalul de înregistrare

Hei!
Astăzi vreau să descriu subiectul cu care fără "scuba" nu vă veți dispersa :);)

Scuba la faptul că imersia este destul de adâncă. În literatura de specialitate există puține legături pe acest subiect și nu încă "împărtășind" în ea nu vor discerne. Nici măcar nu ar fi solicitat o astfel de acțiune;) Apropo, în documentația a fost menționată foarte prost și inconsecvent, trebuie să vă referiți la literatura terță parte.

De exemplu, recomand foarte mult "Dezvoltarea rapoartelor complexe în" 1c: întreprindere 8.2 ". Sistemul de aspect de date (dacă este mai precis, vezi pp. 224, 267 și 473)

În CCD există 2 tipuri de surse de date: Cerere, obiect și asociere (acest lucru nu se iau în considerare, nu este o sursă de date, ci handler disponibil). A se vedea figura 1:


Deci, dacă cu o sursă (set) de tip de date "Cerere" pentru noi mai mult sau mai puțin ușor de înțeles, cum să lucrați, atunci există dificultăți în baza de date "Obiect".

Pentru a începe cu, voi descrie ce vrem să ajungem la ieșire:

Raport, utilizatorul apăsat butonul " Formă"A apărut lista nomenclaturilor (vezi figura 2):

Da, am făcut o inexactitate, și anume: nu există niciun buton " Formă"Dar există un buton" actul nou"(Voi explica puțin mai târziu de ce sa întâmplat;)

Da da! Avenum: Această listă este afișată din setul de date "Obiect":

Decizie:

  1. Creați un raport extern;
  2. Adăuga layout SCD., să o numim "de bază ashamompand";
  3. Adăugați un "obiect" setați la acesta, alocați numele "Listei de listare" (trebuie să fie aceeași ca în figura 3);
  4. În setările de raport, nu experimentăm în mod specific, lăsați-o pur și simplu (vezi figura 4)

Ok, jumătate din cazul făcut;)

Acum, să generăm forma de bază a raportului (da, un alt moment! Configurația mea funcționează pe interfața obișnuită, dar cred gestionat Formas. Veți găsi o soluție;) Deci, forma:

Există o problemă aici! Dacă faceți clic pe butonul "Formă" (figura 5.), vom vedea eroarea!


Am dedicat acest articol pentru a rezolva această problemă!

Prindeți butonul de eveniment "pentru a forma" nu a funcționat, așa că am decis să folosesc Crupeaua. A lansat configurația în modul Debug și a încercat să găsească butonul foarte "formular".

Inserat sub formă de procedură "formă", dar nu există semne în el, a trebuit să suprasarcină acțiunea butonului "Formă" înainte de a deschide formularul:


În fig. 8 În plus față de schimbarea formularului, se administrează un exemplu de interogare, prelucrare și transmitere a datelor generate în CCD. Studiem cu atenție mai mult:

  1. Noi generăm datele de intrare pentru CCD;
  2. Inițializați CCD;
  3. Derivăm rezultatul formularului (plătiți aceeași atenție la acesta!).

Reamintim schema de interacțiune a obiectelor sistemului de layout de date:

Diagrama layout-ului în raportul extern este adecvată ca obiect global în metoda formei Schemacksprinky.De asemenea, puteți să o contactați după nume prin trecerea acestuia la metodă A primi(vezi figura 8)

Principala bucată de cod este prezentată mai jos:

Solicitare \u003d cerere nouă; Solicitare.Text \u003d "Alegeți | Nomenclatura. Nume ca nomenclatură | din directorul. Substituția ca nomenclatură"; Nomenclampscription \u003d interogare. Umpleți (). Descărcați (); Set \u003d noua structură ("Lista de listare", nomenclampsripii); // SCD \u003d primirea ("BasicchemComponid"); SCD \u003d Schemafoncomponovydny; Compomeker \u003d noua mașină pliabilă curat; Mockacomp \u003d compmachetul. Umplere (SCD, SCD. Non-pompouune); Procesor compensat \u003d comitete de procesoare noi; ProcesorCompuri. Inițializați (Mockup, citat); CONCLUZIE \u003d Rezultate noi de procesor în liniecomplekdangocument; Concluzie. InstalareSctorală (rezultatul elementelor); concluzie. Asigurați-vă (Comitetul Procesor, Adevărul);

Da! Iată un alt moment plăcut!

ÎN acest exempluDupă cum puteți vedea (vezi figura 2), ieșirea este efectuată în formă și nu în tabel. document! Și este foarte bun, pentru că putem lucra cu forma (interceptarea programată a evenimentelor elementului de formă, fac tot felul de jetoane cu drag și picătură și așa mai departe;)

Într-un document tabular, putem afișa pur și simplu datele procesate pe ecran și vom transfera gestionarea documentelor către utilizator și nu putem influența procesul de editare suplimentar al acestui conținut!

Consultați sistemul de ajutor " DOMENIUL DOCUMENTULUI TABULAR ", Și dau doar un extras din documentația încorporată a sistemului 1c Enterprise 8.2:

"Câmpul documentului de masă este document tabular.plasat în formă. Împreună cu colectorul capabilităților de proiectare ale unui document tabular, vă permite să organizați prelucrarea evenimentelor care decurg din selecția celulelor, a imaginilor, precum și a altor controale plasate în câmpul documentului tabelului ".

Bine, așa cum spun ei, succesul în luptă;)

În articolul meu trecut, am scris deja că 1c este o platformă paradoxală. Linia de date a datelor se referă la astfel de paradoxuri. CCD este conceput pentru a construi rapoarte complexe și implică înlocuirea programării "Manual" a rapoartelor către proiectarea în instrumente multifuncționale. Oportunitate utilizarea SCD. a apărut în cea de-a opta versiune, dar a durat pentru o lungă perioadă de timp Ce versiune 8.2 a apărut pentru ao folosi în produsele sale tipice. Pe de o parte, SCD este un set de instrumente multifuncțional folosind care puteți face rapoarte foarte complexe fără o singură linie de cod. Cu toate acestea, SCD are un prag destul de mare de intrare, studiu și începe să-l folosească pe deplin "de la abilitate" foarte greu, pentru că interfața nu este în întregime intuitivă, dar cel mai mult manuale complete. Utilizați numai sub formă de literatură plătită.

În procesul de studiu, CCD a apărut sarcina. Trebuie să obțineți date dintr-o masă terță parte a valorilor utilizând limba de interogare și să continuați să acționați cu aceste date ca fiind similare din tabelele bazei de date (informații despre informații, grupare și așa mai departe). În format clasic, am face o cerere care primește informații din tabelul transferat la cererea din ideea parametrului.

Solicitare \u003d cerere nouă (
"ALEGE
| Tabel. Namerenclatură,
| Masă. Slab.
| Este.
| & Tk ca tabel ");
Solicitare. Parametru de instalare ("tk", tk);

Dar din CCD nu este atât de simplu. Din păcate, operația descrisă mai sus ar trebui făcută în sistemul de linie de date este imposibil. Cu toate acestea, este implementată posibilitatea încărcării tabelelor externe de valori în sistem.

Merită să faceți o mică retragere lirică și să discutați despre seturile de date. Seturile de date sunt surse de informații de la care SCD primește date care ulterior se plâng de raport. Seturile de date sunt împărțite în tipuri, utilizează în principal tipul "solicitare", în organismul pe care programul de date scrie o cerere la baza de date. Tipul "Obiect" este utilizat pentru a încărca datele din obiecte externe. În ambele cazuri, avem un anumit set de câmpuri obținute ca urmare a executării interogării sau a încărcării unui obiect extern. Mai târziu, aceste câmpuri pot fi operate pe fila "Setări", împreună cu configurare detaliată Structura raportului. Pentru relația diferitelor seturi, CCD oferă posibilitatea de a specifica legăturile seturilor de date în fila de același nume. Aceste obligațiuni reprezintă un analog direct al conexiunii stângi într-o cerere clasică. Cu toate acestea, trebuie remarcat faptul că cererile în orice set de date nu "știu" despre existența altor seturi de date, în cele din urmă seturile de date ale seturilor de date vor afecta aspectul datelor din structura specificată în fila Setări.

Detaliați sarcina spre un exemplu. Există un raport tipic al situației calculate a organizării configurației Zek 8. Este necesar ca tipurile de așezări din raport să fie grupate de unele grupuri. Corespondența grupului video este stocată în tabelul extern al valorilor. Pentru ao încărca în schema principală de date de date, creați un "set de date" cu numele "Grup" (Figura 2). Comunicare Producem cu un "set de interogare" - "acumulator", conform formei de calcul (Figura 3). În "setul de date" - "acumulat" este informații despre grupuri, eliminăm toate intrările. După, în fila Setări, putem folosi câmpul "Grupul Group", care este încărcat dintr-o sursă de date externă (Figura 4). În funcția de formare a raportului, completăm încărcarea datelor externe.

Funcția de formulare (rezultatul \u003d nedefinit, ProprietyShimps \u003d Undefined, Outforming \u003d Adevărul) Export

// primirea sau formarea tabelului dorit de valorile "grupului" și intrarea acesteia în aceeași variabilă

Extern \u003d noua structură (); // creați și completați structura de date externe
Foame. Introduceți (Grupuri);

PRODUCERE VALOARE \u003d \u200b\u200bTIPURI TIPICE. Proiectul PeresaluppodingPestenerPasteer (acest obiect);
Pocillionpurchain \u003d Setări folder. Setări turnate ();
Tipuri tipice. PouringprenimeneNews (acest obiect);
Tipuri tipice. Formarea declarației (acest obiect, rezultatul, stocarea datelor, perspectivele, foamele);
Echipamente de dosare. InstalareaShops (Pouringposal);
Returnați rezultatul;

Endfunction

În cazul în care am făcut un raport "de la zero", codul de raportare al formării raportului ar arăta astfel:

Străini) \u003d structură nouă;
Cele străine. Pune (grupuri ", grup); // Grupuri - un tabel dorit de valori
SchemăSComponicida \u003d primiți ("Basicshemapfonded"); // aspectul nostru cu diagrama de date coman
Setări \u003d Schemecomponovydata.
Mașină complabilă \u003d complex nou-curat de tricou;
MockUpComponovka \u003d Masina de folder. Umplere (bastoane diagrame, setări);
ProcessorComponovydanny \u003d New ProcessorCompon's
ProcessorComponovydny.Initializa (mocturise, secțiuni externe);
Tabu \u003d lemn nou;
Echipamente de procesor \u003d New procesor-în-linie Rezultate Commontheldblocks
Exercitarea procesorului. Instalarea documentului (tabo);
Echipamente de procesor. Echipare (procesorCompon);

Citit 9660 timp

La deschiderea sucursalelor noi ale companiei, pentru a calcula sarcina pe serverul 1c: întreprinderi și alte sarcini, va fi necesar să se vadă dinamica lucrărilor utilizatorilor în baza de informații sub forma unei diagrame.

Dinamica trebuie să fie afișată la perioada selectată a utilizatorului. Deoarece datele afișate vor fi numărul de acțiuni pe acești utilizatori în contextul ceasului. Informațiile pentru un astfel de raport pot fi obținute din jurnalul de înregistrare.

Luați în considerare crearea treptată a unui raport similar și cu ajutorul unui set extern de date, îl vom construi pe sistemul de aspect de date.

Citiți jurnalul de înregistrare

Și așa, vom construi un raport la CCD. Nu vom primi datele utilizând o interogare din baza de date și din jurnalul de înregistrare. Metoda de stocare a jurnalului de înregistrare a platformei a scris în articolul precedent.

În conformitate cu perioada specificată din raport, trebuie să obținem toate acțiunile utilizatorilor pe date baza de informare. Tabelul rezultat este grupat pe utilizator și ieșire sub forma unei diagrame (a se vedea screenshot mai sus).

Pentru informații din jurnalul de înregistrare, vom folosi metoda contextului global "descărcată ()". În cazul în care "PRECOCRONCULT" al raportului creat, adăugați următoarele codul programului.:

Procedura pentru Precomponsult (rezultatul documentului, stocarea datelor, prelucrarea standard) Standardwork \u003d FALSE; // Deconectați ieșirea de raport standard - vom afișa software-ul // obțineți un raport de complot, inclusiv. perioadă Setări \u003d Setări folder. Obținerea (); // obțineți setările de raport Parametiod \u003d Setări folder. Recepție (). Pictat. Elemente. Găsiți ("perioadă"). Valoare; Zhortab \u003d mese noi; Descărcarea \u003d structura nouă; // Creați structura de selecție a registrului // completați selecția după această perioadă Stoarcere. Inserați ("date", parametriod. Datateron); Stoarcere. Inserați ("date", parametiod. Date date); // Setați selecția pentru evenimente Arme \u003d matrice noi; Masigative. Adăugați ("_ $ date $ _ . Șterge.. Nou"); Massatii. Adăugați (" _ $ date $ _ . POST."); Massatii. Adăugați (" _ $ date $ _ . TotalSpeliDatePdate."); Massatii. Adăugați (" _ $ date $ _ . Unpost."); Massatii. Adăugați (" _ $ date $ _ . Actualizați."); Retragerea. Pastă (" eveniment ", masigative); // descărcați jurnalul de înregistrare Descărcate (Zhrag, brațe); // Creați și completați datele pentru ieșire la raport Jostab. Coloane. Adăugați ("timp"); Jostab. Coloane. Adăuga (" Numere"); Pentru fiecare pagină a ciclului Jostab p. Timp \u003d oră (data p.); Numărul de cantități \u003d 1; endcycle; // Rezultatele grupului. Jostab. Colaps (" Numele de timp" , " Numere" ) ; // ..............

Primul parametru al metodei "Agenția de descărcare" stabilește tabelul de valori în care rezultatul eșantionului va fi descărcat din jurnalul de înregistrare. Al doilea parametru setați filtrul pe intrările selectate. FILTRE este o structură, cheile în care sunt câmpurile pentru care se stabilește selecția. Folosim câmpurile de "date" și "date" pentru a instala perioada de analiză a jurnalului de înregistrare, precum și câmpul evenimentului, în care transmitem o serie de șiruri de caractere (nume de evenimente). Un eveniment adăugat la evenimente corespunde datelor privind datele din baza de date.

Puteți citi mai multe despre utilizarea metodei "descărcare a încărcărilor" în sintaxa asistentului.

Transferim tabelul de valori în SCD

Pentru ca CCD să lucreze cu tabelul primit de valori, trebuie să faceți următoarele:

1) Creați un set de date în schema de aspect și setați câmpurile sale.
2) În codul software al modulului "Precomplow" "pentru a înregistra transmiterea valorilor valorilor din CD.

// Rezultatele grupului. Jostab. Colaps (" Numele de timp" , " Numere"); Supaperea supapelor \u003d noile accesorii propriu-zis; // Creați date de decriptare Mașină complabilă \u003d complex nou-curat de tricou; // Creați un aspect layout // inițializați aspectul layout utilizând circuitul de layout de date // și setările create anterior și datele de decriptare Schemacksprinky \u003d primiți: Basic Ashamcomponovkin."); MODTACKCOMPONOVKA \u003d pachet de folder. Efectuați (SchematicPone, Setări, Stocare de date); // scompon rezultatul ProcessorComponovka \u003d Componente noi de procesor; ProcesorComponovka. Inițializați (mock-one, // !!! Trecem tabelul "Zhortab" la procesorul de layout !!! Noua structură (" Logregister.", Журраб), PolicyShifts); Rezultatele documentului. Clear (); // afișați rezultatul într-un document tabular Echipamente de procesor \u003d New procesor-în-linie Rezultate Commontheldblocks CPU. Installertocument (rezultatele documentului); CPU. Ieșire (pompă de procesor); Extradreses.

3) Personalizați structura resurselor și a raportului (a se vedea mai multe detalii în fișierul de raport, legătura la care este dată la sfârșitul articolului).

Aceste setări de raport au fost finalizate și le putem rula în modul întreprinderii.

Rezultat

Sursa de date externă din CCC este supusă unor date rapoarte din aproape orice surse, urmărind acele date pe care nu le putem obține cereri.

Utilizarea SCD pentru astfel de surse vă permite să creați rapoarte cu un sistem de setări flexibile și, de asemenea, permite utilizatorului să modifice ieșirea raportului, structura sa. Toate posibilitățile sistemului de layout de date vor fi implicate pentru astfel de surse la integral.

Descărcați un raport din exemplul pe care îl puteți conform următorului link.

Uneori se întâmplă că datele din raport nu pot fi obținute utilizând o combinație de solicitare sau de interogare. Trebuie să utilizați orice procedură pentru colectarea datelor, iar datele sunt plasate în tabelul de valori. Întrebarea apare - este posibilă utilizarea acestor date în diagrama de aspect a datelor? La urma urmei, instrumentul SKD este puternic și convenabil. Se pare că puteți utiliza datele din tabelul de valori ca sursă de date pentru un raport din ecranul LCD și acest lucru nu este cu totul dificil de făcut acest lucru. Acest articol va arăta crearea unui astfel de raport pentru formele convenționale.
Deci, cum să creați un raport CC utilizând datele din tabelul de valori? Despre totul în ordine.
În primul rând, deschideți configuratorul și creați un nou raport extern.

Deschideți modulul Obiect și creați o procedură predeterminată pentru un precomponsult (rezultatul documentului, stocarea datelor, prelucrarea standard)

În interiorul acestei proceduri, colectăm date și formează un raport.
În procedura de precomprocecture, vom dezactiva procesarea standard. Standard de prelucrare \u003d FALSE;
Apoi formați un tabel de valori aleatoriu. Numele difuzoarelor din tabelul de valori trebuie să coincidă cu câmpurile viitoare de date din SCD:


De exemplu, adăugați trei linii de date. Apoi, pe pași, creați o ieșire de raport.

  • Din schemă primim setările implicite.

  • În variabila corespunzătoare trimitem date privind decodificarea.

  • Formăm un aspect folosind un aspect layout.

  • Transmitem aspectul layout la aspectul, setările și datele de decriptare.

  • Realizăm aspectul utilizând procesorul de layout. Pentru a face acest lucru, efectuăm metoda de inițializare a datelor de aspect al procesorului (). Ca parametri, transferăm aspectul layout-ului, seturile de date externe (tipul: structură, tasta cheie trebuie să se potrivească cu numele obiectului în circuitul de aspect al datelor, valoarea este o masă formată a valorilor), date de decriptare.

  • Curățați câmpul unui document tabular.

  • Afișați rezultatul într-un document tabular.
Ca rezultat, se obține următorul cod:
Schemacksprinky \u003d primiți ( "Basicashefecomponden"); // Setări \u003d SchemăSComponicida. // Dacă faceți așa cum se arată mai sus (recomandat pe unele resurse), atunci când modificați setările din modul client // aceste modificări pe care nu le veți vedea, deoarece setările vor fi întotdeauna implicite. Cât de corectă - opțiunea de mai jos Setări \u003d Setări folder. Obținerea (); InspecțiaShLOFLINGS \u003d Noua integtionarevrificare; Mașină complabilă \u003d complex nou-curat de tricou; MockUpsComponovka \u003d Mașină de folder. Efectuați (SchemăCompnee, Setări, PolicyShifts); Proiectat extern \u003d structură nouă ( "Convenții ocupate", Tz spellled); ProcessorComponovydanny \u003d New ProcessorCompon's ProcesorCompondidate. Inițializați (mock-opcompons, desemnat extern, policishifters); Documentalitate. Clar (); Echipamente de procesor \u003d New procesor-în-linie Rezultate Commontheldblocks CPU. Installertocument (rezultatele documentului); CPU. Retrage (complex de procesor); Adăugați aspectul layout layout. Numele poate fi lăsat în mod implicit.

Creați un set de date. Pentru a face acest lucru, adăugați un set nou de tip de date. În numele unui obiect care conține datele conțin numele pe care l-am arătat ca o cheie la crearea unei structuri suplimentare încărcate. Apoi adăugați câmpul. Numele trebuie să corespundă cu precizie numele coloanelor din tabelul de valori. Apoi, putem specifica valori valide, formate etc.

Adăugați resurse dacă este necesar. Acestea vor fi considerate rezultate. În cazul nostru, acestea sunt cantitatea și cantitatea de câmpuri.

În fila Setări utilizând designerul de setări, formați versiunea de raport implicită

Salvăm raportul nostru. Rulați-l în client și formular. Un exemplu de executare a unui raport CC utilizând datele din tabelul de valori este afișat în imagine.


Asta e tot. Doar suficient, nu este adevărat?

Raportul rezultat poate fi descărcat

41
Recent a făcut un raport cu un număr incert de coloane. A fost reticent să se încurce cu codul, am decis să fac la CCD. Această problemă nu a apărut, a fost necesar să trageți rezultatul pe un aspect arbitrar (antetul meu + ... 27
În ciuda faptului că studiile CCD se întâlnesc cu aceasta în prima sau a doua zi, aceasta ar trebui să fie în secțiunea Întrebări frecvente. Un exemplu simplu de ieșire a programului pe aspect utilizând setările implicite. // Obțineți o schemă de la ... 18
La generarea rapoartelor la CCD implicit, toate grupurile sunt implementate, dar se întâmplă imediat după formarea afișării unui raport cu grupări minimizate! Acest cod. În modulul de raportare vă permite să vă rotiți ... 10
Pe acest marcaj, puteți specifica ce linkuri sunt făcute între două și mai multe seturi de date, prin ce parametri și condiții ..Png 1. "Sursa de comunicare" - indică primul set de date, de la ... 9
Că atunci când se înregistrează rapoarte este obligat să aibă un utilizator cu drepturi limitate, raportul a fost format complet fără a verifica drepturile! Mai ales dacă RLS este configurat, există mai multe modalități de a face: 1. Instalați ...



Ți-a plăcut articolul? Împărtășește-l