1c placă de imprimare plug-in. Adăugarea unui imprimabil extern la bază

Luați în considerare să scrieți cel mai simplu imprimabil în 1s 8,1 - 8,2 pe exemplul configurației Contabilitatea întreprinderii 2.0... Să presupunem că vrei să scrii un extern formă tipărită către document: afișați datele de bază ale documentului, precum și din secțiunea tabelară Produse: nomenclatură, preț, cantitate și cantitate.

Puteți descărca exemplul rezultat prin.

În configurator 1C Întreprinderi 8 creați procesare externă ( Fișier-> Nou-> Procesare externă), setați numele, creați cerințele necesare pentru imprimarea externă ReferenceObject cu tip DocumentLink.Realization of GoodsServices.

Crearea unui aspect al unei plăci de imprimare

Adăuga nou aspect, lăsați tipul de aspect Document foaie de calcul... Creăm trei zone pe aspect: Pălărie, Datași subsol... Acest lucru se poate face prin evidențierea numărului necesar de linii și făcând clic pe meniu Tabel-> Nume-> Atribuire nume (Ctrl + Shift + N).

După aceea, începem să plasăm textul și parametrii în zone. Vom afișa în antet numele formularului de tipărire, numărul documentuluiși organizare, și, de asemenea, desenați marginile antetului tabelului și scrieți numele coloanelor. Când creați un parametru în proprietățile unei celule, în fila aspect, setați proprietatea UmplereÎn valoare Parametru.

În zona Date creați parametri pentru afișarea rândurilor secțiunii tabelare ( Nomenclatură, preț etc.), iar în zonă subsol pentru totaluri după cantitate și sumă.

Programare

Să mergem la modulul obiectului imprimabil Actions-> Open Object Module.

Să creăm o funcție de export, care este necesară pentru formularele imprimabile. Sigiliu().

Funcția Print () Export EndFunction

În funcție, creați o variabilă pentru document foaie de calcul, în care va fi afișată forma tipărită, obținem aspectși zonele de amenajare.

TabDoc = nou TabularDocument; Layout = Obține aspect („Layout”); Zona antet = Layout.GetArea ("Header"); DataScope = Layout.GetScope ("Date"); AreaFooter = Layout.GetArea ("Footer");

Completați parametrii pălăriiși afișați-l în document foaie de calcul.

Captions.Parameters.TextHeader = + ReferenceObject.Number; AreaHaps.Parameters.Organization = ReferenceObject.Organization; TabDok.Display (AreaHap);

Pentru a obține rândurile secțiunii tabelare Produse folosim cererea.

Cerere = cerere nouă; Request.SetParameter ("Link", LinkOnObject); Request.Text = „SELECT | Vânzarea de bunuri, servicii, bunuri, nomenclatură, | Vânzarea de bunuri, servicii, bunuri, sumă, | Vânzarea de bunuri, servicii, bunuri, preț, | Vânzări de mărfuri, servicii, mărfuri, cantitate| DE LA | Document.Realizarea de BunuriServicii.Bunuri AS Vânzarea de BunuriServiciiBunuri| UNDE | Implementarea GoodsServicesGoods.Link = & Link ";

Treceți recuzita la parametrul de solicitare ReferenceObject a indica in stare UNDE ca avem nevoie doar de datele documentului din care afisam imprimabilul. Pentru a obține o interogare, mai întâi o executăm și apoi preluăm rândurile.

Selecție = Query.Run ().Selectare ();

