Lage et trykt skjema 1s 8.3 scratch. Legge til et eksternt utskriftsskjema i databasen. Skrive en forespørsel om trykt handikap

La oss vurdere å skrive den enkleste trykte formen i 1s 8.1 - 8.2 ved hjelp av konfigurasjonseksempel Bedriftsregnskap 2.0. La oss si at du må skrive et eksternt trykt skjema for et dokument: vis dokumentets grunnleggende data, så vel som fra tabelldelen Varer: nomenklatur, pris, mengde og beløp.

Du kan laste ned det resulterende eksemplet fra .

I konfiguratoren 1C Enterprises 8 opprette ekstern behandling ( Fil->Ny->Ekstern behandling), angi navnet, opprett de nødvendige detaljene for det eksterne trykte skjemaet Objektreferanse med type DocumentLink Salg av varer og tjenester.

Opprette et trykt skjemaoppsett

Legg til en ny oppsett, la layouttypen stå regnearkdokument. Vi lager tre områder på layouten: Overskrift, Data Og Kjeller. Dette kan gjøres ved å velge ønsket antall linjer og klikke på menyen Tabell->Navn->Tildel navn (Ctrl+Shift+N).

Etter dette begynner vi å plassere tekst og parametere i områdene. Vi legger det i overskriften navn på det trykte skjemaet, dokumentnummer Og organisasjon, og også tegne kantlinjene til tabelloverskriften og skrive navnene på kolonnene. Når du oppretter en parameter i celleegenskapene, på Layout-fanen bør du angi egenskapen Fylling i betydning Parameter.

I området Data la oss lage parametere for å vise rader i tabelldelen( Nomenklatur, pris etc.), og i området Kjeller for totaler etter mengde og beløp.

Programmering

La oss gå til utskriftsskjemaobjektmodulen Handlinger->Åpne objektmodul.

La oss lage en eksportfunksjon der som er obligatorisk for trykte skjemaer. Tetning().

Funksjon Skriv ut () Eksport EndFunction

I funksjonen skal vi lage en variabel for regnearkdokument, som det trykte skjemaet skal skrives ut i, får vi oppsett Og layout områder.

TabDoc = nytt TabularDocument; Layout = GetLayout("Layout" ); HeaderArea = Layout.GetArea("Header" ); AreaData = Layout.GetArea("Data" ); AreaFooter = Layout.GetArea("Footer" );

La oss fylle ut parameterne hatter og bringe den til regnearkdokument .

HeaderArea.Parameters.HeaderText = +LinkToObject.Number; HeaderArea.Parameters.Organization = LinkToObject.Organization; TabDoc.Output(HeaderArea);

For å få tabellrader Varer vi bruker forespørselen.

Forespørsel = ny Forespørsel; Request.SetParameter("Link", ObjectLink); Query.Text = "VELG | Salg av varer og tjenester varer. Nomenklatur, | Salg av varer og tjenester varer. Beløp, | Salg av varer og tjenester varer. Pris, | Salg av varer og tjenester varer. Antall|FRA | Dokument Salg av varer og tjenester Varer HVORDAN Salg av varer og tjenester varer|HVOR | Salg av varer og tjenester varer. Link = &Link";

Vi sender detaljene til forespørselsparameteren Objektreferanse, for å indikere i tilstanden HVOR, at vi kun trenger data fra dokumentet som vi henter det trykte skjemaet fra. For å få et eksempelspørring, kjører vi det først og velger deretter radene.

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

