Adăugarea unui raport extern la baza de date. Adăugarea unui raport extern la baza de date Cum se creează un raport extern în tutorialul 8.3

Ei spun că numele 1C însemna inițial expresia „o secundă”, adică. programele trebuie să producă rapoarte rapid, „într-o secundă”. Viteza rapoartelor este foarte importantă, dar este și mai important ca rapoartele să ofere informațiile corecte - vom înțelege acest lucru folosind exemplul creării unui raport simplu în 1C 8.3 pe baza configurației Trade Management 10.3. Pentru a crea rapoarte corecte, este de dorit (chiar recomandat) să poți configura 1C și să poți programa puțin în limbajul intern și limbajul de interogare al lui 1C, deși, pe de altă parte, crearea de rapoarte este o oportunitate excelentă. pentru a începe să stăpânească aceste abilități.

Această descriere este educativă pentru înțelegerea principiilor de bază ale creării rapoartelor 1C

Cum se creează un raport în 1C 8.3

Pentru a crea un raport, trebuie să deschideți 1C în modul configurator, pentru a face acest lucru, în fereastra de lansare 1C, selectați baza de date dorită din listă și faceți clic pe butonul Configurator:

În configuratorul propriu-zis, accesați meniul Fișier și selectați Nou:


În meniul care apare, selectați Raport extern și faceți clic pe OK:


După aceasta, se va deschide o nouă fereastră de raport. În câmpul Nume, introduceți numele raportului, acesta trebuie să fie fără spații sau caractere speciale:


Cum se face un raport folosind un aspect

Această metodă necesită cel mai mult abilități de programare în 1C, dar aici nu vom analiza mecanismele de primire și prelucrare a datelor vom face un raport simplu pentru a înțelege mecanismul de lansare a raportului și de afișare a formularului de raport pe ecran:

În fereastra de raport (care se deschide la crearea unui raport), în lista de jos, plasați cursorul pe elementul Aspecte și, când faceți clic dreapta, faceți clic pe Adăugare în meniul care apare:


În designerul de aspect care se deschide, puteți specifica numele aspectului, Documentul foaie de calcul ar trebui să fie selectat ca tip de aspect, apoi faceți clic pe butonul Terminare din designer:


Aceasta va deschide o fereastră de aspect care seamănă cu o foaie Excel:


În acest aspect, trebuie să creați zone - grupuri de rânduri sau coloane pe care programul le va folosi ca șabloane, să inserați datele primite din baza de date în ele și să afișați aceste șabloane pe ecran, formând astfel un raport din aceste părți.

Să creăm un raport care să afișeze o listă de articole. Pentru a face acest lucru, vom crea două zone de aspect: antetul raportului și linia articolului.

Pentru a crea o zonă de antet, faceți clic stânga pe antetul liniei (unde este indicat numărul liniei) pentru a selecta linia astfel (întreaga linie trebuie selectată cu un singur clic pe antet):


După aceea, accesați meniul Tabel din meniul principal, accesați submeniul Nume și faceți clic pe elementul Atribuire nume:


Programul vă va solicita să specificați Numele zonei, numele nu trebuie să conțină spații sau caractere speciale, după care faceți clic pe OK, ar trebui să arate astfel:


Acum, în zona creată, trebuie să introduceți textul care va fi afișat în raport și să îl formatați. Pentru a face acest lucru, introduceți text în prima celulă, de exemplu, „Lista de articole”. Lucrul cu celule este similar cu Excel.

Pentru a formata textul într-o celulă, faceți clic dreapta pe celulă și faceți clic pe Proprietăți. Fereastra cu proprietățile celulei se va deschide în partea dreaptă. Derulând în jos conținutul ferestrei, găsiți câmpul Font și faceți clic pe butonul „...”:


În fereastra care se deschide, în secțiunea Stil, bifați caseta Bold și faceți clic pe OK:


Aspectul ar trebui să arate astfel:


În același mod, creăm zona de linie a articolului, dar nu o evidențiază cu caractere aldine:


În zona de linii trebuie să indicați că Numele este un parametru, adică. că numele real al articolului va fi înlocuit acolo la ieșirea raportului. Pentru a face acest lucru, deschideți proprietățile celulei cu numele și în proprietățile din câmpul Umplere, selectați valoarea Opțiune, aceasta completează configurarea aspectului:


Ne întoarcem la fereastra principală a raportului și în lista de jos, faceți clic dreapta pe elementul Formulare și faceți clic pe Adăugare:


În designerul de formulare de raport care se deschide, faceți clic pe butonul Terminare, se va deschide formularul de raport, faceți dublu clic pe butonul Generare:


Ca rezultat, fereastra de proprietăți a butonului se va deschide în partea dreaptă a ecranului în câmpul Acțiune, faceți clic pe lupă:


După aceasta, se va deschide un modul de formular în care trebuie să programați generarea unui raport:


Mai întâi, înlocuiți textul selectat cu următorul cod de program:

//creați un document de foaie de calcul care va fi completat cu părți ale raportului și afișat pe ecran
TabDocument = Nou TabularDocument;
//în continuare, obținem aspectul care a fost creat la crearea raportului
Layout = GetLayout("Layout");
//acum trebuie să afișăm antetul raportului, pentru aceasta obținem zona antetului din aspect și o afișăm într-un document de foaie de calcul
AreaHeader = Layout.GetArea("Header");
TabDocument.Output(AreaHead);
//folosind o interogare, obținem o selecție de nume de elemente care trebuie afișate în raport
Solicitare = Solicitare nouă;
Request.Text = "
|SELECT
| Nume
|DIN
| Director.Nomenclator
|";
//obține zona de linie a articolului din aspect - o vom accesa într-o buclă pentru a afișa fiecare articol
AreaString = Layout.GetArea("String");
//procesează fiecare nume din selecția rezultată într-o buclă
Selectare = Query.Run().Select();
While Select.Next() Loop
//pentru a afișa următoarea linie, trebuie să specificați următorul nume în parametrul de zonă (am configurat parametrul în sine la crearea aspectului)
AreaString.Parameters.Name = Selection.Name;
//parametrul a fost completat, acum puteți afișa șirul
TabDocument.Output(AreaString);
EndCycle;
//documentul foaie de calcul a fost generat, acum îl afișăm pe ecran
TabDocument.Show("Lista de articole");

Când textul este copiat în modulul formular, liniile care încep cu o bară oblică dublă „//” vor fi evidențiate în verde - acestea sunt comentarii care descriu ceea ce face fiecare linie de cod:


Să rezumam ce linii de cod de program sunt necesare pentru a genera un raport:

  1. Este necesar să creați un document de foaie de calcul care va fi completat cu părți ale raportului și afișat pe ecran, acest lucru se face cu linia „TabDocument = New TabularDocument;”
  2. Trebuie să obținem aspectul raportului, din acesta vom obține structura raportului în părți (zone), acest lucru se face cu linia „Layout = GetLayout(“Layout”)”
  3. Pentru a afișa fiecare dintre zone, trebuie să o obțineți din aspect și să o scoateți într-un document de foaie de calcul, acest lucru se face cu liniile "Header Area = Layout.GetArea("Header")" și "TabDocument.Output(HeaderArea) "
  4. Dacă trebuie să completați parametrii care devin cunoscuți numai atunci când programul este executat, atunci înainte de a afișa zona trebuie să completați astfel de parametri, acest lucru se face cu linia „AreaString.Parameters.Name = Selection.Name”
  5. Și numai atunci când documentul foaie de calcul este completat cu toate părțile necesare ale raportului, acesta este afișat pe ecran, acest lucru se face cu linia „TabDocument.Show(„Lista de articole”)”

Și acum puteți verifica funcționarea raportului - deschideți 1C în modul întreprindere (butonul 1C: Enterprise în fereastra de lansare 1C). În meniul principal, accesați meniul fișier, faceți clic pe Deschidere:


Găsiți și deschideți fișierul raport salvat. În formularul care se deschide, faceți clic pe butonul Generare:


și obținem o listă de nomenclatură:


Aceasta este doar o modalitate de a crea rapoarte în 1C. În articolele următoare ne vom uita la altele.

Necesitatea personalizării rapoartelor externe poate apărea în cazurile de modificări prompte ale formularelor de raportare corespunzătoare. La urma urmei, organismele guvernamentale care aprobă formularele relevante nu țin întotdeauna cont de faptul că entitățile comerciale au nevoie de timp pentru a pregăti formularul de raportare. Autor - S.A. Kharitonov.

În configurațiile standard pentru 1C:Enterprise 8, produse de 1C, formularele de raportare reglementate sunt incluse în configurații și sunt lansate împreună cu versiunile de configurare. Cu toate acestea, atunci când este nevoie - de exemplu, o nouă ediție a formularului de raportare intră în vigoare - compania 1C eliberează astfel de formulare de raportare sub formă de rapoarte externe „1C: Enterprise 8” (fișiere cu extensia *.erf).

Utilizarea rapoartelor externe este o soluție temporară care ar trebui utilizată numai până când este lansată o versiune de configurare în care vor fi integrate modificările necesare. Prin urmare, sunt impuse anumite restricții privind utilizarea rapoartelor externe:

  • la eliberarea unui raport extern, se specifică cu ce versiune de configurare poate fi utilizată;
  • raportul extern nu este garantat să accepte versiunile anterioare de configurare;
  • când un utilizator lucrează cu o configurație, nu pot fi utilizate mai multe versiuni ale unui raport extern;
  • deschiderea unui formular de raport durează mai mult în comparație cu un raport implementat ca obiect de configurare;
  • încărcarea datelor raportului în formă electronică este mult mai lentă etc.

