Publicaţii. Publicații Formulare imprimabile în 1c

Fiecare document electronic 1C poate fi imprimat pe hârtie și acest lucru se face folosind formulare de tipărire 1C. Formulare imprimabile constau din blocuri numite, cum ar fi Antet, Rând și Subsol.

Cum să faci un formular tipărit este deja clar. Cum să-l spargi în blocuri - de asemenea. Dar cum se întâmplă tipărirea tuturor acestor lucruri în 1C? Și mai ales - cum să afișați nu doar textul aspectului, ci și conținutul documentului electronic?

Acesta este ceea ce ne vom uita chiar acum.

Pregătirea unui aspect pentru imprimare în 1C

Pentru început, va trebui să începeți cu cel mai simplu lucru și să completați aspectul pentru imprimare în 1C cu text static și linii de tabel. La urma urmei, cineva trebuie să facă treaba asta plictisitoare?

Am plasat text static pentru imprimare în 1C

Un bun loc pentru a începe ar fi să plasați numele imprimabilului nostru. Selectați mai multe celule la rând și selectați elementul de meniu Tabel/Îmbinare. Ca rezultat, mai multe celule vor fi îmbinate într-una singură.

Acum în această celulă vom scrie numele documentului. Deoarece acesta este un titlu, probabil că vrem să îl facem îndrăzneț cu litere mari(vezi poza) si aseaza-l in mijloc.

Plasam designul layout-ului pentru printare in 1C

Avem o zonă numită șir. În el, atunci când este tipărit în 1C, va fi afișat fiecare rând din tabelul documentului Produse. Probabil ne-am dori ca tabelul să arate ca un tabel atunci când este imprimat în 1C? Atunci trebuie să trasezi limite pentru el.

Pentru a face acest lucru, selectați celulele rând și selectați butonul Borduri de pe panou. Am ales opțiunea Border Everywhere – desenează marginile celulelor din toate părțile simultan. Dacă trebuie să vă limitați la o singură parte, atunci trebuie să selectați butonul corespunzător.

Pentru a vă asigura că liniile folosite pentru a desena marginile nu sunt aceleași cu cele standard, selectați celulele și faceți clic dreapta. În meniul care apare, selectați Proprietăți.

În fereastra obișnuită de proprietăți, puteți selecta tipul și culoarea liniilor pentru trasarea limitelor.

Punem poze si alte betelii pentru imprimare in 1C

Mulți oameni întreabă - cum să plasați altceva decât text pe un formular tipărit 1C? De exemplu, o poză.

Și este foarte simplu. Mai mult, voi spune imediat că codul de bare (dacă trebuie să-l imprimați) este și o poză.

Să plasăm cursorul pe orice celulă. Selectați meniul Tabel/Figuri. Acesta este un întreg submeniu care vă permite să introduceți într-un aspect pentru imprimarea în 1C nu numai o imagine sau un obiect desenat, ci și obiecte din afara 1C, înregistrate pe computer folosind o clasă COM (de exemplu, o listă derulantă controla).

Pentru cei care sunt interesați să creeze modele complexe pentru imprimarea în 1C pe un aspect, aruncați o privire și în meniul drop-down Table/Print Settings. Aici puteți seta zona de repetare pe fiecare pagină, antet și subsol și zona de imprimare.

Cum să plasați conținutul unui document electronic atunci când imprimați în 1C

Pentru a plasa conținutul unui document electronic pe un aspect la tipărirea în 1C, se folosește metoda substituției. Este format din două părți.

Prima parte. Este necesar să plasați parametri pe aspectul în care veți înlocui valorile atunci când imprimați în 1C.

Să plasăm cursorul în celulă. Să introducem numele parametrului (într-un cuvânt, fără spații sau alte gunoaie). Apoi, să intrăm în proprietățile acestei celule (așa cum sa menționat mai sus) și să selectăm Umplere = Parametru.

Partea a doua. Înlocuirea valorilor se efectuează nu atunci când programați în configurator, ci în momentul tipăririi documentului în 1C. În consecință, folosind programare, trebuie să indicați lui 1C ceea ce trebuie înlocuit în acest parametru.

Acest lucru se face după cum urmează:

Layout = GetLayout("LayoutName");
regionSomething = Layout.GetArea("AreaName");
regionSomething.Parameters.ParameterName = "Ce vreau să înlocuiesc din baza de date";

După cum puteți vedea, obținem pur și simplu aspectul în sine după nume, apoi una dintre zonele sale și apoi pur și simplu accesăm parametrul după numele său.

Desigur, valoarea poate fi fie un șir, fie un număr, fie valoarea specificată în document.

Cum să imprimați un aspect în 1C

După ce aspectul este gata, este timpul să vă gândiți la programarea procesului de imprimare în 1C.

Imprimarea în 1C este de obicei programată prin mai multe proceduri care se află în modulul obiect document. .

Procedura Print() este de obicei marcată Export și controlează tipărirea unui document în 1C folosind parametrul LayoutName, care transmite ceea ce doriți să imprimați.

Pentru fiecare opțiune de aspect, este efectuată procedura PrintLayoutName(), care specifică tipărirea unui anumit aspect. La asta ne vom uita acum.

Programarea imprimării în 1C constă din trei puncte.

