Innebygd trykkskjema i 1s 8.3. Publikasjoner. Hvordan lage et eksternt utskriftsskjema

Innebygd utskriftsskjema i 1s 8.3. Publikasjoner. Hvordan lage et eksternt utskriftsskjema

Denne artikkelen beskriver hvordan du kobler et eksternt trykt skjema til en 1C-database ved å bruke eksempelet på "Trade Management 10.3"-konfigurasjonen

"Trade Management 10.3"-konfigurasjonen er en konfigurasjon på såkalte "REGULAR"-skjemaer, og ikke på "MANAGED"-skjemaer som "Trade Management 11.2" for "MANAGED"-skjemaer vi anbefaler å lese.

Våre instruksjoner "viser" hvordan du kobler et eksternt trykt skjema i 1C med konfigurasjon på "VANLIGE" skjemaer, nemlig:

  • "Regnskap 2.0"
  • "Trade Management 10.3"
  • "Lønn og personalledelse 2.5"
  • "Omfattende automatisering 1.1"
  • "Manufacturing Enterprise Management 1.3"
  • "Detaljhandel 1.0"
  • og andre lignende konfigurasjoner.

For å koble til et eksternt utskriftsskjema i 1C må vi gå gjennom 11 trinn.

1 - Meny "Service". 2 — Velg "Ekstern utskrift av skjemaer og behandling". 3 — Neste — «Eksterne trykte skjemaer» (se figuren nedenfor ↓)

For å overbevise deg om at denne instruksjonen også passer for andre konfigurasjoner på "VANLIG" skjemaer, la oss presentere den samme initialen 1-2-3 trinn, men ikke i «Trade Management 10.3», men i «Regnskap 2.0» er alt likt der med unntak av litt endrede ord i underavsnittene, nemlig...

1 - "Service"-meny (samme som i "UT 10.3", og i andre).
2 - Her "Tilleggsrapporter og behandling", og ikke "Eksterne trykte skjemaer og behandling" som i "UT 10.3",
men fortsatt er meningen den samme og ligger der i "Service"-menyen.
3 - Og så - "Ytterligere eksterne trykkskjemaer", dvs. ekstra ord "Additional" sammenlignet med "UT 10.3" (se figuren nedenfor ↓)

Deretter vil vi fortsette å bruke eksempelet "Trade Management 10.3" uten unødvendige sammenligninger.
4 — Klikk på "+"-knappen, dvs. "Legge til". 5 — En knapp der mappen er tegnet (når du holder musepekeren, vil et hint vises: "Erstatt ekstern behandlingsfil").

I nye versjoner av 1C (fra og med august 2016) har programmet en innebygd advarselsmekanisme om faren ved å bruke ukjent ekstern prosessering som kan inneholde "virus" i tidligere versjoner av programmet vil advarselen ikke vises! Hvis det oppstår, vil det være nødvendig for å koble til ekstern behandling - 6 - klikk på "Fortsett"-knappen. (se figuren under ↓)

7 — Velg katalogen der den eksterne utskriftsskjemafilen vi trenger er plassert. 8 — Velg filen vår. 9 — Klikk "Åpne" (se figuren nedenfor ↓)

10 — Et eksternt trykt skjema kan ha autoregistreringsparametre, som i vårt tilfelle, her er det fornuftig å klikke "Ja" - og dermed bruke disse parameterne under registreringen, dvs. velger automatisk de objektene (dokumenter eller kanskje for eksempel kataloger) der det vil være mulig å bruke et tilkoblet eksternt trykt skjema (se figuren nedenfor ↓)

Det er alt, vi har fylt ut tabellen "Tilknytning av det utskrevne skjemaet", takket være parametrene for automatisk registrering, vi ser navnet på det tilkoblede eksterne trykte skjemaet, kanskje vil du ha "Kommentar"-feltet fylt ut, etc. Du kan legge til objektene dine i tabellen "Print Form Ownership", for eksempel for vår "Universal Printable Contract Form"-behandling, som støtter utskrift av mange dokumenter og oppslagsverk, men parametere for automatisk registrering angis kun for de viktigste: 10* — Klikk på den grønne «Legg til»-knappen og velg hvilke objekter som også skal plasseres for behandling. Nå gjenstår det bare - 11 - klikk på "OK"-knappen og (se figuren nedenfor ↓)

Nå er det verdt å sjekke - gjorde vi alt riktig?
For å gjøre dette velger vi et objekt for å sjekke, for eksempel dokumentet "Salg av varer og tjenester", som er angitt i tabellen "Tilknytning av det trykte skjemaet", dette betyr at det tilknyttede trykte skjemaet kan brukes i dette dokument! La oss sjekke... (se figuren nedenfor ↓)