O listă a rapoartelor externe emise pentru o anumită versiune de configurare poate fi văzută pe pagina de configurare a site-ului de asistență pentru utilizatori 1C:Enterprise 8 la www.users.v8.1c.ru (în secțiunea Informații gratuite trebuie să faceți clic pe numărul de interes în coloana cu numere de versiune) sau în formular Actualizați informațiile(apelat prin buton Actualizați informațiile uniforma echipei de top ), dacă serviciul reglementat de alertă de raportare este activat în baza de informații.

În același formular, puteți face clic pe numele raportului extern pentru a-l descărca pe computer.

De regulă, rapoartele sunt distribuite sub forma unei arhive RAR. Pentru a lucra cu un raport extern, arhiva trebuie dezambalată.

Arhiva, împreună cu fișierul raport extern, conține un fișier text care descrie scopul raportului și modul de conectare al acestuia.

Dacă un raport extern este destinat să înlocuiască un raport reglementat care există deja în configurație, acesta poate fi conectat la baza de informații prin simpla deschidere a raportului în modul 1C:Enterprise (meniu Fișier - Deschide).

Când este deschis, vi se va pune o întrebare Înregistrați un raport extern reglementat în baza de informații? După răspuns da raportul extern va fi înregistrat în baza de informații și deschis imediat pentru a crea un nou raport.

Daca raspunzi Nu, raportul nu va fi înregistrat, dar va fi deschis și pentru a crea un nou raport. Se vor putea efectua toate acțiunile cu un astfel de raport - crearea, completarea, imprimarea - dar raportul creat nu poate fi salvat în baza de informații.

Dacă raportul extern este un nou tip de raport reglementat, raportul nu se va putea înregistra automat în infobază: acest mod trebuie activat manual. Instrucțiunile de conectare sunt disponibile și în fișierul text conținut în arhiva obținută de pe site-ul 1C.

Pentru a utiliza un raport extern, utilizatorul trebuie să indice că pentru acest raport reglementat nu va fi folosit un obiect de configurare internă, ci un raport extern.

Pentru a înregistra un raport extern ca un nou tip de rapoarte reglementate în director Rapoarte reglementate necesar (vezi fig. 1):

1) mergeți la grupul de directoare în care va fi localizat noul tip de raport;
2) creați un nou element de director făcând clic pe butonul Adăugaîn panoul de comandă de sus al formularului director;
3) sub forma unui element de director, completați numele care va fi emis în director Rapoarte reglementateși în lista tipurilor de rapoarte a formularului Raportare de reglementare și financiară. De asemenea, este recomandabil să completați o descriere a tipului de raport;
4) comutator Utilizare setați la fișier și specificați ce fișier ar trebui utilizat ca raport extern. După apăsarea butonului Bineîn dialogul de deschidere a fișierului, numele complet al acestui raport extern va fi indicat în câmpul fișier al formularului elementului de dicționar.

Orez. 1. Înregistrarea unui raport extern

După apăsarea butonului Scrie raportul extern este salvat în infobază, după care numele complet al fișierului extern este înlocuit cu text Raportul a fost încărcat pe IB.

Același lucru se întâmplă atunci când apăsați un buton Bine, în timp ce forma elementului director Rapoarte reglementate se inchide.

Pentru acele elemente de director pentru care sunt utilizate rapoarte externe, linia (externă) este adăugată sub forma listei de director după numele raportului.

După ce raportul extern este încărcat în baza de informații, fișierul raport extern în sine nu mai este necesar și poate fi șters.

Lucrul cu un raport reglementat care utilizează un raport extern nu este diferit de lucrul cu un obiect de configurare, cu excepția „răspunsului lent” la deschidere și la descărcarea datelor de raportare în formă electronică.

Ca semn al unui raport extern, o inscripție roșie cu informații este afișată în partea dreaptă a panoului de comandă de sus Raport extern.

Puteți reveni oricând la utilizarea obiectului de configurare „intern”. Pentru a face acest lucru, sub forma unui element de director pentru raportul reglementat necesar, trebuie să selectați comutatorul Utilizare a pozitiona un obiectși salvați elementul director.

Raportul extern în sine nu este șters din baza de informații, deci este posibilă și acțiunea inversă. Pentru a șterge un raport din baza de informații, trebuie să faceți următoarele:

1) în director Rapoarte reglementate găsiți un raport reglementat pentru care este conectat un raport extern - un astfel de raport va avea o linie (externă) adăugată după numele raportului;
2) deschideți elementul director pentru editare cu butonul Schimbați elementul curent;
3) în câmpul de selecție a raportului extern, faceți clic pe butonul X (clar). După apăsarea textului Raportul a fost încărcat pe IB este șters, acesta este un semn că raportul va fi șters din baza de informații;
4) închideți formularul de articole din director făcând clic pe butonul Bine.