Înainte de a imprima un document electronic în 1C, trebuie să solicităm datele acestuia din baza de date. Evident, pentru a tipări un document, de obicei, utilizatorul îl „introduce” (își deschide formularul) și dă clic pe butonul Imprimă. Prin urmare, în procedura de tipărire, se poate face pur și simplu referire la detaliile documentului (ce este acesta - discutat aici) după nume.

Cu toate acestea, acest lucru este considerat urât, nu universal etc. De exemplu, procesarea bruscă a tipăririi în masă a documentelor va fi utilizată (cât de des este aceasta utilizată?). Prin urmare, este obișnuit în procedura de imprimare să se facă o interogare la baza de date care solicită date de document. De exemplu, așa:

Solicitare = Solicitare nouă;
Query.Text = „SELECT
Data,
Număr,
Organizare
DIN
Document.DocumentName
UNDE
Link = &DocumentForPrint";
Request.SetParameter("DocumentForPrint", Link);
Selectare = Query.Run().Select();
Selection.Next();

Punctul 2. Completarea aspectului pentru imprimare în 1C

Imprimarea în 1C se face într-un document foaie de calcul. Acesta este un obiect special 1C care vă permite să afișați tabele, cum ar fi Excel, pe ecran și în tipărire. Desigur, aspectul este imprimat, sau mai bine zis zonele sale una câte una.

În consecință, mai întâi trebuie să obținem un document de foaie de calcul, apoi un aspect. Imprimăm zonele unul câte unul, completând parametrii de aspect.

TabDoc = New TabularDocument;
Layout = GetLayout("LayoutName"); //sau GetGeneralLayout("")

areaHeader = Layout.GetArea("Header");
TabDoc.Output(regionCap);

regionRow = Layout.GetArea("Row");
În timp ce se selecteazăDocumentLines.Next() Loop
regionLine.Parameters.Product = SelectionDocumentLines.Product;
TabDoc.Output(regionString);
EndCycle;

areaCap = Layout.GetArea("Footer");
TabDoc.Output(regionFootroom);

Punctul 2. Tipărirea unui document în 1C

Ultimul punct este să scoateți documentul primit pe ecran sau pe imprimantă. În configurațiile tipice, se folosește o procedură standard pentru aceasta (fiecare poate avea propria sa), de exemplu, Universal Mechanisms.PrintDocument().

În alte cazuri, puteți utiliza pur și simplu funcțiile standard ale obiectului TabularDocument: TabDoc.Show() sau TabDoc.Print() .

Formularele tipărite externe pentru o aplicație obișnuită (pentru configurația Enterprise Accounting 2.0, Salary and Human Resources Management 2.5, Trade Management 10.3 etc.) sunt create destul de simplu în comparație cu formularele externe tipărite pentru o aplicație gestionată.

De ce să creați formulare de tipărire externe?

Avantajul unui formular tipărit extern față de unul convențional este că vă permite să evitați modificarea configurației bazei de informații. Aceasta înseamnă că procesul de actualizări ulterioare de configurare nu va fi complicat. În plus, formularele tipărite externe, împreună cu procesarea externă, sunt singura opțiune pentru extinderea funcționalității versiunilor de bază ale configurațiilor 1C, care nu pot fi modificate deloc.

Și un ultim lucru: formularele imprimate externe sunt mai ușor de replicat, deoarece sunt un fișier separat care poate fi conectat rapid la baza de informații.

Cum se creează un formular de imprimare extern

Să ne uităm la procesul de creare a unui formular tipărit 1C extern pas cu pas:

  1. Creăm procesare externă. Pentru a face acest lucru, selectați elementul de meniu din configurator Fișier - Nou...Și în caseta de dialog care se deschide - Prelucrare externă.
  2. Creați un atribut de procesare extern cu numele Referință la obiect. Tipul de atribut este o legătură către un director sau un document pentru care se creează un formular tipărit extern. Aceeași formă poate fi folosită pentru mai multe tipuri de obiecte, în acest caz tipul de date atribut Referință la obiect trebuie să fie compozit.
  3. În modulul obiect creăm o funcție de export cu numele Sigiliu, care ar trebui să returneze o foaie de calcul tipărită gata făcută.

Se întâmplă adesea că trebuie să ajustați ușor aspectul unui formular tipărit existent și să îl faceți extern. De exemplu, adăugați sigiliul organizației și semnătura managerului la aspect.

Crearea unui formular de printare extern bazat pe unul standard cu modificări minore

