Legge til en ekstern rapport i databasen. Legge til en ekstern rapport i databasen Hvordan lage en ekstern rapport i 8.3-opplæringen

De sier at navnet 1C opprinnelig betydde uttrykket "ett sekund", dvs. programmer må produsere rapporter raskt, "på ett sekund." Hastigheten på rapportene er veldig viktig, men det er enda viktigere at rapportene gir riktig informasjon – vi vil forstå dette ved å bruke eksemplet med å lage en enkel rapport i 1C 8.3 basert på Trade Management 10.3-konfigurasjonen. For å lage korrekte rapporter er det ønskelig (selv sterkt anbefalt) å kunne konfigurere 1C og å kunne programmere litt på internspråket og spørringsspråket til 1C, selv om det på den annen side er en utmerket mulighet å lage rapporter. å begynne å mestre disse ferdighetene.

Denne beskrivelsen er pedagogisk for å forstå de grunnleggende prinsippene for å lage 1C-rapporter

Hvordan lage en rapport i 1C 8.3

For å lage en rapport må du åpne 1C i konfiguratormodus; for å gjøre dette, i 1C-startvinduet, velg ønsket database i listen og klikk på Konfigurator-knappen:

I selve konfiguratoren går du til Fil-menyen og velger Ny:


I menyen som vises, velg Ekstern rapport og klikk OK:


Etter dette åpnes et nytt rapportvindu. I Navn-feltet skriver du inn navnet på rapporten; den må være uten mellomrom eller spesialtegn:


Hvordan lage en rapport ved hjelp av et oppsett

Denne metoden krever mest programmeringsferdigheter i 1C, men her skal vi ikke analysere mekanismene for mottak og behandling av data, vi vil lage en enkel rapport for å forstå mekanismen for å starte rapporten og vise rapportskjemaet på skjermen:

I rapportvinduet (som åpnes når du oppretter en rapport), i den nedre listen, plasser markøren på Layouts-elementet og, når du høyreklikker, klikker du på Legg til i menyen som vises:


I layoutdesigneren som åpnes, kan du spesifisere navnet på layouten, Regnearkdokument skal velges som layouttype, og deretter klikke på Fullfør-knappen i designeren:


Dette vil åpne et layoutvindu som ligner et Excel-ark:


I denne layouten må du lage områder - grupper av rader eller kolonner som programmet vil bruke som maler, sette inn data mottatt fra databasen i dem og vise disse malene på skjermen, og dermed sette sammen en rapport fra disse delene.

La oss lage en rapport som viser en liste over elementer. For å gjøre dette oppretter vi to layoutområder: rapportoverskriften og varelinjen.

For å opprette et overskriftsområde, venstreklikk på linjeoverskriften (der linjenummeret er angitt) for å velge linjen slik (hele linjen skal velges med ett klikk på overskriften):


Etter det, gå til Tabell-menyen i hovedmenyen, gå til undermenyen Navn og klikk på Tildel navn-elementet:


Programmet vil be deg spesifisere områdenavnet, navnet skal heller ikke inneholde mellomrom eller spesialtegn, klikk deretter OK, det skal se slik ut:


Nå i det opprettede området må du skrive inn teksten som skal vises i rapporten og formatere den. For å gjøre dette, skriv inn tekst i den første cellen, for eksempel "Liste over elementer." Arbeid med celler ligner på Excel.

For å formatere tekst i en celle, høyreklikk på cellen og klikk på Egenskaper. Celleegenskaper-vinduet åpnes til høyre. Rull ned innholdet i vinduet, finn Font-feltet og klikk på "..."-knappen:


I vinduet som åpnes, i Stil-delen, merk av for fet boks og klikk OK:


Oppsettet skal se slik ut:


På samme måte oppretter vi varelinjeområdet, men markerer det ikke med fet skrift:


I linjeområdet må du angi at Navn er en parameter, dvs. at det virkelige navnet på elementet vil bli erstattet der når rapporten skrives ut. For å gjøre dette, åpne egenskapene til cellen med navnet og i egenskapene i Fylling-feltet, velg verdien Alternativ, dette fullfører layoutoppsettet:


Vi går tilbake til hovedrapportvinduet og i den nedre listen høyreklikker du på Skjemaelementet og klikker Legg til:


I rapportskjemadesigneren som åpnes, klikk på Fullfør-knappen, rapportskjemaet åpnes, dobbeltklikk på Generer-knappen:


Som et resultat vil vinduet med knappeegenskaper åpnes på høyre side av skjermen; i Handling-feltet klikker du på forstørrelsesglasset:


Etter dette åpnes en skjemamodul der du må programmere genereringen av en rapport:


Erstatt først den valgte teksten med følgende programkode:

//lag et regnearkdokument som fylles med deler av rapporten og vises på skjermen
TabDocument = Nytt TabularDocument;
//deretter får vi oppsettet som ble opprettet da rapporten ble opprettet
Layout = GetLayout("Layout");
//nå må vi vise rapportoverskriften, for dette henter vi overskriftsområdet fra oppsettet og viser det i et regnearkdokument
AreaHeader = Layout.GetArea("Header");
TabDocument.Output(AreaHeader);
//ved å bruke en spørring får vi et utvalg varenavn som må vises i rapporten
Request = Ny forespørsel;
Request.Text = "
|VELG
| Navn
|FRA
| Directory.Nomenklatur
|";
//hent elementlinjeområdet fra layouten - vi får tilgang til det i en løkke for å vise hvert element
AreaString = Layout.GetArea("String");
//behandle hvert navn fra det resulterende utvalget i en løkke
Select = Query.Run().Select();
Mens Select.Next() Loop
//for å vise neste linje, må du spesifisere neste navn i områdeparameteren (vi konfigurerte selve parameteren når du opprettet layouten)
AreaString.Parameters.Name = Selection.Name;
//parameteren er fylt ut, nå kan du vise strengen
TabDocument.Output(AreaString);
EndCycle;
//regnearkdokumentet er generert, nå viser vi det på skjermen
TabDocument.Show("Liste over elementer");

Når teksten er kopiert inn i skjemamodulen, vil linjer som starter med en dobbel skråstrek "//" utheves i grønt - dette er kommentarer som beskriver hva hver linje med kode gjør:


La oss oppsummere hvilke linjer med programkode som trengs for å generere en rapport:

  1. Det er nødvendig å lage et regnearkdokument som skal fylles med deler av rapporten og vises på skjermen; dette gjøres med linjen "TabDocument = New TabularDocument;"
  2. Vi må få rapportoppsettet, fra det får vi rapportstrukturen i deler (områder), dette gjøres med linjen "Layout = GetLayout("Layout")"
  3. For å vise hvert av områdene, må du hente det fra oppsettet og skrive det ut til et regnearkdokument, dette gjøres med linjene "Header Area = Layout.GetArea("Header")" og "TabDocument.Output(HeaderArea) "
  4. Hvis du trenger å fylle ut parametere som blir kjent først når programmet kjøres, så før du viser området du må fylle ut slike parametere, gjøres dette med linjen "AreaString.Parameters.Name = Selection.Name"
  5. Og bare når regnearkdokumentet er fylt med alle nødvendige deler av rapporten, vises det på skjermen, dette gjøres med linjen "TabDocument.Show("List of items")"

Og nå kan du sjekke driften av rapporten - åpne 1C i bedriftsmodus (knapp 1C: Enterprise i 1C-startvinduet). I hovedmenyen, gå til filmenyen, klikk Åpne:


Finn og åpne den lagrede rapportfilen. Klikk på Generer-knappen i skjemaet som åpnes:


og vi får en liste over nomenklatur:


Dette er bare én måte å lage rapporter i 1C. I de følgende artiklene skal vi se på andre.

Behovet for å tilpasse eksterne rapporter kan oppstå ved umiddelbare endringer i de tilsvarende rapporteringsskjemaene. Offentlige organer som godkjenner de aktuelle skjemaene tar tross alt ikke alltid hensyn til at forretningsenheter trenger tid til å utarbeide rapporteringsskjemaet. Forfatter - S.A. Kharitonov.

I standardkonfigurasjoner for 1C:Enterprise 8, produsert av 1C, er regulerte rapporteringsskjemaer inkludert i konfigurasjonene og utgis sammen med konfigurasjonsutgivelser. Men når behovet oppstår – for eksempel en ny utgave av rapporteringsskjemaet trer i kraft – frigir 1C-selskapet slike rapporteringsskjemaer i form av eksterne rapporter "1C: Enterprise 8" (filer med filtypen *.erf).

Bruk av eksterne rapporter er en midlertidig løsning som kun skal brukes inntil en konfigurasjonsutgivelse er utgitt der nødvendige endringer skal bygges inn. Derfor pålegges visse begrensninger for bruken av eksterne rapporter:

  • ved utgivelse av en ekstern rapport er det spesifisert hvilken konfigurasjonsutgivelse den kan brukes med;
  • den eksterne rapporten er ikke garantert å støtte tidligere konfigurasjonsutgivelser;
  • når en bruker arbeider med en konfigurasjon, kan ikke mer enn én versjon av en ekstern rapport brukes;
  • Å åpne et rapportskjema tar lengre tid sammenlignet med en rapport implementert som et konfigurasjonsobjekt;
  • opplasting av rapportdata i elektronisk form går mye tregere osv.

En liste over eksterne rapporter utstedt for en spesifikk konfigurasjonsutgivelse kan sees på konfigurasjonssiden til 1C:Enterprise 8 brukerstøtteside på www.users.v8.1c.ru (i delen Gratis informasjon du må klikke på interessenummeret i kolonnen med versjonsnummer) eller i skjemaet Oppdater informasjon(ringes med knapp Oppdater informasjon topplagsdrakt ), hvis den regulerte varslingstjenesten er aktivert i informasjonsbasen.