Raportul este șters în timp ce se salvează elementul din director.

Dacă este necesar, raportul încărcat în baza de informații poate fi salvat într-un fișier de pe disc. Pentru a face acest lucru, sub forma unui element de director Rapoarte reglementate trebuie să faceți clic pe linkul cu textul Încărcați raportul extern în fișier. Se va deschide un dialog standard de salvare a fișierului. În mod implicit, numele fișierului este numele obiectului de configurare corespunzător.

Este important de reținut că într-o sesiune de utilizator cu o bază de informații nu puteți utiliza mai mult de o versiune a unui raport extern: de exemplu, dacă utilizatorul lucrează deja cu un raport reglementat, care este un raport extern, și l-a încărcat în directorul Rapoarte reglementate o altă versiune a acestui raport extern (de exemplu, cu completare automată adăugată), pentru a utiliza această versiune a raportului, are nevoie să-și încheie sesiunea în modul 1C:Enterprise și apoi să înceapă imediat o nouă sesiune.

În exemplul nostru, raportul arată producția de produse și servicii pe divizii, grupuri de produse și pe lună.

Iată pagina principală a raportului:

Această pagină este apelată din configurator în meniul Fișier – Nou – Raport extern.

Mai întâi adăugăm un set de date (DataSet1). În fereastra „Interogare”, îl puteți introduce singur, îl puteți crea folosind Generatorul de interogări sau îl puteți încărca dintr-un fișier. Cea mai convenabilă modalitate este să utilizați constructorul de interogări. Citiți cum funcționează constructorul.

Tot ce aveți nevoie este completat automat, dar unele lucruri trebuie modificate.

De exemplu, titlurile de coloană (caseta de selectare „Cantitate” din figura de mai sus vă permite să introduceți orice text de titlu pentru acest câmp), puteți seta formatul de ieșire a datelor (consultați Format în linia Cantitate). Formatul poate fi editat pentru orice tip de date – șiruri, date, numere.

În fila Resurse, selectați resursele în sine și configurați afișarea rezultatelor pentru acestea:

Fila Parametri conține tot ceea ce modifică conținutul raportului (de exemplu, perioada pentru care vor fi selectate datele). Completat automat pe baza parametrilor de solicitare (vezi prima pagina). Cu ajutorul casetelor de selectare puteți ajusta vizibilitatea și disponibilitatea acestor parametri, puteți seta valoarea inițială etc.:

Obțineți 267 de lecții video pe 1C gratuit:

Și în sfârșit, Setări. Aici este desenat aspectul raportului - coloane, rânduri, poziția acestora unul față de celălalt, grupări etc. Butonul „Open Settings Designer” vă va ajuta să aranjați liniile și coloanele în ordinea dorită. Butonul „Setări elemente personalizate” vă va permite să afișați parametrii în antetul raportului:

Fiți atenți la coloana Period.PartsDate.NameMonth. Cum să afișați numele lunii în antetul coloanei? Aici iese.

Apropo, această setare vă permite să afișați date pentru mai multe perioade simultan în coloanele de raport adiacente:

O altă filă importantă este Câmpurile selectate. Dacă este gol, raportul nu va fi generat. De obicei, completat automat făcând clic pe butonul „Deschide Setări Designer”:

De fapt, asta este tot ce ai nevoie de la minimul necesar. Ca urmare, vom avea un raport care arată astfel:

Să luăm în considerare crearea unui raport extern în 1C 8 fără a folosi un sistem de compunere a datelor. Pentru a crea un raport extern, vom folosi configurația Contabilitate 2.0, datele inițiale: „Scrieți un raport pe contul contabil 62 în care va fi afișată în context cifra de afaceri pentru perioada specificată. ContrapartideȘi Contractele contrapartidelor.

1. Creați un raport

În primul rând, să creăm un fișier de raport extern pentru a face acest lucru, să trecem la 1s 8 în modul Configurator, să mergem la meniu Fișier -> Nou, sau faceți clic pe pictogramă document nou.

Selectați elementul din listă Raport extern. După crearea raportului extern, dați-i un Nume (de exemplu Cel mai simplu raport) și salvați-l pe disc. Vom adauga si doua detalii: Începutul perioadeiȘi Sfârșitul perioadei tip Data, vom avea nevoie de ele pentru a limita intervalul de timp pentru eșantionarea datelor atunci când generăm un raport.

2. Creați un aspect de raport extern

Pentru a genera un raport în 1C 8, aveți nevoie de un aspect, acesta este un șablon pentru afișarea datelor în care sunt setați toți parametrii necesari, sunt desenate tabele etc. Să adăugăm un nou aspect pentru a face acest lucru, selectați elementul din arborele de metadate ale raportului Aspecteși apăsați butonul Adăuga, la creare, selectați tipul pentru aspect document foaie de calcul.