For å sjekke om utskrift er mulig, åpne et hvilket som helst dokument av skjemaet: "Salg av varer og tjenester." 13 — Klikk på "Skriv ut"-knappen.
Vi ser at et vindu for valg av trykte skjemaer har dukket opp, blant dem er det - 14 — eksternt trykkskjema koblet til av oss (se figuren nedenfor ↓)

Det utføres i samsvar med standardoppsettet til det trykte skjemaet innebygd i applikasjonen av utviklerne (dette kalles "levert" layout).

Om nødvendig kan du endre standardoppsettet og i fremtiden skrive ut et dokument basert på ditt personlige ("egendefinerte") oppsett. For å redigere oppsettet til det trykte skjemaet, er det gitt en mekanisme for opplasting til en lokal datamaskin. Redigering av oppsettet utføres i den lokale versjonen av 1C:Enterprise-systemapplikasjonen (spesielt kan du bruke gratisprogrammet 1C:Enterprise - Working with Files).


Slik endrer du det utskrivbare oppsettet:




Redigering av oppsettet til det trykte skjemaet er fullført ved utskrift av dokumentet, vil oppsettet som endringene er gjort til brukes.

Hvis du vil gå tilbake til forrige utskrivbare layout, klikker du på knappen Bruk standard layout. I dette tilfellet vil det redigerte oppsettet fortsatt være til stede på serveren, og det kan slås på igjen ved å trykke på knappen Endre.

Vi ønsker deg hyggelig arbeid!

Hvordan sette inn en firmalogo i et trykt skjemaoppsett?

Her er et spesifikt eksempel på redigering av et trykt skjemaoppsett Fakturaer for betaling, nemlig, vi vil vurdere hvordan du setter inn et bilde i det, for eksempel en firmalogo (dette bildet må først forberedes og lagres som en grafisk fil, for eksempel i png- eller jpg-format).


Dermed vil nå fakturaene du forbereder for overføring til dine motparter inneholde firmalogoen din. For å legge til en logo i andre dokumenter, må du gjenta de beskrevne trinnene for de tilsvarende trykte skjemaene for disse dokumentene.

Vi ønsker deg hyggelig arbeid!

Som kjent - uten et stykke papir... ingen seriøs virksomhet kan klare seg uten. Og når vi sier at 1C har en slags elektroniske dokumenter, oppstår spørsmålet umiddelbart om hvordan man skriver dem ut i papirform.

Prosessen med å skrive ut et elektronisk dokument 1C kalles utskriftsskjema 1C.

Hvert dokument kan ha flere 1C-trykte skjemaer. For eksempel er dokumentet Salg av varer og tjenester (dvs. salg) skrevet ut i 1C-trykte former: TORG-12, Faktura, Fraktbrev, Sertifikat for utførte tjenester, og så videre.

Essensen av det trykte 1C-skjemaet er en mal (som et Excel-dokument) der variabler er spesifisert. Under utskriftsprosessen erstattes tekst fra det elektroniske dokumentet med variabler. Malen lagres vanligvis i konfigurasjonen.

Problemet med å endre et standard 1C trykt skjema er at det vanligvis ikke er tilrådelig å endre standardkonfigurasjonen, ellers vil det være vanskeligere å oppdatere. Derfor begynte ulike metoder for bruk av eksterne 1C-utskriftsskjemaer å bli gjenoppfunnet.

Et eksternt 1C-utskriftsskjema er en utskriftsmal som på en eller annen måte lagres separat fra selve konfigurasjonen.

Dette er imidlertid alt teori. Hvordan lage ditt eget trykte skjema? Eller enda bedre, hvordan gjøre endringer i en eksisterende?

Hvordan et 1C-dokument skrives ut

For å skrive ut et hvilket som helst 1C-dokument (som kan skrives ut), må du klikke på Skriv ut-knappen i dokumentet. 1C vil tilby å velge et 1C trykt skjema for dette dokumentet fra listen.

Til venstre for Print-knappen er det vanligvis en hurtigknapp til det sist valgte 1C-utskriftsskjemaet.

Utskriftsresultatet ser slik ut. For å skrive det ut til en skriver må du plassere markøren i 1C-utskriftsskjemaet, trykke Ctrl+P eller skriverknappen på knappepanelet eller i Fil/Skriv ut-menyen.

Utskriftsinnstillinger (marger, arkretning osv.) er plassert i Fil/Sideoppsett-menyen. Du kan også konfigurere brukerinnstillingene for å skrive ut direkte til skriveren.

Hvor kommer dette trykkskjemaet fra?

Hvor er det trykte 1C-skjemaet plassert?

La oss gå til konfiguratoren. Finn det nødvendige dokumentet i konfigurasjonsvinduet. La oss utvide Layouts-grenen. Det er de som blir til 1C-trykkformen når de skrives ut.