Să luăm în considerare această procedură folosind exemplul creării unei forme imprimate externe a unui document de transfer universal pentru un document Vânzări de bunuri și servicii 1C: Contabilitate. Acesta va diferi de formularul tipărit standard prin prezența sigiliului organizației.

  1. Crearea prelucrărilor externe cu recuzită Referință obiect, tip de date - DocumentLink Vânzări de bunuri și servicii.
  2. Găsim aspectul formularului tipărit UPD standard (se află în machetele generale) și îl copiem (trageți) în fereastra de procesare externă. Aspectele altor formulare tipărite pot fi găsite în documentele sau cărțile de referință în sine.
  3. Facem modificările necesare la aspectul copiat al formularului tipărit.
  4. Găsim funcția responsabilă de generarea formularului tipărit. Această funcție ar trebui să returneze documentul generat de foaia de calcul. Copiați conținutul acestuia în funcția de export Sigiliu()în modulul obiect de procesare extern.
    În cazul nostru, aceasta este funcția PrintUniversalTransferDocument() Export din modulul obiect document Vânzări de bunuri și servicii.
    Dacă modificările aspectului au fost semnificative (suprafețele și/sau parametrii modificați), atunci trebuie făcute ajustări corespunzătoare la funcția de imprimare.
  5. Încercăm să salvăm procesarea externă. Cu toate acestea, veți primi probabil mesaje de eroare care indică faptul că unele dintre procedurile și funcțiile apelate de funcția de imprimare lipsesc. Aceste funcții și proceduri trebuie găsite în documentul sursă și, de asemenea, copiate în modulul obiect de procesare extern. Sau ajustați legătura dacă funcția sau procedura originală este exportată.
  6. (opțional). Pentru a testa o formă de imprimare externă, este convenabil să faceți un formular pe care să plasați recuzita Referință la obiect. Buton Executa trebuie să apeleze la o procedură Sigiliu() din modulul obiect. Pentru a face acest lucru, evenimentului de clic pe butonul i se oferă o procedură:

Se realizează în conformitate cu aspectul standard al formularului tipărit integrat în aplicație de către dezvoltatori (acesta se numește aspectul „livrat”).

Dacă este necesar, puteți modifica aspectul standard și, în viitor, puteți tipări un document pe baza aspectului dvs. personal („personalizat”). Pentru a edita aspectul formularului tipărit, este prevăzut un mecanism de încărcare pe un computer local. Editarea aspectului se realizează în versiunea locală a aplicației de sistem 1C:Enterprise (în special, puteți utiliza aplicația gratuită 1C:Enterprise - Working with Files).


Pentru a schimba aspectul imprimabil:




Editarea aspectului formularului tipărit este finalizată la tipărirea documentului, se va folosi aspectul la care s-au efectuat modificările.

Dacă doriți să reveniți la aspectul imprimabil anterior, faceți clic pe butonul Utilizați aspectul standard. În acest caz, aspectul editat va fi în continuare prezent pe server și poate fi pornit din nou apăsând butonul Schimba.

Vă dorim muncă plăcută!

Cum se inserează un logo al companiei într-un aspect de formular tipărit?

Să dăm exemplu concret editarea unui aspect de formular tipărit Facturi pentru plata, și anume, vom lua în considerare modul de inserare a unei imagini în ea, de exemplu, un logo al companiei (această imagine trebuie mai întâi pregătită și salvată ca fișier grafic, de exemplu, în format png sau jpg).


Astfel, acum facturile pe care le pregătiți pentru transferul către contrapărțile dumneavoastră vor conține sigla companiei dumneavoastră. Pentru a adăuga un logo la alte documente, va trebui să repetați pașii descriși pentru formularele tipărite corespunzătoare ale acestor documente.

Vă dorim muncă plăcută!

Acest articol vă va spune în detaliu cum un începător cu puține cunoștințe despre 1C 8 poate crea un formular tipărit. De exemplu, să luăm una dintre cele mai comune configurații 1C 8 - Contabilitate 2.0. Crearea unui formular tipărit 1C etape de scriere:

  • Crearea unui formular de tipărire extern;
  • Crearea unui aspect de formular tipărit;
  • Scrierea codului de program pentru a afișa pe ecran datele de formular tipărite;
  • Crearea parametrilor pentru înregistrarea automată a unui formular tipărit;
  • Conectarea unui formular de imprimare extern la bază 1C Întreprinderi.

Crearea unui formular tipărit 1C. Enunțarea problemei

Suntem solicitați în configurație Contabilitate 2.0 creați un formular tipărit pentru un document Recepția de bunuri și servicii. În antetul formularului tipărit, afișați următoarele date:

  • Organizare;
  • contraparte;
  • Acord de contrapartidă;
  • Data primirii.

Afișați datele din secțiunea tabelară ca tabel Bunuri document. Tabelul ar trebui să includă următoarele coloane:

  • Nomenclatură;
  • Cantitate;
  • Preţ;
  • Sumă;
  • Și, de asemenea, prețul articolului pentru data curentă (după tipul de preț din document).

Fișier de procesare extern

Să trecem la rezolvarea problemei. Mai întâi, să deschidem 1C 8 în modul Configurator. În acest mod sunt efectuate toate dezvoltările pe platforma 1C 8. Acum trebuie să creăm un fișier de procesare extern. Pentru a face acest lucru, faceți clic pe meniu Fișier -> Nou... sau prin pictograma unui fișier nou.

În fereastra care se deschide, selectați elementul Prelucrare externă.

Următorul pe teren Nume Trebuie să introduceți numele procesării externe. În cazul nostru, îl vom numi pur și simplu „PrintForm”; câmpul sinonim va fi completat automat. Vă rugăm să rețineți că în câmp Nume, prelucrare externă, numele trebuie scris fără spații sau semne de punctuație.

