Aspecte de formulare de imprimare 1c 8.2 moara de alimentare

Viața continuă, legislația se schimbă, dezvoltatorul lansează actualizări de configurare și, din nou, avem de ales: să instalăm singuri actualizarea sau să sunăm din nou programatorul pentru a „livrează o nouă versiune”...

Să ne familiarizăm cu mecanismul de schimbare a formelor de imprimare fără a schimba configurația.


În practica fiecărui contabil care folosește 1C, a existat vreodată nevoia de a rafina configurația pentru ei înșiși: cine a corectat acuratețea prețului sau a sumei din factura de chitanță, cine a inserat sigla și a corectat aspect factura de cheltuieli. Totul ar fi bine, dar există o mulțime de astfel de modificări de-a lungul timpului, iar când vine timpul să actualizăm versiunea, apare o dilemă: fie pierde totul modificările efectuate, sau apelați un programator pentru a transfera toate modificările la noua versiune (desigur, pentru o taxă suplimentară). Cum să fii? Pentru a simplifica cumva actualizarea configurațiilor, dezvoltatorii au creat un nou mecanism: „Prelucrare externă, tipărire formulare, prelucrare pentru completarea părților tabelare”. Astăzi vom lua în considerare doar o parte a acestui mecanism - tipărirea formularelor.


Orice subiect se învață cel mai bine prin exemplu. Să ne punem următoarea sarcină: să adăugăm la configurație posibilitatea de a tipări o factură (document „Vânzarea de bunuri și servicii”) cu sigla companiei noastre. În plus, este necesar ca în antetul documentului să fie inscripționate "Furnizorul"și "cumpărător" au fost evidentiate cu caractere aldine si in final, este necesar ca in partea de jos a documentului sa existe un loc pentru semnatura serviciului de securitate care a permis expedierea.


Introducem doua conditii suplimentare:

  • Noul imprimabil ar trebui să îl înlocuiască pe vechiul imprimabil. "Factura fiscala"
  • Nu putem schimba configurația deoarece dorim să folosim configurația de actualizare automată în viitor

Ei bine, care este sarcina? Pare prea complicat? Ei bine, cu cât este mai dificil, cu atât mai interesant și mai mult vrei să o rezolvi. Atunci apucă-te de treabă.


Începem baza noastră de date în modul Configurator. Deschideți configurația selectând comanda din meniul principal „Configurare > Deschidere Configurare”. În niciun caz nu vom schimba configurația în sine. Îl vom folosi ca prototip. Aici vom face munca principală, dar vom edita procesarea externă. Creați o comandă de procesare externă în meniul principal „Fișier > Nou”. Alegeți tipul de document „Procesare externă”. Pentru prima procesare, setați numele "Factura companiei"


Important! Numele de procesare nu trebuie să conțină spații, la fel ca numele variabilelor.


Acum hai să facem puțin "plagiat". Să copiem aspectul "Factura fiscala" din document „Vânzarea de bunuri și servicii”. Pentru a face acest lucru, găsiți-l în ramură "Documentație" arborele de configurare. Extindeți această ramură făcând clic pe pictogramă «+» și găsiți aspectul de care avem nevoie "Factura fiscala"(este in fir „Aspecte”). Pentru a copia acest obiect, trebuie să selectați acest aspect în arbore și să executați comanda „Editare > Copiere”(aceeași acțiune are loc prin combinație CTRL+C). Acum să trecem la procesarea pe care am creat-o, selectați eticheta din arbore „Aspecte” iar în meniul principal, selectați elementul - Editare > Lipire (CTRL+V). Rezultatul ar trebui să arate ca în Figura 1.


Acum faceți dublu clic pentru a deschide aspectul.

Ce este un „aspect”

Să spunem câteva cuvinte despre scopul aspectului.

Aspect- depozitare „blocuri de construcție”, zone din care, precum cărămizile, se construiește un document de foaie de calcul, pe care îl numim formular tipărit. Zonele sunt definite folosind secțiuni orizontale și verticale sau intersecțiile acestora. Aspectul nostru are doar secțiuni orizontale: „Antet”, „Furnizor”, „Cumparator”, „Antet tabel”, „Linie” (vezi fig. 2). Zona - un set de celule. Ca și în MS Excel, celulele pot fi îmbinate, culorile textului și de fundal, fonturile și așa mai departe pot fi modificate. Toate setările celulei pot fi vizualizate și modificate în fereastra cu proprietățile celulei. Puteți apela fereastra de setări făcând clic dreapta pe celulă și selectând elementul din meniul contextual „Proprietăți”(același rezultat este obținut cu comanda rapidă de la tastatură Alt+Enter).


O celulă poate conține unul dintre cele trei tipuri de valori:

  1. text– o valoare de acest tip va fi tipărită în aceeași formă;
  2. parametru– o celulă de acest tip conține numele unei variabile, a cărei valoare va fi tipărită.
  3. probă– celulele de acest tip sunt o combinație a primei și a doua opțiuni. O celulă poate conține text și variabile. Pentru ca programul să distingă textul de o variabilă, variabilele trebuie incluse între paranteze drepte: „Astăzi este [Data]”.

Important!Înțelesul celulelor de al doilea și al treilea fel editor de foi de calcul afișează între paranteze triunghiulare. În figura 2, o celulă cu text "Cumpărător"- are forma de text, iar în dreapta celulei „Prezentarea cumpărătorului”- parametru.

De ce spun toate astea? Acum știți în ce celule puteți modifica cu ușurință conținutul și în care nu este de dorit să schimbați ceva, deoarece va trebui să faceți modificări algoritmului de imprimare.

Să revenim acum la problema noastră. Am creat procesare, am copiat aspectul și suntem gata să o modificăm singuri. În primul rând, să aruncăm o privire mai atentă la el.

Ce este în aspectul de imprimare