Aspectul nostru va avea 4 zone:

  • Antet - in aceasta zona vom afisa numele raportului, perioada pentru care a fost generat si antetul tabelului;
  • Date contrapartidei - in aceasta zona vom afisa datele contrapartidei intr-un tabel;
  • DateContract de contrapartidă - în această zonă vom afișa datele despre contractul de contraparte într-un tabel;
  • Subsol - în această zonă vom afișa valorile totale pentru întregul raport pentru câmpurile Venituri și Cheltuieli.

Să începem să creăm zone de aspect. Pentru a crea o zonă în aspect, selectați numărul necesar de linii și faceți clic Tabel de meniu -> Nume -> Atribuire nume(Sau Ctrl + Shift + N). Spre regiune Un capac Să scriem numele raportului: Cifra de afaceri 62 contează, desenați folosind instrumentul Frontiere antetul raportului și, de asemenea, setați parametrii Începutul perioadeiȘi Sfârșitul perioadei. Cu ajutorul parametrilor, puteți afișa datele necesare în raport, ne vom ocupa de acest lucru în următoarea etapă de dezvoltare, și anume la scrierea codului raportului. Pentru a crea un parametru în aspect, selectați celula dorită, scrieți numele parametrului în ea (fără spații), faceți clic dreapta pe el, selectați elementul din meniul care se deschide Proprietăți. În proprietățile celulei din filă Aspect selectați umplutura Parametru.

După aceasta, numele parametrului din celulă va fi cuprins între paranteze unghiulare ("<>„). Drept urmare, zona Un capac ar trebui sa arate asa:

În zonă DataCounterparty vom crea parametri pentru afișarea numelui contrapărții, precum și pentru venituri și cheltuieli pentru contul 62, folosind instrumentul Frontiere Să proiectăm zona ca un rând de masă.

În zonă Acord de contrapartidă de date Să creăm parametri pentru afișarea numelui contractului, precum și pentru venituri și cheltuieli pentru contul 62, folosind instrumentul Borders vom proiecta zona ca un rând de tabel. Să facem o mică liniuță înaintea parametrului Acord de contraparte(acest lucru se poate face prin împărțirea și îmbinarea celulelor. Faceți clic dreapta pe celulă -> Combina sau Celulă împărțită), este necesar pentru ca raportul să poată vedea că linia pentru contract este mai jos în ierarhie decât linia pentru contraparte.

În zonă subsol Să creăm parametri pentru totalurile veniturilor și cheltuielilor.

Ca rezultat, ar trebui să obținem un aspect ca acesta:

3. Creați un formular de raport

Pentru a afișa datele, setați perioada de formare și butonul Formă raportul nostru va necesita un formular. Pentru a crea un formular, găsiți elementul în arborele de metadate ale raportului extern Formeși apăsați butonul Adăuga. Pe prima pagină a designerului de formulare, nu trebuie să faceți nicio modificare, trebuie doar să faceți clic pe butonul Mai departe.

Pe pagina următoare a designerului, selectați ambele detalii disponibile( Începutul perioadei, Sfârșitul perioadei) pentru plasarea pe formular.

Ca rezultat, vom obține acest formular:

Dar nu suntem mulțumiți de el în această formă, să facem câteva modificări:

  • Să tragem butonul Formă din panoul de jos al raportului în sus (acest lucru va fi mai convenabil pentru utilizator);
  • Întindeți forma vertical și orizontal;
  • Să aranjam câmpurile Începutul perioadeiȘi Sfârșitul perioadei orizontal;
  • Să adăugăm un element de control al câmpului de document pentru foaie de calcul în formular (raportul nostru va fi afișat în el), dăm-i un nume TabDoc;
  • Să creăm un buton de selecție a perioadei (atunci când faceți clic, va apărea un dialog cu o alegere convenabilă a perioadei dorite). Nu vom scrie încă codul programului pentru acesta, așa că vom plasa butonul de lângă câmpurile perioadei.

Ca rezultat, formularul nostru va arăta astfel:

4. Programare

După crearea formularului de raport, să începem programarea. Mai întâi, să creăm o procedură pentru afișarea unui dialog de selecție a perioadei (am creat deja un buton pentru aceasta în etapa anterioară). Faceți clic dreapta pe buton și selectați elementul de meniu Proprietăți, în proprietățile butonului accesați fila Evenimente, unde folosind butonul cu o pictogramă lupă vom crea o procedură Buton1 Apăsațiîn modulul formular.

Puteți comuta între formular și modulul său folosind filele din partea de jos a formularului

Pentru a apela formularul de selecție a perioadei, vom folosi procedura standard Contabilitate 2.0 dintr-un modul comun Lucrul cu dialoguri - HandlerPeriodSettingPress, trebuie să îi transmiteți detaliile raportului ca parametri Începutul perioadeiȘi Sfârșitul perioadei.

Procedură Buton1Apăsați(Element) Lucrul cu Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Sfârșitul procedurii

Acum să trecem la scrierea codului care va genera și afișa raportul nostru. Modulul formular are deja o procedură ButtonGeneratePress, care se va executa la apăsarea butonului Formă, acolo vom scrie codul nostru. Să începem prin a inițializa variabilele necesare. În primul rând, să creăm o variabilă pentru câmpurile documentului din foaia de calculîn care vom scoate date, acest lucru nu este necesar, doar că înregistrarea apelurilor către acesta va deveni mai scurtă, ceea ce înseamnă că codul programului va fi mai ușor de înțeles pentru citire.

TabDoc = FormElements.TabDoc;

Să obținem aspectul raportului extern folosind funcția GetLayout(<ИмяМакета>) , vom trece numele layout-ului ca parametru, iar dacă un astfel de layout există, funcția îl va găsi.

Layout = GetLayout("Layout");

După ce este primit aspectul, să creăm variabile pentru fiecare dintre zonele sale, folosiți metoda de aspect pentru aceasta GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Header" ); AreaDataAccount = Layout.GetArea( „Datele contractantului”); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Footer" );