I samme skjema kan du klikke på navnet på den eksterne rapporten for å laste den ned til datamaskinen din.

Som regel distribueres rapporter i form av et RAR-arkiv. For å jobbe med en ekstern rapport må arkivet pakkes ut.

Arkivet, sammen med den eksterne rapportfilen, inneholder en tekstfil som beskriver formålet med rapporten og hvordan den kobles til.

Hvis en ekstern rapport er ment å erstatte en regulert rapport som allerede finnes i konfigurasjonen, kan den kobles til infobasen ved å åpne rapporten i 1C:Enterprise-modus (meny) Fil - Åpne).

Når den åpnes vil du bli stilt et spørsmål Registrer en ekstern regulert rapport i informasjonsbasen? Etter svar Ja den eksterne rapporten vil bli registrert i infobasen og umiddelbart åpnet for å lage en ny rapport.

Hvis du svarer Nei, vil rapporten ikke bli registrert, men vil også åpnes for å opprette en ny rapport. Det vil være mulig å utføre alle handlinger med en slik rapport - opprettelse, utfylling, utskrift - men den opprettede rapporten kan ikke lagres i infobasen.

Hvis den eksterne rapporten er en ny type regulert rapport, vil ikke rapporten kunne registreres automatisk i infobasen: denne modusen må aktiveres manuelt. Tilkoblingsinstruksjoner er også tilgjengelige i tekstfilen i arkivet hentet fra 1C-nettstedet.

For å bruke en ekstern rapport må brukeren angi at det for denne regulerte rapporten ikke skal brukes et internt konfigurasjonsobjekt, men en ekstern rapport.

For å registrere en ekstern rapport som en ny type regulerte rapporter i katalogen Regulerte rapporter nødvendig (se fig. 1):

1) gå til kataloggruppen der den nye typen rapport vil være plassert;
2) opprett et nytt katalogelement ved å klikke på knappen Legg til i det øverste kommandopanelet i katalogskjemaet;
3) i form av et katalogelement, fyll inn navnet som vil bli utstedt i katalogen Regulerte rapporter og i listen over rapporttyper i skjemaet Regulatorisk og finansiell rapportering. Det er også lurt å fylle ut en beskrivelse av type rapport;
4) bytte Bruk satt til fil og spesifiser hvilken fil som skal brukes som ekstern rapport. Etter å ha trykket på knappen OK i filåpningsdialogen vil det fulle navnet på denne eksterne rapporten bli angitt i filfeltet i ordbokelementskjemaet.

Ris. 1. Registrer en ekstern rapport

Etter å ha trykket på knappen Skrive ned den eksterne rapporten lagres i infobasen, hvoretter hele navnet på den eksterne filen erstattes med tekst Rapporten er lastet opp til IB.

Det samme skjer når du trykker på en knapp OK, mens formen til katalogelementet Regulerte rapporter stenger.

For de katalogelementene som det brukes eksterne rapporter for, legges linjen (ekstern) i form av kataloglisten etter navnet på rapporten.

Etter at den eksterne rapporten er lastet inn i infobasen, er ikke selve den eksterne rapportfilen lenger nødvendig og kan slettes.

Å jobbe med en regulert rapport som bruker en ekstern rapport er ikke forskjellig fra å jobbe med et konfigurasjonsobjekt, bortsett fra "langsom respons" ved åpning og ved nedlasting av rapporteringsdata i elektronisk form.

Som et tegn på en ekstern rapport vises en rød informasjonsinskripsjon på høyre side av det øverste kommandopanelet Ekstern rapport.

Du kan gå tilbake til å bruke det "interne" konfigurasjonsobjektet når som helst. For å gjøre dette, i form av et katalogelement for den nødvendige regulerte rapporten, må du velge bryteren Brukå posisjonere en gjenstand og lagre katalogelementet.

Selve den eksterne rapporten slettes ikke fra infobasen, så motsatt handling er også mulig. For å slette en rapport fra infobasen må du gjøre følgende:

1) i katalogen Regulerte rapporter finne en regulert rapport som en ekstern rapport er koblet til - en slik rapport vil ha en linje (ekstern) lagt til etter rapportnavnet;
2) åpne katalogelementet for redigering med knappen Endre gjeldende element;
3) Klikk på knappen i valgfeltet for ekstern rapport X (Tøm). Etter å ha trykket på den teksten Rapporten er lastet opp til IB er ryddet, er dette et tegn på at rapporten vil bli slettet fra infobasen;
4) lukk katalogelementskjemaet ved å klikke på knappen OK.

Rapporten slettes mens katalogelementet lagres.

Om nødvendig kan rapporten som er lastet inn i infobasen lagres til en fil på disk. For å gjøre dette, i form av et katalogelement Regulerte rapporter du må klikke på lenken med teksten Last opp ekstern rapport til fil. En standard fillagringsdialog åpnes. Som standard er navnet på filen navnet på det tilsvarende konfigurasjonsobjektet.