Det vil imidlertid ikke være nok - vi ble tilbudt å velge mange flere alternativer ved utskrift. Faktum er at mange 1C-utskrevne skjemaoppsett er skjult på et annet sted.

La oss gå tilbake til toppen av 1C-konfigurasjonsvinduet. La oss åpne grenen Generelt, og deretter grenen Generelle oppsett. Det er her de fleste layoutene ligger. Dette gjelder spesielt for statlig regulerte trykte skjema 1C - TORG 12, Faktura mv.

Forresten, det er ikke vanskelig å legge merke til at du vil se flere oppsett av TORG12 eller Invoice. Hvorfor? Det er lett å forklare. Lover og krav endres med jevne mellomrom. Men vi kan ikke bare endre det samme oppsettet – og hvis vi må skrive ut dokumentet fra en dato som er tidligere enn endringsdatoen. Derfor lages det flere oppsett og, avhengig av datoen for dokumentet, brukes den riktige.

Men det er ikke alt! Det er også utvendige oppsett. Hvor er de lagret?

La oss gå tilbake til 1C Enterprise-modus. Gjennom brukermenyen med administrative rettigheter Operasjoner/kataloger, velg katalogen Ekstern behandling.

Linjene i denne katalogen, som har skjemaet Utskriftsskjema, legger til utskriftsalternativer for dokumentet som er spesifisert i tabellen Eierskap til utskriftsskjemaet (på bildet er dette Salg av varer og tjenester).

For at dette skal fungere, må du lage en ekstern behandling som har en Print()-prosedyre i sin objektmodul merket Export, som organiserer utskriftsprosessen.
Men vi går foran oss selv. La oss først se på hvordan oppsettet til 1C-utskriftsskjemaet er organisert.

Layout av trykt skjema 1C

Oppsettet til 1C-trykkskjemaet ser slik ut.

Som du kan se, er den delt inn i blokker. Blokker kan være horisontale (navn til venstre) eller vertikale (navn øverst).

Selve layouten, som den er, skrives ikke ut. Individuelle blokker trykkes. Programmereren i utskriftsbehandlingsprosedyren spesifiserer rekkefølgen av blokker og antall repetisjoner av hver blokk. Resultatet er et trykt skjema.

For å tildele et område, velg flere rader (eller flere kolonner) og velg Tabell/Navn/Tildel et navn fra menyen. For å fjerne, er det også kommandoen Fjern navn.

Navnet er nødvendig for at området skal kunne nås fra programkode. Navnet kan tildeles ikke bare til rader eller kolonner, men også ganske enkelt til flere celler. For å gjøre dette, velg cellene og velg den samme menyen.

Som standard vises imidlertid ikke egendefinerte cellenavn. For å se dem, velg menypunktet Tabell/Navn/Vis navngitte celler.

Så i dag lærte vi at et 1C trykt skjema dannes ved hjelp av en layout. Oppsettet består av blokker – smart kalt områder.

Typiske (vanlige) blokker for trykkplater:

  • Topptekst – tittelen på dokumentet vises
  • Rad – én rad i tabellen vises, denne blokken gjentas så mange ganger som radene må skrives ut
  • Bunntekst – slutten av dokumentet vises.