Structura de aspect a tuturor documentelor este foarte asemănătoare. Examinând cu atenție un document, ne putem ocupa de altele. Prima secțiune "Antet". Când se afișează această secțiune, se va genera titlul documentului, constând din tipul, data și numărul documentului. Urmează secțiuni. „Furnizor” și „Cumpărător”, în care programul va afișa informații despre furnizor, respectiv cumpărător. Sectiune mai interesanta "Informații suplimentare", pe care dezvoltatorii îl folosesc pentru a afișa alte informații despre document, de exemplu, informații despre contract cu numărul și data acestuia. Particularitatea acestei secțiuni este că poate fi afișată de mai multe ori și de fiecare dată poate conține informatii diferite. Ce anume și când să scoateți este descris în algoritmul de imprimare.

Aceasta completează antetul documentului. Antetul este de obicei urmat de o secțiune tabelară. Interesant, aspectul descrie două opțiuni pentru afișarea părții tabelare: „Pălărie de masă”, „Șnur” și „HatTablePlaces”și „StringPlaces”. În funcție de dacă coloana este completată sau nu "Locuri"în document, se va folosi prima sau a doua opțiune de ieșire a părții tabelare a documentului. Cititorul curios trebuie să se fi întrebat deja: de ce în secțiunea de ieșire a antetului "Preț"și "Sumă" sunt cuprinse între paranteze triunghiulare, ca și cum ar fi variabile? Așa este, acestea sunt variabile în care, în funcție de setările documentului, va fi afișată inscripția "Preț", "Pret cu TVA" sau "Pret fara TVA" si la fel pentru suma.

Ei bine, mai jos în layout există secțiuni cu ajutorul cărora sunt afișate rezultatele documentului și semnătura.

Editarea aspectului

Ar fi bine să fie plasat logo-ul deasupra informațiilor despre furnizor și cumpărător. Vă sugerez să editați zona de aspect "Antet". Trebuie să reduceți dimensiunea celulei cu conținutul "Antet". Această celulă este formată din mai multe celule îmbinate. Modificați dimensiunea după cum urmează:

  1. Copiați cu prudență conținutul celulei îmbinate "Antet"(pentru a face acest lucru, selectați celula și utilizați comanda Editare > Copiere sau CTRL+C)
  2. După ce ați selectat această celulă, selectați elementul din meniul principal „Tabel – Îmbinare”, ceea ce va duce la efectul opus - celula îmbinată va fi împărțită în mai multe celule originale
  3. Acum să selectăm un număr mai mic de celule - în loc de celula din a 2-a coloană, vom începe îmbinarea din a 6-a coloană, terminând-o pe coloana 32, - și facem din nou clic pe butonul "Combina"
  4. echipă Editare > Lipire (CTRL+V) lipiți conținutul vechii celule îmbinate în noua celulă îmbinată
  5. Pur și simplu vom șterge celulele eliberate din coloanele 2 - 5 (selectați și apăsați tasta Ștergere)

Acum puteți insera o imagine cu un logo în spațiul liber. Pentru a face acest lucru, selectați elementul de meniu „Tabel > Imagini > Imagine…”. Găsiți un fișier cu logo-ul nostru pe disc și faceți clic pe „ Bine". Acum să mutăm poza în locul liber. Rezultatul ar trebui să arate ca în Figura 3.


Acum să punem îngroșat valoarea din celule "Furnizorul"și "Cumpărător"(Fig. 4). Pentru a face acest lucru, în proprietățile celulei, găsiți parametrul „Font”și fă-l îndrăzneț.



Și, în sfârșit, rămâne să adăugați semnătura serviciului de securitate. Aceste informații vor fi plasate în secțiune „Semnături”. Pentru a obține un loc pentru semnături, trebuie să depărtați secțiunea. Selectați linia 37, faceți clic dreapta pe ea și selectați „împinge în afară”, și așa de două ori. Într-una din rândurile adăugate, vom plasa un loc pentru semnătura serviciului de securitate. Ca rezultat, totul ar trebui să iasă ca în Figura 5.



Important! Configurația tipică folosește două limbi: rusă și ucraineană. Aspectul stochează reprezentarea textului în ambele limbi (designul celulei este comun). Pentru a introduce versiunea ucraineană a inscripției pe care am adăugat-o, trebuie să mergeți la proprietățile celulei și în câmp "Text" apasa butonul "Căutare". Se va deschide o fereastră pentru introducerea unei reprezentări a textului pe limbi diferite(Fig. 6).

Cum să asigurați imprimarea

Deci, aspectul este gata. Acum este corect să faci algoritmul pentru imprimarea lui.

Pentru ca noi să integrăm fără durere acest aspect în configurație și să îl folosim, procesarea pe care am creat-o trebuie să îndeplinească următoarele condiții:

  1. Trebuie să creați recuzită în procesare „ObjectReference” cu tip „AnyLink”
  2. Trebuie să creați o procedură în modulul de procesare „Print() Export” fără parametri și asigurați-vă că specificați cuvântul cheie " Export"

Primul element este necesar pentru ca algoritmul de imprimare să știe de unde să obțină date pentru imprimare, iar al doilea este algoritmul de imprimare în sine. Să îndeplinim aceste condiții.

Pe panoul ferestrei, selectați fereastra de editare pentru procesarea noastră (în Figura 7). Se va deschide o fereastră cu un arbore de obiecte ale prelucrării noastre. Alegeți o ramură "Rechizite"și apăsați butonul "Adăuga",. Se va deschide fereastra proprietăților proprietății. Introduceți numele - „ObjectReference”și specificați tipul „AnyLink”. Acum putem trece la textul modulului de imprimare. Nu o vom scrie de la zero, ci o vom copia din document „Vânzarea de bunuri și servicii”.



Pentru a face acest lucru, găsim în arborele de configurare printre documente „Vânzarea de bunuri și servicii”, faceți clic dreapta pe el și selectați „Deschideți modulul obiect”(Vezi Figura 8).



Aceasta va deschide modulul document. Avem nevoie de prima funcție „PrintDocument”. Textul acestuia trebuie selectat și copiat. Este foarte comod să selectezi textul funcției atunci când este restrâns, dar trebuie să selectezi și linia de sub ea, altfel riscăm să copiem doar titlul.