Apoi, în buclă, completați parametrii zonei Date pentru fiecare linie de selecție a documentului și afișați-le în document foaie de calcul... De asemenea, în ciclu, calculăm valorile totale cantitateși sume... Nu vom completa fiecare parametru separat, ci vom folosi procedura FillPropertyValues ​​​​((<Приемник>, <Источник>) din context global, copiază valorile proprietății <Источника> în proprietăți <Приемника> ... Potrivirea se face prin nume de proprietate. Puteți citi mai multe despre asta în asistent de sintaxă 1C Enterprise 8.

Suma totală = 0; TotalQuantity = 0; While Fetch.Next () Loop FillPropertyValues ​​​​(ScopeData.Parameters, Fetch); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDok.Display (ScopeData); Sfârșitul ciclului;

Completați și afișați zona subsol.

AreaBoard.Parameters.TotalQuantity = TotalQuantity; AreaBoard.Parameters.TotalSum = TotalSum; TabDok.Display (Zona Subsol);

Întoarcerea documentului tabelar completat din funcție Sigiliu().

returnarea TabDoc;

Dacă utilizați una dintre configurațiile tipice, atunci după returnarea documentului foaie de calcul 1C va afișa formularul tipărit în sine. Puteți utiliza, de asemenea, metoda documentului tabelar pentru ieșire Spectacol().

5. Conectarea unui document imprimabil la un document

V configurații tipice 1C 8 există un director pentru înregistrarea formularelor externe imprimabile Procesare externă... Pentru a vă conecta, accesați meniul în modul întreprindere Service-> Rapoarte suplimentare și procesare-> Formulare externe imprimabile suplimentare.

Adăugați un nou element al directorului, încărcați imprimabilul de pe disc și selectați tipul de document.

Acum în doc Vanzare de bunuri si servicii va apărea un nou imprimabil.

Înregistrarea automată a imprimabilului

Pentru a evita nevoia de a selecta manual tipul de document la conectarea formularului de printare, puteți configura înregistrare auto... Pentru a face acest lucru, adăugați un aspect nou și denumiți-l AutoRegister_Parameters(numai așa) și în prima ei celulă scriem Documentație.<Наименование документа> (sau Carti de referinta.<Наименование справочника> ).

Acum, când conectăm un imprimabil, ni se va solicita să folosim parametrii de auto-înregistrare.

Printablele externe pentru o aplicație obișnuită (pentru configurația Enterprise Accounting 2.0, Payroll and Human Resources 2.5, Trade Management 10.3 etc.) sunt destul de simplu de creat în comparație cu imprimabilele externe pentru o aplicație gestionată.

De ce să creați plăci de imprimare externe

Avantajul unei plăci de imprimare externe față de una convențională este că evită modificarea configurației bazei de informații. Aceasta înseamnă că procesul de actualizări ulterioare de configurare nu va fi complicat. În plus, plăcile de imprimare externe, împreună cu tratamentele externe, sunt singura opțiune pentru extinderea funcționalității. versiuni de bază Configurații 1C care nu pot fi modificate deloc.

Și ultimul lucru: formele de imprimare externă 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 imprimabil extern

Luați în considerare procesul de creare a unui formular de imprimare extern 1C în pași:

  1. Creăm procesare externă. Pentru a face acest lucru, în configurator, selectați elementul de meniu Fișier - Nou...Și în caseta de dialog de deschidere - Prelucrare externă.
  2. Creați o recuzită de procesare externă numită ReferenceObject... Tip de atribut - un link către o carte de referință sau un document pentru care este creat un imprimabil extern. Aceeași formă poate fi folosită pentru mai multe tipuri de obiecte, în acest caz tipul de date al atributului ReferenceObject trebuie să fie compozit.
  3. În modulul obiect, creați o funcție de export numită Sigiliu, care ar trebui să returneze un document tabelar gata făcut al unui formular de tipărire.

Se întâmplă adesea că trebuie să ajustați ușor aspectul unei plăci de imprimare existente și să o faceți externă. De exemplu, adăugați un sigiliu al organizației și semnătura unui manager la aspect.

Crearea unei plăci de imprimare externe pe baza uneia standard cu modificări minore

Să luăm în considerare această procedură folosind exemplul creării unui imprimabil extern pentru un document de transfer universal pentru un document. Vanzare de bunuri si servicii 1C: Contabilitate. Acesta va diferi de forma standard de tipărire prin prezența sigiliului organizației.

  1. Creați procesare externă cu recuzită LinkToObject, tip de date - DocumentLink.Realization of GoodsServices.
  2. Găsim aspectul formei standard de tipărire a UPD (este în machetele generale) și îl copiam (glisați și plasați) în fereastra de procesare externă. Aspectele altor formulare tipărite pot fi localizate în documentele în sine sau în cărțile de referință.
  3. Facem modificările necesare la aspectul copiat al plăcii de imprimare.
  4. Găsim funcția responsabilă pentru formarea plăcii de imprimare. Această funcție ar trebui să returneze foaia de calcul generată. Copierea conținutului acestuia în funcția de export Sigiliu()în modulul obiectului de prelucrare externă.
    În cazul nostru, aceasta este funcția Imprimarea documentului de transfer universal () Export din modulul obiect document Vanzare de bunuri si servicii.
    Dacă modificările aspectului au fost semnificative (zonele și/sau parametrii modificați), atunci este necesar să faceți ajustările corespunzătoare ale funcției de imprimare.
  5. Încercarea de a menține procesarea externă. Acesta va afișa cel mai probabil mesaje de eroare legate de absența unor proceduri și funcții numite de funcția de imprimare. Aceste funcții și proceduri trebuie găsite în documentul original și, de asemenea, copiate în modulul obiectului de prelucrare externă. Sau corectați linkul dacă funcția sau procedura originală este exportată.
  6. (nu este necesar). Pentru testarea unei plăci de imprimare externă, este convenabil să-i faceți forma, pe care să plasați recuzita ReferenceObject... Buton A executa ar trebui să apeleze procedura Sigiliu() din modulul obiect. Pentru a face acest lucru, o procedură este atribuită evenimentului clic pe buton:

După cum se știe - fara o bucata de hartie tu... nicio afacere serioasă nu poate face. Și când spunem că există niște documente electronice în 1C, atunci imediat apare întrebarea cum să le imprimăm pe hârtie.

Proces de imprimare document electronic 1C se numește placa de imprimare 1C.

Fiecare document poate avea mai multe forme de printare 1C. De exemplu, documentul Vânzarea de bunuri și servicii (adică vânzare) este tipărit în forme de tipărire 1C: TORG-12, scrisoare de transport, scrisoare de însoțire, certificat de servicii prestate și așa mai departe.

Esența formularului de imprimare 1C este un șablon (cum ar fi un document Excel) în care sunt setate variabilele. În timpul procesului de tipărire, în locul variabilelor, textul din documentul electronic este înlocuit. Șablonul este de obicei stocat în configurație.

Problema cu schimbarea formei tipice de imprimare 1C este că de obicei nu este de dorit să se schimbe configurația tipică, altfel va fi mai dificil de actualizat. Prin urmare, au început să fie inventate diferite metode de utilizare a plăcilor de imprimare externe 1C.

O placă de imprimare externă 1C este un șablon de imprimare care este stocat separat de configurația în sine.

Totuși, aceasta este toată teorie. Cum să creați singur un formular tipărit? Mai bine încă, cum faci modificări unuia existent?

Cum este tipărit un document 1C

Pentru a imprima orice document 1C (care poate fi tipărit), trebuie să faceți clic pe butonul Imprimare din document. 1C va oferi să selecteze un formular de printare 1C pentru acest document din listă.

În stânga butonului Print, există de obicei un buton de acces rapid la ultimul formular de printare 1C selectat.

Rezultatul imprimării arată astfel. Pentru a o imprima pe o imprimantă, trebuie să puneți cursorul în forma de printare 1C, apăsați Ctrl + P sau butonul cu imprimanta de pe bara de butoane sau în meniul Fișier / Imprimare.

Setările de imprimare (margini, orientarea hârtiei etc.) se află în meniul Fișier / Configurare pagină. De asemenea, în setările utilizatorului, îl puteți face să printeze direct pe imprimantă.

De unde vine acest imprimabil?

Unde este formularul tipărit 1C

Să mergem la configurator. Să găsim documentul necesar în fereastra de configurare. Să deschidem filiala Layouts. Ei sunt cei care se transformă în forma de imprimare 1C atunci când imprimă.

Cu toate acestea, nu va fi suficient - ni s-a oferit să alegem mai multe opțiuni atunci când imprimăm. Faptul este că multe aspecte ale formularelor de printare 1C sunt ascunse în alt loc.

Să revenim la partea de sus a ferestrei de configurare 1C. Deschideți filiala General, apoi filiala Aspecte generale. Aici se află majoritatea layout-urilor. Acest lucru este valabil mai ales pentru formularele tipărite reglementate de stat 1C - TORG 12, Factură etc.

Apropo, nu este greu de observat că veți vedea mai multe machete de TORG12 sau Factură. De ce? Acest lucru este ușor de explicat. Legile și cerințele se modifică periodic. Dar nu putem schimba pur și simplu același aspect - și dacă trebuie să tipărim documentul de la o dată care este anterioară datei modificate. Prin urmare, se realizează mai multe machete și, în funcție de data documentului, se folosește cea corectă.

Dar asta nu este tot! Există și amenajări externe. Unde sunt depozitate?

Să revenim la modul 1C Enterprise. Prin meniul utilizatorului cu drepturi administrative Operațiuni/Directoare, selectați Directorul de procesare externă.

Rândurile acestui director, care au forma Printable, adaugă opțiuni de imprimare pentru documentul specificat în Tabelul de Afiliere a Printable (în imagine este Vânzarea bunurilor de servicii).

Pentru ca acest lucru să funcționeze trebuie să faceți o prelucrare externă, care are în modulul său obiect procedura Print () cu marca Export, care organizează procesul de imprimare.
Dar ne depășim pe noi înșine. Să vedem mai întâi cum este organizată aspectul plăcii de imprimare 1C.

Aspectul plăcii de imprimare 1C

Dispunerea plăcii de imprimare 1C este următoarea.

După cum puteți vedea, este împărțit în blocuri. Blocurile pot fi orizontale (numele din stânga) și verticale (numele de mai sus).

Aspectul în sine, așa cum este, nu este tipărit. Blocurile individuale sunt imprimate. Programatorul din rutina de procesare a tipăririi specifică ordinea blocurilor și numărul de repetări ale fiecărui bloc. Ca rezultat, se formează placa de imprimare.

Pentru a atribui o zonă - selectați mai multe rânduri (sau mai multe coloane) și selectați în meniul Tabel / Nume / Atribuire nume. Pentru a elimina - există și comanda Eliminare nume.

Numele este necesar pentru ca zona să poată fi accesată din codul programului. Titlul poate fi atribuit nu numai rândurilor sau coloanelor, ci și doar mai multor celule. Pentru a face acest lucru, selectați celulele și selectați același meniu.

Cu toate acestea, în mod implicit, numele de celule personalizate nu sunt afișate. Pentru a le vedea - selectați elementul de meniu Tabel / Nume / Afișare celule cu nume.

Așadar, astăzi am aflat că formularul de imprimare 1C este format folosind un layout. Dispunerea este alcătuită din blocuri – inteligent – ​​zone denumite.

Blocuri tipice (utilizate în mod obișnuit) pentru o placă de imprimare:

  • Antet - afișează titlul documentului
  • Linie - este afișată o linie a tabelului, acest bloc se repetă de câte ori sunt linii de imprimat
  • Subsol - este afișat sfârșitul documentului.

Acum trebuie să ne ocupăm de fapt

Acest articol descrie cum să conectați o placă de imprimare externă la baza 1C folosind exemplul configurației „Trade Management 10.3”

Configurația „Trade Management 10.3” este o configurație pe așa-numitele formulare „REGULAR”, și nu pe formularele „GESTIONATE” precum „Trade Management 11.2”, vă recomandăm să citiți formularele „GESTIONATE”.

Instrucțiunea noastră „arată” cum să conectați o placă de imprimare externă în 1C cu o configurație pe formulare „REGULAR”, și anume:

  • „Contabilitatea 2.0”
  • „Managementul comerțului 10.3”
  • „Gestionarea salariului și a personalului 2.5”
  • „Automatizare integrată 1.1”
  • "Control întreprindere producătoare 1,3"
  • „Retail 1.0”
  • și alte configurații similare.

Pentru a conecta o placă de imprimare externă în 1C, trebuie să parcurgem 11 pași.

1 - Meniul „Service”. 2 - Selectăm „Forme de tipărire externe și prelucrare”. 3 - Următorul - „Formulare de tipărire externe” (vezi figura de mai jos ↓)

Pentru a vă convinge că această instrucțiune este potrivită și pentru alte configurații pe formulare „STANDARD” - vă vom prezenta aceeași inițială 1-2-3 pași, dar nu în „Trade Management 10.3”, ci în „Contabilitatea 2.0” totul este acolo, cu excepția cuvintelor ușor modificate din subparagrafe, și anume ...

1 - Meniul „Service” (precum și în „UT 10.3”, și în altele).
2 - Aici „Rapoarte și procesare suplimentare”, și nu „Forme de tipărire externe și procesare” ca în „UT 10.3”,
dar totuși, semnificația este aceeași și se află în același loc în meniul „Service”.
3 - Și apoi - „Plăci de imprimare externe suplimentare”, i.e. un cuvânt suplimentar „Adițional” în comparație cu „UT 10.3” (vezi figura de mai jos ↓)

Apoi vom continua cu exemplul „Trade Management 10.3” fără comparații inutile.
4 - Apăsați butonul „+”, adică "Adăuga". 5 - Butonul în care este desenat folderul (la hover va apărea un indiciu: „Înlocuiește fișierul de procesare externă”).

În noile versiuni ale 1C (din august 2016), programul are încorporat un mecanism de avertizare cu privire la pericolul utilizării procesoarelor externe necunoscute care pot conține „viruși”; în versiunile anterioare ale programului, avertismentul nu va apărea! Dacă apare, atunci pentru a conecta procesarea externă va fi necesar - 6 - apăsați butonul „Continuare”. (vezi poza de mai jos ↓)

7 - Selectăm directorul în care se află fișierul formularului de tipărire externă de care avem nevoie. 8 - Selectați fișierul nostru. 9 - Faceți clic pe „Deschidere” (vezi figura de mai jos ↓)

10 - Un imprimabil extern poate avea parametri de auto-înregistrare, ca în cazul nostru, aici este logic să faceți clic pe „Da” - folosind astfel acești parametri în timpul înregistrării, de exemplu. selectați automat acele obiecte (documente sau poate, de exemplu, directoare) în care va fi posibil să utilizați un plug-in extern imprimabil (vezi figura de mai jos ↓)

Asta e tot, am completat tabelul „Proprietatea formularului tipărit”, datorită parametrilor de auto-înregistrare, vedem numele formularului de tipărire extern conectat, poate veți completa câmpul „Comentariu” etc. Puteți adăuga obiectele dvs. în tabelul „Proprietatea formularului tipărit”, de exemplu, pentru procesarea noastră „Formular universal imprimabil al contractului”, care acceptă tipărirea multor documente și cărți de referință, dar parametrii de auto-înregistrare sunt setați numai pentru cele principale: 10* - Faceți clic pe butonul verde „Adăugați” și alegeți ce obiecte să plasați pentru procesare. Acum tot ce rămâne este... 11 - faceți clic pe butonul „OK” și (vezi figura de mai jos ↓)

Acum merită verificat - am făcut totul bine?
Pentru a face acest lucru, selectați un obiect pentru verificare, de exemplu, documentul „Vânzarea de bunuri și servicii”, care este indicat în tabelul „Afilierea formularului de tipărire”, ceea ce înseamnă că formularul de tipărire conectat poate fi utilizat în acest document! Să verificăm... (vezi poza de mai jos ↓)

Pentru a verifica posibilitatea de tipărire, deschideți orice document din formularul: „Vânzarea de bunuri și servicii”. 13 - Apăsați butonul „Imprimare”.
Vedem - a apărut o fereastră pentru selectarea formularelor de tipărire, printre acestea se numără - 14 - placă de imprimare externă conectată de noi (vezi poza de mai jos ↓)

Acest articol vă va spune în detaliu cum să creați un imprimabil pentru un începător care nu știe prea multe despre 1C 8. 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 al unei plăci de imprimare externă;
  • Crearea unui layout imprimabil;
  • Scrierea codului de program pentru afișarea datelor imprimabile pe ecran;
  • Crearea parametrilor pentru auto-înregistrarea unui imprimabil;
  • Conectarea unei plăci de imprimare externă la bază 1C Enterprise.

Crearea unui formular de tipar 1C. Formularea problemei

Suntem solicitați în configurație Contabilitate 2.0 creați o imprimare pentru document Recepția de bunuri și servicii... Tipăriți următoarele date în antetul fișierului imprimabil:

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

Sub forma unui tabel, afișați datele secțiunii tabelare Produse document. Tabelul trebuie să includă următoarele coloane:

  • Nomenclatură;
  • Cantitate;
  • Preț;
  • Sumă;
  • Și, de asemenea, prețul articolului pentru data curentă (după tipul de prețuri 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 noului fișier.

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

Mai departe în domeniu Nume trebuie să introduceți numele tratamentului extern. În cazul nostru, să-l numim simplu: „Formular de tipărire”, câmpul sinonim va fi completat automat. Rețineți că în teren Nume, procesare externă, ar trebui să scrieți numele fără spații și semne de punctuație.

Adăugați o recuzită pentru procesare externă LinkOnObject și selectați pentru el tip DocumentLink.Sosirea mărfurilorServicii... Pentru a face acest lucru, în arborele metadatelor de procesare externă 1C, selectați elementul Rechiziteși apăsați butonul Adăuga(buton verde plus). În partea dreaptă a ecranului, se va deschide fereastra de proprietate, în câmp Nume scrie - ReferenceObject. V camp Un fel apăsați butonul cu trei puncte.

În arborele de tip, deschideți ramura DocumentLink, și găsiți acolo articolul Primire Bunuri/Servicii, puneți o bifă în față și faceți clic O.K.

Să salvăm fișierul de procesare externă pe hard disk, 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 „Formular de tipărire”.

Crearea unui aspect al unei plăci de imprimare

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

În arborele metadatelor de procesare externă, adăugați un aspect nou; în fereastra de proiectare de aspect, nu vom schimba nimic și faceți clic pe butonul Gata.

În noul aspect care se deschide, creați mai multe zone necesare pentru ieșirea materialului imprimabil. 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 zonei î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 a aspectului 1C, selectați linia necesară și selectați elementul din meniul contextual Șterge... Pentru a adăuga o nouă linie la aspect, selectați orice linie din aspect și selectați elementul Împingeți în afară.

Adăugarea unui antet de aspect

În primul rând, să creăm o zonă Capac, datele pentru antetul printabilului vor fi afișate acolo. 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 O.K.

Să umplem zona de aspect cu datele de care avem nevoie. De obicei, nicio imprimare nu este completă fără un titlu, așa că haideți să creăm unul și în antetul nostru. Întrucât în ​​titlu, pe lângă numele formularului de tipărire, vom afișa și numărul documentului din care a fost tipărit, vom seta textul titlului în layout cu un parametru. 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 de printare, așa că haideți să stabilim câte celule de aspect vor fi suficiente pentru a imprima pe orientarea standard peisaj a foii.

De obicei sunt suficiente treisprezece sau paisprezece celule de aspect, selectați-le în prima linie a zonei Capacși se combină î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 „TitleText”. Pentru ca textul introdus să devină un parametru cu drepturi depline, faceți clic dreapta pe celulă și selectați elementul Proprietăți... Pe un marcaj Aspect găsi câmpul Umplereși alegeți valoarea Parametru... Parametrii din aspectul 1C sunt indicați prin paranteze "<>».

Titlul textului imprimabil ar trebui să iasă în evidență printre celelalte text, așa că din nou selectați celula și, folosind pictogramele de pe panoul de formatare a aspectului, setați alinierea textului Centruși dimensiunea fontului 14.

După textul titlului, vom afișa în zonă Capac date privind organizarea, contrapartida, contractul contrapartidei si data primirii marfii. Deoarece toate aceste date sunt preluate și din document, le vom aranja și cu parametri. În plus, înainte de fiecare parametru, trebuie scris 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ă fie rezultatul.

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

Adăugarea unui antet de tabel de aspect

Ultimul lucru pe care trebuie să-l creăm în această zonă a aspectului este antetul tabelului, în care vor fi afișate datele secțiunii tabelare. Produse... Coloanele necesare pentru tabel au fost descrise în secțiunea „Declarație de problemă”. De asemenea, vom crea antetul tabelului folosind concatenarea celulelor și scrierea textului (numele coloanelor). Selectați marginile antetului tabelului folosind instrumentul Cadru care se află în panoul de formatare a aspectului.

Adăugarea unui tabel la aspect

Să creăm o altă zonă în aspect - Date... Acesta va afișa tabelul de date al secțiunii tabelare Produse. Avem nevoie de o singură linie de aspect pentru această zonă. Pentru a afișa toate rândurile secțiunii tabulare într-un formular imprimabil, vom completa și afișa această zonă de câte ori este necesar. Coloane din zonă Date trebuie să se potrivească cu coloanele din antetul tabelului, așa că este ușor de completat. Singura diferenta este in zona Date avem nevoie de parametri, nu doar de text. De asemenea, rețineți că, în mod implicit, parametrii numerici sunt aliniați la dreapta, iar parametrii de text sunt aliniați la stânga. Pentru a selecta coloanele, trebuie să utilizați și instrumentul Cadru.

Adăugarea unui subsol la aspect

Ultima zonă de aspect de care avem nevoie este subsol... Va afișa totalurile după cantitate și cantitate. Crearea este similară cu crearea zonei Date, dar în plus, totalurile trebuie evidențiate cu caractere aldine.

Ca rezultat, ar trebui să obțineți următorul aspect:

Crearea unui formular de tipar 1C. Programare

Să începem programarea - aceasta este cea mai importantă etapă în crearea unei plăci de imprimare. În primul rând, vom merge la modulul obiectului formularului de imprimare externă, aici vom programa. Pentru a face acest lucru, în fereastra principală a procesării externe, faceți clic Actions -> Open Object Module.

În modulul obiectului formularului de imprimare externă, trebuie să creați o funcție de export Sigiliu().

Funcție Print () Export End Functions

Vă rugăm să rețineți că această funcție este necesară pentru plăcile de imprimare externe în configurații care utilizează o aplicație obișnuită. Vom scrie tot codul de program ulterior necesar pentru afișarea imprimabilului în această funcție.

Inițializarea variabilelor de bază

Să creăm o variabilă TabDoc, care va conține documentul foaie de calcul - el este cel care este imprimabilul în care vom afișa zonele umplute ale aspectului.

TabDoc = nou TabularDocument;

Într-o variabilă Aspect obținem aspectul plăcii de imprimare pe care am creat-o. Pentru a face acest lucru, folosim funcția încorporată Obține aspectul (<ИмяМакета>).

Layout = Obține aspect („Layout”);

Vom transforma toate zonele layout-ului în variabile. Pentru aceasta folosim metoda layout-ului GetArea (<ИмяОбласти>) .

Zona antet = Layout.GetArea ("Header"); DataScope = Layout.GetScope ("Date"); AreaFooter = Layout.GetArea ("Footer");

Ieșirea antetului imprimabil î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. În primul rând, să completăm antetul imprimabilului, pentru aceasta trebuie să trecem parametrul TextHeader, 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 așa - Parametrii. Din care prin „." poți obține orice parametru. În textul titlului vom transfera textul: „Printable”, precum și numărul documentului.

AreaHaps.Parameters.TextHeader = „Printable” + ReferenceOnObject.Number;

Completați restul parametrilor antetului într-un mod similar, obținem toate valorile necesare pentru ei din recuzită ReferenceObject, care conține un link către documentul care se imprimă.

AreaHaps.Parameters.Organization = ReferenceObject.Organization; AreaHaps.Parameters.Contractor = ReferenceObject.Contractor; AreaHaps.Parameters.ArrivalDate = ReferenceObject.Date; AreaHaps.Parameters.Contractor Agreement = ReferenceObject.Contractor 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 (<Область>) .

TabDok.Display (AreaHap);

Scrierea unei cereri pentru un handicap imprimabil

Să completăm și să ieșim zona Date... Crearea unui imprimabil 1C înseamnă și scrierea unei cereri, avem nevoie de ea pentru a obține datele secțiunii tabelare Produse si preturi Nomenclaturi pentru data curentă vom folosi Anchetă... 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 chiar de la distanță 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 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, iar textul interogării este mult mai ușor de înțeles decât în ​​codul programului scris fără utilizarea unei interogări (sau cu o utilizare minimă a acesteia). În plus, 1C 8 are un proiectant de interogări foarte bun, care vă permite să colectaț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 interogare. Mai întâi, să scriem:

Solicitare.Text = "";

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

Pentru interogarea noastră, avem nevoie de două tabele: secțiunea tabulară Produse document Recepția de bunuri și serviciiși o porțiune din registrul de informații recente pentru data curentă 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, le vom găsi pe cele de care avem nevoie. Pentru a face acest lucru, deschideți ramura Documentațieși găsiți documentul Sosirea mărfurilor și serviciilor, deschideți-l și găsiți secțiunea tabelară Produse trăgându-l în coloana designerului de interogări Mese... Puteți să glisați și să plasați în trei moduri: prin glisare și plasare, făcând dublu clic pe tabel sau selectând-o și apăsând butonul „>”. Să deschidem filiala Registre de informațiiși găsiți masa acolo PrețuriNomenclatură.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 interogării noastre este gata, acum să ne ocupăm de condiții. Avem nevoie de datele secțiunii tabelare Produse au fost luate nu din toate chitanțele, ci doar din cea pe care o tipărim. Pentru a face acest lucru, impunem o condiție pe masă Sosirea mărfurilor... Să mergem la fila „Condiții” a designerului de interogări. Într-o coloană Câmpuri tabelele pe care le-am selectat mai devreme sunt localizate, pentru condiția avem nevoie de un câmp Legătură de la masă Recepția de bunuri, servicii, bunuri, trageți-l în fereastra Condiții.

În cererile 1C, puteți utiliza parametri, aceștia sunt necesari pentru a transfera date către cerere. De exemplu, dacă dorim să restricționăm selecția documentelor la un anumit document, atunci folosind un parametru, putem 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ă ce a ieșit pe fereastră Condiții am adăugat un câmp Legătură, generatorul de interogări va crea el însuși un parametru cu același nume și îl va plasa după semnul „=". Acest parametru poate fi redenumit dacă se dorește. Parametrii din textul solicitării sunt marcați cu „&”, dar în acest caz nu trebuie să faceți acest lucru, deoarece se presupune că a doua parte a condiției conține un parametru, trebuie doar să-l amintiți. Cum se transferă o valoare la un parametru de solicitare 1C va fi descris mai jos.

Deoarece în interogare nu folosim un tabel complet de prețuri articole, ci unul virtual (o reducere a acestuia din urmă în acest caz), trebuie să stabilim condițiile pentru formarea acestui tabel virtual, în cazul nostru aceasta este tăierea data si o conditie pentru tipul de pret (trebuie selectate preturi care au un tip de pret strict definit - cel care este specificat in documentul de chitanta pe care il tiparim).

Pentru a completa parametrii tabelului virtual, accesați fila Tabele și câmpuri constructorul de interogare, în coloană Mese selectați tabelul PrețuriNomenclaturăSliceLastși apăsați butonul Parametrii tabelului virtual situat în vârf. În fereastra care se deschide, în câmp Perioadă ar trebui să setați parametrul la care va fi transmisă data, la care se vor reduce prețurile. În cazul nostru, aceasta va fi data curentă (adică astăzi), prin urmare 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 „& TypePrice”. Condiția rezultată va arăta astfel (unde Tip de preț- măsurarea registrului Preturile articolelor):

PriceType = & PriceType

Parametrii tabelului virtual sunt completați, apăsați butonul O.K.

Acum că am limitat selecția doar la documentul de care avem nevoie, vom crea legături între tabelele de interogări. Dacă nu faceți acest lucru, atunci prețurile din tabelul ItemNomenclatureSlicePrices nu vor fi legate de articolul din chitanță. Să mergem la filă Conexiuni constructor de interogare. Creați un link peste 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 selectați tabelul Sosirea mărfurilor, iar în câmpul Tabelul 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ă Produseși prețuri numai dacă există pentru data curentă după tipul documentului prețuri. Astfel, aceste file Produse sunt necesare, dar datele privind reducerea 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 necesar) va fi Sosirea mărfurilor, ș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 Tot după câmp Tabelul 1.


Interogarea este aproape gata, a mai rămas doar puțin de lucru cu aliasurile de câmp. Să mergem la marcaj Sindicate / Aliasuriși setați un alias pentru câmp PrețuriNomenclaturăSliceLast.Price... Numele alias va fi - PrețAzi, este necesar pentru ca numele câmpurilor selecției de interogare și numele parametrilor din aspectul imprimabilului să fie aceleași.

Acest lucru finalizează munca în designerul de interogări, apăsați butonul OK. După ce fereastra constructorului se închide, veți vedea că linia cu textul cererii este completată și arată astfel:

Zapros.Tekst = „SELECT | PostuplenieTovarovUslugTovary.Nomenklatura, | PostuplenieTovarovUslugTovary.Summa, | PostuplenieTovarovUslugTovary.Tsena, | PostuplenieTovarovUslugTovary.Kolichestvo, | TsenyNomenklaturySrezPoslednih.Tsena AS TsenaNaSegodnya | DIN | Dokument.PostuplenieTovarovUslug.Tovary AS PostuplenieTovarovUslugTovary | alătura stânga RegistrSvedeniy.TsenyNomenklatury.SrezPoslednih (| & CurrentDate, PriceType = &PriceType) AS PricesNomenclatureSliceLatest | ON Incoming GoodsServicesGoods.Nomenclature | = PricesNomenclaturesSliceLatest.Nomenclature | WHERE | Incoming GoodsServicesGoods.Link = & Link ";

Executarea unei cereri

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

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

Selecție = Query.Run ().Selectare ();

Completarea tabelului formularului de tipărire

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 complet, aveți nevoie de o buclă Până... Construcția va fi după cum urmează:

While Fetch.Next () Loop End of Loop;

Î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 aduna totalurile pentru cantitatea și suma pe care trebuie să o aducem î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 Cantitatea totala adăugați valorile cantității și cantității și, în final, afișați zona din documentul foaie de calcul folosind metoda deja familiară nouă Ieșire ()... Deoarece numele câmpurilor interogării noastre coincid complet cu numele parametrilor domeniului Date, apoi pentru completare vom folosi procedura încorporată FillPropertyValues ​​​​(<Приемник>, <Источник>), care copiază valorile proprietății<Источника>în proprietăți<Приемника>.

While Fetch.Next () Loop FillPropertyValues ​​​​(ScopeData.Parameters, Fetch); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDok.Display (ScopeData); Sfârșitul ciclului;

Ieșirea subsolului unui formular 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 completarea, completarea și retragerea se efectuează conform aceleiași scheme.

AreaBoard.Parameters.TotalQuantity = TotalQuantity; AreaBoard.Parameters.TotalSum = TotalSum; TabDok.Display (Zona Subsol);

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

Returnarea TabDoc;

În această etapă, programarea s-a încheiat și crearea plăcii de imprimare 1c este aproape completă. Text cu funcția completă Sigiliu() Nu o voi da aici, o puteți vedea în fișierul imprimabil, care poate fi descărcat în partea de jos a articolului.

Crearea unui formular de tipar 1C. Parametri de înregistrare automată

Când conectați un formular de tipărire extern la bază, sistemul nu stabilește automat pentru ce document sau carte de referință este destinat formularul de tipărire, acesta trebuie selectat manual. Și dacă o altă persoană a scris formularul tipărit și ați fost instruit doar să-l conectați, atunci alegerea poate deveni ambiguă. Pentru a evita astfel de probleme, este necesar să se creeze un aspect cu parametrii de auto-înregistrare în toate formele externe imprimabile. 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. Îi spunem „Autoregistration_Parameters” (este important să nu te înșeli!).
  • În prima celulă a aspectului, scrieți Documentație.(sau Carti de referinta.) și numele documentului la care doriți să conectați imprimabilul.

Conectare la baza unei plăci de imprimare externe

  • Rulați 1C 8 în modul Companie;
  • Accesați meniul Service -> Rapoarte suplimentare și procesare -> Formulare externe imprimabile suplimentare;
  • 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ă Afilierea plăcii de imprimare adăugați documentul sau directorul necesar;
  • Apasa butonul O.K.

După aceea, imprimabilul extern va fi disponibil în meniu Sigiliu document Recepția de bunuri și servicii. Crearea formularului de printare 1C poate fi considerată completă în acest moment.

Articole similare

2022 selectvoice.ru. Treaba mea. Contabilitate. Povesti de succes. Idei. Calculatoare. Revistă.