Data Composition System Expression Language (1Cv8). Datasammensetningssystem uttrykksspråk (1Cv8) 1c tilpasset uttrykksfelt

Vi undersøkte i noen detalj innstillingene for rapporter implementert på grunnlag av tilgangskontrollsystemet. La oss nå se på mer subtile og detaljerte innstillinger for rapportalternativer. Vinduet for "avanserte" innstillinger for rapportalternativet kalles opp av kommandoen "Mer" - "Annet" - "Endre rapportalternativ".

Vinduet for å endre rapportversjonen er delt inn i to deler:

1. Rapportstruktur.

2. Rapportinnstillinger.


Rapportalternativstrukturdelen ligner på "Struktur"-fanen i standardrapportinnstillingene. Formålet med og konfigurasjonen av grupperinger diskuteres i detalj i del 1 av artikkelen.

Rapportvariantstrukturtabellen, i tillegg til selve kolonnen med grupperinger, inneholder flere tilleggskolonner:

Innstillinger for rapportalternativer gir brukeren gode muligheter til å konfigurere rapporten for å passe deres behov. Det er nesten helt sammenfallende med standardrapportinnstillingene diskutert i del 1. La oss se på alle fanene i seksjonen og legge merke til forskjellene.

Innstillingsdelen består av følgende faner:

1. Parametre. Inneholder ACS-parametere tilgjengelig for brukeren.

SKD-parameteren er en verdi som brukes til å hente rapportdata. Dette kan være en tilstandsverdi for valg eller kontroll av data, samt en hjelpeverdi.


Parametertabellen presenteres i formatet "Parameter" - "Verdi". Om nødvendig kan du endre parameterverdiene. Ved å klikke på "Egenskaper for egendefinerte innstillinger"-knappen åpnes de tilpassede innstillingene for elementet.


I dette vinduet kan du velge om elementet skal inkluderes i brukerinnstillingene (det vil si synlig for brukeren ved oppsett av en rapport), angi elementets presentasjon og redigeringsmodus (rask tilgang i rapporthodet, normalt i rapportinnstillinger og utilgjengelige).

Egenskaper for egendefinerte innstillinger har også grupperbare felt, marger, utvalg og betingede utseendeelementer.

2. Egendefinerte felt. Inneholder felt som er generert av brukeren selv basert på data valgt av rapporten.


Brukeren kan legge til to typer felt:

  • Nytt utvalgsfelt...
  • Nytt uttrykksfelt...

Utvalgsfelt lar deg beregne en verdi basert på en gitt betingelse. Redigeringsvinduet for valgfelt inneholder en felttittel og en tabell der valg, verdi og presentasjon av feltet er spesifisert. Valg er en betingelse, avhengig av hvilken verdi som skal erstattes.


La oss for eksempel beregne et estimat på antall salg. Vi vil anta at hvis det selges mindre enn 10 enheter av et produkt, solgte vi litt, og hvis mer enn 10 enheter, solgte vi mye. For å gjøre dette vil vi angi 2 verdier for det beregnede feltet: den første vil være med valget "Antall varer Mindre enn eller lik "10", den andre med valget "Antall varer større enn "10" "".

Uttrykksfelt lar deg beregne en verdi ved hjelp av vilkårlige algoritmer. De kan bruke funksjonene til spørringsspråket og det innebygde 1C-programmeringsspråket. Uttrykksfeltredigeringsvinduet inneholder to felt for uttrykk for detaljerte poster og oppsummeringsposter. Totale poster er grupperinger konfigurert i "Rapportstruktur"-området; de må bruke aggregerte funksjoner ("Sum", "Minimum", "Maksimum", "Antall").

La oss for eksempel beregne den gjennomsnittlige rabattprosenten. Gjennomsnittlig rabattprosent beregnes ved hjelp av formelen: [Salgsbeløp uten rabatt] - [Salgsbeløp med rabatt] / [Salgsbeløp uten rabatt]. Det er viktig å huske at salgsbeløpet uten rabatt kan være null, så vi bruker SELECT-operatøren for å sjekke. Vi får følgende uttrykk:

· For detaljerte oppføringer:

Valg

Når [Salgsbeløp uten rabatt] = 0

Så 0

Ellers [Salgsbeløp uten rabatt] - [Salgsbeløp med rabatt] / [Salgsbeløp uten rabatt]

Slutt

· For sammendragsposter:

Valg

Når Beløp([Salgsbeløp uten rabatt]) = 0

Så 0

Ellers Sum([Salgsbeløp uten rabatt]) - Sum([Salgsbeløp med rabatt]) / Sum([Salgsbeløp uten rabatt])

Slutt

Som nevnt tidligere, i uttrykket av totale poster bruker vi den aggregerte funksjonen "Sum".

3. Grupperbare felt. Inneholder felter som resultatene av rapportvarianten vil bli gruppert etter. Grupperte felt konfigureres separat for hver gruppering, men du kan angi generelle grupperte felt for et rapportalternativ hvis du velger "Rapport"-roten i strukturtreet. Du kan legge til et felt fra rapportresultatet, et tilpasset felt, eller velge et autofelt, så vil systemet velge feltene automatisk. Denne fanen lar deg også endre rekkefølgen på grupperte felt.


4. Felter. Inneholder feltene som skal skrives ut som et resultat av rapportvarianten. Felt konfigureres separat for hver gruppering, men du kan angi vanlige felt for et rapportalternativ hvis du velger roten "Rapport" i strukturtreet. Du kan legge til et felt fra rapportresultatet, et tilpasset felt, eller velge et autofelt, så vil systemet velge feltene automatisk. Denne fanen lar deg også endre rekkefølgen på feltene.