Vedeți în Figura 9, am evidențiat titlul și linia de sub el. După aceea, copiați în clipboard. Meniu principal Editare > Copiere (sau CTRL+C).



Ne-am amintit textul din clipboard, acum ne întoarcem la procesarea noastră "Factura companiei". Faceți clic pe butonul „Acțiuni > Deschideți modulul obiect”(Fig. 10).



Lipiți textul copiat: Editare > Lipire (sau CTRL+V).

Acum este necesar să îndreptăm ușor textul copiat, deoarece a fost scris pentru tipărirea documentului din documentul în sine și trecem de la procesarea externă. Pentru asta ai nevoie de:

  1. Redenumiți funcția în „Print”
  2. A inlocui „AcestObject” pe „ObjectReference”
  3. A inlocui „AcestObject” pe „ObjectReference”
  4. A inlocui „Organizarea contului bancar” pe „ReferenceToObject.Organization’s Bank Account”
  5. A inlocui "Produse. Rezultat" pe „ReferenceToObject.Products.Result”

Pentru aceste acțiuni, puteți utiliza elementul din meniul principal „Editare > Înlocuire”.

După aceea, asigurați-vă că verificați sintaxa. Pentru a face acest lucru, există o combinație magică CTRL + F7. Ca urmare, ar trebui să apară un mesaj: « Erori de sintaxă nu a fost găsit!"

Ei bine, la asta am terminat toată munca murdară. Acum putem salva rezultatele muncii noastre într-un fișier, de exemplu „Company Invoice.epf”. Pentru asta trebuie să faci fereastra activă această procesare și salvați-o folosind meniul principal al programului „Fișier > Salvare ca...”. Procesarea numelui fișierului - „Company Invoice.epf”(va fi oferit implicit). Îl puteți salva temporar pe desktop, astfel încât să îl puteți găsi mai târziu.

Important! După cum puteți vedea, nu am făcut nicio modificare în configurația noastră. Pentru toate acțiunile de mai sus, nici măcar nu trebuie să îl eliminați din suport (adică să activați capacitatea de schimbare).

Conectăm procesarea externă la configurație

Acum putem conecta procesarea la factura noastră. Pentru a face acest lucru, porniți în modul. Mergem la meniu "Serviciu", unde sunt trei puncte legate de mecanism „Prelucrare externă, tipărire formulare, prelucrare pentru completarea părților tabelare”. În cazul nostru, avem nevoie doar de articol „Formulare de imprimare externă”(vezi fig. 11).



Aceasta va deschide directorul. „Procesare externă”, cu selecție după tip "formulare tipărite". Acesta va stoca o listă a tuturor formularelor de tipărire externe cu furnizarea de documente pentru care sunt acestea și în ce cazuri trebuie afișate.



Important! Prelucrarea în sine va fi stocată în baza de date împreună cu alte date, adică după salvarea procesării în baza de date, fișier extern nu vom avea nevoie.

Trebuie să creăm un nou element în director. Clic Introduce. Acum luați în considerare conținutul elementului. În nume facem o scurtă descriere semnificativă a esenței acestei forme, de exemplu, "Factura companiei". Ca orice altă carte de referință, are și un cod. Să o lăsăm implicit. Atributul de vizualizare este completat implicit și nu poate fi editat – „Formular tipărit”. Iar ultimul atribut al elementului antet este un comentariu. Iată, ca de obicei, mai detaliat despre scopul formularului tipărit. Pe lângă antet, elementele acestui director au două file. Al doilea conține informații despre restricționarea drepturilor de acces la această prelucrare. Acest subiect depășește domeniul de aplicare al acestui articol (vom vorbi despre aceasta și despre alte setări ale drepturilor de acces în configurație, fără a-l finaliza într-una dintre următoarele numere).

Să aruncăm o privire mai atentă la prima filă.

Fila conține patru coloane. Reprezentarea obiectelor– tipul de document pentru care dorim să folosim imprimabilul nostru,

Selecţie– condiția în care acest formular de tipărire ar trebui să fie disponibil. De exemplu, am reproiectat formularul de factură tipărit și l-am tradus în engleză. Și vrem pentru clienți din folder "European"în loc de imprimabilul standard "Factură de vânzare" noua formă a fost tipărită Limba engleză. Pentru a face acest lucru, puteți utiliza coloana "Selecţie". Un exemplu de astfel de selecție este prezentat în Figura 13.



Dar în sarcina noastră, nu sunt necesare selecții.

Fișier imprimabil- specifica fisierul din care se ia procedura de layout si imprimare. În această celulă, trebuie să selectați fișierul pe care l-am salvat pe desktop.

Placă de imprimare înlocuibilă- daca dorim ca formularul tiparit creat de noi sa inlocuiasca unul dintre cele standard pentru acest document, atunci trebuie sa specificam care trebuie inlocuit. Dacă nu există nimic de selectat, va apărea un imprimabil suplimentar.

În cazul nostru, trebuie "Factura companiei" tipărită în locul facturii obișnuite. Pentru a face acest lucru, selectați în acest câmp "Factură de vânzare".

Cu toții salvăm acum acest element. Și deschide orice factură.

Ar trebui să arate ca în Figura 14.



Ei bine, pe aceasta sarcina pe care ne-am propus-o la începutul articolului a fost finalizată. Considerăm că am reușit să ilustrăm posibilitățile pe care le deschide utilizatorului utilizarea mecanismului extern de procesare.

Pentru a vă consolida abilitățile, puteți încerca să adăugați la configurație un formular imprimabil suplimentar „La depozit” pentru documentul „Recepție bunuri și servicii”, care ar repeta factura obișnuită, dar fără prețuri și sume, și ar conține și câmpuri pentru introducerea cantitatii acceptate.

Nu este un secret pentru nimeni că, deși în vremea noastră un număr tot mai mare de companii trec la gestionarea electronică a documentelor, vechea zicală „Fără o bucată de hârtie tu...” nu își pierde actualitatea. S-a întâmplat că din anumite motive organele de control sunt interesate în primul rând de documentele pe hârtie. Prin urmare, dacă utilizați activ programul 1C: Accounting sau Enterprise pentru control financiar, este important să știți cum să tipăriți un document electronic creat cu ajutorul programului.