Să adăugăm atribute de procesare externe LinkToObject și selectați tip pentru el DocumentLink Primirea Bunurilor și Serviciilor. Pentru a face acest lucru, în arborele metadatelor de procesare externă 1C, selectați elementul Detaliiși apăsați butonul Adăuga(buton cu plus verde). Fereastra cu proprietățile atributelor se va deschide în partea dreaptă a ecranului, în câmp Nume hai sa scriem - ReferenceToObject. ÎN domeniu Tip apăsați butonul cu trei puncte.

Să extindem ramura în arborele de tip DocumentLink, și găsiți acolo elementul Recepție de bunuri și servicii, bifați caseta de lângă acesta și faceți clic BINE.

Să salvăm fișierul de procesare externă pe hard disk pentru a face acest lucru, folosiți meniul Fișier -> Salvare, pictograma Salva(dischetă albastră) sau o comandă rapidă de la tastatură Ctrl+S. Să denumim fișierul salvat „PrintForm”.

Crearea unui aspect de formular tipărit

Să începem să creăm un aspect al formularului de printare 1C. Aspectul servește ca șablon pentru ieșirea formularului tipărit, așa că dacă doriți ca formularul tipărit să arate bine, ar trebui să-i acordați atenție.

Să adăugăm un nou aspect în arborele metadatelor de procesare externă, nu vom schimba nimic în fereastra de proiectare a aspectului și facem clic pe butonul Gata.

În noul layout care se deschide, vom crea mai multe zone necesare pentru afișarea formularului tipărit. Toate zonele de aspect de care avem nevoie vor fi orizontale, așa că pentru a crea o zonă nouă trebuie să o selectăm cantitatea necesară linii de aspect și accesați meniu Tabel -> Nume -> Atribuire nume sau utilizați comanda rapidă de la tastatură Ctrl + Shift + N, apoi introduceți numele regiunii în casetă. Când creați o zonă de aspect, nu vă fie teamă să faceți o greșeală cu numărul de linii pe care le puteți adăuga sau elimina oricând. Pentru a șterge o linie de aspect 1C, selectați linia dorită și selectați elementul din meniul contextual Şterge. Pentru a adăuga o nouă linie la aspect, selectați orice linie a aspectului și selectați elementul din meniul contextual Extinde.

Adăugarea unui antet de aspect

În primul rând, să creăm o zonă Capac, va afișa datele pentru antetul formularului de tipărire. Pentru această zonă vom avea nevoie de șapte linii de aspect. Să le selectăm și, așa cum am scris mai sus, să apăsăm combinația de taste Ctrl + Shift + N, în câmp Nume scrieți „Pălărie” și apăsați butonul Bine.

Să umplem zona de aspect cu datele de care avem nevoie. De obicei, niciun formular tipărit nu este complet fără un titlu, așa că haideți să creăm unul și în antetul nostru de aspect. Întrucât în ​​titlu, pe lângă numele formularului tipărit, vom afișa și numărul documentului din care a fost tipărit, vom seta ca parametru textul titlului din layout. Un parametru de aspect este o celulă de aspect special desemnată în care pot fi scoase diverse date folosind limbajul 1C 8 încorporat. Titlul ar trebui să fie afișat pe toată lățimea formularului tipărit, așa că haideți să decidem câte celule de aspect vor fi suficiente pentru a imprima pe o orientare standard peisaj a foii.

De obicei sunt suficiente treisprezece sau paisprezece celule de aspect, selectați-le în primul rând al zonei Capacși se combină într-o singură celulă ( Meniu contextual -> Îmbinare). După aceasta, faceți dublu clic pe celula mare rezultată și scrieți numele parametrului, în cazul nostru „TitleText”. Pentru ca textul introdus să devină un parametru cu drepturi depline, faceți clic dreapta pe celulă și selectați elementul din meniul contextual Proprietăți. Pe marcaj Aspect haideti sa gasim terenul Umplereși selectați valoarea Parametru. Parametrii din aspectul 1C sunt indicați prin paranteze „<>».

Titlul formularului tipărit ar trebui să iasă în evidență printre celelalte text, așa că selectați din nou celula și utilizați pictogramele de pe panoul de formatare a aspectului pentru a seta alinierea textului Centratși dimensiunea fontului 14.

După textul titlului îl vom afișa în zonă Capac informații despre organizație, contraparte, contractul de contrapartidă și data primirii mărfurilor. Întrucât toate aceste date sunt preluate și din document, le vom oficializa și cu parametri. În plus, înaintea fiecărui parametru ar trebui să scrieți un text explicativ, astfel încât utilizatorul să poată înțelege cu ușurință unde se află organizația, unde este contrapartea etc. Toate aceste acțiuni sunt similare cu crearea unui titlu, așa că nu mă voi opri asupra lor în detaliu, voi oferi doar o imagine a ceea ce ar trebui să se întâmple în final.

Figura arată cum diferă parametrii de aspect față de textul obișnuit.

Adăugarea unui antet de tabel de aspect

Ultimul lucru pe care trebuie să-l creăm în această zonă de aspect este antetul tabelului, în care vor fi afișate datele părții tabelare Bunuri. Coloanele necesare pentru tabel au fost descrise în secțiunea „Declarație de problemă”. De asemenea, vom crea un antet de tabel folosind o combinație de celule și text de scriere (numele coloanelor). Selectați marginile antetului tabelului folosind instrumentul Cadru, care se află în panoul de formatare a aspectului.