Felt kan grupperes for å logisk fremheve hvilken som helst del av rapporten eller for å spesifisere et spesielt arrangement av kolonner. Når du legger til en gruppe, blir "Plassering"-kolonnen aktiv og lar deg velge ett av stedsalternativene:

  • Auto - systemet plasserer felt automatisk;
  • Horisontal - felt er plassert horisontalt;
  • Vertikal - felt er arrangert vertikalt;
  • I en egen kolonne - felt er plassert i forskjellige kolonner;
  • Sammen - feltene er plassert i én kolonne.


5. Utvalg. Inneholder utvalg brukt i rapportvarianten. Oppsett av utvalg ble diskutert i detalj i del 1 av denne artikkelen. Filtre konfigureres separat for hver gruppering, men du kan angi generelle filtre for et rapportalternativ hvis du velger roten "Rapport" i strukturtreet.


6. Sortering. Inneholder sorteringsfeltene som brukes i rapportvarianten. Å sette opp sorteringsfelt ble diskutert i detalj i del 1 av denne artikkelen. Sortering er konfigurert separat for hver gruppering, men du kan angi generelle sorteringsfelt for et rapportalternativ hvis du velger roten "Rapport" i strukturtreet.


7. Betinget registrering. Inneholder betingede designelementer brukt i rapportvarianten. Å sette opp betinget utseende ble diskutert i detalj i del 1 av denne artikkelen. Betinget utseende konfigureres separat for hver gruppering, men du kan angi generelle elementer for betinget utseende for et rapportalternativ hvis du velger roten "Rapport" i strukturtreet.


8. Ytterligere innstillinger. Inneholder ytterligere rapportdesigninnstillinger. Lar deg velge det generelle utseendet til rapporten, plasseringen av felt, grupperinger, detaljer, ressurser, totaler, angi diagraminnstillinger, kontrollere visningen av tittelen, parametere og valg, bestemme plasseringen av ressurser og fikse overskriften og grupperingen kolonnene i rapportversjonen.


Avslutningsvis vil jeg merke meg at rapportinnstillinger ikke bare kan lagres som et rapportalternativ, men også lastes opp til en fil (meny "Mer" - "Lagre innstillinger"). For å laste ned må du velge «Last innstillinger» og velge den lagrede filen. Dermed kan vi overføre rapportvariantinnstillinger mellom ulike databaser som har samme konfigurasjon.


Basert på dette kan vi oppsummere at brukeren ikke bare selvstendig kan tilpasse rapporten for å passe hans behov, men også lagre innstillingene og bruke dem i fremtiden om nødvendig.

Data Composition System Expression Language

Datakomposisjonssystemets uttrykksspråk er designet for å skrive uttrykk som brukes i ulike deler av systemet.

Uttrykk brukes i følgende undersystemer:

  • datalayoutdiagram - for å beskrive beregnede felt, totale felt, koblingsuttrykk, etc.;
  • datalayoutinnstillinger - for å beskrive tilpassede feltuttrykk;
  • datalayout-layout - for å beskrive uttrykk for å koble til datasett, beskrive layout-parametere, etc.

Bokstaver

Uttrykket kan inneholde bokstaver. Følgende typer bokstaver er mulige:

  • Linje;
  • Antall;
  • Dato;
  • boolsk.

Linje

En streng bokstav er skrevet med ""-tegn, for eksempel:

"Streng bokstavelig"

Hvis du trenger å bruke ""-tegnet inne i en streng, bør du bruke to slike tegn.

For eksempel:

"Bokstavelig ""i anførselstegn"""

Antall

Tallet skrives uten mellomrom, i desimalformat. Brøkdelen skilles ved hjelp av "."-symbolet. For eksempel:

10.5 200

Dato

En bokstavlig dato skrives ved å bruke nøkkelen DATETIME. Etter dette søkeordet er år, måned, dag, timer, minutter, sekunder oppført i parentes, atskilt med komma. Tidsspesifikasjon er ikke nødvendig.

For eksempel:

DATETIME(1975, 1, 06) – 6. januar 1975 DATOTIME(2006, 12, 2, 23, 56, 57) – 2. desember 2006, 23 timer 56 minutter 57 sekunder, 23 timer 56 minutter 57 sekunder

boolsk

Boolske verdier kan skrives ved å bruke bokstavene True (True), False (False).

Betydning

For å spesifisere bokstaver av andre typer (systemoppregninger, forhåndsdefinerte data), brukes nøkkelordet Verdi, etterfulgt av navnet på bokstaven i parentes.

Verdi (Kontotype. Aktiv)

Operasjoner på tall

Unær –

Denne operasjonen er ment å endre tegnet til et tall til det motsatte tegnet. For eksempel:

Salg.Antall

Unær +

Denne operasjonen utfører ingen handlinger på nummeret. For eksempel:

Salg.Antall

Binær -

Denne operasjonen er ment å beregne forskjellen mellom to tall. For eksempel:

ResidualsAndTurnovers.InitialRemaining – RemainingsAndTurnovers.FinalResidualsRemainingsAndTurnovers.InitialRemaining - 100 400 – 357

Binær +

Denne operasjonen er laget for å beregne summen av to tall. For eksempel:

RemainingsAndTurnover.InitialRemaining + RemainingAndTurnover.Turnover ResiduesAndTurnover.InitialRemaining + 100 400 + 357

Arbeid

Denne operasjonen er laget for å beregne produktet av to tall. For eksempel:

Nomenklatur.Pris * 1,2 2 * 3,14

Inndeling

Denne operasjonen er designet for å oppnå resultatet av å dele en operand med en annen. For eksempel:

Nomenklatur.Pris / 1,2 2 / 3,14

Resten av divisjonen