Formularele imprimabile în 1C vă permit să transformați un document electronic într-o versiune tipărită.

Pentru a face acest lucru, dezvoltatorul a oferit un instrument excelent - Print Constructor. Cu acesta, puteți crea documente în care puteți specifica orice date de care aveți nevoie, și nu doar câteva formulare standard. Acest lucru este valabil mai ales pentru acele documente care nu au o formă strict reglementată, care în niciun caz nu pot fi modificate. Aceasta, în special, include un act de muncă efectuat, unele facturi sau plăți.

În acest ghid, ne propunem să înțelegem capacitățile Print Designer-ului, să luăm în considerare ce tipuri de formulare de imprimare pot fi și cum diferă între ele. De asemenea, vom arăta cu un exemplu cum să tipăriți formularul creat.

Pentru început, merită să ne dăm seama ce este, în general, un imprimabil în 1C 8. Acesta este un șablon de foaie de calcul 1C (cum ar fi Excel), în care unele dintre cele indicate variabile șir, completat cu date din program în timpul execuției documentului.

Există două tipuri de imprimabile:

  • Intern (încorporat). Sunt stocate în configurația programului, deci este mai bine să nu le schimbați, deoarece pot apărea probleme în timpul actualizării mai târziu.
  • Extern - stocat separat de setările programului. Și cu ajutorul lor, puteți crea și pregăti pentru tipărirea unui document de aproape orice complexitate, fără a afecta configurația programului 1C 8.

Cum să alegi machete deja pregătite? După ce efectuați o operațiune de venituri sau cheltuieli, de exemplu, scrieți un act de finalizare, faceți clic pe butonul „Tipărește” pentru a tipări documentele. Lista afișează o listă de formulare pentru tipărire, care sunt deja completate cu datele introduse despre tranzacție și compania dumneavoastră. Făcând clic pe tipul de document de care aveți nevoie, deschideți fereastra previzualizare astfel încât să puteți verifica dacă informațiile introduse sunt corecte. Butonul de imprimare trimite documentul la imprimantă.


Cu elementele de bază la o parte, să ne dăm seama unde sunt stocate toate materialele imprimabile. Să trecem la următoarea întrebare.

Unde sunt stocate imprimabilele?

Puteți vizualiza imprimabilele încorporate atât în ​​modul configurator, cât și în Mod normalîntreprinderilor. În primul caz, trebuie să apăsați butonul corespunzător din fereastra de pornire când porniți programul. Veți vedea meniul programului, veți găsi ramura „Realizarea bunurilor și serviciilor”, care conține elementul „Aspecte”. Adesea, conține doar două elemente - „Factură” și „Act”. Unde sunt, deci, toți ceilalți, pentru că lista este mult mai extinsă? Doar se ascund în altă parte. Trebuie să deschideți ramura „General” - „Aspecte generale”, aproape toate aspectele sunt stocate în ea.

În cel de-al doilea caz, trebuie să accesați secțiunea de meniu „Administrare” - „Imprimare formulare, rapoarte și procesare” - „Imprimare machete formulare”. Acesta va afișa toate aspectele documentelor. Este de remarcat faptul că în același meniu pot fi editate.


În ceea ce privește formularele externe, acestea trebuie mai întâi fie create prin modul configurator, fie prin descărcarea unui fișier gata făcut, iar apoi conectate în meniul „Administrare” - „Formulare tipărite, rapoarte și procesare” - „Rapoarte suplimentare și procesare” . Vom vorbi despre asta puțin mai târziu.

Crearea unui formular simplu prin constructorul de imprimare încorporat

Un astfel de imprimabil nu implică posibilitatea unei editări profunde, deoarece aceasta va presupune o modificare a configurației programului, precum și dificultăți suplimentare la actualizarea acestuia. Cu toate acestea, dacă sunteți complet mulțumit de formularul standard sau dacă doriți să vă adânciți în complexitatea creării unei forme externe, această metodă este complet potrivită pentru dvs.

  1. În primul rând, începeți în modul Configurator, găsiți documentul de care aveți nevoie, de exemplu, Realizarea Bunurilor și Serviciilor, în proprietățile documentului, mergeți la Acțiuni - Constructori - Designer de imprimare.
  2. Când vi se solicită o opțiune de job, selectați Formulare comune.
  3. Dați un nume noului aspect, cum ar fi „Imprimare factură”.
  4. Selectați detaliile pe care doriți să le vedeți în antetul documentului. Mai mult, acestea trebuie selectate în ordinea în care vor fi afișate. Pentru a selecta, trebuie să evidențiați elementul din coloana din stânga cu cursorul și să apăsați săgeata din mijlocul ecranului, astfel încât atributul să fie afișat în coloana din dreapta.
  5. Marcați detaliile care vor fi afișate în secțiunea tabelară. Alegerea detaliilor urmează același principiu ca în paragraful anterior.
  6. În același mod, selectați detaliile din partea de jos a documentului.
  7. În etapa finală a creării, alegeți dacă doriți să imprimați imediat fără previzualizare, dacă aveți nevoie de protecție pentru tabel, apoi confirmați crearea formularului cu butonul OK.


Crearea unui imprimabil extern

Formularele create prin Print Designer pot fi comparate cu un editor vizual de program, atunci când nu introduceți manual tot codul, ci doar îl compuneți din elementele propuse. Formularul extern este un fișier cu cod de program scris manual, care descrie procedura de afișare a datelor pe ecran. Acesta este ceea ce vă permite să editați formularul tipărit, după cum doriți, specificând absolut orice date în orice secvență.

Un avantaj suplimentar este că, chiar dacă nu înțelegeți sau pur și simplu nu doriți să înțelegeți complexitățile programării 1C 8, puteți încredința această procedură profesioniștilor. Ei vor putea să vă pregătească formularul necesar, să vi-l furnizeze sub forma unui fișier gata făcut, pe care îl activați doar cu câteva clicuri pe buton.