Să ștergem câmpul din foaia de calcul. Acest lucru este necesar pentru ca de fiecare dată când este generat un nou raport, datele vechi să fie șterse.

TabDoc.Clear();

Acum că inițializarea variabilelor este completă, să trecem la completarea și afișarea zonelor de aspect una câte una. Să începem cu antetul. Dacă vă amintiți, am creat doi parametri în acest domeniu Începutul perioadeiȘi Sfârșitul perioadei, vom trece acolo valorile perioadei de generare a raportului, pentru aceasta vom folosi proprietatea Opțiuni zonele de amenajare.

AreaHeader.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

Gata cu acțiunile cu zona Un capac Producătorul nu este necesar, așa că vom afișa câmpul său într-un document de foaie de calcul.

TabDoc.Output(AreaHead);

În continuare, vom scrie o interogare în baza de date, cu care vom prelua cifra de afaceri în cont 62 din registrul contabil Autoportant. Să definim o variabilă în care va fi localizată cererea noastră.

Solicitare = cerere nouă;

Înainte de a începe să scriem textul de solicitare, să îi transmitem parametrii necesari. Deoarece scriem o cerere de factură 62 contabilitate, apoi în primul rând vom crea un parametru pentru acesta

Request.SetParameter("Account62", Planuri de conturi. Auto-suportabil. Găsire după cod ("62" ));

De asemenea, este necesară trecerea perioadei de generare a raportului în cerere. Nu uitați că avem detalii speciale de raport pentru perioada de generare și le transmitem ca parametri.

Request.SetParameter("Începutul perioadei", Începutul perioadei); Request.SetParameter("Sfârșitul perioadei", Sfârșitul perioadei);

Să începem să scriem textul interogării, vom face acest lucru folosind designerul de interogări. Multe tutoriale spun că trebuie să poți scrie o interogare atât manual, cât și folosind un constructor, dar în practică nu este cazul. În sarcinile cu care se confruntă în mod constant un programator 1C, prioritatea este să scrie cod rapid și eficient, iar atunci când scrieți manual o interogare în baza de date, acest lucru este aproape imposibil de realizat, veți petrece mult timp prețios reproducând corect toate structurile de interogare; și găsirea greșelilor de scriere pe care le-ați făcut când ați scris etc. Prin urmare, nu vă pierdeți timpul încercând să scrieți interogări manual, ci folosiți constructorul de interogări. Vă va economisi timp și vă va permite să scrieți interogări complexe fără prea mult efort. Pentru a începe să scrieți textul solicitării, să scriem în cod:

Solicitare.Text = "" ;

După aceea, plasați cursorul între ghilimele, faceți clic dreapta și selectați Constructor cerere. Se va deschide fereastra de proiectare de interogări.

Acum trebuie să selectăm tabelul de bază de date 1C 8 de care avem nevoie Revoluții registrul contabil Autoportant. Să-l găsim în partea stângă a ferestrei de designer

Să-l mutăm în zonă Meseși să începem să completăm parametrii. Pentru toate tabelele de interogări virtuale există un set special de parametri care vă permit să selectați datele necesare din tabelul principal (în cazul nostru, tabelul principal Registrul contabil Autoportant). Să deschidem fereastra parametrilor tabelului virtual.

Să completăm parametrii pentru perioada pe care am trecut-o la cerere. Pentru a utiliza un parametru în textul cererii, trebuie să scrieți simbolul înaintea numelui său ampersand(&)

Tot ce rămâne este să completezi condiția pentru contul contabil. contabilitate. Pentru a face acest lucru, găsiți linia în parametrii tabelului virtual Condiția contului si o sa scriem acolo

Cont ÎN IERARHIE (&Contul62)