Denne operasjonen er utformet for å oppnå resten når en operand er delt med en annen. For eksempel:

Nomenklatur Pris % 1,2 2 % 3,14

Strengeoperasjoner

Sammenknytting (binær +)

Denne operasjonen er designet for å sette sammen to strenger. For eksempel:

Nomenclature.Article + “: ”+ Nomenclature.Name

Som

Denne operasjonen sjekker om strengen samsvarer med det beståtte mønsteret.

Verdien til LIKE-operatoren er TRUE hvis verdien<Выражения>tilfredsstiller mønsteret, og USANN ellers.

Følgende karakterer i<Строке_шаблона>har en mening som er forskjellig fra bare et annet tegn i linjen:

  • % - prosent: en sekvens som inneholder null eller flere vilkårlige tegn;
  • _ - understrek: ett vilkårlig tegn;
  • […] - ett eller flere tegn i hakeparenteser: ett tegn, hvilket som helst av de som er oppført innenfor hakeparentesene. Oppregningen kan inneholde områder, for eksempel a-z, som betyr et vilkårlig tegn inkludert i området, inkludert endene av området;
  • [^...] - i hakeparenteser et negasjonsikon etterfulgt av ett eller flere tegn: et hvilket som helst tegn bortsett fra de som er oppført etter negeringsikonet;

Ethvert annet symbol betyr seg selv og bærer ingen ekstra belastning. Hvis et av de oppførte tegnene må skrives som seg selv, må det innledes med<Спецсимвол>, spesifisert etter nøkkelordet SPECIAL CHARACTER (ESCAPE).

For eksempel mal

“%ABV[abvg]\_abv%” SPESIELL KARAKTER “\”

betyr en understreng som består av en sekvens av tegn: bokstaven A; bokstavene B; bokstavene B; ett siffer; en av bokstavene a, b, c eller d; understrek; bokstavene a; bokstavene b; bokstavene v. Dessuten kan denne sekvensen lokaliseres fra en vilkårlig posisjon i linjen.

Sammenligningsoperasjoner

Er lik

Denne operasjonen er ment å sammenligne to operander for likhet. For eksempel:

Salg.motpart = Salg.NomenklaturHovedleverandør

Ikke lik

Denne operasjonen er ment å sammenligne to operander for ulikhet. For eksempel:

Salg.Motpart<>Salg.NomenklaturHovedleverandør

Mindre

Denne operasjonen er utformet for å kontrollere at den første operanden er mindre enn den andre. For eksempel:

SalgsNåværende.Beløp< ПродажиПрошлые.Сумма

Mer

Denne operasjonen er utformet for å kontrollere at den første operanden er større enn den andre. For eksempel:

SalgCurrent.Sum > SalesPast.Sum

Mindre eller lik

Denne operasjonen er utformet for å kontrollere at den første operanden er mindre enn eller lik den andre. For eksempel:

SalgsNåværende.Beløp<= ПродажиПрошлые.Сумма

Mer eller lik

Denne operasjonen er utformet for å kontrollere at den første operanden er større enn eller lik den andre. For eksempel:

SalesCurrent.Amount >= SalesPast.Amount

Operasjon B

Denne operasjonen sjekker for tilstedeværelsen av en verdi i den beståtte listen over verdier. Resultatet av operasjonen vil være True hvis verdien er funnet, eller False ellers. For eksempel:

Vare B (&Produkt1, &Produkt2)

Operasjon for å kontrollere tilstedeværelsen av en verdi i et datasett

Operasjonen sjekker for tilstedeværelsen av en verdi i det angitte datasettet. Valideringsdatasettet må inneholde ett felt. For eksempel:

Salg Motpart Til Motparter

Operasjon av å sjekke en verdi for NULL

Denne operasjonen returnerer True hvis verdien er NULL. For eksempel:

Salg. Motpart ER NULL

Operasjon av å sjekke en verdi for NULL-ulikhet

Denne operasjonen returnerer True hvis verdien ikke er NULL. For eksempel:

Salg. Motpart ER IKKE NULL

Logiske operasjoner

Logiske operasjoner aksepterer uttrykk av typen boolsk som operander.

Operasjon IKKE

NOT-operasjonen returnerer True hvis operanden er False og False hvis operanden er True. For eksempel:

IKKE Document.Consignee = Document.Consignee

Operasjon I

AND-operasjonen returnerer True hvis begge operandene er True, og False hvis en av operandene er False. For eksempel:

Document.Consignee = Document.Consignee OG Document.Consignee = &Motpart

ELLER operasjon

OR-operasjonen returnerer True hvis en av operandene er True, og False hvis begge operandene er False. For eksempel:

Document.Consignee = Document.Consignee ELLER Document.Consignee = &Motpart

Aggregerte funksjoner

Aggregerte funksjoner utfører en handling på et sett med data.

Sum

Sum aggregatfunksjonen beregner summen av verdiene til uttrykkene som sendes til den som et argument for alle detaljposter. For eksempel:

Beløp (Salg.AmountTurnover)

Mengde

Tellefunksjonen beregner antall andre verdier enn NULL. For eksempel:

Antall (salg.motpart)

Antall forskjellige

Denne funksjonen beregner antall distinkte verdier. For eksempel:

Mengde (Ulike salg. Motpart)

Maksimum

Funksjonen får maksimumsverdien. For eksempel:

Maksimum (gjenstående. mengde)

Minimum

Funksjonen får minimumsverdien. For eksempel:

Minimum (gjenstående. mengde)

Gjennomsnitt

Funksjonen får gjennomsnittet av ikke-NULL-verdier. For eksempel:

Gjennomsnitt (gjenstående. mengde)

Andre operasjoner