Nå må vi forholde oss til

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. Redegjørelse om 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 mottak.

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å 1C 8-plattformen. 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 "PrintedForm"; 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 metadatatreet for ekstern behandling av 1C Detaljer og trykk på knappen Legge 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 Spare(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 det trykte skjemaet, så hvis du vil at det trykte skjemaet ditt 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 Ferdig.

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 alltid kan legge til eller fjerne. 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 Lokk, 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 felten 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 Lokk 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 Lokk 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 i å 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 Forsegle().

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 vil bruke Forespørsel. 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", "Blir / 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 Dokumenter 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 finne et bord 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 - Felter. La oss utvide tabellen , la oss finne feltet Pris og dra den til Felter.

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 kolonnen Felter 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-forespørsler kan du bruke parametere som 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 Vilkår 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 parametrene merket med "&" -tegnet, men i dette tilfellet er dette ikke nødvendig, siden det antas at den andre delen av betingelsen 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 Legge til, i felten 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 at venstre sammenføyning av spørringstabeller skal fungere som beskrevet 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 | VaremottakTjenesterProdukter.Nomenklatur, | Mottak av varerTjenesterProdukter.Beløp, | Mottak av varerTjenesterProdukter.Pris, | VaremottakTjenesterProdukter.Antall, | PriserNomenklatur Utsnitt av pristildag.Pris GoodsServices.Goods AS Receipt ProductsTjenesterProdukter |. VENSTRE TILKOBLING RegisterInformation.PricesNomenclature.SliceLast (| &CurrentDate, PriceType = &PriceType) AS PriserNomenclatureSliceSist.ONNo Receipt of GoodsItems

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 CurrentDate(), 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øp(), 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 Totalbeløp Og Totalkvantitet 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; Kjeller 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 - . 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

Forsegle() . Vi har allerede forberedt dataene for fylling, fylling og uttak utføres i henhold til samme ordning. utfylt regnearkdokument.

Returner TabDoc;

Når du kobler et eksternt utskriftsskjema til databasen, bestemmer ikke systemet automatisk hvilket dokument eller oppslagsbok utskriftsskjemaet skal velges 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 nødvendig å lage et oppsett med autoregistreringsparametere i alle eksterne trykte skjemaer. 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 Dokumenter.(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 Enterprise;
  • Gå til menyen Service -> Ytterligere rapporter og behandling -> Ytterligere eksterne trykte skjemaer;
  • Klikk på knappen Legge 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 det nødvendige dokumentet eller oppslagsboken;
  • Trykk på knappen OK.

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

Denne artikkelen beskriver hvordan du kobler et eksternt trykt skjema til en 1C-database ved å bruke eksempelet "Trade Management 11.2"-konfigurasjonen

"Trade Management 11.2"-konfigurasjonen er en konfigurasjon på "MANAGED"-skjemaer!

Våre instruksjoner "viser" hvordan du kobler et eksternt trykt skjema i 1C-informasjonsbasen med konfigurasjon på "MANAGED"-skjemaer, nemlig:

  • "Regnskap 3.0"
  • "Trade Management 11.2"
  • "Lønn og personalstyring 3.1"
  • "Omfattende automatisering 2.0"
  • "Small Firm Management 1.6"
  • "Detaljhandel 2.2"
  • og andre lignende konfigurasjoner.

For å koble til et eksternt utskriftsskjema i 1C må vi gå gjennom 11 trinn.

1 — Meny "Hoveddata og administrasjon" (I andre konfigurasjoner, for eksempel i Enterprise Accounting 3.0, kan den ganske enkelt kalles "Administrasjon"). 2 — Velg "Utskrevne skjemaer, rapporter og behandling" (se figuren nedenfor ↓)

3 — Utvid undermenyen "Rapporter og behandling" (I andre konfigurasjoner, for eksempel Enterprise Accounting 3.0, er det kanskje ikke en slik undermeny, så vi går umiddelbart videre til neste trinn). 4 — Merk av for «Bruk av tilleggsrapporter og behandling»-boksen. 5 — Gå til avsnittet: Tilleggsrapporter og behandling. (se figuren nedenfor ↓) ()

6 - Klikk på "Opprett"-knappen. (se figuren under ↓)

I nye versjoner av 1C (fra og med august 2016) har programmet en innebygd advarselsmekanisme om faren ved å bruke ukjent ekstern prosessering som kan inneholde "virus" i tidligere versjoner av programmet vil advarselen ikke vises! Hvis dette skjer, vil det være nødvendig for å koble til et eksternt utskriftsskjema - 7 - klikk på "Fortsett"-knappen. (se figuren under ↓)

8 — Velg katalogen der behandlingen er plassert. 9 — Velg det (behandlingen vi trenger). 10 - Klikk på "Åpne"-knappen. Eller, i stedet for trinn 9 og 10, kan du ganske enkelt dobbeltklikke på det eksterne trykte skjemaet vi trenger i valgvinduet. (se figuren under ↓)

Hvis vi trenger å legge til plassering for den ekstra behandlingen (for eksempel er dette et universelt kontraktskjema fra nettstedet vårt, og vi trenger kommandoen for å skrive ut dette skjemaet for å vises i et objekt der det ikke vises i utgangspunktet) - 11 — klikk på plasseringslinjen ("Plasser i:", kanskje "Plassering:") og velg nødvendige kataloger og dokumenter. 12 — Vi fullfører trinnene for å koble til et eksternt utskriftsskjema ved å klikke på "Registrer og lukk"-knappen. (se figuren under ↓)

Det er det! Gratulerer! Ekstern trykkplate er tilkoblet! Gjorde vi alt riktig? La oss sjekke...

Før opptak og lukking la vi merke til at dette eksterne trykte skjemaet ligger i dokumentet Salg av varer og tjenester, noe som betyr at vi kan åpne utskriftsalternativer for ethvert dokument av typen: "Salg av varer og tjenester." trykk på "Skriv ut"-knappen og se at et vindu for å velge utskrevne skjemaer har dukket opp, blant dem er det - 13 — eksternt trykkskjema koblet til av oss (se figuren nedenfor ↓)

Nå er det det helt sikkert. Vi håper at denne artikkelen var nyttig for deg.

visninger