De asemenea, puteți utiliza constructorul de condiții făcând clic pe butonul cu trei puncte.

Nu este nevoie să impunem alte condiții pe masa virtuală, așa că haideți să facem clic pe butonul Bineîn fereastra parametrilor tabelului virtual. Apoi, trebuie să selectăm câmpurile de care avem nevoie din tabel Autoportant.Cifra de afaceri(și anume: Contraparte, Contract de contraparte, Venituri și Cheltuieli). Pentru a vizualiza lista de câmpuri disponibile în tabelul pe care l-am selectat, faceți clic pe simbolul „+” de lângă numele acestuia. După aceea, trageți câmpurile necesare în zona din dreapta a designerului de interogări, care se numește: Câmpuri. Dacă deschidem planul de conturi, vom vedea asta pentru cont 62 analitice pe Pentru contraparte, acesta este Subconto1, și prin Acord de contraparte - Subconto2.

Prin urmare, din câmpurile tabelului virtual selectăm Subconto1Și Subconto2. Deoarece avem nevoie de venituri și cheltuieli după sumă, selectăm și câmpurile SumaTurnoverDtȘi SumăCurnoverKt

Să completăm aliasurile câmpurilor pe care le-am selectat, pentru a face acest lucru, mergeți la fila Sindicate/Alias-uriși setați numele câmpurilor necesare.

Deoarece în raportul nostru datele vor fi afișate ierarhic (Contrapartea este la primul nivel, iar toate contractele sale sunt la al doilea), vom configura afișarea datelor în ierarhie folosind Totaluri. Să mergem la fila din designer Rezultate. Trageți secvențial în câmpurile de grupare ContrapartidăȘi Acord de contraparte, iar în finală VenireȘi Consum.

Acest lucru finalizează munca în constructorul de interogări, faceți clic pe butonul Bineși vedem că textul solicitării noastre apare în codul programului.

Query.Text = „SELECT | Cifra de afaceri auto-suportabilă.Subconto1 AS contraparte, | Auto-susținere Cifra de afaceri.Subconto2 AS Acord de contraparte, | Cifra de afaceri autoportabilă. | Cifra de afaceri autoportabilă.Suma Cifra de afaceriKt AS Cheltuială|DIN | Registrul contabil Auto-contabil Cifra de afaceri (&Începutul perioadei, &Sfârșitul perioadei, Cont ÎN IERARHIE (&Contul 62),) AS Auto-contabil.|REZULTATE | AMOUNT(Venit), | SUMA(Cheltuieli) |PO | contrapartidă, | Acord de contrapartidă”;

După ce am terminat de scris cererea, să începem să completăm zonele DataCounterparty, DataAgreementContraparteȘi subsol. Vom completa toate aceste zone cu datele primite la executarea cererii. Deoarece interogarea noastră conține grupări( ContrapartidăȘi Acord de contraparte) selectați datele din acesta după cum urmează:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

În acest fel vom primi înregistrări cu totaluri pentru toate contrapărțile.

Înainte de a parcurge datele eșantionului folosind o buclă, inițializam variabilele destinate calculării rezultatelor generale pentru raport:

TotalIncoming = 0; TotalConsumption = 0;

Pentru ca datele raportului să fie afișate cu o ierarhie (și rotații de-a lungul „+“), să setăm începutul grupării automate a rândurilor documentului foaie de calcul:

TabDoc.StartAutoGroupingRows();

Toate pregătirile sunt finalizate, acum să începem să accesăm cu crawlere rezultatele interogării. Vom efectua traversarea folosind o buclă Pa

În timp ce Selectați cont. Următorul() Ciclu EndCycle ;

La începutul ciclului, resetați parametrii VenireȘi Consum regiune DataCounterparty. Pentru ce este? Să ne imaginăm o situație în care contrapartea unchiul Vasia, venitul este 10, iar cheltuielile este 5, iar pentru următoarea contraparte unchiul Petya nu există nici venituri, nici cheltuieli, în acest caz, dacă nu resetăm parametrii VenireȘi Consum, apoi în linie de contraparte unchiul Petya va fi un venit de 5 și o cheltuială de 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

După aceea umplem zona DataCounterparty date despre elementele eșantionului

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

După completarea datelor, puteți afișa zona document foaie de calcul, Deoarece folosim gruparea automată a rândurilor, trebuie să indicăm nivelul rândului din grupare (raportul nostru va avea două niveluri, pentru contrapartide primul pentru contracte).

TabDoc.Output(AreaDataAccount,1);

Acum pentru această contraparte vom face o selecție conform contractelor sale.

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Vom efectua traversarea folosind o buclă Pa.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

În ciclul acordurilor cu contraparte, să resetam parametrii VenireȘi Consum, umpleți zona DataContract din eșantion și afișați-l într-un document foaie de calcul la al doilea nivel de înregistrări.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; CompletațiPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Tot în acest ciclu, vom adăuga valorile curente la variabilele pentru calcularea valorilor totale pentru venituri și cheltuieli.