Operasjon VELG

Velg-operasjonen er ment å velge en av flere verdier når visse betingelser er oppfylt. For eksempel:

Velg Når Beløp > 1000 Så Beløp ellers 0 Slutt

Regler for å sammenligne to verdier

Hvis typene av verdiene som sammenlignes er forskjellige fra hverandre, bestemmes forholdet mellom verdiene basert på forrangen til typene:

  • NULL (laveste);
  • boolsk;
  • Antall;
  • Dato;
  • Linje;
  • Referansetyper

Forholdet mellom ulike referansetyper bestemmes ut fra referansenumrene til tabellene som tilsvarer en bestemt type.

Hvis datatypene er de samme, sammenlignes verdiene i henhold til følgende regler:

  • for den boolske typen er verdien TRUE større enn verdien FALSE;
  • nummertypen har de vanlige sammenligningsreglene for tall;
  • for datotypen er tidligere datoer mindre enn senere;
  • for strengtypen - sammenligning av strenger i samsvar med de etablerte nasjonale egenskapene til databasen;
  • referansetyper sammenlignes basert på verdiene deres (rekordnummer, etc.).

Arbeid med NULL-verdi

Enhver operasjon der en av operandene er NULL vil gi et NULL-resultat.

Det finnes unntak:

  • AND-operasjonen returnerer bare NULL hvis ingen av operandene er False;
  • ELLER-operasjonen vil bare returnere NULL hvis ingen av operandene er sanne.

Driftsprioriteter

Operasjonene har følgende prioriteter (den første linjen har lavest prioritet):

  • B, ER NULL, ER IKKE NULL;
  • =, <>, <=, <, >=, >;
  • Binær +, Binær – ;
  • *, /, %;
  • Unær +, Unær -.

Datakomposisjon System Uttrykk Språkfunksjoner

Regne ut

Beregn-funksjonen er laget for å beregne et uttrykk i sammenheng med en bestemt gruppering. Funksjonen har følgende parametere:

  • Uttrykk. Skriv inn streng. Inneholder et beregnet uttrykk;
  • Gruppering. Skriv inn streng. Inneholder navnet på grupperingen i konteksten som uttrykket skal evalueres i. Hvis en tom streng brukes som grupperingsnavn, vil beregningen utføres i sammenheng med gjeldende gruppering. Hvis GrandTotal-strengen brukes som gruppenavn, vil beregningen utføres i sammenheng med totalsummen. Ellers vil beregningen bli utført i sammenheng med den overordnede gruppen med samme navn. For eksempel:
Sum(Salg.SumOmsetning) / Calculate("Sum(Salg.SumOmsetning)", "Totalt")

I dette eksemplet vil resultatet være forholdet mellom beløpet for feltet "Sales.AmountTurnover" i grupperingsposten og beløpet for det samme feltet i hele oppsettet.

Nivå

Funksjonen er utformet for å oppnå gjeldende opptaksnivå.

Nivå()

NumberInOrder

Få neste sekvensnummer.

NumberByOrder()

NumberInOrderInGrouping

Returnerer neste ordenstall i gjeldende gruppering.

NumberByOrderInGroup()

Format

Få en formatert streng med den beståtte verdien.

Formatstrengen er satt i samsvar med 1C:Enterprise-formatstrengen.

Alternativer:

  • Betydning;
  • Formater streng.

Format(Forbruksfakturaer. Dokumentbeløp, "NPV=2")

Begynnelsen av perioden

Alternativer:

    • Minutt;
    • Dag;
    • En uke;
    • Måned;
    • Fjerdedel;
    • Tiår;
    • Halvt år.

StartPeriod(DatoTid(2002, 10, 12, 10, 15, 34), "Måned")

Resultat:

01.10.2002 0:00:00

Slutt på periode

Funksjonen er laget for å trekke ut en bestemt dato fra en gitt dato.

Alternativer:

  • Dato. Skriv inn dato. Oppgitt dato;
  • Periodetype. Skriv inn streng. Inneholder en av følgende verdier:
    • Minutt;
    • Dag;
    • En uke;
    • Måned;
    • Fjerdedel;
    • Tiår;
    • Halvt år.

EndPeriod(DatoTid(2002, 10, 12, 10, 15, 34), "Uke")

Resultat:

13.10.2002 23:59:59

AddToDate

Funksjonen er designet for å legge til en viss verdi til en dato.

Alternativer:

  • Forstørrelsestype. Skriv inn streng. Inneholder en av følgende verdier:
    • Minutt;
    • Dag;
    • En uke;
    • Måned;
    • Fjerdedel;
    • Tiår;
    • Halvt år.
  • Beløp – hvor mye du trenger for å øke datoen. Typenummer. Brøkdelen ignoreres.

AddToDate(DatoTid(2002, 10, 12, 10, 15, 34), "Måned", 1)

Resultat:

12.11.2002 10:15:34

Datoforskjell

Funksjonen er designet for å få forskjellen mellom to datoer.

Alternativer:

  • Uttrykk. Skriv inn dato. Opprinnelig dato;
  • Uttrykk. Skriv inn dato. Fratrukket dato;
  • Type forskjell. Skriv inn streng. Inneholder en av følgende verdier:
    • Sekund;
    • Minutt;
    • Dag;
    • Måned;
    • Fjerdedel;

DATODIFFERENCE(DATETIME(2002; 10; 12; 10; 15; 34); DATOTIME(2002; 10; 14; 9; 18; 06); "DAG")

Resultat:

Understreng

Denne funksjonen er laget for å trekke ut en delstreng fra en streng.