Acum mai multe despre procedura în sine. Luați în considerare exemplul creării unui aspect „Cont” pentru documentul „Implementare (acte, facturi)”.

  1. Deschideți programul 1C 8 în modul Configurator.
  2. Faceți clic pe Fișier - Nou - Procesare externă, dați-i un nume (nu ar trebui să includă spații), apoi faceți clic pe Acțiuni - Deschide modul obiect.
  3. În câmpul de introducere care se deschide, introduceți următorul cod (valorile care pot fi modificate în propriile dvs. sunt evidențiate cu galben):

Funcția DetailOnExternalProcessing() Export
RegistrationParameters = Structură nouă;
AssignmentArray = Matrice nouă;
Array of Assignments. Add ("Document. Realizarea Bunurilor de Servicii"); //Specificați documentul la care facem o imprimare externă. formă
RegistrationParameters.Insert("Vizualizare", "PrintForm"); //poate fi - PrintingForm, Completarea unui obiect, Raport suplimentar, Crearea obiectelor înrudite...
RegistrationParameters.Insert("Assignment", Assignment Array);
Parametri de înregistrare.Insert(„Nume”, „Comandă pentru vânzarea mărfurilor”); //numele sub care va fi înregistrată prelucrarea în directorul de prelucrare externă
RegistrationParameters.Insert("SafeMode", FALSE);
RegistrationParameters.Insert(„Versiune”, „1.0”);
RegistrationParameters.Insert("Informații", "Acest formular imprimabil a fost creat ca exemplu");
CommandTable = GetCommandTable();
AddCommand(CommandTable, „Ordine externă”, „Ordine externă”, „Apel ServerMethod”, True, „PrintMXL”);
RegistrationParameters.Insert("Comenzi", CommandTable);
Return ParametersRegistration;
EndFunction // ExternalProcessing Details()
Funcția GetCommandTable().
Comenzi = New ValueTable;
Commands.Columns.Add(„View”, New TypeDescription(„String”));//cum va arăta descrierea formularului imprimabil pentru utilizator
Commands.Columns.Add(„Identifier”, NewTypeDescription(„String”)); //printează numele aspectului formularului
Commands.Columns.Add(„Utilizare”, NewTypeDescription(„String”)); //Apelați ServerMethod
Commands.Columns.Add("ShowAlert", NewTypeDescription("Boolean"));
Commands.Columns.Add(„Modifier”, NewTypeDescription(„String”));
revenirea echipei;
EndFunctions
Procedura AddCommand(CommandTable, View, Identifier, Usage, ShowAlert = False, Modifier = "")
NewCommand = CommandTable.Add();
NewCommand.View = Vizualizare;
NewCommand.Identifier = Identificator;
NewCommand.Use = Utilizare;
NewCommand.ShowAlert = ShowAlert;
NewCommand.Modifier = Modificator;
EndProcedure

  1. Salvați aspectul pentru imprimare ca fișier în orice folder de pe hard disk, denumiți-l corespunzător.

Introduceți procedura de pornire a tipăririi din meniul programului în același document (comenzile evidențiate cu galben trebuie să se potrivească cu linia):