TotalReceipt = TotalReceipt + SelectionCounterparty Agreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense;

Acest lucru încheie producția de date în zonă DataCounterparty, DataAgreementContraparte finalizat, nu mai rămâne decât să finalizați gruparea automată a rândurilor documentului foaie de calcul.

TabDoc.FinishAutoGroupingRows();

Cicluri complete responsabile pentru transmiterea datelor în zonă DataCounterpartyȘi DataAgreementContraparte arata asa:

TabDoc.StartAutoGroupingRows(); While SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0 ; AreaDataAccount.Parameters.Expense = 0 ; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ; CompletațiPropertyValues(AreaContractData.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2); TotalReceipt = TotalReceipt + SelectionCounterparty Agreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense; EndCycle ; EndCycle ; TabDoc.FinishAutoGroupingRows();

Rămâne de afișat datele finale din zonă subsolși afișați zona în sine document foaie de calcul.

AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = TotalConsumption; TabDoc.Output(AreaFooter);

Aceasta completează procesul de scriere a unui raport extern pentru 1C 8 fără a utiliza un sistem de control al accesului. Acum poate fi generat în modul 1C:Enterprise 8 și adăugat în director Procesare externă Puteți descărca fișierul raportului discutat în articol din .

Urmăriți un videoclip despre crearea unui imprimabil extern pentru o aplicație gestionată:

Rapoartele 1C 8.3 sunt un obiect special de metadate conceput pentru a crea o prezentare prietenoasă a datelor din tabelele bazei de date 1C.

Să ne dăm seama cum să configurați rapoartele, pentru ce sunt necesare, cum diferă rapoartele externe de cele încorporate și cum diferă rapoartele de procesare.

Pentru a crea sau a personaliza un raport, trebuie să cunoașteți funcțiile încorporate și . Orice s-ar putea spune, baza pentru crearea aproape a oricărui raport este interogarea inițială care primește datele. Prelucrăm aceste date și le afișăm într-o formă ușor de utilizat.

Rapoartele sunt principalul lucru în orice sistem informațional, așa că 1C a acordat o atenție deosebită dezvoltării rapoartelor și a creat un număr mare de designeri și mecanisme pentru crearea acestora.

Să ne uităm la metodele de bază pentru crearea rapoartelor

Cum să faci un raport în 1C folosind un aspect

Crearea folosind un aspect este cea mai rutină modalitate. Cu toate acestea, ei recurg adesea la el din disperare, pentru că... în această metodă, dezvoltatorul scrie complet fiecare acțiune în cod, ceea ce înseamnă că putem face orice. Alte mecanisme nu se pot lăuda cu asta.

Dar, în acest caz, toate elementele, meniurile și alte „arcuri” vor trebui introduse manual, ceea ce necesită foarte multă muncă.

Obțineți 267 de lecții video pe 1C gratuit:

Crearea unui raport folosind designerul de formulare de ieșire

Designerul de formulare de ieșire este un mecanism încorporat în platformă care facilitează elaborarea rapoartelor. Designerul este disponibil numai pentru formularele obișnuite.

Proiectantului i se oferă solicitarea și toți parametrii necesari pentru viitorul raport, iar acesta, la rândul său, generează module și formulare de raport. Mecanismul se bazează pe un obiect al limbajului încorporat 1C 8.2 - Generator de rapoarte.

Crearea unui raport folosind Raportul generic

Raportul universal are o funcționalitate excelentă, o interfață convenabilă de setări care este familiară utilizatorului:

Rapoarte bazate pe sistemul de compunere a datelor

Aceasta este metoda cea mai progresivă de a crea rapoarte în 1C, recomandată chiar de 1C. a apărut pe platforma 1C în versiunea 8.1.

SKD vă permite să creați rapoarte simple fără o linie de programare deloc, deoarece are un constructor foarte flexibil și funcțional pentru crearea unei scheme de compunere a datelor:

În toate configurațiile recente, toate rapoartele sunt scrise folosind un sistem de compunere a datelor.

Care este diferența dintre rapoartele externe și cele încorporate?

După cum este scris în documentație - nimic. Mecanismul de raportare extern a fost creat pentru a depana rapoartele în timpul dezvoltării.

Singura diferență atunci când dezvoltați o soluție este că nu puteți accesa un raport extern „pe nume”, spre deosebire de un raport încorporat.

Cum diferă un raport de procesare?

De fapt, practic nimic. Principala diferență este scopul utilizării obiectului: rapoartele sunt necesare pentru a afișa informații, iar rapoartele sunt necesare pentru a schimba informații.

Principalele diferențe de proprietăți: în rapoarte, puteți specifica Schema principală de compoziție a datelor (DCS) și puteți specifica setări pentru salvarea parametrilor raportului.