Alternativer:

  • Linje. Skriv inn streng. Strengen som delstrengen er hentet fra;
  • Posisjon. Typenummer. Posisjonen til tegnet som delstrengen som skal trekkes ut fra strengen begynner;
  • Lengde. Typenummer. Lengden på den tildelte delstrengen.

SUBSTRING(Konto.adresse, 1, 4)

Linjelengde

Funksjonen er laget for å bestemme lengden på en streng.

Parameter:

  • Linje. Skriv inn streng. En streng hvis lengde bestemmes.

Linje(motparter.adresse)

År

Denne funksjonen er laget for å trekke ut året fra en datotypeverdi.

Parameter:

  • Dato. Skriv inn dato. Datoen året fastsettes for.

ÅR(Utgift.dato)

Fjerdedel

Denne funksjonen er utformet for å trekke ut kvartalstallet fra en datotypeverdi. Kvartalstallet varierer vanligvis fra 1 til 4.

Parameter

  • Dato. Skriv inn dato. Datoen som kvartalet fastsettes for
KVARTAL(Utgift.dato)

Måned

Denne funksjonen er utformet for å trekke ut månedsnummeret fra en datotypeverdi. Månedstallet varierer vanligvis fra 1 til 12.

  • Dato. Skriv inn dato. Datoen måneden fastsettes for.
MÅNED(Utgift.dato)

Årets dag

Denne funksjonen er utformet for å hente dagen i året fra en datotypeverdi. Dagen i året varierer normalt fra 1 til 365 (366).

  • Dato. Skriv inn dato. Datoen da årets dag fastsettes.
DAGÅR(Utgiftskonto.Dato)

Dag

Denne funksjonen er utformet for å hente dagen i måneden fra en datotypeverdi. Dagen i måneden varierer vanligvis fra 1 til 31.

  • Dato. Skriv inn dato. Datoen da månedsdagen fastsettes.
DAG(Utgift.dato)

En uke

Denne funksjonen er utformet for å få årets ukenummer fra en datotypeverdi. Årets uker er nummerert fra 1.

  • Dato. Skriv inn dato. Datoen for når ukenummer fastsettes.
UKE(Utgift.dato)

Ukedag

Denne funksjonen er utformet for å hente ukedagen fra en datotypeverdi. Vanlig ukedag varierer fra 1 (mandag) til 7 (søndag).

  • Dato. Skriv inn dato. Datoen for hvilken ukedagen fastsettes.
UKEDAG (Utgift.Dato)

Time

Denne funksjonen er utformet for å hente time på dagen fra en datotypeverdi. Klokken på døgnet varierer fra 0 til 23.

  • Dato. Skriv inn dato. Datoen da klokkeslettet fastsettes.
HOUR(Utgift.Dato)

Minutt

Denne funksjonen er utformet for å hente minuttet i timen fra en datotypeverdi. Minuttet i timen varierer fra 0 til 59.

  • Dato. Skriv inn dato. Datoen når minuttet i timen fastsettes.
MINUTT(Utgift.dato)

Sekund

Denne funksjonen er utformet for å hente sekundet av et minutt fra en datotypeverdi. Det andre av et minutt varierer fra 0 til 59.

  • Dato. Skriv inn dato. Datoen når sekundene i minuttet bestemmes.
SEKUND(Utgift.dato)

Uttrykke

Denne funksjonen er laget for å trekke ut en type fra et uttrykk som kan inneholde en sammensatt type. Hvis uttrykket inneholder en annen type enn den nødvendige typen, vil NULL bli returnert.

Alternativer:

  • Uttrykk for å konvertere;
  • Type indikasjon. Skriv inn streng. Inneholder en typestreng. For eksempel "Nummer", "String" osv. I tillegg til primitive typer kan denne linjen inneholde navnet på tabellen. I dette tilfellet vil det bli gjort et forsøk på å uttrykke en referanse til den angitte tabellen.

Express(Data.Props1, "Tall(10,3)")

IsNull

Denne funksjonen returnerer verdien til den andre parameteren hvis verdien til den første parameteren er NULL.

Ellers vil verdien av den første parameteren bli returnert.

JaNULL(Beløp(Salg.BeløpOmsetning), 0)

Funksjoner til vanlige moduler

Et datasammensetningsmotoruttrykk kan inneholde kall til funksjoner til globale vanlige konfigurasjonsmoduler. Ingen ekstra syntaks er nødvendig for å kalle opp slike funksjoner.

I dette eksemplet vil funksjonen "AbbreviatedName" kalles opp fra den generelle konfigurasjonsmodulen.

Merk at bruk av vanlige modulfunksjoner kun er tillatt hvis riktig dataer spesifisert.

I tillegg kan ikke funksjoner til vanlige moduler brukes i tilpassede feltuttrykk.

For kompetent ledelse trenger enhver handelsorganisasjon rask mottak av informasjon om den nåværende tilstanden til varer, salg og fortjeneste. Men hvis vi tar i betraktning at organisasjoner ofte jobber med et bredt spekter av varer og et stort antall motparter, så spiller det analytiske rapporttilpasningsverktøyet en viktig rolle for å innhente nødvendig informasjon. La oss se nærmere på hvordan man arbeider med tilpassede felt i standard programrapporter (rev. 11).

Utviklingen av 1C: Enterprise 8-plattformen gir brukerne flere og flere muligheter. For eksempel, i versjon 8.2, ble rapportene mer fleksible, slik at de kunne tilpasses for å passe ulike krav uten hjelp fra kvalifiserte programmerere.

Endre rapportinnstillinger

For å se eller endre rapportinnstillinger, gå til "Alle handlinger"-menyen og velg kommandoen "Endre alternativ". Etter dette åpnes et vindu med innstillinger for den åpne rapporten foran brukeren.