Det er viktig å merke seg at i én brukerøkt med en infobase kan du ikke bruke mer enn én versjon av en ekstern rapport: for eksempel hvis brukeren allerede jobber med en regulert rapport, som er en ekstern rapport, og har lastet den inn i katalogen Regulerte rapporter en annen versjon av denne eksterne rapporten (for eksempel med lagt til autofullføring), for å bruke denne versjonen av rapporten må han avslutte økten i 1C:Enterprise-modus, og deretter umiddelbart starte en ny økt.

I vårt eksempel viser rapporten produksjonen av produkter og tjenester etter divisjoner, produktgrupper og etter måned.

Her er hovedsiden til rapporten:

Denne siden kalles opp fra konfiguratoren i menyen Fil – Ny – Ekstern rapport.

Først legger vi til et datasett (DataSet1). I «Query»-vinduet kan du skrive det selv, lage det ved hjelp av Query Builder eller laste det fra en fil. Den mest praktiske måten er å bruke spørringskonstruktøren. Les hvordan konstruktøren fungerer.

Alt du trenger fylles ut automatisk, men noen ting må justeres.

For eksempel, kolonneoverskrifter («Antall»-avmerkingsboksen i figuren ovenfor lar deg skrive inn en hvilken som helst overskriftstekst for dette feltet), du kan angi datautdataformatet (se Format på Antall-linjen). Formatet kan redigeres for alle typer data – strenger, datoer, tall.

På fanen Ressurser velger du selve ressursene og konfigurerer visningen av resultater for dem:

Fanen Parametere inneholder alt som endrer innholdet i rapporten (for eksempel perioden som data skal velges for). Fylles ut automatisk basert på forespørselsparametrene (se første side). Ved å bruke avmerkingsbokser kan du justere synligheten og tilgjengeligheten til disse parameterne, angi startverdien osv.:

Få 267 videotimer på 1C gratis:

Og til slutt, Innstillinger. Her tegnes rapportens utseende - kolonner, rader, deres plassering i forhold til hverandre, grupperinger osv. "Åpne Innstillingsdesigner"-knappen hjelper deg med å ordne linjene og kolonnene i ønsket rekkefølge. Knappen "Custom Element Settings" lar deg vise parameterne i rapportoverskriften:

Vær oppmerksom på kolonnen Periode.PartsDate.NameMonth. Hvordan vise månedens navn i kolonneoverskriften? Det er her det kommer ut.

Forresten, det er denne innstillingen som lar deg vise data for flere perioder samtidig i tilstøtende rapportkolonner:

En annen viktig fane er Valgte felt. Hvis den er tom, vil ikke rapporten bli generert. Fylles vanligvis ut automatisk ved å klikke på "Åpne Innstillingsdesigner"-knappen:

Faktisk er det alt du trenger fra minimum som kreves. Som et resultat vil vi ha en rapport som ser slik ut:

La oss vurdere å lage en ekstern rapport i 1C 8 uten å bruke et datasammensetningssystem. For å lage en ekstern rapport bruker vi Accounting 2.0-konfigurasjonen, de første dataene: «Skriv en rapport på regnskapskonto 62 der omsetningen for den angitte perioden vises i konteksten Motparter Og Kontrakter med motparter.

1. Lag en rapport

Først av alt, la oss lage en ekstern rapportfil; for å gjøre dette, la oss gå til 1s 8 i modusen Konfigurator, la oss gå til menyen Fil -> Ny, eller klikk på ikonet nytt dokument.

Velg elementet fra listen Ekstern rapport. Etter å ha opprettet den eksterne rapporten, gi den et navn (for eksempel Den enkleste rapporten) og lagre den på disk. Vi vil også legge til to detaljer: Begynnelsen av perioden Og Slutt på periode type Dato, vil vi trenge dem for å begrense tidsintervallet for datasampling når vi genererer en rapport.

2. Lag et eksternt rapportoppsett

For å generere en rapport i 1C 8 trenger du et oppsett, dette er en mal for å vise data der alle nødvendige parametere er satt, tabeller er tegnet, etc. La oss legge til et nytt oppsett; for å gjøre dette, velg elementet i rapportmetadatatreet Oppsett og trykk på knappen Legg til, når du oppretter, velg typen for oppsettet regnearkdokument.

Vår layout vil ha 4 områder:

  • Overskrift - i dette området vil vi vise navnet på rapporten, perioden den ble generert for og tabelloverskriften;
  • Motpartsdata - i dette området vil vi vise data om motparten i en tabell;
  • Datamotpartsavtale - i dette området vil vi vise data om motpartsavtalen i en tabell;
  • Bunntekst - i dette området vil vi vise de totale verdiene for hele rapporten for inntekts- og kostnadsfeltene.