Adăugarea unui tabel la un aspect

Să creăm o altă zonă în aspect - Date. Tabelul de date al părții tabelare va fi afișat în acesta Bunuri. Pentru această zonă, avem nevoie de o singură linie de aspect. Pentru a afișa toate rândurile părții tabulare într-o formă tipărită, vom completa și afișa această zonă de numărul necesar de ori. Coloane din zonă Date ar trebui să coincidă cu coloanele din antetul tabelului, deci completarea acestuia nu va fi dificilă. Singura diferenta este in zona Date avem nevoie de parametri, nu doar de text. De asemenea, rețineți că, implicit, parametrii numerici sunt formatați la dreapta, iar parametrii de text sunt formatați la stânga. Pentru a selecta coloanele, trebuie să utilizați și instrumentul Cadru.

Adăugarea unui subsol la un aspect

Ultima zonă de aspect de care avem nevoie este Subsol. Va afișa totalurile după cantitate și cantitate. Crearea este similară cu crearea unei zone Date, dar în plus rezultatele ar trebui evidențiate cu caractere aldine.

Rezultatul final ar trebui să fie un aspect care arată astfel:

Crearea unui formular tipărit 1C. Programare

Să începem programarea - aceasta este cea mai importantă etapă în crearea unui formular tipărit. În primul rând, să mergem la modulul obiect formular de tipărire externă, aici vom programa. Pentru a face acest lucru, în fereastra principală de procesare externă, faceți clic pe Acțiuni -> Deschide modul obiect.

Trebuie să creați o funcție de export în modulul obiect formular de tipărire extern Sigiliu().

Funcție Print() Export EndFunction

Rețineți că această funcție este obligatoriu pentru formularele de tipărire externe în configurațiile care utilizează aplicare normală. Tot codul de program ulterior necesar pentru afișarea formularului tipărit va fi scris în această funcție.

Inițializarea variabilelor de bază

Să creăm o variabilă TabDoc, care va conține un document de foaie de calcul - acesta este exact forma tipărită în care vom afișa zonele umplute ale aspectului.

TabDoc = nou TabularDocument;

La o variabilă Aspect Vom obține aspectul de formular tipărit pe care l-am creat. Pentru a face acest lucru, folosim funcția încorporată GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

Vom converti toate zonele layout-ului în variabile. Pentru a face acest lucru, folosim metoda layout-ului GetArea(<ИмяОбласти>) .

HeaderArea = Layout.GetArea("Header"); AreaData = Layout.GetArea("Date"); AreaFooter = Layout.GetArea("Footer");

Ieșirea antetului unui formular tipărit într-un document de foaie de calcul

Toate variabilele necesare sunt inițializate. Să începem să completăm și să afișăm zonele de aspect într-un document de foaie de calcul. Mai întâi de toate, să completăm titlul formularului imprimabil pentru aceasta trebuie să trecem parametrul Textul titlului, pe care l-am creat în layout, textul de care avem nevoie. Pentru a completa valorile parametrilor pentru zona de aspect, există o colecție specială numită - Opțiuni. Din care prin „.” poți obține orice parametru. În textul antetului vom transfera textul: „Formular tipărit”, precum și numărul documentului.

Header Area.Parameters.HeaderText = "Imprimare formular"+ObjectLink.Number;

Vom completa parametrii rămași ai antetului în mod similar, vom obține toate valorile necesare pentru aceștia din detalii Referință la obiect, care conține un link către documentul care se imprimă.

HeaderArea.Parameters.Organization = LinkToObject.Organization; HeaderArea.Parameters.Account = LinkToObject.Account; HeaderArea.Parameters.ReceiptDate = LinkToObject.Date; Antet Area.Parameters.Counterparty Agreement = LinkToObject.Counterparty Agreement;

Toți parametrii antetului sunt completați, îl vom afișa în foaia de calcul creată de noi, pentru aceasta folosim metoda Ieșire(<Область>) .

TabDoc.Output(HeaderArea);

Scrierea unei cereri pentru un handicap tipărit

Să începem să umplem și să desenăm zona Date. Crearea unui formular tipărit 1C implică și scrierea unei interogări, avem nevoie de el pentru a obține date tabelare Bunuri si preturi Nomenclaturi pentru data curentă vom folosi Cerere. Limbajul de interogare 1C 8 este similar cu SQL, sau mai degrabă copiază practic capacitățile operatorului său SELECT, dar întreaga interogare este scrisă în rusă. Prin urmare, dacă sunteți cel puțin vag familiarizat cu SQL, atunci veți înțelege cu ușurință limbajul de interogare 1C 8.

În această formă tipărită, cererea va fi destul de simplă și mulți vor spune că ar fi posibil să se facă fără ea, dar cunoașterea limbajului de interogare și capacitatea de a-l folosi cu competență este una dintre principalele abilități ale unui programator 1C. Interogările vă permit să obțineți mostre de date complexe folosind mai puține resurse, iar textul interogării este mult mai ușor de înțeles decât codul programului scris fără a utiliza o interogare (sau cu o utilizare minimă a acesteia). În plus, 1C 8 are un designer de interogări foarte bun care vă permite să asamblați interactiv o interogare din tabelele necesare.

Să creăm o variabilă care va conține cererea.