I den øvre delen av innstillingsvinduet kan du se strukturen til rapporten, som ikke er mer enn en visuell refleksjon av rapportkolonnene og grupperingene av dens rader, som i hovedsak gjør det mulig å forestille seg rekkefølgen analytiske data er i. vises i denne rapporten.

Nederst i innstillingsvinduet vises den faktiske informasjonen og feltinnstillingene, enten relatert til rapporten eller elementene i dens struktur (kolonner og radgrupperinger).

Egendefinerte felt

I et program 1C: Handelsledelse 8 Utgave 11-rapportinnstillinger gir brukerne flere alternativer i sin generasjon.

I vinduet for redigering av innstillinger og rapportstruktur ønsker vi å trekke brukernes spesielle oppmerksomhet til fanen «Egendefinerte felt», som lar deg lage dine egne felt og legge dem til i rapporten. Det skal huskes at tidligere kunne brukeren bare bruke de feltene som ble implementert av utvikleren.

La oss se på bruken av denne funksjonen ved å bruke et eksempel.

La oss anta at sjefen for et handelsselskap som selger varer i Moskva og regionene ønsker å tilpasse "Salg History"-rapporten til sine krav, og ønsker å vise i den data om salg av produkter i Moskva og regionene generelt, som så vel som til partnere. Dette er veldig enkelt å gjøre ved å bruke tilpassede felt.

Dermed viser et tydelig eksempel at fleksible innstillinger for egendefinerte felt i et standardprogram 1C: Handelsledelse 8 gi brukeren gode muligheter til å tilpasse rapporter, slik at de raskt kan få nødvendig informasjon i en praktisk form.

For å kunne ta rettidige og korrekte ledelsesbeslutninger trenger hver organisasjon driftsinformasjon om tilgjengeligheten av varer i varehus, kostnadene og salg. Bransjeorganisasjoner jobber med et stort antall varer og motparter, og dette krever godt oppsett av analytisk regnskap og rask innhenting av nødvendig informasjon fra sine data. Artikkelen diskuterer de grunnleggende teknikkene for å arbeide med standardrapporter i standardløsningen «1C: Trade Management 8» (utgave 11), bygget på grunnlag av et datasammensetningssystem, og gir nyttige praktiske anbefalinger som vil være nyttige for både nybegynnere. og de som har gått over til den nye utgaven fra tidligere utgaver.

La oss for eksempel ta rapporten

  • Produkttilgjengelighetsanalyse;

Innstillinger.

I en kolonne Type sammenligning Nomenklatur

  • Er lik
  • Ikke lik
  • På listen
  • Ikke på listen
  • I gruppe Nomenklatur;
  • Ikke i gruppe Nomenklatur;
  • I en gruppe fra listen Nomenklatur;
  • Ikke i en gruppe fra listen Nomenklatur.

Betydning

"Raske valg"

Etter hvert som 1C:Enterprise 8-plattformen utvikler seg og den nye versjonen 8.2 dukker opp, blir rapporter i systemene mer fleksible, og brukerne har flere og flere muligheter til å tilpasse dem til deres krav uten hjelp fra programmerere.

Nye muligheter gitt av datasammensetningssystemet (DCS) lar deg oppleve fordelene med 1C:Enterprise 8-funksjoner når du lager rapporter som aldri før. Og til tross for at rapportgrensesnittet har gjennomgått betydelige endringer (sammenlignet med utgave 10.3 av "Trade Management"-konfigurasjonen, heretter referert til som UT), er rapportinnstillingene fortsatt tilgjengelige for den gjennomsnittlige brukeren. La oss se på noen grunnleggende teknikker for å jobbe med dem.

Det første du kan være oppmerksom på er de raske valgene. De lar deg vise data i en rapport basert på bestemte verdier av rapportfelt i henhold til brukerens ønsker.

La oss for eksempel ta rapporten Analyse av produkttilgjengelighet i UT. La oss umiddelbart merke oss at hele demonstrasjonen av rapporteringsevnene i UT 11 vil finne sted ved å bruke eksemplet med to rapporter:

  • Produkttilgjengelighetsanalyse;
  • Inntekter og salgskostnader.

Valg av enkelte felt kan gjøres enten direkte i rapportskjemaet eller ved å bruke en knapp Innstillinger.

I en kolonne Type sammenligning brukeren kan velge forskjellige sammenligningsbetingelser. For eksempel for feltet Nomenklatur Du kan velge følgende typer sammenligning:

  • Er lik- rapporten bygges kun for det valgte elementet;
  • Ikke lik- rapporten vil bli generert for hele produktutvalget, bortsett fra den valgte varen;
  • På listen- rapporten vil være basert på en liste over elementer;
  • Ikke på listen- rapporten vil bygge på hele produktutvalget, bortsett fra utvalgte varer;
  • I gruppe- rapporten vil bygges på hele elementet som ligger i den valgte mappen Nomenklatur;
  • Ikke i gruppe- rapporten vil bygge på hele produktutvalget, bortsett fra varer som ligger i den valgte katalogmappen Nomenklatur;
  • I en gruppe fra listen- ligner på sammenligning I listen er kun mapper i katalogen valgt som listeverdier Nomenklatur;
  • Ikke i en gruppe fra listen- ligner på sammenligning Ikke i listen, kun mapper i katalogen er valgt som listeverdier Nomenklatur.

Avmerkingsboksen til venstre for valgfeltet indikerer at valget for dette feltet er «aktivert», det vil si at det tas hensyn til i rapporten.

Ukontrollerte felt tas ikke i betraktning selv om du har valgt spesifikke verdier for disse feltene.

Avhengig av valgt type sammenligning i kolonnen Betydning et spesifikt element eller mappe (gruppe) i katalogen, eller en liste over elementer eller mapper er angitt.