Neste i løkken fyller vi ut arealparametrene Data for hver linje i dokumenteksemplet og vis dem i regnearkdokument. Vi beregner også de totale verdiene i løkken mengder Og beløp. Vi fyller ikke ut hver parameter separat, men bruker prosedyren Fyll innPropertyValues((<Приемник>, <Источник>) fra global kontekst, kopierer den egenskapsverdier <Источника> til eiendommer <Приемника> . Matching gjøres av eiendomsnavn. Du kan lese mer om dette i syntaksassistent 1C Enterprise 8.

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

Fyll og vis området Kjeller.

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

Returnerer det ferdige regnearkdokumentet fra funksjonen Tetning().

returner TabDoc;

Hvis du bruker en av standardkonfigurasjonene, så etter å ha returnert regnearkdokumentet 1C vil vise det trykte skjemaet på skjermen. Du kan også bruke regnearkdokumentmetoden for utdata. Forestilling().

5. Koble et trykt skjema til et dokument

I standardkonfigurasjoner 1C 8 Det er en katalog for registrering av eksterne trykte skjemaer Ekstern behandling. For å koble til, gå til menyen i bedriftsmodus Service->Tilleggsrapporter og behandling->Ytterligere eksterne trykte skjemaer.

Legg til nytt element katalog, last det utskrevne skjemaet fra disken og velg dokumenttype.

Nå i dokumentet Salg av varer og tjenester En ny utskriftsbar vises.

Autoregistrering av trykt skjema

For å sikre at du ikke trenger å velge dokumenttype manuelt når du kobler til et utskriftsskjema, kan du konfigurere automatisk registrering. For å gjøre dette, legg til en ny layout og kall den Innstillinger_Automatisk registrering(dette er den eneste måten) og i den første cellen skriver vi Dokumentasjon.<Наименование документа> (eller Kataloger.<Наименование справочника> ).

Nå, når du kobler til et utskriftsskjema, vil vi bli bedt om å bruke parametere for automatisk registrering.

Så! Det er en konfigurasjon (for eksempel "Trade Management", utgave 10.3), og for den er det nødvendig å utvikle et eksternt trykt skjema. La oss for eksempel ta standarddokumentet "Faktura for betaling til kjøper" (selv om eksterne trykte skjemaer kan opprettes ikke bare for dokumenter, men også for kataloger).

Eksempel for 1C 8.3 (administrerte skjemaer)

Et eksempel på utvikling av et eksternt trykt skjema for en administrert applikasjon kan sees.

Oppgave

Utvikle et eksternt trykt skjema som vil være tilgjengelig fra dokumentet "Faktura for betaling til kjøper", og som vil inneholde navnet på organisasjonen, motparten og en liste over varer med pris, beløp og mengde.

Gå!

Det første du må gjøre er å lage en ekstern behandlingsfil. Behandlingen bør inneholde tre hovedpunkter:
  1. «Object Link»-attributt med typen «DocumentLink.Invoice for Payment to Buyer»
  2. Oppsettet som skal skrives ut
  3. Eksportfunksjon "Print()" som returnerer et regnearkdokument
Disse handlingene er synlige i figur 1

"Tegne et oppsett"

Vår layout vil inneholde to områder:
  1. Tittelen (overskriften) på dokumentet (i dette området vil navnene på organisasjonen og motparten bli plassert), og tabelloverskriften (med navnene på kolonnene)
  2. Tabell med varer (kolonner med navn, mengde og mengde)
Figur nr. 2 viser oppsettet til det eksterne trykkskjemaet. Vær oppmerksom på at tabell- og overskriftscellene inneholder parametere, ikke bare tekst.

Funksjonen "Skriv ut()"

Skjemaet er nesten klart. Alt som gjenstår er å skrive en programmatisk utfylling av feltene i regnearkdokumentet. Disse handlingene utføres i prosesseringsobjektmodulen, i en funksjon kalt "Skriv ut", som MÅ kunne eksporteres.
Etappe nr. 1. Motta data for overskriften, fylle ut overskriftsparameterne og sende den til et regnearkdokument TabularDocument = Nytt TabularDocument; Layout = GetLayout("OurLayout"); Dataforespørsel = Ny forespørsel("VELG | REPRESENTATION(Faktura for betaling til kjøper. Motpart) AS Motpart, | REPRESENTATION(Faktura for betaling til kjøper. Organisasjon) AS Organisasjon | FRA | Dokument. Faktura for betaling til kjøper AS-faktura for betaling til kjøperen | HVOR | Faktura for betaling til kjøperen. Link = &Link"); Data Request.SetParameter("Link", ObjectLink); Header = DataRequest.Execute().Select(); Cap.Next(); Area = Layout.GetArea("Header"); Area.Options.Fill(Header); TabularDocument.Output(Area); Etappe nr. 2. Motta tabelldata og linje-for-linje utdata av produkter
Data Request.Text = "SELECT | _Products.Line Number, | REPRESENTATION(_Products.Nomenclature) AS Nomenclature, | _Products.Quantity, | _Products.Price, | _Products.Amount |FROM | Document.Faktura for betaling til kjøperen.Produkter AS _Products |WHERE | _Products. Link = &Link"; Fetch = DataRequest.Execute().Select(); Area = Layout.GetArea("Data"); While Selection.Next() Loop Area.Parameters.Fill(Selection); TabularDocument.Output(Area); EndCycle; Etappe nr. 3. Returner regnearkdokument og utskriftsfunksjon returner TabularDocument;

Legger til vårt eksterne utskriftsskjema til 1C

Gå til menyen "Service - Eksterne trykkskjemaer og behandling - Eksterne trykkskjemaer"

I elementopprettingsvinduet som åpnes, utfør følgende handlinger:

  1. Laster den eksterne behandlingsfilen
  2. Vi angir hvilket konfigurasjonsdokument (eller katalog) det trykte skjemaet er ment for
  3. Registrerer endringer

La oss skrive ut!

Åpne et hvilket som helst dokument "Faktura for betaling til kjøper" (med tabelldelen "Produkter" fylt ut, fordi det er der vi får dataene til å fylle ut), klikk på "Skriv ut"-knappen, i vinduet som åpnes, velg VÅR trykt skjema, og klikk "Skriv ut"


MERK FØLGENDE! Denne utviklingsalgoritmen er KUN egnet for en "vanlig applikasjon". Utskrivbarene for programadministrerte konfigurasjoner er forskjellige!

Filen til det trykte skjemaet vist i eksemplet kan være

La oss gå til Service->Ytterligere rapporter og behandling->Valgfrie eksterne trykkplater.

Kataloglisteskjemaet med eksterne trykte skjemaer åpnes. Klikk på i toppmenyen på listen Legg til. Skjemaet for å opprette et katalogelement vises.

Klikk på Åpne-knappen og velg filen med ønsket utskriftsskjema. Etter dette, om nødvendig, angi ønsket navn (Navn-feltet).

Hvis det trykte skjemaet inneholder parametere for automatisk registrering, vil en melding om dette dukke opp. Klikk Ja.Hvis dette ikke skjer, må du angi hvilket dokument dette skjemaet skal knyttes til. For å gjøre dette må du legge til en linje i tabelldelen "Tilknytning av det trykte skjemaet", der i "Objektrepresentasjon" feltet velg typen dokument som vi kobler skjemaet til. Siden dette i vårt eksempel er en handling for å avskrive materialer, velger vi Request-invoice-dokumentet.

Gå deretter til et hvilket som helst dokument Forespørsel-faktura, klikk på Skriv ut og velg det nylig lagt til skjemaet.

For BP 3.0, ZUP 3.0, UT 11, KA 2.0, ERP 2.0.

For å demonstrere å legge til et trykt skjema i et administrert grensesnitt, vil jeg vise å legge til et eksternt skjema for en faktura for betaling til et dokument med samme navn i Accounting 3.0.

Vi går til den tilsvarende delen av programmet:


Det er nødvendig at flagget for bruk av eksterne rapporter og behandling er slått på; følg hyperlenken til listen over eksterne objekter:

Klikk på i listen som åpnes Skape:


Velg ønsket fil i dialogboksen:


Det eksterne objektkortet fylles ut: i oppsettet ser vi typen basisobjekt som skjemaet skal festes til og like under navnet:


La oss skrive og lukke formen til det opprettede eksterne objektet.

La oss nå gå til ethvert dokument Faktura for betaling til kjøper og vis utskriftsmenyen:


Bruksanvisning

Åpne 1C:Enterprise program versjon 8. Vær oppmerksom på menypunktet "Service" - "Ekstern behandling og utskrift av skjemaer". Med dens hjelp kan du lagre eksterne rapporter, behandling, trykte skjemaer, samt behandling for utfylling av tabellelementer. Du kan også koble til et eksternt skjema i stedet for å endre et eksisterende, noe som vil medføre forstyrrelse av programkonfigurasjonen.

Start 1C:Enterprise-programmet i konfiguratormodus, opprett deretter ekstern behandling, for å gjøre dette, kjør kommandoen "Fil" - "Ny". I vinduet som vises, velg "Ekstern behandling". Et nytt eksternt behandlingsskjema vises på skjermen. Gi den navnet "Ekstern". Legg deretter til et nytt attributt kalt "Objektreferanse", spesifiser typen for det - "Dokument. Link. Salg av varer og tjenester." For å lage en utskriftsfil for en annen type dokument, bruk den aktuelle koblingstypen.

Legg til en ny layout ved å klikke på den tilsvarende knappen i det nye skjemavinduet. Gi det navnet "Layout", lag et område kalt "Header", gi det parameteren "Header Text". Klikk deretter på "Handlinger", velg kommandoen "Åpne objektmodul". Sett deretter inn modulteksten, du kan bruke eksempelet som er lagt ut på nettstedet http://www.uasoft.com.ua/content/articles/315/.

Start programmet 1C:Enterprise, gå til Verktøy-menyen, velg Eksterne utskriftsskjemaer. Legg til en ny oppføring i listen over skjemaer. For å gjøre dette, velg den opprettede behandlingsfilen, og angi i tabelldelen at skjemaet tilhører dokumentet "Salg av varer". Kontroller at den nye trykkplaten fungerer som den skal. For å gjøre dette, åpne det opprettede dokumentet, spor det, og klikk deretter på "Skriv ut" -knappen nederst på skjermen, velg alternativet "Eksternt utskriftsskjema".

Kilder:

  • hvordan endre et trykt skjema i 1c

For å lage og redigere objektskjemaer, tilbyr 1C:Enterprise-programmet en spesiell skjemaredigerer (eller Form Designer). Objektskjemaer for applikasjonsløsninger er designet for å representere data visuelt mens du arbeider med programmet. Skjemaeditoren inneholder flere faner som gir mulighet til å redigere alle skjemaelementer.

Du vil trenge

  • datamaskin, 1C-program

Bruksanvisning

Ved å bruke skjemaeditoren kan du legge til ett eller flere "Gruppe – Sider"-elementer i skjemaet; for å gjøre dette, klikk på det grønne plusstegnet i øvre venstre hjørne av editoren mens du er på "Elementer"-fanen.
I 1C:Enterprise-modus vil alle eksisterende gruppeelementer vises på hver sin fane. For å plassere den over eller under den fungerende, i "Egenskaper"-vinduet til en bestemt gruppe, i "Vis" -elementet, velg den aktuelle kommandoen.

Du kan også legge til elementer i skjemaet ved å dra de nødvendige detaljene inn i elementtreet. For å gjøre det enklere å navigere i skjemakontroller når du redigerer eller legger inn data, sett den rekkefølgen som passer deg, ordne elementer i treet og underordne dem til andre elementer, og angi egenskapene til gruppeelementer for å passe dine behov.
For å redigere skjemadetaljer - endre dem, opprett nye eller slett dem, bruk panelet i detaljtreområdet på den tilsvarende fanen.

For å redigere kommandogrensesnittet, gå til den aktuelle fanen. Du vil se et kommandotre, hvis hovedgrener er "Navigasjonspanel" og "Kommandopanel". Noen kommandoer legges automatisk til kommandogrensesnitttreet, men du kan også legge dem til selv ved å dra kommandoene du trenger fra listen over globale (generelle) kommandoer eller fra listen over skjemakommandoer.

Skjemakommandoer redigeres i den tilsvarende listen. Du kan legge dem til, fjerne dem fra listen, angi egenskaper for hver kommando ved å bruke egenskapspaletten, som du kan kalle ved å klikke på blyantikonet på kommandolinjen i listen.
For å redigere skjemaparametere, gå til fanen "Parametere", hvor du også kan legge dem til, slette dem og angi de ønskede egenskapene.

Video om emnet

Kontoplanen, som brukes i regnskap for å vise de økonomiske aktivitetene til en bedrift, støtter et hierarki på flere nivåer: konto - underkontoer. Slik at brukeren kan se dataene i kontoplanen og rette dem, lar 1C-systemet deg endre kontoformen. I tillegg kan den trykte formen på fakturaen endres i et hvilket som helst annet dokument i 1C.

Du vil trenge

  • - personlig datamaskin med 1C.

Bruksanvisning

Analytisk regnskap er gitt for hver konto eller underkonto. Derfor, når du oppretter og senere redigerer en kontoplan i 1C, kan det nødvendige antallet underkontoer, det vil si analytiske regnskapsobjekter, leveres. I tillegg kan justeringer av kontoer og underkontoer gjøres enten av en bruker som arbeider med et automatisert regnskapssystem eller av en programvareutvikler.

Denne artikkelen vil fortelle deg i detalj hvordan en nybegynner med lite kunnskap om 1C 8 kan lage et trykt skjema. La oss for eksempel ta en av de vanligste 1C 8-konfigurasjonene - Regnskap 2.0. Lage et trykt skjema 1C skrivestadier:

  • Opprette en ekstern utskriftsskjemafil;
  • Oppretting av et trykt skjemaoppsett;
  • Skrive programkode for å vise utskrevne skjemadata på skjermen;
  • Opprette parametere for automatisk registrering av et trykt skjema;
  • Koble til et eksternt utskriftsskjema til basen 1C bedrifter.

Oppretting av et trykt skjema 1C. Formulering av problemet

Vi er påkrevd i konfigurasjonen Regnskap 2.0 lage et trykt skjema for et dokument Mottak av varer og tjenester. Vis følgende data i overskriften på det trykte skjemaet:

  • Organisasjon;
  • Motpart;
  • Motpartsavtale;
  • Dato for kvitering.

Vis dataene i tabelldelen som en tabell Varer dokument. Tabellen skal inneholde følgende kolonner:

  • Nomenklatur;
  • Mengde;
  • Pris;
  • Sum;
  • Og også prisen på varen for gjeldende dato (etter type pris fra dokumentet).

Ekstern behandlingsfil

La oss gå videre til å løse problemet. Først, la oss åpne 1C 8 i modus Konfigurator. Det er i denne modusen at all utvikling utføres på plattformen 1C 8. Nå må vi lage en ekstern behandlingsfil. For å gjøre dette, klikk på menyen Fil -> Ny... eller ved ikonet til en ny fil.

Velg elementet i vinduet som åpnes Ekstern behandling.

Neste i feltet Navn Du må skrive inn navnet på den eksterne behandlingen. I vårt tilfelle vil vi ganske enkelt kalle det "PrintForm"; synonymfeltet fylles ut automatisk. Vær oppmerksom på det i feltet Navn, ekstern behandling, skal navnet skrives uten mellomrom eller skilletegn.

La oss legge til eksterne behandlingsattributter LinkToObject og velg skriv for ham DocumentLink Mottak av varer og tjenester. For å gjøre dette, velg elementet i 1C ekstern behandlingsmetadatatreet Forutsetninger og trykk på knappen Legg til(knapp med grønt pluss). Attributtegenskaper-vinduet åpnes på høyre side av skjermen, i feltet Navn la oss skrive - ReferenceToObject. I felt Type trykk på knappen med tre prikker.

La oss utvide grenen i typetreet DocumentLink, og finn elementet Mottak av varer og tjenester der, merk av i boksen ved siden av og klikk OK.

La oss lagre den eksterne behandlingsfilen på harddisken; for å gjøre dette, bruk menyen Fil -> Lagre, piktogram Lagre(blå diskett), eller en hurtigtast Ctrl+S. La oss gi den lagrede filen navnet "PrintForm".

Opprette et trykt skjemaoppsett

La oss begynne å lage et oppsett av 1C-utskriftsskjemaet. Oppsettet fungerer som en mal for utskriften av utskriftsskjemaet, så hvis du vil at utskriftsskjemaet skal se bra ut, bør du være oppmerksom på det.

La oss legge til et nytt oppsett i det eksterne behandlingsmetadatatreet; vi vil ikke endre noe i layoutdesignervinduet og klikke på knappen Klar.

I det nye oppsettet som åpnes, vil vi opprette flere områder som er nødvendige for å vise det trykte skjemaet. Alle layoutområdene vi trenger vil være horisontale, så for å lage et nytt område, velg ønsket antall layoutlinjer og gå til menyen Tabell -> Navn -> Tildel navn eller bruk hurtigtast Ctrl + Shift + N, skriv deretter inn navnet på regionen i boksen. Når du oppretter et layoutområde, ikke vær redd for å gjøre en feil med antall linjer; du kan alltid legge til eller fjerne dem. For å slette en 1C-layoutlinje, velg ønsket linje og velg elementet i kontekstmenyen Slett. For å legge til en ny linje i oppsettet, velg en hvilken som helst linje i oppsettet og velg elementet i hurtigmenyen Utvide.

Legge til en layoutoverskrift

Først av alt, la oss lage et område En lue, vil den vise dataene for overskriften til det utskrevne skjemaet. For dette området trenger vi syv layoutlinjer. La oss velge dem og, som jeg skrev ovenfor, trykk på tastekombinasjonen Ctrl + Shift + N, i felt Navn skriv "Hatt" og trykk på knappen OK.

La oss fylle layoutområdet med dataene vi trenger. Vanligvis er ingen trykt skjema komplett uten en tittel, så la oss lage en i layoutoverskriften vår også. Siden vi i tittelen, i tillegg til navnet på det trykte skjemaet, også vil vise nummeret på dokumentet det ble skrevet ut fra, vil vi sette teksten til tittelen i layouten som en parameter. En layoutparameter er en spesielt utpekt layoutcelle der ulike data kan sendes ut ved å bruke det innebygde 1C 8-språket. Tittelen skal vises over hele bredden av det trykte skjemaet, så la oss bestemme hvor mange layoutceller som vil være nok til at vi kan skrive ut på en standard liggende orientering av arket.

Vanligvis er tretten eller fjorten layoutceller nok, velg dem i den første raden i området En lue og kombiner til en celle ( Hurtigmeny -> Slå sammen). Etter dette, dobbeltklikk på den resulterende store cellen og skriv navnet på parameteren, i vårt tilfelle "Titteltekst". For at den angitte teksten skal bli en fullverdig parameter, høyreklikk på cellen og velg elementet i kontekstmenyen Egenskaper. På bokmerket Oppsett la oss finne feltet Fylling og velg verdien Parameter. Parametre i 1C-oppsettet er indikert med parentes "<>».

Overskriften til det trykte skjemaet skal skille seg ut blant annen tekst, så velg cellen på nytt og bruk ikonene på layoutformateringspanelet for å angi tekstjusteringen Sentrert og skriftstørrelse 14.

Etter tittelteksten vil vi vise den i området En lue informasjon om organisasjon, motpart, motpartsavtale og dato for mottak av varer. Siden alle disse dataene også er hentet fra dokumentet, vil vi også formalisere dem med parametere. I tillegg bør du før hver parameter skrive forklarende tekst slik at brukeren enkelt kan forstå hvor organisasjonen er, hvor motparten er osv. Alle disse handlingene ligner på å lage en tittel, så jeg vil ikke dvele ved dem i detalj, jeg vil bare gi et bilde av hva som skal skje til slutt.

Figuren viser hvordan layoutparametrene skiller seg fra vanlig tekst.

Legge til en layouttabelloverskrift

Det siste vi trenger å lage i dette layoutområdet er tabelloverskriften, der dataene til tabelldelen vil bli vist Varer. Kolonnene som kreves for tabellen, ble beskrevet i avsnittet "Problemerklæring". Vi vil også lage en tabelloverskrift ved å bruke en kombinasjon av celler og skrive tekst (kolonnenavn). Velg kantene til tabelloverskriften ved hjelp av verktøyet Ramme, som er plassert i layoutformateringspanelet.

Legge til en tabell i et oppsett

La oss lage et annet område i oppsettet - Data. Datatabellen til tabelldelen vil vises i den Varer. For dette området trenger vi bare en linje med layout. For å vise alle radene i tabelldelen i et trykt skjema, vil vi fylle ut og vise dette området det nødvendige antallet ganger. Søyler i området Data skal falle sammen med kolonnene i tabelloverskriften, så det vil ikke være vanskelig å fylle den ut. Den eneste forskjellen er i området Data vi trenger parametere, ikke bare tekst. Vær også oppmerksom på at som standard er numeriske parametere formatert til høyre og tekstparametere formateres til venstre. For å velge kolonner må du også bruke verktøyet Ramme.

Legge til en bunntekst i en layout

Det siste layoutområdet vi trenger er Kjeller. Den vil vise totaler etter mengde og beløp. Skapelse ligner på å skape et område Data, men i tillegg bør resultatene markeres med fet skrift.

Sluttresultatet bør være en layout som ser slik ut:

Oppretting av et trykt skjema 1C. Programmering

La oss begynne å programmere - dette er det viktigste stadiet lage et trykt skjema. Først av alt, la oss gå til den eksterne utskriftsskjemaobjektmodulen, det er her vi skal programmere. For å gjøre dette, klikk i hovedvinduet for ekstern behandling Handlinger -> Åpne objektmodul.

Du må opprette en eksportfunksjon i den eksterne utskriftsskjemaobjektmodulen Tetning().

Funksjon Print() Eksporter EndFunction

Vær oppmerksom på at denne funksjonen er nødvendig for eksterne utskriftsskjemaer i konfigurasjoner som bruker det vanlige programmet. All påfølgende programkode som er nødvendig for å vise det trykte skjemaet vil bli skrevet inne i denne funksjonen.

Initialisere grunnleggende variabler

La oss lage en variabel TabDoc, som vil inneholde et regnearkdokument - dette er akkurat det trykte skjemaet der vi vil vise de fylte områdene i oppsettet.

TabDoc = nytt TabularDocument;

Til en variabel Oppsett Vi vil få det trykte skjemaoppsettet vi har laget. For å gjøre dette bruker vi den innebygde funksjonen GetLayout(<ИмяМакета>).

Layout = GetLayout("Layout");

Vi vil konvertere alle områder av layouten til variabler. For å gjøre dette bruker vi layoutmetoden GetArea(<ИмяОбласти>) .

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

Skrive ut overskriften til et trykt skjema i et regnearkdokument

Alle nødvendige variabler initialiseres. La oss begynne å fylle ut og vise layoutområdene i et regnearkdokument. Først av alt, la oss fylle ut tittelen på det utskrivbare skjemaet; for dette må vi sende inn parameteren Titteltekst, som vi laget i oppsettet, teksten vi trenger. For å fylle ut parameterverdiene for layoutområdet, er det en spesiell samling kalt - Alternativer. Fra hvilken gjennom "." du kan få hvilken som helst parameter. I overskriftsteksten overfører vi teksten: "Utskrevet skjema", samt dokumentnummeret.

Header Area.Parameters.TitleText = "Skriv ut skjema"+LinkToObject.Number;

Vi vil fylle ut de resterende parametrene til overskriften på lignende måte; vi vil hente alle nødvendige verdier for dem fra detaljene Objektreferanse, som inneholder en lenke til dokumentet som skal skrives ut.

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

Alle parametere til overskriften er fylt ut, vi vil vise den i regnearkdokumentet vi opprettet, for dette bruker vi metoden Produksjon(<Область>) .

TabDoc.Output(HeaderArea);

Skrive en forespørsel om trykt handikap

La oss begynne å fylle og tegne ut området Data. Å lage et 1C trykt skjema innebærer også å skrive en spørring; vi trenger den for å få tabelldata Varer og priser Nomenklaturer for gjeldende dato vi skal bruke Be om. Spørringsspråket 1C 8 ligner på SQL, eller snarere kopierer praktisk talt egenskapene til SELECT-operatøren, men hele spørringen er skrevet på russisk. Derfor, hvis du i det minste er vagt kjent med SQL, vil du lett forstå spørringsspråket 1C 8.

I dette trykte skjemaet vil forespørselen være ganske enkel, og mange vil si at det ville være mulig å klare seg uten det, men kunnskap om spørringsspråket og evnen til å bruke det kompetent er en av hovedferdighetene til en 1C-programmerer. Spørringer lar deg få komplekse dataeksempler ved å bruke færre ressurser, og spørringsteksten er mye lettere å forstå enn programkode skrevet uten å bruke en spørring (eller med minimal bruk av den). I tillegg har 1C 8 en veldig god spørringsdesigner som lar deg interaktivt sette sammen en spørring fra de nødvendige tabellene.

La oss lage en variabel som vil inneholde forespørselen.

Request = Ny forespørsel;

Vi vil komponere forespørselsteksten ved å bruke forespørselskonstruktøren. Til å begynne med, la oss skrive:

Request.Text = "";

Plasser musepekeren mellom anførselstegnene og trykk på høyre museknapp. Velg elementet i kontekstmenyen som åpnes Be om konstruktør, det vil hjelpe oss mye med å lage et 1C-trykkskjema. Etter dette åpnes spørringsdesignervinduet; det inneholder mange faner, men for søket vårt trenger vi bare fire: "Tabeller og felt", "Relasjoner", "Betingelser", "Joins / Aliaser".

For spørringen vår trenger vi to tabeller: tabelldel Varer dokument Mottak av varer og tjenester og et øyeblikksbilde av den siste informasjonen på gjeldende dato for registeret Varepriser.

På venstre side av designervinduet finner vi kolonnen Database. Den inneholder et tre med alle metadataobjekter, la oss finne de vi trenger. For å gjøre dette, la oss åpne tråden Dokumentasjon og finn dokumentet Mottak av varer og tjenester, la oss åpne den og finne den tabellformede delen Varer, dra den inn i kolonnen til spørringsdesigneren Tabeller. Du kan dra på tre måter: ved å dra, ved å dobbeltklikke på tabellen, eller ved å velge den og klikke på «>»-knappen. La oss åpne tråden Informasjonsregistre og finn bordet der PriserNomenklatur.SnarveiSiste, dra den også inn i kolonnen Tabeller. Disse to tabellene er nok for vårt søk.

La oss velge feltene vi trenger fra de resulterende tabellene. For å gjøre dette, i kolonnen Tabeller la oss åpne bordet og finn feltene: Nomenklatur, Mengde, Pris, Mengde og dra dem til den tredje kolonnen i konstruktøren - Enger. La oss utvide tabellen , la oss finne feltet Pris og også dra den til Enger.

Strukturen til tabellene og feltene i forespørselen vår er klar, la oss nå gå videre til betingelsene. Vi trenger tabelldataene Varer ble ikke tatt fra alle kvitteringer, men kun fra den vi skriver ut. For å gjøre dette vil vi legge en betingelse på bordet Mottak av varer TjenesterVarer. La oss gå til "Betingelser"-fanen til spørringsdesigneren. I en kolonne Enger tabellene vi valgte tidligere er plassert, for tilstanden trenger vi et felt Link fra bordet Mottak av varer og tjenester varer, La oss dra den inn i vilkårsvinduet.

I 1C-spørringer kan du bruke parametere; de ​​er nødvendige for å overføre data til forespørselen. For eksempel, hvis vi ønsker å begrense utvalget av dokumenter til et spesifikt dokument, kan vi bruke en parameter for å sende en lenke til dette dokumentet til forespørselen og bruke denne parameteren i betingelsen. Dette er nøyaktig hva vi vil gjøre i vår forespørsel.

Etter vinduet Forhold vi la til et felt Link, vil spørringsdesigneren selv lage en parameter med samme navn og plassere den etter "="-tegnet. Denne parameteren kan gis nytt navn om ønskelig. I forespørselsteksten er parametere merket med "&", men i i dette tilfellet det er ikke nødvendig å gjøre dette, siden det antas at den andre delen av tilstanden inneholder en parameter, du trenger bare å huske dette. Hvordan sende en verdi til en 1C-forespørselsparameter vil bli diskutert nedenfor.

Siden vi i forespørselen ikke bruker en fullstendig tabell over produktpriser, men en virtuell (en del av sistnevnte i dette tilfellet), må vi sette betingelsene for dannelsen av dette virtuelle bordet, i vårt tilfelle er dette skjæringsdato og betingelse for pristype (priser som har en strengt definert pristype er den som er spesifisert i kvitteringsdokumentet som vi skriver ut).

For å fylle ut parametrene til den virtuelle tabellen, gå til fanen Tabeller og felt spørringskonstruktør, i kolonnen Tabeller velg tabellen PriserNomenklaturSkjæringSiste og trykk på knappen Virtuelle bordalternativer, plassert på toppen. I vinduet som åpnes, i feltet Periode bør du angi en parameter som datoen da priskuttet skal foretas vil bli passert. I vårt tilfelle vil dette være gjeldende dato (det vil si i dag), så vi kaller parameteren "&CurrentDate". I vilkårsfeltet vil vi skrive betingelsene for pristypen, vi vil også sende den inn i parameteren, som vi kaller "&TypePris". Den resulterende tilstanden vil se slik ut (hvor TypePris- registermåling Varepriser):

PriceType = &PriceType

De virtuelle tabellparametrene er fylt ut, klikk på knappen OK.

Nå som vi har begrenset utvalget til kun dokumentet vi trenger, la oss lage forbindelser mellom spørringstabellene. Hvis dette ikke gjøres, vil ikke prisene fra tabellen PricesNomenclatureSliceLast knyttes til varen fra kvitteringen. La oss gå til fanen Tilkoblinger spørringsdesigner. La oss skape en forbindelse på tvers av feltet Nomenklatur mellom våre to bord. For å gjøre dette, trykk på knappen Legg til, i felt Tabell 1 velg en tabell Mottak av varer TjenesterVarer, og i feltet Tabell 2 - PriserNomenklaturSliceLast. Velg feltene i kommunikasjonsbetingelsene Nomenklatur fra begge bordene.

Det bør også bemerkes at i spørringsutvalget må vi hente alle radene fra fanedelen Varer og priser kun hvis de er tilgjengelige på gjeldende dato for dokumentpristypen. Dermed tabelldataene Varer er obligatoriske, men prisdata er ikke tilgjengelig. Derfor, i relasjonene mellom disse tabellene, er det nødvendig å bruke den såkalte LEFT JOIN, og den venstre (eller påkrevde) tabellen vil være Mottak av varer TjenesterVarer, og høyre (eller valgfri) PriceNomenclatureSliceLast. For å venstre bli med spørringstabeller fungerte som jeg beskrev ovenfor, må du merke av i boksen Alle etter feltet Tabell 1.


Forespørselen er nesten klar, det gjenstår bare å jobbe litt med feltaliasene. La oss gå til bokmerket Fagforeninger/Aliaser og angi et alias for feltet PriserNomenklatur Slice Latest.Price. Kallenavnet vil være - Pris som i dag, er det nødvendig slik at navnene på søkevalgfeltene og navnene på parameterne i det utskrevne skjemaoppsettet samsvarer.

Arbeidet i spørringsdesigneren er nå fullført, klikk OK. Etter at designervinduet lukkes, vil du se at linjen med forespørselsteksten er fylt ut og ser slik ut:

Request.Text = "VELG | Mottak av varer TjenesterProdukter.Nomenklatur, | Mottak av varer TjenesterVare.Beløp, | Mottak av varer TjenesterProdukter.Pris, | VaremottakTjenesterProdukter.Kantum, | PriserNomenklatur Utsnitt av pristildag.Pris GoodsServices.Goods AS ReceiptTo varsServicesProducts LEFT CONNECTION RegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) HVORDAN Nomenclature PricesSliceLast | ON Receipt of GoodsServicesProducts.Nomen.Nomen.Nomen.Nomen. ipt of GoodsServicesProducts.Link = &Link";

Utfører forespørselen

La oss sende de nødvendige parameterne til forespørselen; for dette vil vi bruke forespørselsmetoden SetParameter(<ИмяПараметра>,<Значение>). For å få gjeldende dato, bruk den innebygde funksjonen Gjeldende dato(), returnerer den datamaskinens dato og klokkeslett.

La oss kjøre en spørring for å få en prøve med dataene vi trenger. For å gjøre dette, bruk først forespørselsmetoden Løpe(), og deretter metoden Velge().

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

Fylle ut den trykte skjematabellen

Som et resultat, i variabelen Prøve vil inneholde et utvalg søkeresultater, kan du navigere gjennom den ved å bruke metoden Neste(), og for å gå gjennom det hele trenger du en løkke Ha det. Designet vil være som følger:

Mens Select.Next() Loop EndLoop;

Det er i denne løkken vi skal fylle og vise layoutområdet Data. Men først, la oss initialisere to variabler av numerisk type. I dem vil vi samle totalene etter mengde og mengde som vi trenger å vise i området Kjeller.

Totalsum = 0; TotalQuantity = 0;

Inne i løkken skal vi fylle området Data data fra gjeldende utvalgselement til variabler Totale mengden Og Totalt antall legg til sum- og kvantitetsverdier, og vis til slutt området i et regnearkdokument ved å bruke metoden som allerede er kjent for oss Produksjon(). Siden navnene på feltene i forespørselen vår er fullstendig sammenfallende med navnene på områdeparametrene Data, så for å fylle vil vi bruke den innebygde prosedyren FillPropertyValues(<Приемник>, <Источник>), som kopierer eiendomsverdier<Источника>til eiendommer<Приемника>.

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

Skrive ut bunnteksten til et trykt skjema i et regnearkdokument

Det gjenstår å fylle og vise det siste området av oppsettet - Kjeller. Vi har allerede forberedt dataene for fylling, fylling og uttak utføres i henhold til samme ordning.

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

Regnearkdokumentet er fullstendig utfylt, det gjenstår bare å vise det på skjermen slik at brukeren kan se det utskrevne skjemaet og skrive det ut om nødvendig. Men i typiske 1C 8-konfigurasjoner er prosedyrene til spesialmoduler ansvarlige for utgangen av eksterne trykte skjemaer. Derfor er det nok å gå tilbake fra funksjonen Tetning() utfylt regnearkdokument.

Returner TabDoc;

På dette tidspunktet er programmeringsstadiet fullført og opprettelsen av 1c-utskriftsskjemaet er nesten fullført. Fulltekst av funksjonen Tetning() Jeg vil ikke gi det her, du kan se på det i den utskrivbare filen, som du kan laste ned nederst i artikkelen.

Oppretting av et trykt skjema 1C. Alternativer for automatisk registrering

Når du kobler et eksternt trykkskjema til databasen, bestemmer ikke systemet automatisk hvilket dokument eller oppslagsbok utskriftsskjemaet er beregnet på, du må velge det manuelt. Og hvis en annen person skrev det trykte skjemaet, og du bare har i oppgave å koble det til, kan valget bli tvetydig. For å unngå slike problemer er det i alle eksterne trykte skjemaer nødvendig å lage et oppsett med parametere for automatisk registrering. Hvis den er opprettet og riktig formatert, bestemmer systemet automatisk hvilket dokument eller oppslagsbok det trykte skjemaet er beregnet på.

Det gjøres som følger:

  • I ekstern behandling lager vi en ny layout. Vi kaller det "Settings_Auto-Registration" (det er viktig å ikke gjøre en feil!).
  • I den første cellen i oppsettet skriver vi Dokumentasjon.(eller Kataloger.) og navnet på dokumentet du må koble det utskrevne skjemaet til.

Koble til et eksternt utskriftsskjema til basen

  • Start 1C 8 i modus Selskap;
  • Gå til menyen Service -> Ytterligere rapporter og behandling -> Ytterligere eksterne trykte skjemaer;
  • Klikk på knappen Legg til;
  • Klikk på ikonet i vinduet som åpnes Erstatt ekstern behandlingsfil;
  • Hvis du har opprettet parametere for automatisk registrering, godtar vi å bruke dem;
  • Hvis du ikke har opprettet parametere for automatisk registrering, så i tabelldelen Trykkplatetilbehør Legg til nødvendig dokument eller oppslagsbok;
  • trykk på knappen OK.

Etter dette vil det eksterne utskriftsskjemaet være tilgjengelig i menyen Tetning dokument Mottak av varer og tjenester. Opprettelsen av det trykte 1C-skjemaet kan nå anses som fullført.

Del med venner eller spar selv:

Laster inn...