AddCommand(CommandTable, „Ordine externă”, „Ordine externă”):
Imprimare prin procedură (matrice de obiecte, colecție de formulare de imprimare, obiecte de imprimare, parametri de ieșire) Export
PrintManagement.OutputSpreadsheetDocumentToCollection(
Colecție Formulare tipărite,
„Ordinea externă”
„Ordinea externă”
GeneratePrintForm(ArrayObjects,PrintObjects);
EndProcedure // Print()

  1. Introduceți aspectul completării formularului tipărit făcând clic pe numele formularului extern din colțul din stânga jos și selectând „Aspecte” - „Adăugați” - „Document foaie de calcul”, dați-i un nume. După aceea, completați foaia de calcul cu datele necesare. De exemplu:
    • Comandați pentru articolul nr. [ReleaseNumber] din [ReleaseDate] - faceți clic dreapta - Proprietăți - Aspect - Umplere - Șablon.
    • Creați coloanele care doriți să apară în documentul dvs.
    • Selectați celulele introduse, faceți clic pe Tabel - Nume - Atribuiți un nume - introduceți numele „Header”.
    • Copiați linia cu anteturile tabelului, selectați-le, faceți clic dreapta - Proprietăți - Aspect - Umplere - Parametru.
    • Selectați linia, denumiți-o, de exemplu, „String TH”.
    • Creați un subsol: scrieți Total, celula în care ar trebui să fie afișată suma totală, denumiți SumTotal, selectați „Parametri” în proprietăți.
    • Precizați responsabilul, în proprietățile celulei de afișare a numelui, specificați „Parametri”.
    • Selectați rândurile de jos și denumiți intervalul „Footer”.
  2. Acum, în fereastra de introducere, scrieți funcția pentru generarea unui formular tipărit:

Funcția GeneratePrintForm(ReferenceToDocument,PrintObjects)
SpreadsheetDocument = New SpreadsheetDocument;
SpreadsheetDocument.PrintParameterName = "PRINT_PARAMETERS_InvoiceForVRTU";
ProcessingLayout = GetLayout("InvoiceForPaymentExternal");
// completează antetul
AreaHat = LayoutProcessing.GetArea(„Pălărie”);
AreaHeader.Parameters.DocumentNumber = LinkToDocument.Number;
AreaHeader.Parameters.DocumentDate = LinkToDocument.Date;
AreaHeader.Parameters.OrganizationName = LinkToDocument.Organization.Name;
//afișează antetul într-un document de foaie de calcul
SpreadsheetDocument.Output(RegionHeader);
//completați rândurile PM
StringScope =ProcessingLayout.GetRegion("StringP");
Pentru fiecare CurrentRow din ReferenceToDocument.Products Loop
FillPropertyValues(RowArea.Parameters, CurrentRow);
SpreadsheetDocument.Output(StringArea);
EndCycle;
//completează subsolul
AreaFooter = LayoutProcessing.GetArea("Footer");
AreaFooter.Parameters.QuantityTotal = LinkToDocument.Products.Total("Cantitate");
AreaFooter.Parameters.AmountTotal = LinkToDocument.Products.Total("Suma");
RegionFooter.Parameters.OwnerName = LinkToDocument.Manager.Name;
//se iese subsolul într-un document de foaie de calcul
SpreadsheetDocument.Output(RegionFooter);
SpreadsheetDocument.AutoScale = adevărat;
Întoarceți documentul de foaie de calcul;
EndFunctions

Acest articol va descrie în detaliu modul în care un începător care nu cunoaște bine 1C 8 să creeze un imprimabil. De exemplu, să luăm una dintre cele mai comune configurații 1C 8 - Contabilitate 2.0. Crearea unei etape imprimabile de scriere 1C:

  • Crearea unui fișier extern imprimabil;
  • Crearea unui aspect de formular tipărit;
  • Scrierea unui cod de program pentru afișarea datelor de formular tipărite pe ecran;
  • Crearea parametrilor pentru auto-înregistrarea unui formular tipărit;
  • Conectarea unui formular de imprimare extern la bază 1C Întreprinderi.

Crearea unui formular tipărit 1C. Formularea problemei

Suntem solicitați în configurație Contabilitate 2.0 creați o imprimare 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 chitanței.

Afișați datele din tabel în formă tabelară Produse document. Tabelul ar trebui să includă următoarele coloane:

  • Nomenclatură;
  • Cantitate;
  • Preț;
  • Sumă;
  • La fel și prețul articolului pentru data curentă (pe tip de prețuri din document).

Fișier de procesare extern

Să trecem la rezolvarea problemei. Pentru a începe, deschideți 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 noului fișier.

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

Mai departe în câmp Nume trebuie să introduceți numele procesării externe. În cazul nostru, să-l numim simplu: „Formular de tipărire”, 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 și semne de punctuație.

Adăugați un atribut de procesare externă ObjectReference și selectați pentru el tip DocumentReference.Reception of GoodsServices. Pentru a face acest lucru, în arborele de metadate al prelucrării externe 1C, selectați elementul Rechiziteși apăsați butonul Adăuga(buton verde plus). În partea dreaptă a ecranului, se va deschide fereastra cu proprietățile atributelor, în câmp Nume scrie - LinkToObject. LA camp Tip apăsați butonul cu trei puncte.


Extindeți ramura în arborele de tip DocumentLink, și găsiți acolo articolul Primire de bunuri și servicii, bifați caseta de lângă acesta și faceți clic BINE.

Salvați fișierul de procesare externă în HDD, pentru asta folosim meniul Fișier -> Salvare, pictograma salva(dischetă albastră) sau o comandă rapidă de la tastatură ctrl+s. Să denumim fișierul salvat „PrintForm”.

Creați un aspect imprimabil

Să începem să creăm un aspect imprimabil 1C. Aspectul servește ca șablon pentru ieșirea imprimabilului, așa că dacă doriți ca imprimabilul dvs. 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 de aspect și apăsăm butonul Gata.


În noul aspect care se deschide, să creăm 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ă, selectați numărul necesar de linii de aspect și accesați meniul 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; puteți oricând să le adăugați sau să le eliminați. Pentru a șterge o linie de aspect 1C, selectați linia dorită și selectați în meniul contextual paragraf Șterge. Pentru adaugare linie nouă la aspect, selectați orice linie a aspectului și selectați elementul din meniul contextual împinge în afară.

Adăugarea unui antet de aspect

Să creăm mai întâi o zonă. Un capac, va afișa datele pentru antetul formularului tipărit. Pentru această zonă, avem nevoie de șapte linii de aspect. Selectați-le și, așa cum am scris mai sus, apăsați comanda rapidă de la tastatură Ctrl+Shift+N, în câmp Nume scrie „Pălărie” și apasă butonul Bine.


Să umplem zona de aspect cu datele de care avem nevoie. De obicei, niciun formular tipărit nu este complet fără antet, așa că îl vom crea și în antetul nostru de aspect. Deoarece în antet, 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 antetului din layout. Un parametru de aspect este o celulă de aspect special desemnată în care pot fi afișate 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 ca noi să imprimăm pe orientarea standard peisaj a foii.

De obicei sunt suficiente treisprezece sau paisprezece celule de aspect, selectați-le în prima linie a zonei Un capacși fuzionează într-o singură celulă ( Meniu contextual -> Îmbinare). După aceea, faceți dublu clic pe celula mare rezultată și scrieți numele parametrului, în cazul nostru „HeaderText”. 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. Marcaj Aspect găsi un câmp umplereși alegeț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ă din nou selectați 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, vom afișa în zonă Un capac date despre organizație, contraparte, contract de contrapartidă și data primirii mărfurilor. Deoarece toate aceste date sunt preluate și din document, le vom decora și cu parametri. În plus, înainte de fiecare 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 și unde este contrapartea etc. Toate aceste acțiuni sunt similare cu crearea unui antet, așa că nu mă voi opri asupra lor în detaliu, voi oferi doar o imagine cu ceea ce ar trebui să iasă în cele din urmă.

Figura arată cum diferă opțiunile de aspect de textul simplu.

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. Produse. Coloanele necesare pentru tabel au fost descrise în secțiunea „Declarație de problemă”. De asemenea, vom crea un antet de tabel utilizând îmbinarea celulelor și scrierea textului (numele coloanelor). Selectați marginile antetului tabelului folosind instrumentul Cadru, care se află în bara de formatare a aspectului.


Adăugarea unui tabel la un aspect

Să creăm o altă zonă în aspect - Date. Acesta va afișa tabelul de date al părții tabelare Produse. Avem nevoie de o singură linie de aspect pentru această zonă. Pentru a afișa toate rândurile părții tabulare într-un formular tipărit, vom completa și afișa această zonă de numărul necesar de ori. Vorbitori în zonă Date trebuie să se potrivească cu coloanele din antetul tabelului, deci completarea acestuia nu va fi dificilă. Singura diferenta este in zona Date avem nevoie de opțiuni, nu doar de text. De asemenea, rețineți că, în mod implicit, parametrii numerici sunt formatați pe marginea dreaptă, iar parametrii text în partea stângă. Pentru a selecta coloanele, trebuie să utilizați și instrumentul Cadru.

Adăugarea unui subsol la un aspect

Ultima zonă a aspectului 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 trebuie evidențiate cu caractere aldine.

Rezultatul ar trebui să fie un aspect care să arate 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 obiectului placă de imprimare externă, aici vom programa. Pentru a face acest lucru, în fereastra principală a prelucrării externe, apăsați Acțiuni -> Deschide modul obiect.


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

Funcție Print() Export EndFunction

Rețineți că funcţie dată este obligatoriu pentru tipărirea formularelor externe în configurațiile care utilizează aplicare regulată. Vom scrie tot codul de program ulterior necesar pentru a afișa formularul tipărit î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 - el este cel care este formularul tipărit în care vom afișa zonele umplute ale aspectului.

TabDoc = nou SpreadsheetDocument;

într-o variabilă Aspect vom primi aspectul formularului tipărit creat de noi. Pentru a face acest lucru, folosim funcția încorporată GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

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

Zona antet = Aspect. GetArea("Header"); AreaData = Layout.GetArea("Date"); AreaFooter = Layout.GetArea("Susol");

Afișarea antetului imprimabil într-un document 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. În primul rând, să completăm titlul formularului tipărit, 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, zona de aspect are o colecție specială, care se numește - Opțiuni. Din care prin "." poți obține orice parametru. În textul titlului vom trece textul: „Formular de tipărire”, precum și numărul documentului.

Header Area.Parameters.HeaderText = „Formular de tipărire”+ReferenceToObject.Number;

Parametrii rămași ai antetului vor fi completați într-un mod similar, toate valorile necesare pentru aceștia vor fi obținute din recuzită ReferenceToObject, care conține un link către documentul de tipărit.

HeaderScope.Parameters.Organization = LinkToObject.Organization; Antet area.Parameters.Account = LinkToObject.Account; Antet Area.Parameters.IncomingDate = ObjectReference.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 iesire(<Область>) .

TabDoc.Output(HeaderArea);

Scrierea unei cereri pentru un handicap tipărit

Să începem să umplem și să afișăm zona Date. Crearea unui imprimabil 1C implică și scrierea unei interogări, avem nevoie de ea pentru a obține datele părții tabelare Produse si preturi Nomenclaturi pentru data curentă vom folosi Cerere. Limbajul de interogare 1C 8 este similar cu SQL sau, mai degrabă, îi copiază practic capacitățile. instrucțiunea SELECT, dar întreaga cerere este scrisă în limba rusă. Prin urmare, dacă sunteți cel puțin 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ă s-ar putea face fără ea, dar cunoașterea limbajului de interogare și capacitatea de a-l folosi corect este una dintre principalele abilități ale unui programator 1C. Interogările permit utilizarea mai puține resurse pentru a obține cele mai complexe mostre de date și, de asemenea, este mult mai ușor de înțeles textul interogării decât codul programului scris fără utilizarea unei interogări (sau cu o utilizare minimă a acesteia). În plus, în 1C 8 există foarte bun designer interogări, care vă permite să colectați în mod interactiv o interogare din tabelele necesare.

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

Solicitare = Solicitare nouă;

Textul cererii va fi compus folosind generatorul de interogări. Să începem prin a scrie:

Solicitare.Text = "";

Pune cursorul mouse-ului între ghilimele, dă clic butonul corect soareci. În meniul contextual care se deschide, selectați elementul Constructor de solicitări, ne va ajuta foarte mult în crearea unui imprimabil 1C. După aceea, se va deschide fereastra de proiectare de interogări, care conține multe file, dar interogarea noastră va avea nevoie doar de patru: „Tabele și câmpuri”, „Relații”, „Condiții”, „Asocieri/ Aliasuri”.


Pentru interogarea noastră, avem nevoie de două tabele: partea tabelară Produse document Recepția de bunuri și serviciiși o porțiune din cele mai recente informații cu privire la data curentă a registrului Preturile articolelor.

În partea stângă a ferestrei de designer, găsiți coloana Bază 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, deschideți ramura Documentațieși găsiți documentul Servicii de intrare de mărfuri, extindeți-l și găsiți partea tabelară Produse, trageți-l în coloana designerului de interogări Mese. Există trei moduri de a glisa și plasa: prin glisare, făcând dublu clic pe tabel sau selectând-o și făcând clic pe butonul „>”. Să deschidem o sucursală Informații despre registreși găsiți o masă acolo PricesItems.SliceLast, trageți-l și în coloană Mese. 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ă Mese deschide masa și găsiți câmpurile: Nomenclatură, Sumă, Preț, Cantitateși trageți-le în a treia coloană a constructorului - câmpuri. Să deschidem masa , găsiți câmpul Prețși, de asemenea, trageți-l în câmpuri.


Structura tabelelor și câmpurilor solicitării noastre este gata, acum să ne ocupăm de condiții. Avem nevoie de datele părții tabelare Produse nu au fost luate din toate chitanțele, ci doar din cea pe care o tipărim. Pentru a face acest lucru, impunem o condiție pe masă Bunuri primite Servicii Bunuri. Să mergem la fila „Condiții” a generatorului de interogări. Într-o coloană câmpuri tabelele pe care le-am selectat mai devreme sunt localizate, pentru condiția avem nevoie de câmp Legătură de la masă Primirea de bunuri, servicii, bunuri, trageți-l în fereastra Condiții.

În interogările 1C, puteți utiliza parametri, aceștia sunt necesari pentru a transfera date către interogare. 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ă.

Odată ieşit pe fereastră Condiții am adăugat un câmp Legătură, generatorul de interogări 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ă-l amintiți. Cum se transmite o valoare unui parametru de solicitare 1C va fi discutat mai jos.


Deoarece în interogare nu folosim tabelul complet de preț al articolului, 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 este data tăierii și o condiție pentru tipul de preț (trebuie selectate prețuri care au un tip de preț strict definit - cel care este specificat în documentul de chitanță pe care îl tipărim).

Pentru a completa parametrii tabelului virtual, accesați fila Tabele și câmpuri constructor de interogări, în coloană Mese selectați un tabel PrețuriArticoleSliceUltimeși apăsați butonul Opțiuni de masă virtuală situat în vârf. În fereastra care se deschide, în câmp Perioadă ar trebui să setați parametrul la care va fi trecută data pentru 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ție vom scrie condițiile pentru tipul de preț, îl vom trece și în parametrul, pe care îl vom numi „&PriceType”. Condiția rezultată va arăta astfel (unde Tip de preț- 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 relații între tabelele de interogări. Dacă acest lucru nu se face, atunci prețurile din tabelul PricesItemsSliceLast nu vor fi asociate articolului din chitanță. Să mergem la filă Conexiuni constructor de interogare. Să creăm un link după câmp Nomenclaturăîntre cele două mese ale noastre. Pentru a face acest lucru, apăsați butonul Adăuga, în câmp tabelul 1 alege o masă Bunuri primite Servicii Bunuri, iar în câmpul Tabel 2 - PricesItemsSliceLast. În condițiile de conectare, 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ă Produseși prețurile numai dacă sunt disponibile pentru data curentă după tipul de preț al documentului. Astfel, aceste tabparts Produse sunt obligatorii, dar datele de reducere a prețurilor nu sunt. Prin urmare, în legăturile dintre aceste tabele, este necesar să se folosească așa-numitul LEFT JOIN, iar tabelul din stânga (sau obligatoriu) va fi Bunuri primite Servicii Bunuri, și dreapta (sau opțional) PriceItemSliceLast. 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, rămâne doar să lucrăm puțin la aliasurile de câmp. Accesați marcajul Sindicate / Aliasuriși setați un alias pentru câmp PrețuriArticoleSliceLast.Price. Numele alias va fi − PriceForToday, 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 s-a încheiat, să apăsăm butonul OK. După ce fereastra constructorului se închide, veți vedea că linia cu textul cererii este completată și arată astfel:

Solicitare. Text = „Alege | primirea serviciilor. Nomenclatorii, | primirea serviciilor. Rezumat bunuri, | primirea serviciilor. Agruparea mărfurilor. Produse, | Servicii de investigație. Complexități, | prețurile prizonierilor din ziua următoare. (| &CurrentDate. , PriceType = &PriceType) AS PricesItemsSliceLast | După bunuri primiteServicesGoods.Nomenclature | = PricesItemsSliceLast.Nomenclature |WHERE | Incoming GoodsServicesGoods.Reference = &Reference";

Executarea unei cereri

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

Să executăm o interogare pentru a obține o selecție cu datele de care avem nevoie. Pentru a face acest lucru, folosim mai întâi metoda de interogare A executa(), iar apoi metoda Alege().

Selecție = Query.Execute().Select();

Completarea tabelului imprimabil

Ca urmare, în variabila Probă va conține o selecție de rezultate ale interogării, puteți naviga prin aceasta folosind metoda Următorul(), iar pentru a o ocoli pe întregul va avea nevoie de o buclă Până. Structura va arăta astfel:

While Selection.Next() Loop EndCycle;

În acest ciclu 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ă numărul și suma pe care trebuie să le afișam în zonă subsol.

Suma totală = 0; TotalNumber = 0;

În interiorul buclei, vom umple zona Date date din elementul de selecție curent în variabile Suma totalași Numărul total 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ă iesire(). Deoarece numele câmpurilor din cererea noastră sunt exact aceleași cu numele parametrilor câmpului Date, apoi pentru completare vom folosi procedura încorporată FillPropertyValues(<Приемник>, <Источник>) care copiază valorile proprietății<Источника>la proprietăți<Приемника>.

While Selection.Next() Loop FillPropertyValues(DataArea.Parameters, Selection); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDoc.Output(DataArea); EndCycle;

Ieșirea subsolului formularului de tipărire într-un document de foaie de calcul

Rămâne să umpleți și să afișați ultima zonă a aspectului - subsol. Am pregătit deja datele pentru umplere, umplere și ieșire se efectuează conform aceleiași scheme.

AreaBasement.Parameters.TotalQuantity = TotalQuantity; RegionBasement.Parameters.TotalAmount = TotalAmount; TabDoc.Output(RegionFooter);

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

Return TabDoc;

În această etapă, programarea este finalizată și crearea formularului imprimabil 1c este aproape completă. Textul complet al funcției Sigiliu() Nu îl voi da aici, îl puteți vedea într-un fișier imprimabil, pe care îl puteți descărca în partea de jos a articolului.

Crearea unui formular tipărit 1C. Opțiuni de înregistrare automată

Când conectați un imprimabil extern la baza de date, sistemul nu stabilește automat pentru ce anume document sau director este destinat imprimabilul, trebuie să îl selectați manual. Și dacă o altă persoană a scris formularul tipărit și vi se cere doar să îl conectați, atunci alegerea poate deveni ambiguă. Pentru a evita astfel de probleme, în toate imprimabilele externe este necesar să se creeze un layout cu parametri de auto-înregistrare. Dacă este creat și formatat corect, sistemul stabilește automat pentru ce document sau director este destinat formularul tipărit.

Se face astfel:

  • În procesarea externă, creăm un nou aspect. Îl numim „Parameters_Autoregistration” (important să nu ne înșelim!).
  • În prima celulă a aspectului scriem Documentație.(sau Carti de referinta.) și numele documentului la care doriți să conectați imprimabilul.


Conectarea la baza unui formular de imprimare extern

  • Rulați 1C 8 în modul Companie;
  • Accesați meniu Service -> Rapoarte suplimentare și procesare -> Formulare suplimentare de imprimare externă;
  • 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 secțiunea tabelară Accesoriu al plăcii de imprimare adăugați documentul sau directorul necesar;
  • Apăsăm butonul BINE.


După aceea, imprimabilul extern va fi disponibil în meniu Sigiliu document Livrare de bunuri si servicii. Crearea unui imprimabil 1C pe aceasta poate fi considerată completă.