La oss begynne å lage layoutområder. For å opprette et område i oppsettet, velg ønsket antall linjer og klikk Menytabell -> Navn -> Tildel navn(Eller Ctrl + Shift + N). Til regionen En lue La oss skrive navnet på rapporten: Omsetning 62 teller, tegn ved hjelp av verktøyet Grenser rapporthode, og angi også parameterne Begynnelsen av perioden Og Slutt på periode. Ved hjelp av parametere kan du vise de nødvendige dataene i rapporten, dette vil vi behandle på neste utviklingsstadium, nemlig når du skriver rapportkoden. For å lage en parameter i oppsettet, velg ønsket celle, skriv navnet på parameteren i den (uten mellomrom), høyreklikk på den, velg elementet i menyen som åpnes Egenskaper. I celleegenskapene på fanen Oppsett velg polstring Parameter.

Etter dette vil parameternavnet i cellen være omsluttet av vinkelparentes("<>“). Som et resultat av området En lue skal se slik ut:

I området Datamotpart vi vil lage parametere for å vise navnet på motparten, samt for inntekter og utgifter for konto 62, ved hjelp av verktøyet Grenser La oss designe området som en tabellrad.

I området Datamotpartsavtale La oss lage parametere for å vise navnet på kontrakten, samt for inntekter og utgifter for konto 62, ved å bruke grenseverktøyet vil vi designe området som en tabellrad. La oss lage et lite innrykk før parameteren Motpartsavtale(dette kan gjøres ved å dele opp og slå sammen celler. Høyreklikk på cellen -> Slå sammen eller Del celle), er det nødvendig slik at rapporten kan se at linjen for kontrakten er lavere i hierarkiet enn linjen for motparten.

I området Kjeller La oss lage parametere for totalinntekter og utgifter.

Som et resultat bør vi få et oppsett som dette:

3. Lag et rapportskjema

For å vise data, still inn formasjonsperioden og knappen Skjema rapporten vår krever et skjema. For å opprette et skjema, finn elementet i metadatatreet for eksterne rapporter Skjemaer og trykk på knappen Legg til. På den første siden til skjemadesigneren trenger du ikke gjøre noen endringer, du trenger bare å klikke på knappen Lengre.

På neste side av designeren, velg begge tilgjengelige detaljer( Begynnelsen av perioden, Slutt på periode) for plassering på skjemaet.

Som et resultat vil vi få dette skjemaet:

Men vi er ikke fornøyd med det i denne formen; la oss gjøre noen endringer i det:

  • La oss dra knappen Skjema fra bunnpanelet i rapporten til toppen (dette vil være mer praktisk for brukeren);
  • Strekk formen vertikalt og horisontalt;
  • La oss ordne feltene Begynnelsen av perioden Og Slutt på periode horisontalt;
  • La oss legge til et regi skjemaet (rapporten vår vil vises i det), gi det et navn TabDoc;
  • La oss lage en periodevalgknapp (når du klikker på det, vises en dialogboks med et praktisk valg av ønsket periode). Vi vil ikke skrive programkoden for det ennå, så vi plasserer bare knappen ved siden av periodefeltene.

Som et resultat vil skjemaet vårt se slik ut:

4. Programmering

Etter å ha laget rapportskjemaet, la oss begynne å programmere. La oss først lage en prosedyre for å vise en periodevalgsdialog (vi har allerede laget en knapp for dette på forrige trinn). Høyreklikk på knappen og velg menyelementet Egenskaper, i knappens egenskaper går du til fanen arrangementer, hvor vi ved å bruke knappen med et forstørrelsesglassikon lager en prosedyre Knapp 1 Trykk i skjemamodulen.

Du kan bytte mellom skjemaet og dets modul ved å bruke fanene nederst i skjemaet

For å ringe periodevalgskjemaet vil vi bruke standard prosedyre Regnskap 2.0 fra en felles modul Arbeide med dialoger - HandlerPeriodSettingPress, må du sende rapportdetaljene til den som parametere Begynnelsen av perioden Og Slutt på periode.

Fremgangsmåte Knapp 1 Trykk (Element) Arbeide med Dialogs.PeriodSettingHandlerPressing(PeriodStart,PeriodEnd); Slutt på prosedyre

La oss nå gå videre til å skrive koden som vil generere og vise rapporten vår. Skjemamodulen har allerede en prosedyre KnappGenererTrykk, som vil bli utført når knappen trykkes Skjema, det er der vi skriver koden vår. La oss starte med å initialisere de nødvendige variablene. Først av alt, la oss lage en variabel for regnearkdokumentfelt som vi vil sende ut data til, dette er ikke nødvendig, det er bare at opptaket av samtaler til det vil bli kortere, noe som betyr at programkoden vil være mer forståelig for lesing.

TabDoc = FormElements.TabDoc;

La oss få oppsettet til den eksterne rapporten ved å bruke funksjonen GetLayout(<ИмяМакета>) , vil vi sende navnet på layouten som en parameter, og hvis en slik layout finnes, vil funksjonen finne den.

Layout = GetLayout("Layout" );

Etter at layouten er mottatt, la oss lage variabler for hvert av områdene, bruk layoutmetoden for dette GetArea(<ИмяОбласти>) .

AreaHeader = Layout.GetArea("Header" ); AreaDataAccount = Layout.GetArea( "Entreprenørdata"); AreaDataContract = Layout.GetArea("DataContract" ); AreaFooter = Layout.GetArea("Footer" );

La oss tømme feltet i regnearkdokumentet. Dette er nødvendig for at de gamle dataene skal slettes hver gang en ny rapport genereres.

TabDoc.Clear();

Nå som initialiseringen av variablene er fullført, la oss gå videre til å fylle og vise layoutområdene én etter én. La oss starte med overskriften. Hvis du husker, har vi laget to parametere på dette området Begynnelsen av perioden Og Slutt på periode, vil vi overføre verdiene for rapportgenereringsperioden der, for dette vil vi bruke eiendommen Alternativer layout områder.

AreaHeader.Parameters.PeriodStart = PeriodStart; AreaHeader.Parameters.EndPeriod = EndPeriod;

Ingen flere handlinger med området En lue Produsenten er ikke nødvendig, så vi vil vise feltet i et regnearkdokument.

TabDoc.Output(AreaHead);

Deretter vil vi skrive en spørring til databasen, som vi tar kontoomsetningen med 62 fra regnskapsregisteret Selvbærende. La oss definere en variabel som forespørselen vår skal ligge i.

Forespørsel = ny Forespørsel;

Før vi begynner å skrive forespørselsteksten, la oss sende de nødvendige parameterne til den. Siden vi skriver en forespørsel om en faktura 62 regnskap, så vil vi først og fremst lage en parameter for det

Request.SetParameter("Konto62", kontoplaner. Selvbærende. Finn etter kode("62" ));

Det er også nødvendig å overføre rapportgenereringsperioden til forespørselen. Ikke glem at vi har spesielle rapportdetaljer for generasjonsperioden, og vi sender dem som parametere.

Request.SetParameter("Start of Period", Start of Period); Request.SetParameter("End of Period", End of Period);

La oss begynne å skrive spørringsteksten, vi vil gjøre dette ved å bruke spørringsdesigneren. I mange opplæringsprogrammer skriver de at du må kunne skrive en spørring både manuelt og ved hjelp av en konstruktør, men i praksis er det ikke slik. I oppgavene som en 1C-programmerer konstant står overfor, er prioritet å raskt og effektivt skrive kode, og når du skriver en spørring til databasen manuelt, er dette nesten umulig å oppnå; du vil bruke mye dyrebar tid på å korrekt reprodusere alle spørringsstrukturer og finne skrivefeil som du gjorde når du skrev osv. Ikke kast bort tiden din på å prøve å skrive spørringer manuelt, men bruk spørringskonstruktøren. Det vil spare tid og lar deg skrive komplekse spørsmål uten mye innsats. For å begynne å skrive forespørselsteksten, la oss skrive i kode:

Request.Text = "" ;

Etter det, plasser markøren mellom sitatene, høyreklikk og velg Konstruktør be om. Spørringsdesignervinduet åpnes.

Nå må vi velge databasetabellen 1C 8. Vi trenger en virtuell tabell Revolusjoner regnskapsregister Selvbærende. La oss finne den på venstre side av designervinduet

La oss flytte den til området Tabeller og la oss begynne å fylle ut parameterne. For alle virtuelle spørringstabeller er det et spesielt sett med parametere som lar deg velge de nødvendige dataene fra hovedtabellen (i vårt tilfelle hovedtabellen Regnskapsregisteret Selvbærende). La oss åpne vinduet for virtuelle tabellparametere.

La oss fylle inn parameterne for perioden som vi sendte til forespørselen. For å bruke en parameter i forespørselsteksten, bør du skrive symbolet foran navnet ampersand(&)

Det gjenstår å fylle ut betingelsen for regnskapskontoen. regnskap. For å gjøre dette, finn linjen i parametrene til den virtuelle tabellen Kontotilstand og vi skriver der

Konto I HIERARKIET (&Account62)

Du kan også bruke betingelseskonstruktøren ved å klikke på knappen med tre prikker.

Det er ikke nødvendig å pålegge flere betingelser på det virtuelle bordet, så la oss klikke på knappen OK i vinduet for virtuelle tabellparametere. Deretter må vi velge feltene vi trenger fra tabellen Selvforsørgende.Omsetning(nemlig: Motpart, Motpartsavtale, Inntekter og Utgifter). For å se listen over felt tilgjengelig i tabellen vi har valgt, klikk på "+"-symbolet ved siden av navnet. Deretter drar du de nødvendige feltene til området lengst til høyre i spørringsdesigneren, som kalles: Felt. Hvis vi åpner kontoplanen, vil vi se det for kontoen 62 analyser på For motparten er dette Subconto1, og av Motpartsavtale - Subconto2.

Derfor velger vi fra feltene til den virtuelle tabellen Subconto1 Og Subconto2. Siden vi trenger inntekter og utgifter etter beløp, velger vi også feltene BeløpOmsetningDt Og BeløpOmsetningKt

La oss fylle ut aliasene til feltene vi har valgt; for å gjøre dette, gå til fanen Fagforeninger/Aliaser og angi de nødvendige feltnavnene.

Siden dataene i rapporten vår vises hierarkisk (motparten er på første nivå, og alle kontraktene er på andre), vil vi konfigurere visningen av data i hierarkiet ved å bruke Totals. La oss gå til fanen i designeren Resultater. Dra inn i grupperingsfelt sekvensielt Motpart Og Motpartsavtale, og i finalen Kommer Og Forbruk.

Dette fullfører arbeidet i spørringskonstruktøren, klikk på knappen OK og vi ser at teksten i forespørselen vår vises i programkoden.

Query.Text = "VELG | SelvbærendeTurnover.Subconto1 AS Motpart, | SelvbærendeTurnover.Subconto2 AS motpartsavtale, | SelvbærendeOmsetning.AmountTurnoverDt AS Kvittering, | SelvbærendeOmsetning.BeløpOmsetningKt AS Utgift|FRA | Regnskapsregister Egenregnskap Omsetning (&Begynnelse av periode, &Periodeslutt, Konto I HIERARKIET (&Konto 62),) AS EgenregnskapOmsetning|RESULTATER | BELØP(inntekt), | BELØP(Utgift) |PO | Motpart, | Motpartsavtale";

Etter at vi er ferdige med å skrive forespørselen, la oss begynne å fylle ut områdene Datamotpart, DataAgreement Motpart Og Kjeller. Vi vil fylle alle disse områdene med dataene vi mottar når vi utfører forespørselen. Siden søket vårt inneholder grupperinger( Motpart Og Motpartsavtale) velg data fra den som følger:

SelectionCounterpart = Request.Execute().Select(BypassQueryResult.ByGrouping);

På denne måten vil vi motta poster med totaler for alle motparter.

Før vi krysser prøvedataene ved hjelp av en løkke, initialiserer vi variablene beregnet på å beregne de samlede resultatene for rapporten:

Totalt Innkommende = 0; Totalt forbruk = 0;

For at rapportdataene skal vises med et hierarki (og rotasjoner langs "+"), la oss sette starten på autogrupperingen av radene i regnearkdokumentet:

TabDoc.StartAutoGroupingRows();

Alle forberedelser er fullført, la oss nå begynne å gjennomsøke søkeresultatene. Vi vil utføre traverseringen ved hjelp av en løkke Ha det

Mens Velg Account.Next() Cycle EndCycle ;

På begynnelsen av syklusen, tilbakestill parameterne Kommer Og Forbruk region Datamotpart. Hva er den til? La oss forestille oss en situasjon hvor motparten Onkel Vasya, inntekt er 10, og kostnad er 5, og for neste motpart Onkel Petya det er ingen inntekt eller utgifter, i dette tilfellet, hvis vi ikke tilbakestiller parametrene Kommer Og Forbruk, deretter på linje etter motpart Onkel Petya det blir en inntekt på 5 og en utgift på 10.

AreaDataAccount.Parameters.Receipt = 0; AreaDataAccount.Parameters.Expense = 0;

Etter det fyller vi området Datamotpart eksempelelementdata

FillPropertyValues(AreaAccountData.Parameters,SelectionAccount);

Etter å ha fylt ut dataene kan du vise området i regnearkdokument, Siden vi bruker autogruppering av rader, må vi angi nivået på raden i grupperingen (rapporten vår vil ha to nivåer, for motparter det første for kontrakter).

TabDoc.Output(AreaDataAccount,1);

Nå for denne motparten vil vi gjøre et utvalg i henhold til kontraktene.

SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups);