"Hurtigvalg" er tilgjengelig i alle løsninger på 1C:Enterprise 8-plattformen.

Et eksempel på en enkel endring i rapportinnstillinger

For å se/endre rapportinnstillinger, må du gå til menyen Alle handlinger - Endre alternativ.

Innstillingsvinduet for det valgte rapportalternativet åpnes foran oss.

Rapportstrukturen vises øverst i vinduet. I hovedsak er dette en visuell visning av grupperingene av rader og kolonner i rapporten, dvs. i hvilken rekkefølge analysedataene vil vises i rapporten i rader og kolonner.

Nederst i vinduet vises informasjon knyttet til rapporten som helhet (hvis toppnivået er valgt i rapportstrukturen Rapportere), eller til en spesifikk gruppering av rader eller kolonner i rapporten (hvis en gruppering på et lavere nivå er valgt), innstillinger for visning av informasjon og utforming av felt.

Eksempel 1

Trinn 1. Vi må fjerne grupperingen etter produktegenskaper, slik at bare grupperingen etter produkt blir igjen. For å gjøre dette, klikk på feltet øverst i rapportinnstillingsvinduet Nomenklatur, kjennetegn. Gå til fanen nederst i vinduet Grupper.

Velg feltet Karakteristisk og klikk på knappen Slett kommandopanel.

Bekreft endringer i rapportinnstillingene ved å klikke på knappen Fullfør redigeringen i nedre venstre hjørne av skjermen.

Steg 2. Etter å ha fjernet karakteristikken, vil vår oppgave, i henhold til betingelsene i eksemplet, være å legge til en prisgruppe. I hovedsak bør denne grupperingen være på et nivå lavere enn grupperingen etter lager, men på et nivå høyere enn grupperingen etter vare. Derfor vil vi i rapportens struktur trekke frem en gruppering Lager.

Ved å høyreklikke på den, velg kommandoen fra hurtigmenyen Ny gruppe.

Velg i redigeringsvinduet for grupperingsfelt som åpnes Nomenklatur.Prisgruppe.

Ved å klikke på knappen OK, vil vi se at det er lagt til en ny gruppering i rapporten, underordnet grupperingen Lager.

La oss nå velge gruppering etter produkt og, uten å slippe høyre museknapp, dra den inn i (dvs. under) grupperingen etter prisgruppe. Vi vil få strukturen presentert i figur 1. Resultatet av å sette opp rapporten er presentert i figur 2.

Ris. 1. Den resulterende rapportstrukturen

Ris. 2. Resultat av rapporttilpasning

Arbeide med tilpassede felt

La oss nå se nærmere på de nye alternativene for å tilpasse rapporter i 1C: Trade Management 8-programmet.

I form av å redigere strukturen og innstillingene til rapporten vår, la oss ta hensyn til fanen Egendefinerte felt.

Tidligere har vi lagt til felt i rapporten, listen over disse var forhåndsspesifisert av utvikleren. Ved å bruke denne fanen kan vi lage våre egne felt som vi trenger - Utvalgsfelt eller Uttrykksfelt.

Eksempel 2

La oss tilpasse "Salgshistorikk"-rapporten (alternativet for "Inntekter og salgskostnader")-rapporten). Vi vil vise salgsdata etter partnere og produktutvalg. La oss anta at selskapet vårt selger varer i Moskva og i regionene. Dermed tilhører hver klient i informasjonsbasen en bestemt geografisk region («Business Region»-attributtet i «Partners»-katalogen). Vi kan enkelt gruppere salgsdata i en rapport etter region, men hva om vi er interessert i mer aggregert statistikk, spesielt svaret på spørsmålet "Hvor mange varer ble solgt i Moskva, og hvor mange i alle andre regioner til sammen"? Det er her "egendefinerte felt" kommer godt med.

Trinn 1. La oss åpne rapporten. La oss gå til skjemaet for å sette opp rapportstrukturen ( Alle handlinger -> Endre alternativ). La oss etter tur slette alle gruppene som tidligere er opprettet i rapporten - for å gjøre dette, velg hver av dem og klikk på knappen Slett kommandopanel, eller bruk DEL-tasten.

Akkurat som i forrige eksempel, la oss legge til en gruppering i rapporten etter partner, og deretter etter element. Vi vet allerede hvordan vi gjør dette, så det vil ikke ta mye tid.

Steg 2. La oss lage et nytt tilpasset felt. La oss åpne bokmerket Egendefinerte felt og utfør kommandoen Legg til -> Nytt velg felt.

La oss gi vårt nye felt et navn - Region generelt.

La oss klikke på knappen Legg til. I en ny linje klikker du på knappen i kolonnen Utvalg. I skjemaet for redigering av valg som vises, legg til utvalg for felt Partner.Business region. La oss velge type sammenligning Er lik, betyr - Moskva.

La oss klikke på knappen OK, hvoretter vi går tilbake til redigeringsvinduet for egendefinerte felt. Deretter må du klikke på knappen i kolonnen Betydning og i valglisten for datatype som vises, velg Linje og skriv som verdi Moskva.

La oss gjenta operasjonen. La oss legge til en rad til i tabellen. Denne gangen for valg etter felt Partner.Business region velg type sammenligning Ikke lik.

Gå tilbake til det egendefinerte redigeringsvinduet i kolonnen Betydning la oss skrive Andre regioner(se fig. 3).

Ris. 3. Redigere et egendefinert felt

La oss klikke på knappen OK. Vårt nye felt er klart.

Trinn 3. La oss legge til vårt nye felt i rapportstrukturen. Velg toppnivå med musen Rapport i struktur, legg til en ny gruppering. I rekvisitter Felt la oss velge Region generelt.