Solicitare = Solicitare nouă;

Vom compune textul cererii folosind constructorul de solicitare. Pentru început, să scriem:

Solicitare.Text = "";

Plasați cursorul mouse-ului între ghilimele și apăsați butonul dreapta al mouse-ului. În meniul contextual care se deschide, selectați elementul Constructor de solicitări, ne va ajuta foarte mult în crearea unui formular de printare 1C. După aceasta, se va deschide fereastra de proiectare de interogări, care conține multe file, dar pentru interogarea noastră vom avea nevoie doar de patru: „Tabele și câmpuri”, „Relații”, „Condiții”, „Asocieri / Aliasuri”.

Pentru interogarea noastră vom avea nevoie de două tabele: partea de tabel Bunuri document Recepția de bunuri și serviciiși un instantaneu al celor mai recente informații cu privire la data curentă a registrului Preturile articolelor.

În partea stângă a ferestrei de designer găsim coloana Baza de date. Conține un arbore cu toate obiectele metadate, haideți să le găsim pe cele de care avem nevoie. Pentru a face acest lucru, să deschidem firul Documenteși găsiți documentul Primirea Bunurilor și Serviciilor, să-l deschidem și să găsim partea tabulară Bunuri, trageți-l în coloana designerului de interogări Mesele. Puteți trage în trei moduri: prin glisare, făcând dublu clic pe tabel sau selectând-o și făcând clic pe butonul „>”. Să deschidem firul Registre de informațiiși găsiți o masă acolo Nomenclatură prețuri.Comandă rapidă Ultimele, trageți-l și în coloană Mesele. Aceste două tabele sunt suficiente pentru interogarea noastră.

Să selectăm câmpurile de care avem nevoie din tabelele rezultate. Pentru a face acest lucru, în coloană Mesele hai sa deschidem masa și găsiți câmpurile: Nomenclatură, Sumă, Preț, Cantitateși trageți-le în a treia coloană a constructorului - Câmpuri. Să extindem tabelul , să găsim câmpul Preţși, de asemenea, trageți-l în Câmpuri.

Structura tabelelor și câmpurilor solicitării noastre este gata, acum să trecem la condiții. Avem nevoie de datele tabelare Bunuri nu au fost luate din toate chitanțele, ci doar din cea pe care o tipărim. Pentru a face acest lucru, vom impune o condiție pe masă Primirea BunurilorServiciiMarfa. Să mergem la fila „Condiții” a designerului de interogări. În coloană Câmpuri tabelele pe care le-am selectat mai devreme sunt localizate, pentru condiție vom avea nevoie de un câmp Legătură de la masă Primirea Bunurilor și Serviciilor Bunuri, Să-l tragem în fereastra Condiții.

În interogările 1C puteți utiliza parametri, aceștia sunt necesari pentru a transfera date la cerere. De exemplu, dacă dorim să limităm selecția documentelor la un anumit document, atunci putem folosi un parametru pentru a trece un link către acest document către cerere și folosim acest parametru în condiție. Este exact ceea ce vom face în cererea noastră.

După fereastră Termeni am adăugat un câmp Legătură, designerul de interogări însuși va crea un parametru cu același nume și îl va plasa după semnul „=”. Acest parametru poate fi redenumit dacă se dorește. În textul cererii, parametrii sunt marcați cu semnul „&”, dar în acest caz nu este necesar, deoarece se presupune că a doua parte a condiției conține un parametru, trebuie doar să vă amintiți acest lucru. Cum se transmite o valoare unui parametru de cerere 1C va fi discutat mai jos.

Deoarece în cerere nu folosim un tabel complet de prețuri a produselor, ci unul virtual (o felie din acesta din urmă în acest caz), trebuie să stabilim condițiile pentru formarea acestui tabel virtual, în cazul nostru acesta este data limită și condiția pentru tipul de prețuri (prețurile care au un tip de preț strict definit este cel specificat în bonul pe care îl tipărim).

Pentru a completa parametrii tabelului virtual, accesați fila Tabele și câmpuri constructor de interogări, în coloană Mesele selectați tabelul PrețuriNomenclaturăTăiereUltimeși apăsați butonul Opțiuni de masă virtuală, situat în partea de sus. În fereastra care se deschide, în câmp Perioadă ar trebui să setați un parametru la care să fie trecută data la care se va face reducerea prețului. În cazul nostru, aceasta va fi data curentă (adică astăzi), așa că vom numi parametrul „&CurrentDate”. În câmpul de condiții vom scrie condițiile pentru tipul de preț, îl vom trece și în parametrul, pe care îl vom numi „&TypePrice”. Condiția rezultată va arăta astfel (unde TipPreț- măsurarea registrului Preturile articolelor):

PriceType = &PriceType

Parametrii tabelului virtual sunt completați, faceți clic pe butonul Bine.

Acum că am limitat selecția doar la documentul de care avem nevoie, să creăm conexiuni între tabelele de interogări. Dacă acest lucru nu se face, atunci prețurile din tabelul PricesNomenclatureSliceLast nu vor fi asociate articolului din chitanță. Să mergem la filă Conexiuni designer de interogări. Să creăm o conexiune pe tot terenul Nomenclaturăîntre cele două mese ale noastre. Pentru a face acest lucru, apăsați butonul Adăuga, în câmp Tabelul 1 selectați un tabel Primirea BunurilorServiciiMarfa, iar în câmpul Tabel 2 - PricesNomenclatureSliceLast. În condițiile de comunicare, selectați câmpurile Nomenclatură din ambele mese.