Vi vil utføre traverseringen ved hjelp av en løkke Ha det.

While SelectionCounterparty Agreement.Next() Loop EndCycle ;

La oss tilbakestille parametrene i syklusen for motpartsavtaler Kommer Og Forbruk, fyll området Datakontrakt fra prøven og vis den i et regnearkdokument på det andre nivået av poster.

AreaDataContract.Parameters.Receipt = 0; AreaDataContract.Parameters.Expense = 0; Fyll innPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2);

Også i denne syklusen vil vi legge til gjeldende verdier til variablene for å beregne de totale verdiene for inntekter og utgifter.

TotalReceipt = Total Receipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense;

Dette avslutter produksjonen av data i området Datamotpart, DataAgreement Motpart fullført, gjenstår det bare å fullføre autogrupperingen av radene i regnearkdokumentet.

TabDoc.FinishAutoGroupingRows();

Fulle sykluser ansvarlig for å sende ut data til området Datamotpart Og DataAgreement Motpart se slik ut:

TabDoc.StartAutoGroupingRows(); While SelectionAccount.Next() Loop AreaDataAccount.Parameters.Receipt = 0 ; AreaDataAccount.Parameters.Expense = 0 ; FillPropertyValues(AreaAccountData.Parameters,SelectionAccount); TabDoc.Output(AreaDataAccount,1); SelectionCounterparty Agreement = SelectionCounterparty.Select(BypassQueryResult.ByGroups); While SelectionCounterparty Agreement.Next() Loop AreaDataAgreement.Parameters.Receipt = 0 ; AreaDataContract.Parameters.Expense = 0 ; Fyll innPropertyValues(AreaDataAgreement.Parameters,SelectionCounterpartyAgreement); TabDoc.Output(AreaDataContract,2); TotalReceipt = Total Receipt + SelectionCounterpartyAgreement.Receipt; TotalExpense = TotalExpense + SampleCounterparty Agreement.Expense; EndCycle ; EndCycle ; TabDoc.FinishAutoGroupingRows();