La oss dra grupperingen etter partner og den underordnede grupperingen etter element inne i den nyopprettede med musen.

La oss generere en rapport og se på resultatet (vist i fig. 4).

Ris. 4. Resultat av rapportgenerering

Utvalg og sortering

La oss gå tilbake til vinduet for redigering av rapportstrukturen og innstillingene og ta hensyn til bokmerkene Utvalg Og Sortering.

Hvis rotelementet er valgt i rapportstrukturen ( Rapportere), vil innstillingene som er gjort på disse fanene gjelde for hele rapporten som helhet. Hvis en rapportgruppering er valgt, vil innstillingene bare påvirke denne grupperingen.

Eksempel 3

Som et resultat, rapporten Salgshistorikk Kun de implementeringene der lederen er spesifisert vil bli inkludert. Ivanov Ivan Fedorovich.

Eksempel 4

Lagre endringene som er gjort

Hvis du endrer rapportstrukturen, kan du alltid lagre den ved å bruke kommandoen Alle handlinger -> Lagre alternativ.

I skjemaet for å lagre et alternativ kan du bruke bryteren til å velge Lagre til eksisterende rapportversjon(i stedet for et av de allerede tilgjengelige alternativene), eller Lagre ny rapportversjon.

Rapporten mottar varebeholdningen på lager i ulike seksjoner (egenskaper, serier, måleenheter, etc.). For ikke å komplisere eksemplet, vil vi bare la gruppere etter vare og vise kun den endelige saldoen på rapporteringsdatoen. Den endelige tabellen vil vise saldoene til varen i varehusene.

Men så rapporterte brukeren at han måtte legge til ytterligere to felt:

  1. Mengdevarsel. Hvis mengden er mindre enn eller lik 5, er varselet "Utilstrekkelig". Hvis mengden er større enn 5, så mindre enn eller lik 10, er varselet "Normal". Hvis mengden er mer enn 10, så "Overabundance".
  2. Formel for å beregne sluttbalansen. I tilleggskolonnen ønsker brukeren å se hvilke handlinger programmet utførte for å oppnå den endelige saldoverdien. Det vil si formelen "Startsaldo + Omsetning = Sluttsaldo", hvor de tilsvarende verdiene vil bli erstattet.

Selvfølgelig kan en programmerer gripe inn her og endre forespørselen om datasammensetningsskjema og rapportinnstillinger, men vi vil fullføre oppgaven i brukermodus uten å endre rapporten i konfiguratormodus.

Ytterligere felt

Så la oss komme i gang. La oss gå til innstillingene for rapportalternativer:

Innstillingsdesigneren for ACS-rapportalternativet åpnes foran oss. Ved å gå til fanen "Egendefinerte felt" begynner vi å lage dem.

Skjermbildet viser allerede to opprettede egendefinerte felt, hvis funksjonalitet ble beskrevet ovenfor. La oss se på innstillingene for hver. La oss starte med "Varsling"-feltet.

I innstillingene må vi sette felttittelen som skal vises i rapporten, samt sette uttrykk for generering av verdien i det detaljerte postfeltet og i totalene for dette feltet. Siden det ikke er nødvendig å vise varselet i summene, vil vi skrive et uttrykk kun for detaljerte poster.

Uttrykkets syntaks ligner på spørringsspråket 1C:Enterprise. Det er noen forskjeller, men vi vil ikke berøre dem i detalj i denne artikkelen. Uttrykket bruker utvalgsoperatoren:

"Valg når så ellers slutten"

ligner på en operatør i et spørringsspråk. Felt i egendefinerte feltuttrykk spesifiseres av deres representasjon. For at plattformen skal forstå at den angitte visningen representerer et bestemt felt, er visningsnavnet omgitt av hakeparenteser "". Hvis feltrepresentasjonen er ett ord, er de firkantede parentesene valgfrie. I eksemplet ovenfor ser vi på Sluttsaldo-feltet.

Innstillingene for feltet "Formel for beregning av sluttsaldo" settes på samme måte:


Her er det nødvendig å nevne noen nyanser:

  1. Vi kan bare vise formelen i en celle som en linje. Derfor konverterer vi alle numeriske verdier til en streng ved å bruke SKD-uttrykksspråkmetoden "String()", som konverterer enhver verdi til en streng. Deretter utfører vi strengsammenkobling.
  2. For at feltet skal vises i rapporttotalene, vil vi legge til en lignende formel til uttrykket for totalpostene. Du trenger bare å legge til aggregeringsfunksjoner "SUM()" for hver verdi i samsvar med totalsummene.

Du er klar til å bruke feltene i rapporten!

Sette opp og generere en rapport

Legg til "Formel for beregning av sluttsaldo"-feltet til utdatafeltene i rapporten:

Vi vil legge til uttrykket "Varsling" i detaljerte vareposter. For å gjøre dette, legg til uttrykksfeltet "Varsling" i "Nomenklatur"-grupperingen. Etter dette vil rapportstrukturen ha følgende form:

Rapportoppsettet er nå fullført. Om nødvendig kan de tillagte innstillingene lagres for gjenbruk. La oss generere en rapport:

Som vi ser er det lagt til felt i rapporten i henhold til oppgavens betingelser. Samtidig var det ikke nødvendig å endre rapporten i konfiguratormodus. Dette er hovedfordelen med tilpassede felt! En bruker som er opplært til å bruke dem, kan bruke dem til å lage en rapport om deres behov internt, uten hjelp fra en programmerer.

Tro meg, det er mulig å trene ham til å bruke disse funksjonene, fordi det er mye enklere enn å skrive formler i Excel-regneark.