De asemenea, trebuie remarcat faptul că în selecția interogării trebuie să obținem toate rândurile din partea filă Bunuriși prețurile numai dacă sunt disponibile la data curentă pentru tipul de preț al documentului. Astfel, datele tabelare Bunuri sunt obligatorii, dar datele de defalcare a prețurilor nu sunt disponibile. Prin urmare, în relațiile dintre aceste tabele este necesar să se folosească așa-numitul LEFT JOIN, iar tabelul din stânga (sau necesar) va fi Primirea BunurilorServiciiMarfa, și dreapta (sau opțional) PriceNomenclatureSliceLast. Pentru ca îmbinarea din stânga a tabelelor de interogări să funcționeze așa cum am descris mai sus, trebuie să bifați caseta Toate după câmp Tabelul 1.


Solicitarea este aproape gata, nu mai rămâne decât să lucrăm puțin la aliasurile de câmp. Să mergem la marcaj Sindicate/Alias-uriși setați un alias pentru câmp PrețuriNomenclatură Slice Ultimele.Preț. Porecla va fi - Preț ca astăzi, este necesar pentru ca numele câmpurilor de selecție a interogării și numele parametrilor din aspectul formularului tipărit să se potrivească.

Lucrarea în designerul de interogări este acum finalizată, faceți clic pe OK. După ce fereastra designerului se închide, veți vedea că linia cu textul cererii este completată și arată astfel:

Solicitare.Text = "SELECT | Recepție BunuriServiciiProduse.Nomenclatură, | Recepție BunuriServiciiProduse.Suma, | Primire BunuriServiciiProduse.Preț, | Primire BunuriServiciiProduse.Cantitate, | Nomenclatură Prețuri Secțiunea de Ultime.Preț AS PrețToday. |Document FROM | GoodsServices.Goods AS Receipt ProductsServicesProducts |. LEFT CONNECTION RegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) AS PricesNomenclatureSliceLast ON Receipt of GoodsServicesProducts.Nomenclature |

Executarea cererii

Să transmitem parametrii necesari cererii pentru aceasta vom folosi metoda de solicitare SetParameter(<ИмяПараметра>,<Значение>). Pentru a obține data curentă, utilizați funcția încorporată CurrentDate(), returnează data și ora computerului.

Să lansăm o interogare pentru a obține un eșantion cu datele de care avem nevoie. Pentru a face acest lucru, mai întâi utilizați metoda de solicitare Run(), iar apoi metoda Alege().

Selectare = Query.Run().Select();

Completarea tabelului formular tipărit

Ca urmare, în variabilă Eşantion va conține o selecție de rezultate ale interogării, puteți naviga prin ea folosind metoda Următorul(), iar pentru a parcurge totul ai nevoie de o buclă la revedere. Designul va fi după cum urmează:

While Select.Next() Loop EndLoop;

În această buclă vom completa și afișa zona de aspect Date. Dar mai întâi, să inițializam două variabile de tip numeric. În ele vom colecta totalurile după cantitate și cantitate pe care trebuie să le afișam în zonă Subsol.

Suma totală = 0; TotalQuantity = 0;

În interiorul buclei vom umple zona Date date din elementul de selecție curent în variabile Valoare totalăŞi TotalQuantity adăugați valori de sumă și cantitate și, în final, afișați zona într-un document de foaie de calcul folosind metoda deja familiară nouă Ieșire (). Deoarece numele câmpurilor din cererea noastră coincid complet cu numele parametrilor zonei Date, apoi pentru a completa vom folosi procedura încorporată FillPropertyValues(<Приемник>, <Источник>), care copiază valorile proprietăților<Источника>la proprietăți<Приемника>.

While Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection);

TotalSum = TotalSum + Sample.Sum;

TotalQuantity = TotalQuantity + Sample.Quantity; Subsol TabDoc.Output(AreaData); EndCycle;

Ieșirea subsolului unui formular tipărit într-un document de foaie de calcul

Rămâne să umpleți și să afișați ultima zonă a aspectului - Sigiliu(). Am pregătit deja datele pentru completarea, completarea și retragerea se efectuează conform aceleiași scheme.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalSum; TabDoc.Output(AreaFooter);

Documentul din foaia de calcul este complet completat; tot ce rămâne este să îl afișați pe ecran, astfel încât utilizatorul să poată vizualiza formularul tipărit și să îl imprime dacă este necesar. Dar în configurațiile tipice 1C 8, procedurile modulelor speciale sunt responsabile pentru ieșirea formularelor tipărite externe. Prin urmare, este suficient să reveniți de la funcție Sigiliu() document foaie de calcul completat.

Întoarce TabDoc;

Când conectați un formular de tipărire extern la baza de date, sistemul nu stabilește automat pentru ce document sau carte de referință este destinat formularul de tipărire, trebuie să îl selectați manual; Și dacă o altă persoană a scris formularul tipărit și ești însărcinat doar să-l conectezi, atunci alegerea poate deveni ambiguă. Pentru a evita astfel de probleme, în toate formele tipărite externe este necesar să se creeze un aspect cu parametrii de auto-înregistrare. Dacă este creat și formatat corect, sistemul stabilește automat pentru ce document sau carte de referință este destinat formularul tipărit.