Det gjenstår å vise de endelige dataene i området Kjeller og sende ut selve området til regnearkdokument.

AreaBasement.Parameters.TotalIncoming = TotalIncoming; AreaBasement.Parameters.TotalConsumption = TotalConsumption; TabDoc.Output(AreaFooter);

Dette fullfører prosessen med å skrive en ekstern rapport for 1C 8 uten å bruke et tilgangskontrollsystem. Nå kan den genereres i 1C:Enterprise 8-modus og legges til i katalogen Ekstern behandling Du kan laste ned rapportfilen som er omtalt i artikkelen fra .

Se en video om hvordan du oppretter en ekstern utskrivbar applikasjon for en administrert applikasjon:

1C 8.3-rapporter er et spesielt metadataobjekt designet for å lage en brukervennlig presentasjon av data fra 1C-databasetabeller.

La oss finne ut av det hvordan sette opp rapporter, hva de trengs til, hvordan eksterne rapporter skiller seg fra innebygde, og hvordan rapporter skiller seg fra behandling.

For å lage eller tilpasse en rapport, må du kjenne til de innebygde og . Uansett hva man kan si, grunnlaget for å lage nesten enhver rapport er den første spørringen som mottar dataene. Vi behandler disse dataene og viser dem i en brukervennlig form.

