Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • OS
  • 1c parametri vanjske štamparske ploče. Izlaz štampanih obrazaca sa zahtevom za podatke u obrascu "Štampaj dokumenata" iz BSP podsistema "Štampanje"

1c parametri vanjske štamparske ploče. Izlaz štampanih obrazaca sa zahtevom za podatke u obrascu "Štampaj dokumenata" iz BSP podsistema "Štampanje"

Svi su više puta vidjeli kako se, u tipičnim konfiguracijama baziranim na BSP-u (Biblioteka standardnih podsistema), štampani obrasci izgrađeni na osnovu tabelarnog dokumenta prikazuju u posebnoj formi "PrintDocuments". Ovaj obrazac je dio podsistema "Štampanje" iz BSP-a. Kada razvijate svoje štamparske forme, ponekad je potrebno od korisnika zatražiti dodatne podatke potrebne za štampanje. Ovo postavlja pitanje kako, u ovom slučaju, prikazati ispis u formi "Štampaj dokument". U ovom članku ću razmotriti kako implementirati izlaz printable u pomenutu formu iz podsistema "Print", ako želimo da zatražimo dodatne podatke od korisnika prije izlaza printable. Ovdje će se razmatrati dva slučaja: kada se obrazac za štampanje implementira pomoću podsistema "Dodatni izvještaji i obrada" i kada se obrazac za štampanje dodaje u konfiguraciju u konfiguratorskom modu, tj. promjene su napravljene u tipičnoj konfiguraciji.

Obrazac "PrintDocuments" pruža neke dodatne funkcije kada radite sa obrascima za štampanje, kao što su:

  • dugme za štampanje na štampaču, direktno u obrascu;
  • naznaka broja primeraka, štamparska forma;
  • uređivanje generirane tiskarske ploče;
  • mogućnost spremanja štampanog obrasca u različitim formatima podataka (Excel, Word, PDF, itd.);
  • slanje štampanog obrasca e-mailom;
  • zgodan rad sa kompletom dokumenata.

Ovaj obrazac sada koristi 1C u svim standardnim konfiguracijama za izlaz ispisanih oblika dokumenata i elemenata direktorija. I naravno, kada razvijamo naše štamparske forme, kako ne bismo išli dalje od prihvaćene prakse, trebalo bi da prikažemo i naše štamparske forme koristeći priložene alate.

Kada koristite standardne metode dodavanja obrazaca za štampanje, podsistem "Print" će učiniti sve umesto nas i prikazati ispis kako treba. Na primjer:

  1. Kada dodajemo naredbu za štampanje u dokument koristeći podsistem "Print", potrebno je da opišemo komandu za štampanje u proceduri AddPrintCommands, naznačujući menadžer štampanja u kojem je implementirana procedura Print;
  2. Prilikom kreiranja Dodatne obrade potrebno je da u modulu objekta obrade u funkciji ExternalProcessing Information opišemo naredbu sa tipom upotrebe Pozovi metodu servera i odmah implementiramo Print proceduru, koja na određeni način implementira poziv na formiranje the printable.

U takvim slučajevima, kao što sam već rekao, podsistem za štampanje će po potrebi ispisati štampanu formu koju smo sami formirali. Takve metode podrazumijevaju direktno formiranje tiskarske ploče, tj. prebacio objekte za štampanje u proceduru štampanja, formirao tabelarni dokument i prikazao ga na ekranu.

Ali šta ako, prije početka formiranja dokumenta proračunske tablice, trebate zatražiti neke podatke od korisnika? One. moramo pokazati obrazac. U ovom slučaju je narušen standardni redoslijed formiranja tiskarske forme i moramo razmisliti o tome kako prenijeti našu formu za štampanje u obrazac „PrintDocuments“.

U ovom slučaju moguće su dvije situacije:

  1. Kada se kreira ispis sa promjenom konfiguracije;
  2. Kada se štampa koja se kreira bez promene konfiguracije, tj. koristeći podsistem "Dodatni izvještaji i obrada".

Kreiramo ispis tako što ga dodajemo kroz konfigurator.

Prva varijacija. Kroz kreiranje obrade sa timom.

Ova opcija omogućava dodavanje obrade direktno objektima metapodataka:

Razmotrimo varijantu kada treba da implementiramo obrazac za štampanje za određeni objekat, na primer, katalošku stavku. Da bismo to učinili, moramo raditi na četiri lokacije obrade:

  1. Kreirajte naredbu koja će pozvati formu našeg printable;
  2. Kreirajte sam obrazac;
  3. Kreirajte izgled za ispis;
  4. Napravite promjene u modulu upravitelja obrade.

Napravite tim

U svojstvima naredbe navodimo:

  • Grupa u kojoj želimo da se tim prikaže u obrascu;
  • Tip parametra je samo ona referenca ili dokument, koji se može ispisati;
  • Način korištenja parametara je Višestruki. Da biste mogli prikazati obrasce za štampanje, odjednom po nekoliko elemenata odabranih na listi.

U komandnom modulu otvorite obrazac za obradu tako što ćete prenijeti njegove odabrane elemente direktorija za koje je potrebno generirati obrasce za štampanje. Nemojmo biti pametni i malo ispravimo tipičan kod koji je zamijenjen platformom u proceduri obrade naredbi:

& OnClient ProcedureCommandProcessing (CommandParameter, CommandParameters) // Ubacite sadržaj rukovaoca. FormParameters = Nova struktura ("PrintData", CommandParameter); OpenForm ("Procesing.Printable.Form", Parametri obrasca, Parametri izvršenja komande.Izvor, Parametri izvršavanja komande.Jedinstveni, Parametri izvršavanja komande.Prozor, Parametri izvršavanja komande.NavigationLink); Kraj procedure

Parametar procedure Command Parameter sadrži elemente koje smo odabrali za ispis.

Kreirajte oblik

Dodajmo obrazac u obradu, kreiramo atribut obrasca tipa List of Values ​​i rekvizite da unesemo dodatne parametre za ispis:

DataForPrint - tip ValuesList;

Broj linija - Vrsta broja.

Moj primjer će biti čisto demo, pa hajde da uslovno definišemo šta je moj cilj da u ispisanoj liniji prikažem reprezentaciju selektovanog elementa i broj redova koje ćemo izabrati kao dodatni parametar na obrascu.

Idite na modul obrasca i napišite sljedeći kod:

& AtServer procedura AtCreateAtServer (Cancel, StandardProcessing) PrintData.LoadValues ​​(Parameters.PrintData); EndProcedure & OnClient Procedure Print (Command) Print ControlClient.RunPrintCommand ("Process.PrintForm", // Print Manager "PrintForm", // Identifier GetObjectsTo Print (), // PrintObjectsThisObject, iz kojeg )); // Parametri ispisa - proizvoljni parametri koji se prosljeđuju upravitelju ispisa EndProcedure & OnServer funkcija GetObjectsForPrint () Array = DataForPrint.UploadValues ​​(); Return Array; Funkcija EndFunction & OnServer GetPrintParameters () PrintParameters = Nova struktura; Print Parameters.Insert ("Zaglavlje obrasca", "Odštampaj obrazac"); // Jedan od parametara za obrazac "Ispis dokumenta". // Označava naslov obrasca za ispis. // Ovdje dodajemo naše parametre koje želimo dodatno prenijeti u print manager. Print Parameters.Insert ("Broj redova", Broj redova); Povrat opcije štampanja; EndFunction

Definiramo proceduru AtCreateAtServer iu njoj čitamo iz parametra koji smo prenijeli iz naredbe prilikom otvaranja obrasca, listu objekata za koje trebamo generirati ispis.

U formi kreiramo naredbu Print i napišemo njen rukovatelj, u kojem pozivamo funkciju zajedničkog modula Print ControlClient.RunCommandPrint, postavljamo potrebne parametre ove funkcije, i to:

  • Print manager - naziv objekta u modulu menadžera, koji je definiran funkcijom Print, koja formira naš printable;
  • Identifikator - identifikator štampe koju želite da odštampate. Po ovom identifikatoru, u funkciji Print modula menadžera, izabraćemo koji obrazac za štampanje treba da se odštampa;
  • Objekti štampe su direktno oni objekti za koje se formiraju štamparske forme;
  • Vlasnik obrasca;
  • Parametri štampanja - ovde formiramo i prenosimo strukturu sa parametrima za štampanje, odmah prenosimo naše dodatne parametre koje smo tražili od korisnika u obrascu za obradu.

Zapravo, pozivanjem funkcije ExecutePrintCommand iz obrasca za obradu, rješavamo naš problem izlaza ispisa u formu "PrintDocuments". Nadalje, podsistem "Print" će izvršiti standardne radnje i dovesti izvršenje do procedure Print, koju moramo definirati u modulu našeg menadžera obrade.

Kreirajte izgled za štampanje

Izmjena u modulu menadžera obrade

Od ovog trenutka sprovodimo standardne akcije za razvoj štampanih formulara koristeći podsistem „Štampanje“ iz BSP-a.

Dodajte sljedeći kod u modul menadžera:

Procedura Štampanje (Objekti niza, parametri za štampanje, kolekcija obrazaca za štampanje, objekti za štampanje, izlazni parametri) Izvoz ako se kontroliše štampanje. . Obrazac za štampanje. PF_MXL_ Obrazac za štampanje",); EndIf; EndProcedure & OnServer funkcija PrintLayout (ArrayObjects, PrintParameters) TabularDocument = Novi TabularDocument; // Kreirajte dokument sa proračunskom tablicom ////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /// ////////////// // REDEFINISANI DIO MODULA // // Ovdje formiramo naš Layout za ispis = Get Layout ("PF_MXL_Printable"); Za svaki objekat From ArrayObjects Loop AreaHeat = Layout.GetArea ("Header"); RegionObject = Layout.GetScope ("Objekat"); TabularDocument.Display (AreaHap); RegionObject.Parameters ["Object"] = Objekt; TabularDocument.Display (ScopeObject); Za N = 1 po parametrima štampanja ["Broj linija"] Loop AreaRow = Layout.GetArea ("Linija"); RegionString.Parameters ["String"] = Sč; TabularDocument.Output (AreaString); Kraj ciklusa; TabularDocumentOfferHorizontalPageSplitter (); Kraj ciklusa; // REDEFINISANI DIO MODULA /////////////////////////////////////////// /////////////////////////////////////////////// // //////////////// Povratak tabelarnog dokumenta; // Vratite dokument proračunske tablice EndFunction

Druga opcija. Kroz implementaciju naredbe print.

Ova opcija je vrlo slična prvoj po pitanju štampe. Njegova razlika je u načinu kreiranja komande koja će se prikazati u interfejsu i pokrenuti naše štampanje.

U ovom slučaju, prilikom definiranja naredbe print koristimo i podsistem "Print" iz BSP-a. Umjesto da definišemo naredbu za otvaranje obrade u samoj obradi, potrebno je da odemo do modula menadžera objekta kojem želimo da dodamo printable, te u proceduri podesimo opis naredbe za ispis Dodajte komande za štampanje (naredbe za štampanje):

Procedura AddPrint Commands (Naredbe za ispis) Izvoz Naredba za ispis = Print Commands.Add (); PrintCommand.ID = "PrintForm"; PrintCommand.Presentation = NStr ("ru =" Štampanje štamparske ploče ""); PrintCommand.Processor = "CommonModulePrintingForm.ProcessingPrintCommandPrintForm"; Print Command.Order = 100; Kraj procedure

Ovdje svim obrascima imenika (podsjećam da radimo sa suradnicima u imeniku) dodajemo naredbu za ispis pod nazivom "Print Form". I ovdje je glavna stvar koja se mora uzeti u obzir. Možete dodati dvije vrste naredbi u obrazac:

1. Pozivanje procedure Print iz modula menadžera;

2. Pozivanje klijentske metode.

To je upravo poziv na klijentsku metodu koja nam je potrebna. Klijent metoda će nam omogućiti da pozovemo obrazac za obradu, u kojem ćemo od korisnika tražiti podatke koji su nam potrebni prije štampanja.

Da biste implementirali takav poziv, kada definirate naredbu, postavite Handler za nju (pogledajte kod iznad). Rukovalac komandom prima string koji sadrži putanju do funkcije klijenta, tj. put do funkcije Export zajedničkog modula na klijentu. Ova funkcija će se pozvati kada kliknemo na naredbu print koju dodamo u obrasce.

Kao što razumijete, da bi ovo funkcioniralo, morate kreirati ovaj CommonModule i definirati funkciju Export. Stoga pišemo sljedeći kod u našem zajedničkom modulu:

Funkcija ProcessPrintModelCommandPrint (PrintParameters) Izvoz // Zalijepi sadržaj rukovatelja. Parametri obrasca = Nova struktura ("Print Data", Print Parameters.Print Objects); OpenForm ("Obrada. Ispis obrasca. Obrazac", Parametri obrasca); EndFunction

Ovdje radimo isto kao u prvoj implementaciji, otvaramo obrazac za ispis, samo što će sada naši podaci za ispis biti sadržani u parametru proslijeđenom funkciji Print Parameters, odnosno u njenom polju Print Objects.

Nakon što smo otvorili obrazac za obradu, sve radnje su slične prvoj opciji.

Implementacija ove opcije može se naći u tipičnim konfiguracijama, u mehanizmima povezanim sa pečatom pristanka na obradu ličnih podataka.

Izrađujemo dodatnu obradu.

Što ako ovo nije naša konfiguracija i ako je podržana? I općenito ne želimo ulaziti u konfiguraciju i uređivati ​​je?

U ovom slučaju trebamo koristiti podsistem "Dodatni izvještaji i obrada" iz BSP-a.

Sa ovim rješenjem trebamo napisati kod na samo dva mjesta, a sva su u našoj budućoj dodatnoj obradi:

1. Modul objekta obrade;

2. Modul obrasca za obradu.

U objektnom modulu napišite sljedeći kod:

//////////////////////////////////////////////////////////////////////// // //////////////////////////// // SOFTVERSKO INTERFEJS # Područje programskog sučelja // Vraća informacije o vanjskoj obradi. ExternalProcessingData Funkcija () Izvoz RegistrationParameters = AdditionalReports ANDProcessing.ExternalProcessingInformation ("2.2.2.1"); Registration Parameters.View = AdditionalReportAndProcessingClientServer.Processing ViewPrintForm (); Parametri registracije Verzija = "1.0"; NewCommand = RegistrationParameters.Command.Add (); NewCommand.Presentation = NStr ("ru =" Eksterni ispis sa preliminarnim zahtjevom za podacima ""); NewCommand.Identifier = "ExternalPrintable"; NewCommand.Use = AdditionalReportAndProcessingClientServer.CommandTypeFormOpening (); NewCommand.ShowNotification = Tačno; NewCommand.Modifier = "PrintMXL"; Return Registration Parameters; EndFunction Procedure Print (PrintData, Print Form Collection, Print Objects, Output Parameters) Export If Print Control. Morate odštampati Layout (Print Form Collection, "External Print Form") Zatim Print Control. ),); EndIf; EndProcedure & AtServer funkcija Print Layout (PrintData) PrintParameters = PrintData.Value; // Prima parametre ispisa od prvog elementa ListValues ​​ArrayObjects = PrintData.Copy (); // Kopiraj listu vrijednosti ArrayObjects Delete (0); // Izbrišite linije kopiranog elementa koji sadrže parametre ispisa TabularDocument = New TabularDocument; // Kreirajte dokument sa proračunskom tablicom ////////////////////////////////////////// /////////////////////////////////////////////////////////////////////// /// ////////////// // REDEFINISANI DIO MODULA // // Ovdje formiramo naš Layout za ispis = Get Layout ("Layout"); Za svaki objekat From ArrayObjects Loop AreaHeat = Layout.GetArea ("Header"); RegionObject = Layout.GetScope ("Objekat"); TabularDocument.Display (AreaHap); RegionObject.Parameters ["Object"] = Objekt; TabularDocument.Display (ScopeObject); Za N = 1 po parametrima štampanja ["Broj linija"] Loop AreaRow = Layout.GetArea ("Linija"); RegionString.Parameters ["String"] = Sč; TabularDocument.Output (AreaString); Kraj ciklusa; TabularDocumentOfferHorizontalPageSplitter (); Kraj ciklusa; // REDEFINISANI DIO MODULA /////////////////////////////////////////// /////////////////////////////////////////////// // //////////////// Povratak tabelarnog dokumenta; // Vraća dokument proračunske tablice EndFunction # EndScope

Postoje dvije funkcije i jedna procedura.

Standardna funkcija za dodatnu obradu je ExternalProcessing Information (), bez nje sistem neće razumjeti da je ovo dodatna obrada. Ovdje je važna stvar naznačiti da komanda implementirana u ovoj obradi ima tip Otvaranje obrasca... One. otvorićemo formular kako nam zatreba. Ono što slijedi je definicija Print procedure i funkcije koja direktno formira naš tabelarni dokument.

Ovdje treba obratiti pažnju da naredba print u ovom slučaju treba da sadrži samo 4 parametra, a ne 5 kao što je uobičajena definicija naredbe print u modulu menadžera. U ovom slučaju ne postoji parametar za prijenos parametara ispisa. Stoga ćemo biti kreativni kako bismo, osim samih objekata, za koje se formira printable, prenijeli i parametre koje tražimo od korisnika u obrascu.

I tako smo definirali dodatnu obradu, naredba iz koje će otvoriti obrazac za obradu. Stoga je sljedeći korak kreiranje obrasca za obradu.

U ovom obliku trebamo kreirati tri rekvizita za pohranjivanje vrijednosti koje će nam trebati u budućnosti. Nazovimo ove detalje na sljedeći način:

CommandID - tip String

Objekti dodjele - tip ValueList

U modul ovog obrasca upišite sljedeći kod:

& AtServer procedura OnCreateAtServer (Failure, StandardProcessing) // Kada kreirate na serveru, zapamtite standardne parametre koje prosleđuje podsistem AdditionalReportsAndProcessing AdditionalProcessingRef = Parameters.AdditionalProcessingRef; CommandID = Parametri.CommandID; AssignmentObjects.LoadValues ​​(Parameters.AssignmentObjects); EndProcedure & OnClient Procedure Print (Command) // Dobijte ključ jedinstvenosti otvorenog obrasca. UniqueKey = String (Novi UniqueIdentifier); // Definiranje i popunjavanje standardnih parametara za opći obrazac PrintDocumentsOpen Parameters = Nova struktura ("Izvor podataka, izvorni parametri"); OpenParameters.DataSource = AdditionalProcessingRef; OpenParameters.SourceParameters = Nova struktura ("CommandIdentifier, AssignmentObjects"); OpenParameters.SourceParameters.CommandIdentifier = CommandIdentifier; // Objekti za ispis i parametri uneseni u obrazac za obradu // proći ćemo kroz parametar Source Parameters.ObjectsDesignsOpen Parameters.ParametersSource.ObjectsDesigns = GetDesignObjectsAndPrintParameters (); OpenForm ("GeneralForm.PrintingDocuments", Parametri otvaranja, Vlasnik obrasca, Jedinstveni ključ); EndProcedure & OnServer funkcija GetAssignObjectsAndPrintParameters () PrintData = AssignmentObjects.Copy (); /////////////////////////////////////////////// // ///////////////////////////////////////////// //// //////// // REDEFINIRANI DIO MODULA // // Ovdje kreiramo strukturu parametara ispisa i popunjavamo je onim parametrima // koje treba proslijediti funkciji printanja Print Parameters = New Structure; Print Parameters.Insert ("Broj redova", Broj redova); PrintData.Insert (0, PrintParameters); // REDEFINISANI DIO MODULA /////////////////////////////////////////// /////////////////////////////////////////////// // //////////////// Vraćanje podataka za ispis; EndFunction

U proceduri AtCreateAtServer, popunjavamo naša tri props-a, koje smo kreirali za pohranjivanje parametara proslijeđenih obrascu za obradu.

Zatim definišemo rukovalac za dugme za štampanje na obrascu. U ovom rukovaocu mi sami trebamo otvoriti obrazac "Ispis dokumenata", za to trebamo pripremiti otvorene parametre određene strukture. U ovoj strukturi moraju biti definirana najmanje dva polja:

Izvorni parametri, koji uključuju CommandID i ObjectsPurpose:

Identifikator komande - takođe se čuva kada se kreira na serveru, ovo je identifikator komande koja je pozvala formu naše obrade. Stoga ćemo za identifikator definirati šta trebamo ispisati u proceduri Print u objektnom modulu.

ObjectsDesigns - upravo u ovo polje trebamo proći niz objekata za koje se formira printable, kao i parametre tražene od korisnika u obrascu.

Kako definiram ciljeve može se vidjeti u funkciji GetObjectsAssignments and Print Options... Ovdje kopiram naša odredišta iz props forme, umjesto elementa niza sa indeksom 0, lijepim naše parametre za ispis.

Ovako definisan niz će se ubuduće prenositi iz forme „Štampaj dokumente“, kao prvi parametar Print procedure modula objekta, koji smo ranije definisali.

Ako se vratimo na definiciju modula objekta obrade i pogledamo funkciju PrintMoot, u prva tri reda funkcije možete vidjeti kako izdvajam naše parametre i objekte iz podataka proslijeđenih u Print proceduru i zatim radim sa njima.

Takve manipulacije sa parametrom TargetObjects uslovljene su specifičnostima poziva procedure modula Print object. Možete pratiti kako se prosljeđuju parametri i obavljaju pozivi funkcija otvaranjem modula obrasca PrintDocuments.

Rezultat.

Kao rezultat ovakvih manipulacija, dobićemo tri komande na obrascu iz kojih želimo da prikažemo ispis:

Numeracija naredbi odgovara redoslijedu opcija implementacije.

Sve ove naredbe će izvršiti iste radnje:

Prikaži obrazac zahtjeva za dodatne parametre

Iznesite generisane štampane obrasce u obrazac "Štampanje dokumenata".... To je upravo ono što smo htjeli:

P.S. Kao šablone, za implementaciju mojih štamparskih formi sa zahtevom za dodatnim parametrima, istovarujem obe obrade koje su uključene u sve tri metode formiranja štamparske ploče.

Ovaj članak će vam detaljno reći kako napraviti ispis za početnika koji ne zna mnogo o 1C 8. Na primjer, uzmimo jednu od najčešćih konfiguracija 1C 8 - Računovodstvo 2.0... Kreiranje 1C faze pisanja za štampanje:

  • Izrada datoteke vanjske tiskarske ploče;
  • Izrada izgleda za ispis;
  • Pisanje programskog koda za prikaz podataka za ispis na ekranu;
  • Kreiranje parametara za automatsku registraciju ispisa;
  • Povezivanje vanjske ploče za štampanje na bazu 1C Enterprise.

Izrada štamparske forme 1C. Formulacija problema

Potrebni smo u konfiguraciji Računovodstvo 2.0 kreirajte ispis za dokument Prijem robe i usluga... Odštampajte sljedeće podatke u zaglavlju ispisa:

  • Organizacija;
  • Counterparty;
  • Ugovor o drugoj strani;
  • Datum prijema.

U obliku tabele prikazati podatke tabelarnog dela Proizvodi dokument. Tabela treba da sadrži sljedeće kolone:

  • Nomenklatura;
  • Količina;
  • Cijena;
  • Suma;
  • I takođe cena artikla za tekući datum (prema vrsti cena iz dokumenta).

Eksterna datoteka za obradu

Pređimo na rješavanje problema. Prvo, otvorimo 1C 8 u modu Konfigurator... U ovom načinu se odvijaju svi razvoji na platformi 1C 8. Sada trebamo kreirati eksternu datoteku za obradu. Da biste to učinili, kliknite na meni Fajl -> Novo ... ili ikonom nove datoteke.

U prozoru koji se otvori odaberite stavku Eksterna obrada.

Dalje na terenu Ime morate unijeti naziv vanjskog tretmana. U našem slučaju, nazovimo to jednostavno: "Obrazac za štampanje", polje za sinonim će se automatski popuniti. Obratite pažnju na to na terenu ime, eksternu obradu, ime treba napisati bez razmaka i znakova interpunkcije.

Dodajte rekvizite za eksternu obradu LinkOnObject i odaberite za njega tip DocumentLink. Dolazak robe usluga... Da biste to učinili, u stablu metapodataka za eksternu obradu 1C odaberite stavku Requisites i pritisnite dugme Dodati(zeleno plus dugme). Na desnoj strani ekrana otvorit će se prozor svojstava, u polju Ime pisati - ReferenceObject. V polje Tip pritisnite dugme sa tri tačke.

U stablu tipa otvorite granu DocumentLink, i tamo pronađite stavku Prijem robe/usluge, stavite kvačicu ispred nje i kliknite UREDU.

Spremimo eksternu datoteku za obradu na tvrdi disk, za to koristimo meni Datoteka -> Sačuvaj, piktogram Sačuvaj(plava disketa) ili prečica na tastaturi Ctrl + S... Nazovimo sačuvanu datoteku "Obrazac za štampanje".

Izrada layouta štamparske ploče

Počnimo kreirati izgled 1C obrasca za štampanje. Izgled služi kao predložak za ispis koji se može ispisati, pa ako želite da vaš ispis izgleda dobro, obratite pažnju na njega.

U stablo metapodataka za eksternu obradu dodajte novi izgled; u prozoru dizajnera izgleda nećemo ništa mijenjati i kliknite na dugme Spreman.

U novom rasporedu koji se otvara, kreirajte nekoliko oblasti potrebnih za izlaz ispisa. Sva područja rasporeda koja su nam potrebna bit će horizontalna, tako da za kreiranje novog područja odaberite potreban broj linija rasporeda i idite na meni Tabela -> Imena -> Dodijeli ime ili koristite prečicu na tastaturi Ctrl + Shift + N, zatim unesite naziv područja u polje. Kada kreirate područje rasporeda, nemojte se bojati pogriješiti s brojem linija, uvijek ih možete dodati ili ukloniti. Da biste izbrisali redak 1C izgleda, odaberite potrebnu liniju i odaberite stavku u kontekstnom izborniku Izbriši... Da biste dodali novu liniju u izgled, odaberite bilo koju liniju u rasporedu i odaberite stavku Razdvojite se.

Dodavanje zaglavlja izgleda

Prije svega, napravimo područje Kapa, podaci za zaglavlje ispisa će biti prikazani tamo. Za ovo područje nam je potrebno sedam linija rasporeda. Odaberite ih i, kao što sam gore napisao, pritisnite prečicu na tastaturi Ctrl + Shift + N, na terenu Ime napišite "šešir" i pritisnite dugme uredu.

Popunimo područje rasporeda podacima koji su nam potrebni. Obično nijedan ispis nije potpun bez zaglavlja, pa hajde da ga kreiramo iu našem zaglavlju. Pošto ćemo u naslovu pored naziva štamparske forme ispisati i broj dokumenta iz kojeg je odštampan, parametrom ćemo postaviti tekst naslova u izgledu. Parametar rasporeda je posebno određena ćelija rasporeda u koju se mogu prikazati različiti podaci pomoću ugrađenog 1C 8 jezika. Naslov bi trebao biti prikazan na cijeloj širini obrasca za štampanje, tako da odredimo koliko će nam ćelija izgleda biti dovoljno za štampanje na standardnoj pejzažnoj orijentaciji lista.

Obično je dovoljno trinaest ili četrnaest ćelija rasporeda, odaberite ih u prvom redu područja Kapa i spojiti u jednu ćeliju ( Kontekstni meni -> Spajanje). Nakon toga, dvaput kliknite na rezultirajuću veliku ćeliju i upišite naziv parametra, u našem slučaju "TitleText". Da bi uneseni tekst postao punopravni parametar, desnom tipkom miša kliknite ćeliju i odaberite stavku Svojstva... Na obeleživaču Izgled pronađite polje Punjenje i odaberite vrijednost Parametar... Parametri u 1C izgledu su označeni zagradama "<>».

Naslov koji se može ispisati trebao bi se izdvojiti među ostalim tekstom, pa još jednom odaberite ćeliju i pomoću ikona na ploči za oblikovanje rasporeda postavite poravnanje teksta Centar i veličina fonta 14.

Nakon teksta naslova, prikazat ćemo se u području Kapa podatke o organizaciji, ugovornoj strani, ugovoru druge strane i datumu prijema robe. S obzirom da su svi ovi podaci takođe preuzeti iz dokumenta, mi ćemo i njih urediti sa parametrima. Osim toga, prije svakog parametra treba napisati tekst objašnjenja kako bi korisnik mogao lako razumjeti gdje se nalazi organizacija, a gdje druga strana itd. Sve ove radnje su slične kreiranju zaglavlja, tako da se neću detaljnije zadržavati na njima, dat ću samo sliku s onim što bi trebao biti rezultat.

Slika pokazuje kako se opcije izgleda razlikuju od normalnog teksta.

Dodavanje zaglavlja tabele rasporeda

Posljednja stvar koju trebamo kreirati u ovom dijelu izgleda je zaglavlje tablice, u kojem će biti prikazani podaci tabelarnog odjeljka. Proizvodi... Kolone potrebne za tabelu opisane su u odjeljku "Izjava o problemu". Također ćemo kreirati zaglavlje tabele koristeći spajanje ćelija i pisanje teksta (nazivi kolona). Odaberite ivice zaglavlja tabele pomoću alata Okvir koji se nalazi u oknu za formatiranje izgleda.

Dodavanje tabele u izgled

Kreirajmo još jedno područje u rasporedu - Podaci... Prikazaće tabelu podataka tabelarnog odeljka Proizvodi. Potrebna nam je samo jedna linija rasporeda za ovo područje. Da bismo prikazali sve redove tabelarnog odeljka u obliku za štampanje, popunićemo i prikazati ovo područje onoliko puta koliko je potrebno. Kolone u okolini Podaci mora odgovarati kolonama zaglavlja tabele, tako da je jednostavno popunjavanje. Jedina razlika je u području Podaci potrebni su nam parametri, a ne samo tekst. Također imajte na umu da su, prema zadanim postavkama, numerički parametri poravnati desno, a tekstualni parametri lijevo. Da biste odabrali kolone, također morate koristiti alat Okvir.

Dodavanje podnožja u izgled

Posljednje područje rasporeda koje nam treba je Podrum... Prikazaće ukupne iznose po količini i količini. Kreiranje je slično stvaranju područja Podaci, ali pored toga, zbrojeve treba istaknuti podebljanim slovima.

Kao rezultat, trebali biste dobiti sljedeći raspored:

Izrada štamparske forme 1C. Programiranje

Počnimo s programiranjem - ovo je najvažnija faza u kreiranju tiskarske ploče. Prije svega, idemo na modul objekta eksterne štamparske forme, tu ćemo programirati. Da biste to učinili, u glavnom prozoru vanjske obrade kliknite Akcije -> Otvori objektni modul.

U modulu objekta eksterne ispisne forme potrebno je kreirati funkciju za izvoz Pečat().

Funkcija Ispis () Izvoz Kraj funkcije

Imajte na umu da je ova funkcija potrebna za eksterne ploče za štampanje u konfiguracijama koje koriste redovnu aplikaciju. Napisat ćemo sav naredni programski kod potreban za prikazivanje ispisa unutar ove funkcije.

Inicijalizacija osnovnih varijabli

Kreirajmo varijablu TabDoc, koji će sadržavati tabelarni dokument - on je taj za ispis u kojem ćemo prikazati popunjena područja izgleda.

TabDoc = novi TabularDocument;

U varijablu Izgled dobijamo izgled štamparske ploče koju smo kreirali. Da bismo to učinili, koristimo ugrađenu funkciju Nabavite izgled (<ИмяМакета>).

Layout = Get Layout ("Layout");

Sve oblasti rasporeda ćemo dobiti u varijable. Za to koristimo metodu rasporeda GetArea (<ИмяОбласти>) .

Područje zaglavlja = Layout.GetArea ("Header"); DataScope = Layout.GetScope ("Podaci"); AreaFooter = Layout.GetArea ("Footer");

Izlaz zaglavlja za štampanje u tabelarni dokument

Sve potrebne varijable su inicijalizirane. Počnimo da popunjavamo i prikazujemo područja rasporeda u dokumentu proračunske tabele. Prije svega, popunimo zaglavlje printable, za to moramo proći u parametar TextHeader, koji smo kreirali u izgledu, tekst koji nam je potreban. Za popunjavanje vrijednosti parametara, područje izgleda ima posebnu kolekciju, koja se zove tzv. Parametri. Od čega preko "." možete dobiti bilo koji parametar. U tekst naslova prenijet ćemo tekst: "Primable", kao i broj dokumenta.

AreaHaps.Parameters.TextHeader = "Primable" + ReferenceOnObject.Number;

Popunite ostale parametre zaglavlja na sličan način, sve potrebne vrijednosti za njih dobijamo iz rekvizita ReferenceObject, koji sadrži vezu do dokumenta koji se štampa.

AreaHaps.Parameters.Organization = ReferenceObject.Organization; AreaHaps.Parameters.Contractor = ReferenceObject.Contractor; AreaHaps.Parameters.ArrivalDate = ReferenceObject.Date; AreaHaps.Parameters.Contractor Agreement = ReferenceObject.Contractor Agreement;

Svi parametri zaglavlja su popunjeni, prikazat ćemo ga u dokumentu proračunske tablice koji smo kreirali, za to koristimo metodu Izlaz (<Область>) .

TabDok.Display (AreaHap);

Pisanje zahtjeva za ispis hendikepa

Popunimo i izbacimo područje Podaci... Kreiranje 1C printable također znači pisanje zahtjeva, potrebno nam je da dobijemo podatke tabelarnog dijela Proizvodi i cijene Nomenklature za trenutni datum koji ćemo koristiti Upit... Jezik upita 1C 8 je sličan SQL-u, odnosno praktično kopira mogućnosti njegovog SELECT operatora, ali je cijeli upit napisan na ruskom. Stoga, ako ste čak i izbliza upoznati sa SQL-om, lako ćete razumjeti 1C 8 jezik upita.

U ovom štampanom obliku, zahtjev će biti prilično jednostavan i mnogi će reći da bi se moglo i bez njega, ali poznavanje jezika upita i sposobnost njegove ispravne upotrebe jedna je od glavnih vještina 1C programera. Upiti omogućavaju korištenje manje resursa za dobivanje najsloženijih uzoraka podataka, a tekst upita je mnogo lakši za razumijevanje nego u programskom kodu napisanom bez korištenja upita (ili uz minimalnu upotrebu). Osim toga, 1C 8 ima vrlo dobar dizajner upita koji vam omogućava interaktivno prikupljanje upita iz potrebnih tabela.

Kreirajmo varijablu koja će sadržavati zahtjev.

Zahtjev = Novi zahtjev;

Tekst zahtjeva ćemo sastaviti koristeći konstruktor upita. Prvo, napišimo:

Request.Text = "";

Stavite kursor miša između navodnika, pritisnite desnu tipku miša. U kontekstnom meniju koji se otvori izaberite stavku konstruktor upita, mnogo će nam pomoći u kreiranju 1C štamparske forme. Nakon toga će se otvoriti prozor dizajnera upita, koji sadrži mnogo kartica, ali za naš upit su potrebne samo četiri: "Tabele i polja", "Relacije", "Uslovi", "Pridruživanja / aliasi".

Za naš upit potrebne su nam dvije tabele: tabelarni dio Proizvodi dokument Prijem robe i usluga i dio najnovijeg registra informacija za trenutni datum Cijene artikala.

Na lijevoj strani prozora dizajnera pronađite kolonu Baza podataka... Sadrži stablo svih metapodataka objekata, mi ćemo pronaći one koji su nam potrebni. Da biste to učinili, otvorite granu Dokumentacija i pronađite dokument Dolazak robe i usluga, otvorite ga i pronađite tabelarni dio Proizvodi prevlačenjem u kolonu dizajnera upita Stolovi... Možete prevući i ispustiti na tri načina: prevlačenjem i ispuštanjem, dvostrukim klikom na tabelu ili odabirom i pritiskom na dugme ">". Hajde da otvorimo filijalu Informacijski registri i pronađite sto tamo CijeneNomenklatura.SliceLast, također ga prevucite u kolonu Stolovi... Ove dvije tabele su dovoljne za naš upit.

Odaberimo polja koja su nam potrebna iz rezultirajućih tabela. Da biste to učinili, u koloni Stolovi otvori sto i pronađite polja: Nomenklatura, količina, cijena, količina i prevucite ih u treću kolonu konstruktora - Polja... Hajde da otvorimo sto , pronađite polje Cijena i prevucite ga na Polja.

Struktura tabela i polja našeg upita je spremna, sada se bavimo uslovima. Potrebni su nam podaci tabelarnog dijela Proizvodi nisu uzeti iz svih računa, već samo iz one koju štampamo. Da bismo to učinili, postavljamo uslov na sto Dolazak robe... Idemo na karticu "Uvjeti" dizajnera upita. U koloni Polja nalaze se tabele koje smo ranije odabrali, za uslov nam je potrebno polje Veza sa stola Prijem robe, usluga, robe, prevucite ga u prozor Uslovi.

U 1C zahtjevima možete koristiti parametre, oni su potrebni za prijenos podataka u zahtjev. Na primjer, ako želimo ograničiti izbor dokumenata na određeni dokument, onda pomoću parametra možemo zahtjevu proslijediti vezu na ovaj dokument i koristiti ovaj parametar u uvjetu. Upravo to ćemo učiniti u našem zahtjevu.

Posle kroz prozor Uslovi dodali smo polje Veza, kreator upita će sam kreirati parametar sa istim imenom i postaviti ga iza znaka "=". Ovaj parametar se po želji može preimenovati. Parametri u tekstu zahtjeva su označeni sa "&", ali u ovom slučaju to ne morate činiti, jer se pretpostavlja da drugi dio uvjeta sadrži parametar, samo ga trebate zapamtiti. Kako prenijeti vrijednost u parametar zahtjeva 1C bit će opisano u nastavku.

Budući da u upitu ne koristimo kompletnu tabelu cijena artikala, već virtuelnu (u ovom slučaju isječak ove druge), moramo postaviti uslove za formiranje ove virtualne tabele, u našem slučaju je to rez datum i uslov za tip cene (moraju se izabrati cene koje imaju strogo definisanu vrstu cene – onu koja je navedena u prijemnom dokumentu koji štampamo).

Da biste popunili parametre virtuelne tabele, idite na karticu Tabele i polja konstruktor upita, u koloni Stolovi izaberite tabelu CijeneNomenklaturaSliceLast i pritisnite dugme Parametri virtuelne tabele nalazi se na vrhu. U prozoru koji se otvori, u polju Period treba podesiti parametar na koji će se prenositi datum, na koji će se cijene smanjiti. U našem slučaju, to će biti trenutni datum (odnosno danas), pa ćemo parametar nazvati "& CurrentDate". U polje uvjet upisaćemo uslove za tip cijene, također ćemo ga proslijediti u parametar koji ćemo nazvati "& TypePrice". Rezultirajući uvjet će izgledati ovako (gdje Cijena Tip- mjerenje registra Cijene artikala):

CijenaType = & PriceType

Parametri virtuelne tabele su popunjeni, pritisnite dugme uredu.

Sada kada smo ograničili izbor samo na dokument koji nam je potreban, kreiraćemo veze između tabela upita. Ako to ne učinite, cijene iz tabele ItemNomenclatureSlicePrices neće biti povezane sa artiklom iz računa. Idemo na karticu Veze konstruktor upita. Kreirajte vezu preko polja Nomenklatura između naša dva stola. Da biste to uradili, pritisnite dugme Dodati, na terenu Tabela 1 izaberite tabelu Dolazak robe, a u polju Tabela 2 - PricesNomenclatureSliceLast. U uslovima komunikacije izaberite polja Nomenklatura sa oba stola.

Također treba napomenuti da u odabiru upita moramo dobiti sve redove iz dijela tab Proizvodi a cijene samo ako postoje za tekući datum prema vrsti cijene dokumenta. Dakle, ove kartice Proizvodi su obavezni, ali podaci o smanjenju cijena nisu. Stoga je u vezama između ovih tabela potrebno koristiti tzv. LEFT JOIN, a lijeva (ili obavezna) tabela će biti Dolazak robe, i desnu (ili opcionalnu) PriceNomenclatureSliceLast. Da bi lijevo spajanje tabela upita radilo kao što sam gore opisao, morate označiti kućicu Sve nakon terena Tabela 1.


Upit je skoro spreman, ostalo je samo malo posla oko pseudonima polja. Idemo na bookmark Sindikati / Aliasi i postavite pseudonim za polje CijeneNomenklaturaSliceLast.Price... Alias ​​će biti - PriceToday, potrebno je kako bi nazivi polja odabira upita i nazivi parametara u izgledu printable bili isti.

Ovo završava rad u dizajneru upita, pritisnite dugme OK. Nakon što se prozor konstruktora zatvori, vidjet ćete da je red s tekstom zahtjeva popunjen i izgleda ovako:

Zapros.Tekst = "SELECT | PostuplenieTovarovUslugTovary.Nomenklatura, | PostuplenieTovarovUslugTovary.Summa, | PostuplenieTovarovUslugTovary.Tsena, | PostuplenieTovarovUslugTovary.Kolichestvo, | TsenyNomenklaturySrezPoslednih.Tsena AS TsenaNaSegodnya | OD | Dokument.PostuplenieTovarovUslug.Tovary AS PostuplenieTovarovUslugTovary | lijevo pridruže RegistrSvedeniy.TsenyNomenklatury.SrezPoslednih (| & CurrentDate, PriceType = &PriceType) AS PricesNomenclatureSliceLatest | ON Incoming GoodsServicesGoods.Nomenclature | = PricesNomenclaturesSliceLatest.Nomenclature | WHERE | Incoming GoodsServicesGoods.Link = & Link ";

Izvršavanje zahtjeva

Proslijedimo potrebne parametre zahtjevu, za to ćemo koristiti metodu zahtjeva SetParameter (<ИмяПараметра>,<Значение>). Da bismo dobili trenutni datum, koristit ćemo ugrađenu funkciju Trenutni datum(), vraća datum i vrijeme računara.

Izvršimo zahtjev da dobijemo selekciju sa podacima koji su nam potrebni. Da bismo to učinili, prvo koristimo metodu zahtjeva Izvrši () a zatim metodom Odaberi().

Odabir = Query.Run (). Odaberite ();

Popunjavanje tabele obrasca za štampu

Kao rezultat, u varijabli Uzorakće sadržavati izbor rezultata upita, možete se kretati kroz njega pomoću metode Sljedeći(), a da biste ga u potpunosti zaobišli, potrebna vam je petlja Do... Izgradnja će biti sljedeća:

While Fetch.Next () Loop End of Loop;

U ovoj petlji ćemo popuniti i prikazati područje rasporeda. Podaci... Ali prvo, inicijalizirajmo dvije varijable numeričkog tipa. U njima ćemo prikupiti zbrojeve količine i iznosa koje trebamo donijeti na područje Podrum.

TotalSum = 0; TotalQuantity = 0;

Unutar petlje popunit ćemo područje Podaci podatke iz trenutnog elementa selekcije, u varijable Ukupan iznos i Ukupna količina dodajte vrijednosti količine i količine i na kraju prikažite područje u dokumentu proračunske tablice koristeći nam već poznatu metodu Izlaz ()... Budući da se nazivi polja našeg upita potpuno poklapaju sa nazivima parametara opsega Podaci, tada ćemo za popunjavanje koristiti ugrađenu proceduru FillPropertyValues ​​(<Приемник>, <Источник>), koji kopira vrijednosti svojstva<Источника>u nekretninama<Приемника>.

Dok Fetch.Next () Petlja FillPropertyValues ​​(ScopeData.Parameters, Fetch); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDok.Display (ScopeData); Kraj ciklusa;

Izlaz podnožja obrasca za štampanje u tabelarni dokument

Ostaje popuniti i prikazati posljednje područje izgleda - Podrum... Već smo pripremili podatke za popunjavanje, popunjavanje i povlačenje se vrši po istoj šemi.

AreaBoard.Parameters.TotalQuantity = TotalQuantity; AreaBoard.Parameters.TotalSum = TotalSum; TabDok.Display (podrumski prostor);

Tablični dokument je u potpunosti popunjen, ostaje ga prikazati na ekranu kako bi korisnik mogao vidjeti odštampani obrazac i po potrebi ispisati. Ali u tipičnim 1C 8 konfiguracijama, procedure posebnih modula su odgovorne za izlaz eksternih obrazaca za štampanje. Stoga je dovoljno vratiti se iz funkcije pečat() popunjen dokument tabele.

Povratak TabDoc-a;

U ovoj fazi programiranje je završeno i izrada štamparske ploče 1c je skoro završena. Tekst pune funkcije pečat() Neću je davati ovdje, možete je vidjeti u datoteci za štampanje, koju možete preuzeti na dnu članka.

Izrada štamparske forme 1C. Parametri automatske registracije

Prilikom povezivanja eksterne štamparske forme sa bazom, sistem ne određuje automatski za koji dokument ili priručnik je namenjena štamparska forma, već se mora ručno izabrati. A ako je druga osoba napisala štampani obrazac, a vama je samo naloženo da ga povežete, onda izbor može postati dvosmislen. Kako bi se izbjegli ovakvi problemi, potrebno je kreirati izgled sa parametrima auto-registracije u svim eksternim oblicima za štampanje. Ukoliko je kreiran i pravilno formatiran, sistem automatski određuje za koji dokument ili priručnik je štampana forma namenjena.

Radi se na sljedeći način:

  • U vanjskoj obradi kreiramo novi izgled. Mi to zovemo "Autoregistration_Parameters" (važno je da ne pogriješite!).
  • U prvoj ćeliji izgleda upišite Dokumentacija.(ili Referentne knjige.) i naziv dokumenta na koji želite da povežete štampač.

Povezivanje na bazu eksterne štamparske ploče

  • Pokrenite 1C 8 u načinu rada Kompanija;
  • Idite na meni Usluga -> Dodatni izvještaji i obrada -> Dodatni eksterni obrasci za štampanje;
  • Kliknite na dugme Dodati;
  • U prozoru koji se otvori kliknite na ikonu Zamijenite eksternu datoteku za obradu;
  • Ako ste kreirali parametre automatske registracije, slažemo se da ih koristimo;
  • Ako niste kreirali parametre automatske registracije, onda u tabelarnom dijelu Pripadnost štamparske ploče dodajte potreban dokument ili imenik;
  • Pritisnite dugme UREDU.

Nakon toga, eksterno štampanje će biti dostupno u meniju Pečat dokument Prijem robe i usluga. Stvaranje 1C obrasca za štampanje može se smatrati završenim u ovom trenutku.

Razmislite o pisanju najjednostavnijeg za ispis 1s 8.1 - 8.2 na primjeru konfiguracije Računovodstvo preduzeća 2.0... Recimo da želite da napišete eksterni ispis za dokument: prikažite osnovne podatke dokumenta, kao i iz tabelarnog dela Proizvodi: nomenklatura, cijena, količina i količina.

Dobijeni primjer možete preuzeti putem.

U konfiguratoru 1C preduzeća 8 kreirati eksternu obradu ( Datoteka-> Novo-> Eksterna obrada), postavite ime, kreirajte rekvizit potreban za eksterno štampanje ReferenceObject sa tipom DocumentLink. Realizacija robnih usluga.

Izrada layouta štamparske ploče

Dodaj novi raspored, ostavite tip izgleda Tabelarni dokument... Na rasporedu kreiramo tri oblasti: Šešir, Data i Podrum... To se može učiniti tako što ćete označiti potreban broj redova i kliknuti na meni Tabela-> Imena-> Dodijeli ime (Ctrl + Shift + N).

Nakon toga počinjemo postavljati tekst i parametre u područja. Prikazat ćemo se u zaglavlju naziv štamparske forme, broj dokumenta i organizacija, a također nacrtajte granice zaglavlja tabele i napišite nazive kolona. Kada kreirate parametar u svojstvima ćelije, na kartici rasporeda postavite svojstvo Punjenje u vrijednosti Parametar.

Na području Podaci kreirajte parametre za prikaz redova tabelarnog odeljka ( Nomenklatura, cijena itd.), i na tom području Podrum za ukupne po količini i količini.

Programiranje

Idemo na modul objekta za štampanje Akcije-> Otvori objektni modul.

Kreirajmo funkciju za izvoz, koja je potrebna za obrasce za štampanje. pečat().

Funkcija Print () Izvoz EndFunction

U funkciji kreirajte varijablu za tabelarni dokument, u kojoj će biti prikazana štampana forma, dobijamo raspored i raspored prostorija.

TabDoc = novi TabularDocument; Layout = Get Layout ("Layout"); Područje zaglavlja = Layout.GetArea ("Header"); DataScope = Layout.GetScope ("Podaci"); AreaFooter = Layout.GetArea ("Footer");

Popunite parametre šeširi i prikaži ga tabelarni dokument.

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

Da biste dobili redove tabelarnog odeljka Proizvodi koristimo zahtjev.

Zahtjev = novi zahtjev; Request.SetParameter ("Link", LinkOnObject); Request.Text = "ODABIR | Prodaja robe, usluga, robe, nomenklature, | Prodaja robe, usluga, robe, iznos, | Prodaja robe, usluga, robe, cijena, | Prodaja robe, usluga, roba, količina OD | Dokument.Realizacija robnih usluga.Roba AS Prodaja robeuslugeRobe GDJE | Implementacija GoodsServicesGoods.Link = & Link ";

Proslijedite props parametru zahtjeva ReferenceObject naznačiti u stanju GDJE da su nam potrebni samo podaci dokumenta iz kojeg prikazujemo ispis. Da bismo dobili upit, prvo ga izvršavamo, a zatim preuzimamo redove.

Odabir = Query.Run (). Odaberite ();

Zatim, u petlji, popunite parametre područja Podaci za svaki red odabira dokumenta i prikazati ih u tabelarni dokument... Također, u ciklusu izračunavamo ukupne vrijednosti količina i sume... Nećemo popunjavati svaki parametar posebno, već ćemo koristiti proceduru FillPropertyValues ​​((<Приемник>, <Источник>) od globalnom kontekstu, kopira vrijednosti svojstva <Источника> u nekretninama <Приемника> ... Uparivanje se vrši po imenima svojstava. Više o ovome možete pročitati u pomoćnik za sintaksu 1C Enterprise 8.

TotalSum = 0; TotalQuantity = 0; Dok Fetch.Next () Petlja FillPropertyValues ​​(ScopeData.Parameters, Fetch); TotalSum = TotalSum + Sample.Sum; TotalQuantity = TotalQuantity + Sample.Quantity; TabDok.Display (ScopeData); Kraj ciklusa;

Popunite i prikažite područje Podrum.

AreaBoard.Parameters.TotalQuantity = TotalQuantity; AreaBoard.Parameters.TotalSum = TotalSum; TabDok.Display (podrumski prostor);

Vraćanje popunjenog dokumenta proračunske tablice iz funkcije pečat().

povratak TabDoc-a;

Ako koristite jednu od tipičnih konfiguracija, onda nakon vraćanja dokumenta proračunske tablice 1Cće prikazati sam odštampani obrazac. Za izlaz možete koristiti i metodu dokumenta proračunske tablice Prikaži().

5. Povezivanje štampanog dokumenta sa dokumentom

V tipične konfiguracije 1C 8 postoji direktorij za registraciju eksternih obrazaca za štampanje ExternalProcessing... Da biste se povezali, idite na meni u režimu preduzeća Usluga-> Dodatni izvještaji i obrada-> Dodatni eksterni obrasci za štampanje.

Dodajte novi element direktorija, učitajte ispis s diska i odaberite vrstu dokumenta.

Sada u dok Prodaja robe i usluga pojavit će se novi ispis.

Automatska registracija za ispis

Kako biste izbjegli ručno biranje vrste dokumenta prilikom povezivanja obrasca za štampanje, možete konfigurisati automatska registracija... Da biste to učinili, dodajte novi izgled i imenujte ga AutoRegister_Parameters(samo na ovaj način) i u njegovu prvu ćeliju upisujemo Dokumentacija.<Наименование документа> (ili Referentne knjige.<Наименование справочника> ).

Sada, kada povezujemo štampač, od nas će biti zatraženo da ga koristimo parametri automatske registracije.

Top srodni članci