Se face astfel:

  • În procesarea externă, creăm un nou aspect. Îl numim „Setări_Înregistrare automată” (este important să nu greșești!).
  • În prima celulă a aspectului scriem Documente.(sau Directoare.) și numele documentului la care trebuie să conectați formularul tipărit.

Conectarea unui formular de imprimare extern la bază

  • Porniți 1C 8 în modul Întreprindere;
  • Accesați meniu Service -> Rapoarte suplimentare și procesare -> Formulare externe suplimentare tipărite;
  • Faceți clic pe butonul Adăuga;
  • În fereastra care se deschide, faceți clic pe pictograma Înlocuiți fișierul de procesare extern;
  • Dacă ați creat parametri de auto-înregistrare, atunci suntem de acord să-i folosim;
  • Dacă nu ați creat parametri de auto-înregistrare, atunci în partea tabelară Accesoriu placă de imprimare adăuga documentul solicitat sau carte de referință;
  • Apăsați butonul BINE.

După aceasta, formularul de tipărire externă va fi disponibil în meniu Sigiliu document Recepția de bunuri și servicii. Crearea formularului tipărit 1C poate fi considerată acum finalizată.

Colegii!

Continuăm subiectul creării de rapoarte în 1C. Recent, clientul nostru a avut o problemă la transferul documentației din 1C 8.3.

Aplicație Informații suplimentareîn formă tipărită, numerotarea foilor de tipărire, cu indicarea datei, orei și utilizatorului care a emis raportul.

Am discutat un exemplu similar în configurația 8.2 în versiunea anterioară. Acum ne vom uita la setările de imprimare, care ne permit să facem toate acestea în configurația 8.3.

Mai mult, o mare parte din aceasta este automatizată în 8.3.

Deci, cum puteți încorpora informațiile de mai sus în tipărirea dvs.? Ce ar trebui făcut în acest caz?

Vă oferim revizuirea opțiunilor, poate că vă va fi de asemenea util.

Opțiunea 1. Direct din forma tipărită a raportului sau documentului generat:

Creați un formular de factură tipărit pentru plată și sunați-l prin Ch. meniu – Tabel – Setări de imprimare – Antet și subsol și configurați după cum este necesar.
Acest lucru se face o singură dată pentru orice formular de tipărire FORMED.

Configurarea câmpurilor antet și subsol

Acordați atenție pictogramelor din stânga colțul de sus forme:

Acestea sunt în ordine: numărul paginii, numărul de pagini, data și ora. Poziționați mouse-ul în locația dorită din antet sau subsol și faceți clic pe pictograma dorită. După ce faceți clic pe butonul. OK, atunci când sunt tipărite, aceste date vor fi afișate în formularul tipărit acolo unde ați indicat.

Opțiunea 2. Configurat pentru orice tipărire (rapoarte, documente, certificate) din program

Dacă nu doriți să configurați manual anteturile și subsolurile de fiecare dată, puteți utiliza secțiunea Administrare – Antet și subsol pentru a configura vedere generală anteturi și subsoluri pentru imprimare.

Arata cam asa:

Există mai multe opțiuni pentru afișarea informațiilor în formulare tipărite: sunt adăugate datele „Nume raport” și „Utilizator”. Acesta este exact cazul nostru.

Selectarea datelor din antet și subsol se efectuează așa cum este descris în opțiunea 1, doar în loc de pictograme selectăm butoanele de text „Ora”, „Data”, „Numele raportului”, etc. Dar esența nu se schimbă. După specificarea informațiilor solicitate în locurile solicitate din formular, setarea este salvată.

Când formularul tipărit este tipărit, toate datele specificate vor fi afișate în el.

Opțiunea 3: editați aspectul în modul personalizat

De ce mă gândesc aici la această metodă, care are o funcționalitate proprie și care, strict vorbind, nu are legătură cu subiectul luat în considerare.

Pentru că se întâmplă adesea să fie nevoit să folosești o combinație a acestei metode și setări de imprimare pentru a obține rezultatul dorit. Editarea machetelor formularelor tipărite ne permite să desenăm unele lucruri de care avem nevoie chiar în aspectul acestui formular tipărit.

Aspectele pot fi modificate în secțiunea Administrare – Formulare tipărite, rapoarte, procesare – Aspecte formulare tipărite.

Iată un exemplu de editare a aspectului unei facturi de comandă (document Factură pentru plata către cumpărător):

Selectăm un aspect, indicând la intrare că îl vom edita și adăugam câteva informații text la sfârșit.

De exemplu, așa:

Salvați modificările și creați formularul imprimabil.

Și imprimăm cu modificările.
Dar posibilitățile pentru o astfel de editare sunt limitate.)

Deci opțiunea 3 este convenabilă pentru a introduce informații constante, neschimbabile, orice altceva va necesita modificarea formularului tipărit de către un programator.

Dar de multe ori acest lucru este suficient. 🙂

Articole înrudite

2024 liveps.ru. Teme și probleme gata făcute în chimie și biologie.