Rapporter er hovedsaken i ethvert informasjonssystem, så 1C fulgte nøye med på utviklingen av rapporter og skapte et stort antall designere og mekanismer for å lage dem.

La oss se på de grunnleggende metodene for å lage rapporter

Hvordan lage en rapport i 1C ved hjelp av et oppsett

Å lage ved hjelp av et oppsett er den mest rutinemessige måten. Imidlertid tyr de ofte til det av desperasjon, fordi... i denne metoden skriver utvikleren hver handling fullstendig i kode, noe som betyr at vi kan gjøre hva som helst. Andre mekanismer kan ikke skryte av dette.

Men i dette tilfellet må alle elementene, menyene og andre "buer" legges inn manuelt, noe som er veldig arbeidskrevende.

Få 267 videotimer på 1C gratis:

Opprette en rapport ved å bruke utdataskjemadesigneren

Utdataskjemadesigneren er en mekanisme innebygd i plattformen som gjør rapportutvikling enklere. Designeren er kun tilgjengelig for vanlige skjemaer.

Designeren får forespørselen og alle nødvendige parametere for den fremtidige rapporten, og den genererer på sin side moduler og rapportskjemaer. Mekanismen er basert på et objekt av det innebygde språket 1C 8.2 - Rapportbygger.

Opprette en rapport ved hjelp av Generisk rapport

Den universelle rapporten har stor funksjonalitet, et praktisk innstillingsgrensesnitt som er kjent for brukeren:

Rapporter basert på Data Composition System

Dette er den mest progressive metoden for å lage rapporter i 1C, anbefalt av 1C selv. dukket opp i 1C-plattformen i versjon 8.1.

SKD lar deg lage enkle rapporter uten en programmeringslinje i det hele tatt, fordi den har en veldig fleksibel og funksjonell konstruktør for å lage et datasammensetningsskjema:

I alle nyere konfigurasjoner er alle rapporter skrevet ved hjelp av et datasammensetningssystem.

Hva er forskjellen mellom eksterne rapporter og innebygde?

Som det står i dokumentasjonen - ingenting. Den eksterne rapporteringsmekanismen ble opprettet for å feilsøke rapporter under utvikling.

Den eneste forskjellen når du utvikler en løsning er at du ikke kan få tilgang til en ekstern rapport "ved navn", i motsetning til en innebygd rapport.

Hvordan skiller en rapport seg fra behandling?

Faktisk praktisk talt ingenting. Hovedforskjellen er formålet med å bruke objektet: rapporter er nødvendig for å vise informasjon, og rapporter er nødvendig for å endre informasjon.

De viktigste forskjellene i egenskaper: i rapporter kan du spesifisere Basic Data Composition Schema (DCS) og angi innstillinger for lagring av rapportparametere.