Funksjoner til uttrykksspråket til datasammensetningssystemet. Datalayoutdiagram (1C SKD) Beregn SKD-array med gruppering

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.Beløp Omsetning)

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(Fakturaer.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.

Hei kjære leser! Vi har en annen leksjon om det grunnleggende i layoutsystemet. I ble du kjent med funksjonene til SKD-uttrykksspråket, så funksjonene til layoutsystemet, og forsto også de grunnleggende innstillingene til layoutfeltene. Nå skal vi se på nytt materiale. Gå!

Ytterligere innstillinger for ACS-felt.

Kolonne "Verditype" Lar deg spesifisere datatypen for layoutfeltet. Hvorfor spesifisere typen, for eksempel for "Nomenklatur"-feltet, hvis du allerede vet hvilken type det er? Dette er nødvendig hvis layoutfeltet er av en sammensatt type. Du kan velge en spesifikk type, og når du velger dette feltet, vil verdier av denne typen bli valgt.

Kolonne "Tilgjengelige verdier" lar deg spesifisere verdiene som er tilgjengelige for valg og begrense brukerens valg til visse grenser.

Kolonne "Dekor" lar deg spesifisere utformingen av et layoutfelt uten å bruke oppsett. Du kan spesifisere skriftfarge, rammefarge, tekstretning osv.

Kolonne "Redigeringsalternativer" Lar deg spesifisere hvordan du skal redigere layoutfeltet. Du kan for eksempel spesifisere et raskt utvalg av elementer fra en liste i et utvalg. Som standard arver et layoutfelt alle redigeringsalternativer fra metadataobjektet.

Beregnede felt

På fanen "Beregnede felt" i datasammensetningen kan du lage dine egne beregnede felt.

Hvorfor trenger du beregnede felt når du kan opprette dem på spørringsnivå? Ikke alle felt kan beskrives ved hjelp av en spørring. Hvis du trenger å lage et komplekst felt fra forskjellige datasett, for eksempel en spørring og et objekt, kan du ikke klare deg uten beregnede felt. Du kan ikke legge til et datasammensetningsfelt hvis datakilden er en spørring og autofyll er aktivert, men ved å bruke beregnede felt kan du legge til så mange felt du vil.

I "Uttrykk"-kolonnen i det beregnede feltet må du skrive et vilkårlig uttrykk som bruker datasammensetningsfeltene, og få tilgang til banen deres (kolonnen "Bi" på fanen "Datasett"). Enten kan du bruke matematiske transformasjonsfunksjoner eller få tilgang til funksjonene til vanlige moduler. La oss for eksempel skrive i kolonnen "Databane" navnet på det beregnede feltet "Avvik", og i "Uttrykk"-feltet følgende.

I lys av den kommende utgivelsen av 8.2.14, vil jeg prøve å beskrive noen nye funksjoner i datasammensetningssystemet.

Åpne datalayoutdiagrammet, gjerne i en ekstern rapport, for å gjøre redigeringen enklere.

Vi legger til et datasett av spørringstypen og skriver, enten manuelt eller ved hjelp av spørringsdesigneren, en enkel spørring:

1. Sett opp en forespørsel i tilgangskontrollsystemet.

2. Sett opp beregnede felt i adgangskontrollsystemet

3. Konfigurer dataoppsettet på innstillingsfanen

4. Start 1C Enterprise 8.2.14. Åpne rapporten. Vi former, vi mottar.

Beskrivelse av selve de nye funksjonene:

1. Gjeldende dato()

Returnerer systemdatoen. Når du komponerer et layoutoppsett, i alle uttrykk som finnes i oppsettet, erstattes CurrentDate()-funksjonen med verdien til gjeldende dato.

2. COMPUTEEXPRESSION()

Syntaks:

CalculateExpression(,)

Beskrivelse:

Funksjonen er designet for å evaluere et uttrykk i sammenheng med en gruppering.

Funksjonen tar hensyn til utvalg av grupperinger, men tar ikke hensyn til hierarkiske utvalg.

Funksjonen kan ikke brukes på en gruppering i gruppeutvalget til den gruppen. For eksempel, når du velger nomenklaturgruppering, kan du ikke bruke uttrykket CalculateExpression("Sum(SumOmsetning)", "TotalTotal") > 1000. Men et slikt uttrykk kan brukes i hierarkisk seleksjon.

Hvis sluttposten går foran startposten, anses det at det ikke finnes noen poster for beregning av detaljerte data og beregning av aggregerte funksjoner.

Ved beregning av intervalluttrykk for en totalsum (Grupperingsparameteren er satt til GrandTotal), antas det at det ikke finnes noen poster for beregning av detaljerte data og beregning av aggregerte funksjoner.

Layoutlinker når du genererer et funksjonsuttrykk BeregnUttrykk, hvis bestillingsuttrykket inneholder felt som ikke kan brukes i gruppering, erstatter funksjonen BeregnUttrykkNULL.

Alternativer

Type: Linje. Uttrykket som skal vurderes.

Type: Linje. 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 GeneralTotal-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)/Beregn("Sum(Salg.SumOmsetning)", "Totalt")

I dette eksemplet vil resultatet være forholdet mellom summen etter felt Salg.BeløpOmsetning gruppering av poster til summen av det samme feltet i hele oppsettet;

Type: Linje. Parameteren kan ha følgende verdier:

· Totalsum— uttrykket vil bli beregnet for alle grupperingsposter.

· Hierarki– uttrykket vil bli evaluert for den overordnede hierarkiske posten, hvis det er en, og for hele grupperingen, hvis det ikke er noen overordnet hierarkisk post.

· Gruppering— uttrykket vil bli evaluert for gjeldende gruppegrupperingspost.

· GroupingNonResource— når man beregner en funksjon for en gruppepost etter ressurser, vil uttrykket beregnes for den første gruppeposten i den opprinnelige grupperingen.

Når du beregner en funksjon CalculateExpression() med mening GroupingNonResource for gruppeposter som ikke er gruppert etter ressurser, beregnes funksjonen på samme måte som den ville blitt beregnet hvis parameterverdien var lik verdien Gruppering.

Layoutbyggeren for datasammensetning plasserer et uttrykk i oppsettet som beregnes ved hjelp av funksjonen når den genererer et datasammensetningsoppsett når ressursfeltet sendes ut som gruppering utføres av til oppsettet. CalculateExpression() , som indikerer parameteren GroupingNonResource. For andre ressurser plasseres de vanlige ressursuttrykkene i ressursgrupperingen.

Type: Linje. Angir fra hvilken post fragmentet skal begynne, i hvilke aggregerte uttrykksfunksjoner som skal beregnes, og fra hvilken post det skal hentes feltverdier utenfor aggregerte funksjoner. Verdien kan være en av følgende:

· Først

· Siste (Siste)

· Tidligere

· Neste (Neste)

· Nåværende

· LimitingValue(BoundaryValue) LimitingValue

Type: Linje. Angir til hvilken post fragmentet skal videreføres, der de aggregerte funksjonene til uttrykket skal beregnes. Verdien kan være en av følgende:

· Først. Det er nødvendig å skaffe den første grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning fra begynnelsen av grupperingen. Den resulterende verdien må være et heltall større enn null. For eksempel First(3) - mottar den tredje posten fra begynnelsen av grupperingen.

Hvis den første posten er utenfor grupperingen, anses det som ingen poster. For eksempel, hvis det er 3 poster, og du ønsker å få First(4), så anses det at det ikke er noen poster.

· Siste (Siste). Du må få den siste grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning fra slutten av grupperingen. Den resulterende verdien må være et heltall større enn null. For eksempel Last(3) - mottar den tredje posten fra slutten av gruppen.

Hvis den siste posten er utenfor grupperingen, anses det som ingen poster. For eksempel, hvis det er 3 poster, og du ønsker å få Last(4), så anses det at det ikke er noen poster.

· Tidligere. Du må få den forrige grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning tilbake fra gjeldende grupperingspost. For eksempel Previous(2) - henter forrige fra forrige post.

Hvis den forrige posten går utover grupperingen (for eksempel for den andre grupperingsposten må du hente Previous(3)), så oppnås den første grupperingsposten.

Ved henting av forrige post for en grupperingssum anses det at den første posten er hentet.

· Neste (Neste). Du må få den neste grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning fremover fra gjeldende grupperingspost. For eksempel, Next(2) - får neste fra neste post.

Hvis neste post går utover grupperingen, anses det som ingen poster. For eksempel, hvis det er 3 oppføringer og den tredje oppføringen mottar Next() , anses det at det ikke er noen oppføringer.

Når neste post er mottatt for grupperingssummen, anses det som ingen post.

· Nåværende. Du må få den gjeldende posten.

Ved henting for en grupperingssum oppnås den første posten.

· LimitingValue(BoundaryValue). Behovet for å få en post med den angitte verdien. Etter ordet LimitingValue i parentes må du angi uttrykket med verdien du vil starte fragmentet av, det første rekkefølgefeltet.

Den første posten hvis bestillingsfeltverdi er større enn eller lik den angitte verdien vil bli returnert som posten. For eksempel, hvis Periode-feltet brukes som bestillingsfelt, og det har verdiene 01/01/2010, 02/01/2010, 03/01/2010, og du ønsker å få Limiting Value(DatoTime(2010, 1, 15)), da vil en post med datoen 02/01/2010 bli mottatt.

Type: Linje. Viser uttrykk, atskilt med komma, som beskriver rekkefølgereglene. Hvis ikke spesifisert, utføres rekkefølgen på samme måte som for grupperingen som uttrykket er evaluert for. Etter hvert uttrykk kan du angi et nøkkelord Alder(for bestilling i stigende rekkefølge), Synkende(for bestilling i synkende rekkefølge) og Autobestilling(for å sortere referansefelt etter feltene du vil sortere det refererte objektet etter). Ord Autobestilling kan brukes som med ordet Alder, så med ordet Synkende.

Type: Linje. Samme som parameter Sortering. Brukes til å organisere hierarkiske poster. Hvis det ikke er spesifisert, genererer layoutbyggeren bestillingen i henhold til rekkefølgen spesifisert i parameteren Sortering.

Type: Linje. Angir regelen for å bestemme forrige eller neste post i tilfelle det er flere poster med samme rekkefølgeverdi:

· Hver for seg indikerer at en sekvens med ordnede poster brukes til å bestemme forrige og neste post. Standardverdi.

· Sammen indikerer at forrige og neste post bestemmes basert på verdiene til ordensuttrykkene.

For eksempel, hvis den resulterende sekvensen er sortert etter dato:

Dato Fullt navn Betydning
1 1. januar 2001

Ivanov M.

10
2 2. januar 2001 Petrov S. 20
3 3. januar 2001 Sidorov R. 30
4 4. januar 2001 Petrov S. 40

Hver for seg, Det:

§ forrige oppføring til oppføring 3 vil være oppføring 2.

Gjeldende, Gjeldende(følgelig parametere Start Og Slutt), så for post 2 vil dette fragmentet bestå av én post 2. Uttrykket vil være lik 20.

Hvis parameterverdien er Sammen, Det:

§ forrige oppføring til oppføring 3 vil være oppføring 1.

§ dersom beregningsfragmentet er definert som Gjeldende, Gjeldende(følgelig parametere Start Og Slutt), så for post 2 vil dette fragmentet bestå av post 2 og 3. Uttrykk CalculateExpression("Sum(Verdi)", Current, Current) vil være lik 50.

Når du spesifiserer en parameterverdi lik Sammen, i parametere Start Og Slutt du kan ikke spesifisere en offset for posisjoner Først, siste, forrige, neste.

CalculateExpression("Sum(SumOmsetning)", "Først", "Gjeldende")

Hvis du ønsker å få grupperingsverdien i forrige linje, kan du bruke følgende uttrykk:

CalculateExpression("Pris", "Forrige")

Liste ny funksjoner:

CalculateExpressionWithGroupArray(,) -

Funksjonen returnerer en matrise, hvor hvert element inneholder resultatet av å evaluere et uttrykk for gruppering etter det angitte feltet.

CalculateExpressionWithGroupValueTable(,) -

Funksjonen returnerer en tabell med verdier, der hver rad inneholder resultatet av å evaluere uttrykk for gruppering etter det angitte feltet

Verdifylt() - Returnerer True hvis verdien er en annen enn standardverdien av denne typen, annet enn NULL, annet enn en tom referanse, annet enn Udefinert. Boolske verdier sjekkes for NULL-verdier. Strenger sjekkes for fravær av tegn som ikke er mellomrom

Format(, ) - Motta en formatert streng med den beståtte verdien. Formatstrengen er satt i samsvar med formatstrengen til 1C:Enterprise-systemet.

Understreng(, , ) - Denne funksjonen er laget for å trekke ut en delstreng fra en streng.

Linjelengde() - Funksjonen er laget for å bestemme lengden på en streng. Parameter er et strenguttrykk

Linje() - Hvis en matrise sendes som en parameter, returnerer funksjonen en streng som inneholder strengrepresentasjoner av alle matriseelementer, atskilt med "; "-tegn. Hvis en verditabell sendes som en parameter, returnerer funksjonen en streng som inneholder strengrepresentasjoner av alle rader i verditabellen, med cellerepresentasjonene til hver rad atskilt med ";"-tegn, og radene med en ny linje karakter. Hvis et elements strengrepresentasjon er tom, vises en streng i stedet for representasjonen.

1. Beregn (Eval)- er ment å evaluere et uttrykk i sammenheng med en eller annen gruppering. Funksjonen brukes for kompatibilitet med tidligere versjoner av plattformen. Det anbefales å bruke CalculateExpression-funksjonen i stedet.

Syntaks:
Beregn (uttrykk, gruppering, kalkulasjonstype)

Alternativer:

  • Uttrykk(Linje). Inneholder et beregnet uttrykk;
  • Gruppering(Linje). 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.
  • Beregningstype(Linje). Hvis denne parameteren er satt til "TotalTotal", vil uttrykket bli beregnet for alle grupperingsposter. Hvis verdien av parameteren er "Gruppering", vil verdiene beregnes for gjeldende grupperingsgruppepost.
2. Evaluer uttrykk (EvalExpression) - er ment å evaluere et uttrykk i sammenheng med en eller annen gruppering. Funksjonen tar hensyn til utvalg av grupperinger, men tar ikke hensyn til hierarkiske utvalg. Funksjonen kan ikke brukes på en gruppering i gruppeutvalget til den gruppen.

Syntaks:
CalculateExpression(Uttrykk, Gruppering, CalculationType, Start, End, Sorter, HierarchicalSort, ProcessingIdentical OrderValues)

Alternativer:

  • Uttrykk(Linje). Inneholder et beregnet uttrykk;
  • Gruppering(Linje). 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 grupperingen med det navnet;
  • Beregningstype(Linje). Hvis denne parameteren er satt til "TotalTotal", vil uttrykket bli beregnet for alle grupperingsposter. Hvis verdien av parameteren er "Gruppering", vil verdiene beregnes for gjeldende grupperingsgruppepost. Hvis parameteren er satt til "Non-Resource Grouping", vil uttrykket evalueres for den første gruppeposten i den opprinnelige grupperingen, når funksjonen beregnes for en gruppepost for ressurs. Når du evaluerer CalculateExpression-funksjonen med verdien "GroupingNonResource" for gruppeposter som ikke er grupperinger etter ressurs, evalueres funksjonen på samme måte som den ville blitt evaluert med verdien til parameteren "Groupering". Layoutbyggeren for datasammensetning, når den genererer et datakomposisjonsoppsett ved utdata av et felt - en ressurs som gruppering utføres med, til oppsettet, sender ut til oppsettet et uttrykk beregnet ved hjelp av CalculateExpression-funksjonen med den spesifiserte "GroupingNon-Resource"-parameteren. For andre ressurser gruppert etter ressurs, returneres normale ressursuttrykk. Hvis parameteren er satt til "Hierarki", må uttrykket evalueres for den overordnede hierarkiske posten, hvis det er en, og for hele grupperingen, hvis det ikke er noen overordnet hierarkisk post. Layoutbyggeren, når den genererer et uttrykk for % i Hierarchy Group-feltet, genererer et uttrykk som inneholder forholdet mellom ressursuttrykket og CalculateExpression-funksjonen for ressursuttrykket som beregnes for gjeldende gruppering med beregningstypen Hierarki.
  • Start. Angir fra hvilken post fragmentet skal begynne, i hvilke aggregerte uttrykksfunksjoner som skal beregnes, og fra hvilken post det skal hentes feltverdier utenfor aggregerte funksjoner. En streng som inneholder en av:
    • "Først" Det er nødvendig å skaffe den første grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning fra begynnelsen av grupperingen. Den resulterende verdien må være et heltall større enn null. For eksempel First(3) – mottar den tredje posten fra begynnelsen av grupperingen. Hvis den første posten er utenfor grupperingen, anses det som ingen poster. For eksempel, hvis det er 3 poster, og du ønsker å få First(4), så anses det at det ikke er noen poster.
    • "Siste" Du må få den siste grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning fra slutten av grupperingen. Den resulterende verdien må være et heltall større enn null. For eksempel Last(3) – mottar den tredje posten fra slutten av gruppen. Hvis den siste posten er utenfor grupperingen, anses det som ingen poster. For eksempel, hvis det er 3 poster, og du ønsker å få Last(4), så anses det at det ikke er noen poster.
    • "Tidligere" Du må få den forrige grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning tilbake fra gjeldende grupperingspost. For eksempel Previous(2) – henter forrige fra forrige post. Hvis den forrige posten er utenfor grupperingen (for eksempel krever den andre grupperingsposten å hente Previous(3)), så oppnås den første grupperingsposten. Når du mottar forrige post for grupperingssummen, oppnås den første posten.
    • "Neste" Du må få den neste grupperingsposten. Etter ordet i parentes kan du spesifisere et uttrykk, hvis resultat vil bli brukt som en forskyvning fremover fra gjeldende grupperingspost. For eksempel, Next(2) – får den neste fra neste post. Hvis neste post går utover grupperingen, anses det som ingen poster. For eksempel, hvis det er 3 oppføringer og den tredje oppføringen mottar Neste, anses det at det ikke er noen oppføringer. Når neste post er mottatt for grupperingssummen, anses det som ingen post.
    • "Nåværende". Du må få den gjeldende posten. Ved henting for en grupperingssum oppnås den første posten.
    • "Grenseverdi". Behovet for å få en post med den angitte verdien. Etter ordet LimitingValue i parentes, må du angi uttrykket med verdien du vil starte fragmentet av, det første rekkefølgefeltet. Den første posten hvis bestillingsfeltverdi er større enn eller lik den angitte verdien vil bli returnert som posten. For eksempel, hvis Periode-feltet brukes som bestillingsfeltet, og det har verdiene 01/01/2010, 02/01/2010, 03/01/2010, og du ønsker å få LimitingValue(DateTime(2010) , 1, 15)), så vil en post med datoen 02/01 bli innhentet. 2010.
  • Slutt. Angir til hvilken post fragmentet skal videreføres, der det aggregerte uttrykket skal beregnes. En streng som inneholder en av:
    • "Først"
    • "Siste"
    • "Tidligere"
    • "Neste"
    • "Nåværende".
    • "Grenseverdi".
  • Sortering. En streng som viser uttrykkene, atskilt med kommaer, i retningen som sekvensen skal sorteres i. Hvis ikke spesifisert, utføres rekkefølgen på samme måte som for grupperingen som uttrykket er evaluert for. Etter hvert uttrykk kan du spesifisere nøkkelordet Stigende, for rekkefølge i stigende rekkefølge, Synkende, for rekkefølge i synkende rekkefølge, Auto-Ordering, for å sortere referansefeltene etter feltene du vil sortere objektet som refereres til. Ordet automatisk rekkefølge kan brukes med både ordet stigende og synkende.
  • Hierarkisk sortering. Ligner på sortering. Brukes til å organisere hierarkiske poster. Hvis det ikke er spesifisert, genererer layoutkomponisten bestillingen i henhold til rekkefølgen spesifisert i Sort-parameteren.
  • Behandler samme bestillingsverdier. En streng som inneholder en av:
    • "Together" betyr at en sekvens av ordnede poster brukes til å bestemme forrige og neste post;
    • "Separat" betyr at forrige og neste post bestemmes basert på verdiene til bestillingsuttrykkene;
    For eksempel, hvis den resulterende sekvensen er sortert etter dato:
    1. 1. januar 2001 Ivanov M. 10
    2. 2. januar 2001 Petrov S. 20
    3. 2. januar 2001 Sidorov R. 30
    4. 3. januar 2001 Petrov S. 40
    Når du bruker behandling av identiske verdier av rekkefølgen "Separat", vil den forrige for post 3 være post 2, og når du bruker "Together" - post 1. Og fragmentet for gjeldende post for post 2 for "Separat" vil være post 2, og for "Together" - post 2 og 3. Dermed vil summen for gjeldende post for "Separat" være 20, og for "Together" - 50. Når "Together" er spesifisert i Start- og Sluttparametere, du kan ikke spesifisere en offset for posisjonene "Først", "Siste", "Forrige", "Neste". Standardverdien er "Separat".
Eksempel:
Innhenting av forholdet mellom beløpet for "Sales.AmountTurnover"-feltet i en grupperingspost og beløpet for det samme feltet i hele oppsettet:
Sum(Salg.SumOmsetning) / CalculateExpression("Sum(Salg.SumOmsetning)", "Totalt").

Dette eksemplet beregner verdien av det gjeldende hierarkiet:
Valg
Når Level() > 0
Deretter EvaluateExpression("Referanse", "Hierarki")
Ellers Null
Slutt

Merknader:
Funksjonen tar hensyn til utvalg av grupperinger, men tar ikke hensyn til hierarkiske utvalg. Funksjonen kan ikke brukes på en gruppering i gruppeutvalget til den gruppen. Når du for eksempel velger nomenklaturgruppering, kan du ikke bruke uttrykket CalculateExpression("Sum(SumOmsetning)", "TotalTotal") > 1000 . Men et slikt uttrykk kan brukes i hierarkisk seleksjon. Hvis sluttposten går foran startposten, anses det at det ikke finnes noen poster for beregning av detaljerte data og beregning av aggregerte funksjoner. Ved beregning av intervalluttrykk for en totalsum (Grupperingsparameteren er satt til "Bruttototal"), antas det at det ikke finnes noen poster for beregning av detaljerte data og beregning av aggregerte funksjoner. Når du genererer et uttrykk for CalculateExpression-funksjonen, erstatter layoutkomponatoren, hvis bestillingsuttrykket inneholder felt som ikke kan brukes i gruppering, CalculateExpression-funksjonen med NULL.

3. Evaluer uttrykk med gruppematrise (EvalExpression med gruppematrise) - funksjonen returnerer en matrise, hvor hvert element inneholder resultatet av å beregne et uttrykk for gruppering etter det angitte feltet.

Syntaks:
CalculateExpressionWithGroupArray (Expression, GroupFieldExpressions, SelectRecords, SelectGroups)

Alternativer:

  • Uttrykk(String) - uttrykket som skal evalueres. For eksempel, "Amount(AmountTurnover)";
  • FieldExpressionsGroups
  • Utvalg av poster
  • Valg av grupperinger- utvalg brukt på gruppeposter. For eksempel: "Beløp (Beløp Omsetning) > &Parameter1".
Eksempel:
Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Motpart"));


Når layoutbyggeren genererer uttrykk for visning av et tilpasset felt hvis uttrykk bare inneholder CalculateArrayWithGroup-funksjonen, genererer visningsuttrykket slik at dataene som vises av visningene og dataene blir ordnet.
For eksempel, for et tilpasset felt med uttrykket:
CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Motpart")
Layoutbyggeren vil generere følgende uttrykk for utdata:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("Vis(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Beregn uttrykk med GroupValueTable (EvalExpressionWithGroupValueTable) - funksjonen returnerer en tabell med verdier, hvor hvert element inneholder resultatet av å beregne et uttrykk for gruppering etter det angitte feltet.

Syntaks:
CalculateExpressionWithGroupValueTable (Uttrykk, gruppefeltuttrykk, postvalg, gruppeutvalg)

Alternativer:

  • Uttrykk(String) - uttrykket som skal evalueres. En linje kan inneholde flere uttrykk atskilt med komma. Etter hvert uttrykk kan det være et valgfritt nøkkelord AS og navnet på verditabellkolonnen. For eksempel: "Motpart, Beløp (Beløp Omsetning) Som Salgsvolum."
  • FieldExpressionsGroups- uttrykk for grupperingsfelt, atskilt med komma. For eksempel "Motpart, Part";
  • Utvalg av poster- et uttrykk brukt på detaljposter. For eksempel, "Slettingsflagg = False." Hvis denne parameteren bruker en aggregert funksjon, vil det oppstå en feil når dataene komponeres;
  • Valg av grupperinger- utvalg brukt på gruppeposter. For eksempel: "Beløp (Beløp Omsetning) > &Parameter1".
Eksempel:
Beregn uttrykk med gruppering av verditabell ("Konto AS Motpart, Beløp (Beløp Omsetning) AS Salgsvolum", "Konto")

Resultatet av denne funksjonen vil være en verditabell med kolonnene Motpart og Salgsvolum, som vil inneholde motparter med deres salgsvolum.
Layoutsammensetningen, når den genererer en layout, konverterer funksjonsparametere til datasammensetningslayoutfelt. For eksempel vil Konto-feltet bli konvertert til DataSet.Account.
For eksempel et tilpasset felt med uttrykket:
CalculateExpressionWithGroupValueTable("Konto, Beløp(Beløp Omsetning)", "Konto")
Layoutbyggeren vil generere følgende uttrykk for utdata:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet".Account"), "3". ), "2, 4"))

5. Nivå - funksjonen er utformet for å oppnå gjeldende opptaksnivå.

Syntaks:
Nivå()

Eksempel:
Nivå()

6. Sekvensnummer - få neste serienummer.

Syntaks:
NumberByOrder()

Eksempel:
NumberByOrder()

7. SequenceNumberInGrouping - returnerer neste sekvensnummer i gjeldende gruppering.

Eksempel:
NumberByOrderInGroup()

8. Format - få en formatert streng med bestått verdi.

Syntaks:
Format(verdi, formatstreng)

Alternativer:

  • Betydning- uttrykket som må formateres;
  • FormatString- formatstrengen er satt i samsvar med 1C:Enterprise-formatstrengen.
Eksempel:
Format(Fakturaer.dokumentbeløp, "NPV=2")

9. BeginOfPeriod

Syntaks:
StartPeriod(dato, periodetype)

Alternativer:

  • Dato(Dato). Oppgitt dato;
  • Periodetype
Eksempel:
StartPeriod(DatoTid(2002, 10, 12, 10, 15, 34), "Måned")
Resultat: 10/01/2002 0:00:00

10. EndOfPeriod - funksjonen er designet for å velge en bestemt dato fra en gitt dato.

Syntaks:
EndPeriod(dato, periodetype)

Alternativer:

  • Dato(Dato). Oppgitt dato;
  • Periodetype(Linje). Inneholder en av følgende verdier: Minutt; Time; Dag; En uke; Måned; Fjerdedel; År; Tiår; Halvt år.
Eksempel:
EndPeriod(DatoTid(2002, 10, 12, 10, 15, 34), "Uke")
Resultat: 13.10.2002 23:59:59

11. AddKDate (DateAdd) - funksjonen er designet for å legge til en viss verdi til datoen.

Syntaks:
AddToDate(Uttrykk, IncrementType, Magnitude)

Alternativer:

  • Uttrykk(Dato). Opprinnelig dato;
  • TypeForstørrelse(Linje). Inneholder en av følgende verdier: Minutt; Time; Dag; En uke; Måned; Fjerdedel; År; Tiår; Halvt år.
  • Omfanget(Antall). Med hvor mye datoen må økes, ignoreres brøkdelen.
Eksempel:
AddToDate(DatoTid(2002, 10, 12, 10, 15, 34), "Måned", 1)
Resultat: 11/12/2002 10:15:34

12. DatoDifference - funksjonen er designet for å få forskjellen mellom to datoer.

Syntaks:
DifferenceDate(Expression1, Expression2, DifferenceType)

Alternativer:

  • Uttrykk 1(Dato). Fratrukket dato;
  • Uttrykk 2(Dato). Opprinnelig dato;
  • Typeforskjell(Linje). Inneholder en av verdiene: Second; Minutt; Time; Dag; Måned; Fjerdedel; År.
Eksempel:
DATODIFFERENCE(DATETIME(2002; 10; 12; 10; 15; 34),
DATOTIME(2002; 10; 14; 9; 18; 06); "DAG")
Resultat: 2

13. Understreng - Denne funksjonen er designet for å trekke ut en delstreng fra en streng.

Syntaks:
Delstreng (streng, posisjon, lengde)

Alternativer:

  • Linje(Linje). Strengen som delstrengen er hentet fra;
  • Posisjon(Antall). Posisjonen til tegnet som delstrengen som skal trekkes ut fra strengen begynner;
  • Lengde(Antall). Lengden på den tildelte delstrengen.
Eksempel:
SUBSTRING(Konto.adresse, 1, 4)

14. StringLength - funksjonen er laget for å bestemme lengden på en streng.

Syntaks:
StringLength(String)

Parameter :

  • Linje(Linje). En streng hvis lengde bestemmes.
Eksempel:
Linje(motparter.adresse)

15. År- denne funksjonen er utformet for å trekke ut året fra en datotypeverdi.

Syntaks:
År (dato)

Parameter :

  • Dato(Dato). Datoen året fastsettes for.
Eksempel:
ÅR(Utgift.dato)

16. Kvartal - denne funksjonen er laget for å trekke ut kvartalsnummeret fra en datotypeverdi. Kvartalstallet varierer vanligvis fra 1 til 4.

Syntaks:
Kvartal (dato)

Parameter :

  • Dato(Dato). Datoen som kvartalet fastsettes for
Eksempel:
KVARTAL(Utgift.dato)

17. Måned - denne funksjonen er laget for å trekke ut månedsnummeret fra en datotypeverdi. Månedstallet varierer vanligvis fra 1 til 12.

Syntaks:
Måned (dato)

Parameter :

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

18. Årets dag (DayOfYear) - denne funksjonen er utformet for å hente dagen i året fra en datotypeverdi. Dagen i året varierer normalt fra 1 til 365 (366).

Syntaks:
Årets dag (dato)

Parameter :

  • Dato(Dato). Datoen da årets dag fastsettes.
Eksempel:
DAGÅR(Utgiftskonto.Dato)

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

Syntaks:
Dag (dato)

Parameter :

  • Dato(Dato). Datoen da månedsdagen fastsettes.
Eksempel:
DAG(Utgift.dato)

20. Uke - denne funksjonen er utformet for å få årets ukenummer fra en datotypeverdi. Årets uker er nummerert fra 1.

Syntaks:
Uke (dato)

Parameter :

  • Dato(Dato). Datoen for når ukenummer fastsettes.
Eksempel:
UKE(Utgift.dato)

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

Syntaks:
Ukedag (dato)

Parameter :

  • Dato(Dato). Datoen for hvilken ukedagen fastsettes.
Eksempel:
UKEDAG (Utgift.Dato)

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

Syntaks:
Time (dato)

Parameter :

  • Dato(Dato). Datoen da klokkeslettet fastsettes.
Eksempel:
HOUR(Utgift.Dato)

23. Minutt - denne funksjonen er utformet for å hente minuttet i timen fra en datotypeverdi. Minuttet i timen varierer fra 0 til 59.

Syntaks:
Minutt (dato)

Parameter :

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

24. For det andre - denne funksjonen er utformet for å hente sekundet av et minutt fra en datotypeverdi. Det andre av et minutt varierer fra 0 til 59.

Syntaks:
Andre (dato)

Parameter :

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

25. Cast - 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.

Syntaks:
Express(Uttrykk, Typeindikasjon)

Alternativer:

  • Uttrykk- uttrykk som skal konverteres;
  • Type indikasjon(Linje). 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.
Eksempel:
Express(Data.Props1, "Tall(10,3)")

26. IsNull (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.

Syntaks:
IsNull(Uttrykk1, Uttrykk2)

Alternativer:

  • Uttrykk 1- verdi som skal kontrolleres;
  • Uttrykk 2- returner verdi hvis uttrykk1 er NULL.
Eksempel:
JaNULL(Beløp(Salg.BeløpOmsetning), 0)

27.ACos- beregner buecosinus i radianer.

Syntaks:
ACos (uttrykk)

Parameter :

  • Uttrykk(Antall). Cosinusverdien (i området -1 ... 1) som vinkelen bestemmes av.
28.ASin- beregner arcsine i radianer.

Syntaks:
ASin (uttrykk)

Parameter :

  • Uttrykk(Antall). Sinusverdien (i området -1 ... 1) som vinkelen bestemmes av.
29.ATan- beregner arctangens i radianer.

Syntaks:
ATan (uttrykk)

Parameter :

  • Uttrykk(Antall). Tangentverdien som vinkelen bestemmes med.
30.Cos- beregner cosinus.

Syntaks:
Cos (uttrykk)

Parameter :

  • Uttrykk
31. Exp- heve tallet e til en potens.

Syntaks:
Exp(Expression)

Parameter :

  • Uttrykk(Antall). Betydningen av graden.
32. Logg- beregner den naturlige logaritmen.

Syntaks:
Logg (uttrykk)

Parameter :

  • Uttrykk
33.Logg10- beregner logaritmen av X til grunntallet 10.

Syntaks:
Log10(Uttrykk)

Parameter :

  • Uttrykk(Antall). Det opprinnelige tallet er større enn 0.
34. Pow- eksponentiering.

Syntaks:
Pow (base, indikator)

Alternativer:

  • Utgangspunkt(Antall). Grunnlaget for operasjonen av eksponentiering.
  • Indeks(Antall). Eksponent.
35. Synd- beregner sinus.

Syntaks:
Synd (uttrykk)

Parameter :

  • Uttrykk(Antall). Spesifisert i radianer.
36. Sqrt- beregner kvadratroten.

Syntaks:
Sqrt(Uttrykk)

Parameter :

  • Uttrykk(Antall). Ikke-negativt tall.
37. Tan- beregner tangenten.

Syntaks:
Tan (uttrykk)

Parameter :

  • Uttrykk(Antall). Sinusverdien som vinkelen bestemmes med.
38. Runde- runder det opprinnelige tallet til ønsket bitdybde. Avrundingsmodusen er standard (1,5 som 2).

Syntaks:
Env (uttrykk, bitdybde)

Alternativer:

  • Uttrykk(Antall). Opprinnelig nummer;
  • Litt dybde(Antall). Antall desimaler å avrunde til.
39. Int- kutter av brøkdelen av et tall.

Syntaks:
Objekt (uttrykk)

Parameter :

  • Uttrykk(Antall). Et brøktall.
40. Funksjoner til fellesmoduler

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

Eksempel:
AbbreviatedName(Documents.Link, Documents.Date, Documents.Number)

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.

41. Harme - denne funksjonen returnerer en strengrepresentasjon av den beståtte verdien av en ikke-primitiv type. For verdier av en primitiv type, returnerer selve verdien.

<Пустое значение>".

Eksempel:
Presentasjon (motpart)

42. Snøre - denne funksjonen konverterer den beståtte verdien til en streng.

Hvis en matrise eller en verditabell brukes som en parameter, returnerer funksjonen en streng som inneholder en strengrepresentasjon av alle elementene i matrisen, atskilt med tegnene "; ". Hvis et element har en tom strengrepresentasjon, vil strengen "<Пустое значение>".

Eksempel:
Rad (salgsdato)

43. ValueIsFilled

For NULL-verdier returnerer Undefined alltid False.
For boolske verdier returnerer den alltid True.
For andre typer returnerer True hvis verdien er forskjellig fra standardverdien for den gitte typen.

Eksempel:
ValueFilled (Leveringsdato)

44. LevelInGroup - denne funksjonen får gjeldende opptaksnivå i forhold til grupperingen.

Kan brukes til å få nesting-nivået til en post i en hierarkisk gruppering.

Eksempel:
LevelInGroup()

45. Verditype

Syntaks:
Verditype (uttrykk)

Parameter :

  • Uttrykk(Linje). Type strengverdi.
Returnerer en verdi av typen Type som inneholder verditypen til funksjonsparameteren.
  • 1C-Bitrix
  • Et av de viktigste områdene innen forretningsprogramvare er rapportering. En virksomhets skjebne kan avhenge (og ikke i overført betydning!) av hvor enkelt det er å tilpasse en eksisterende rapport til de endrede behovene til virksomheten (og lovverket) eller lage en ny, det være seg en rapport for skattekontoret eller et diagram over etterspørselens avhengighet av sesongen og andre faktorer. Et kraftig og fleksibelt rapporteringssystem som gjør det enkelt å trekke ut nødvendige data fra systemet, presentere dem i en forståelig form, slik at sluttbrukeren kan rekonfigurere en standardrapport for å se dataene i et nytt lys - dette er det ideelle som alle forretningssystemet bør strebe etter.

    I 1C:Enterprise-plattformen er en mekanisme kalt "Data Composition System" (forkortet DCS) ansvarlig for å generere rapporter. I denne artikkelen vil vi prøve å gi en kort beskrivelse av ideen og arkitekturen til ACS-mekanismen og dens evner.


    ACS er en mekanisme basert på en deklarativ beskrivelse av rapporter. Adgangskontrollsystemet er designet for å generere rapporter og for å vise informasjon med en kompleks struktur. For øvrig, i tillegg til å utvikle rapporter, brukes ACS-mekanismen også i 1C:Enterprise i en dynamisk liste, et verktøy for å vise listeinformasjon med rik funksjonalitet (visning av flate og hierarkiske lister, betinget utforming av rader, grupperinger, etc. ).

    Litt historie

    I den aller første versjonen av 1C:Enterprise 8-plattformen, versjon 8.0, ble det laget rapporter slik:
    1. Ett eller flere spørringer ble skrevet i 1C spørringsspråk (SQL-lignende språk, mer om det nedenfor).
    2. Kode ble skrevet som overførte resultatene av utførte spørringer til et regnearkdokument eller diagram. Koden kan også utføre arbeid som ikke kunne gjøres i en spørring - for eksempel beregnet den verdier ved å bruke det innebygde 1C-språket.
    Tilnærmingen er grei, men ikke den mest praktiske - det er minimale visuelle innstillinger, alt må programmeres "hånd-til-hånd". Og et av trumfkortene på den tiden til den helt nye plattformen "1C:Enterprise 8" var minimeringen i applikasjonsløsningen av mengden kode som må skrives manuelt, spesielt gjennom visuell design. Det vil være logisk å følge samme vei i rapporteringsmekanismen. Dette ble gjort ved å utvikle en ny mekanisme - Data Composition System.

    En av ideene som lå til grunn for tilgangskontrollsystemet var fleksibilitet og tilpasning av rapporter, som var tilgjengelig for både utvikler og sluttbruker. Ideelt sett vil jeg gi sluttbrukeren tilgang til samme sett med rapportdesignverktøy som utvikleren. Det ville være logisk å lage et enkelt sett med verktøy tilgjengelig for alle. Vel, siden verktøyene krever deltakelse fra sluttbrukeren, betyr det at bruken av programmering i dem bør reduseres til et minimum (det er best å eliminere det helt), og visuelle innstillinger bør brukes maksimalt.

    Formulering av problemet

    Oppgaven før utviklingsteamet var å lage et rapporteringssystem basert ikke på en algoritme (dvs. gjennom å skrive kode), men på en deklarativ tilnærming til å lage rapporter. Og vi tror at problemet har blitt løst. Vår erfaring er at omtrent 80 % av den påkrevde rapporteringen kan implementeres ved bruk av ACS uten en enkelt kodelinje (bortsett fra å skrive formler for beregnede felt), for det meste gjennom visuelle innstillinger.
    Utviklingen av den første versjonen av SDS tok omtrent 5 personår.

    To språk

    Det er to språk involvert i å lage rapporter. Det ene er et spørringsspråk som brukes til å hente data. Det andre er datakomposisjonsuttrykksspråket, beregnet for å skrive uttrykk som brukes i ulike deler av systemet, for eksempel i datakomposisjonsinnstillinger, for å beskrive uttrykk for brukerfelt.

    Spørrespråk

    Spørringsspråket er basert på SQL og er enkelt å lære for de som har kunnskap om SQL. Eksempelforespørsel:

    Det er lett å se analoger av seksjonsstandard for SQL-spørringer - SELECT, FROM, GROUP BY, ORDER BY.

    Samtidig inneholder spørringsspråket et betydelig antall utvidelser som tar sikte på å gjenspeile spesifikasjonene til finansielle og økonomiske problemer og på å maksimere reduksjonen av innsatsen for å utvikle applikasjonsløsninger:

    • Tilgang til felt ved hjelp av en prikk. Hvis feltene i en tabell er av en referansetype (de lagrer lenker til objekter i en annen tabell), kan utvikleren referere til dem i forespørselsteksten gjennom ".", og systemet begrenser ikke antall nestenivåer av slike lenker (for eksempel Kundebestilling. Avtale. Organisasjon. Telefon).
    • Multidimensjonal og multilevel dannelse av resultater. Totaler og delsummer dannes under hensyntagen til gruppering og hierarki, nivåer kan krysses i hvilken som helst rekkefølge med oppsummering, og riktig konstruksjon av totaler etter tidsdimensjoner er sikret.
    • Støtte for virtuelle tabeller. Virtuelle tabeller levert av systemet lar deg få nesten ferdige data for de fleste applikasjonsoppgaver uten å måtte lage komplekse spørringer. Dermed kan en virtuell tabell gi data om produktbalanser etter perioder på et bestemt tidspunkt. Samtidig utnytter virtuelle tabeller den lagrede informasjonen maksimalt, for eksempel tidligere beregnede totaler osv.
    • Midlertidige bord. Spørringsspråket lar deg bruke midlertidige tabeller i spørringer. Med deres hjelp kan du forbedre søkeytelsen, i noen tilfeller redusere antall blokkeringer og gjøre spørringsteksten lettere å lese.
    • Batchforespørsler. For å gjøre arbeidet med midlertidige tabeller mer praktisk, støtter spørringsspråket arbeid med batch-spørringer - dermed blir opprettelsen av en midlertidig tabell og bruken av den plassert i én spørring. En batchforespørsel er en sekvens av forespørsler atskilt med semikolon (";"). Forespørslene i batchen utføres etter hverandre. Resultatet av å utføre en batchforespørsel, avhengig av metoden som brukes, vil enten være resultatet som returneres av den siste forespørselen i batchen, eller en rekke resultater fra alle spørringene i batchen i rekkefølgen som spørringene i batchen følger. .
    • Henter representasjoner av referansefelt. Hver objekttabell (der en oppslagsbok eller et dokument er lagret) har et virtuelt felt - "Vis". Dette feltet inneholder en tekstlig representasjon av objektet og gjør jobben til rapportskaperen enklere. Så for et dokument inneholder dette feltet all nøkkelinformasjonen - navnet på dokumenttypen, nummeret og datoen (for eksempel "Salg 000000003 fra 07/06/2017 17:49:14"), og lagrer utvikleren fra skrive et beregnet felt.
    • og så videre.
    Forespørselsmekanismen modifiserer automatisk forespørselen under hensyntagen til rollene som brukeren på hvis vegne forespørselen utføres tilhører (dvs. brukeren vil bare se dataene han har rett til å se) og funksjonelle alternativer (dvs. i henhold til med de som er konfigurert i applikasjonsløsningsfunksjonaliteten).

    Det finnes også spesielle søkespråkutvidelser for tilgangskontrollsystemer. Utvidelsen utføres ved hjelp av spesielle syntaktiske instruksjoner omsluttet av krøllete klammeparenteser og plassert direkte i forespørselsteksten. Ved hjelp av utvidelser bestemmer utvikleren hvilke operasjoner sluttbrukeren skal kunne utføre når han tilpasser rapporten.

    For eksempel:

    • VELGE. Denne setningen beskriver feltene som brukeren vil kunne velge for utdata. Etter dette nøkkelordet er aliaser for felt fra hovedsøkevalglisten som vil være tilgjengelige for konfigurasjon, oppført, atskilt med komma. Eksempel: (VELG vare, lager)
    • HVOR. Feltene brukeren kan bruke utvalg på er beskrevet. Dette forslaget bruker tabellfelt. Bruk av valglistefeltaliaser er ikke tillatt. Hver del av forbundet kan inneholde sitt eget WHERE-element. Eksempler: (WHERE Item.*, Warehouse), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
    • og så videre.
    Eksempel på bruk av utvidelser:

    Datakomposisjonsuttrykksspråk

    Data Composition Expression Language er utformet for å skrive uttrykk som brukes, spesielt for å beskrive tilpassede feltuttrykk. SKD lar deg definere egendefinerte felt i en rapport ved å bruke enten dine egne uttrykk eller sett med alternativer med betingelser for valg (analogt med CASE i SQL). Egendefinerte felt ligner på beregnede felt. De kan settes både i konfiguratoren og i 1C:Enterprise-modus, men funksjonene til vanlige moduler kan ikke brukes i tilpassede feltuttrykk. Derfor er tilpassede felt ment for brukeren i stedet for utvikleren.

    Eksempel:

    Prosessen med å lage en rapport om adgangskontrollsystemet

    Når vi lager en rapport, må vi lage et oppsett som definerer hvordan dataene skal vises i rapporten. Du kan lage et oppsett basert på et dataoppsettdiagram. Et dataoppsettdiagram beskriver essensen av dataene som leveres til rapporten (hvor dataene skal hentes fra og hvordan du kan kontrollere oppsettet). Datasammensetningsskjemaet er grunnlaget som alle typer rapporter kan genereres på. Datasammensetningsskjemaet kan inneholde:
    • be om tekst med instruksjoner for datasammensetningssystemet;
    • beskrivelse av flere datasett;
    • detaljert beskrivelse av tilgjengelige felt;
    • beskrive forhold mellom flere datasett;
    • beskrivelse av datainnsamlingsparametere;
    • beskrivelse av feltoppsett og grupperinger;
    • og så videre.

    Du kan for eksempel legge til en spørring i datasammensetningsskjemaet som et datasett og kalle spørringskonstruktøren, som lar deg grafisk lage en spørring med vilkårlig kompleksitet:

    Resultatet av å starte spørringsdesigneren vil være spørringsteksten (på spørringsspråket 1C:Enterprise). Denne teksten kan justeres manuelt om nødvendig:

    Det kan være flere datasett i et dataoppsettskjema, datasett kan kobles i oppsettet på hvilken som helst måte, beregnede felt kan legges til, rapportparametere kan spesifiseres osv. Det er verdt å nevne et interessant trekk ved spørringsmekanismen i 1C:Enterprise. Spørringer blir til slutt oversatt til en SQL-dialekt som er spesifikk for DBMS som applikasjonen opererer direkte med. Generelt prøver vi å bruke mulighetene til DBMS-tjenere maksimalt (vi er begrenset av det faktum at vi bare bruker de egenskapene som samtidig er tilgjengelige i alle DBMS-er som støttes av 1C:Enterprise-plattformen - MS SQL, Oracle, IBM DB2 , PostgreSQL). På spørringsnivå i beregnede felt kan vi altså bare bruke de funksjonene som er oversatt til SQL.

    Men på nivået av datasammensetningsskjemaet kan vi allerede legge til tilpassede felt og bruke funksjoner i dem i det innebygde 1C-utviklingsspråket (inkludert de som er skrevet av oss), noe som i stor grad utvider mulighetene til rapporter. Teknisk ser det slik ut - alt som kan oversettes til SQL blir oversatt til SQL, spørringen utføres på DBMS-nivå, spørringsresultatene plasseres i minnet til 1C-applikasjonsserveren og SKD beregner verdiene for hver post av beregnede felt hvis formler er skrevet på 1C-språket.


    Legge til egendefinerte felt

    Du kan legge til et vilkårlig antall tabeller og diagrammer i rapporten:


    Rapportdesigner


    Kjøretidsrapport

    Ved å bruke SKD kan brukeren legge til komplekse valg i rapporten (som vil bli lagt til forespørselen på de riktige stedene), betinget design (som lar de viste feltene formateres annerledes - med font, farge osv., avhengig av verdiene deres ) og mye mer. .

    Prosessen med å konstruere og generere en rapport kan kort beskrives som følger:

    • Utvikleren i designtid ved hjelp av en designer (eller i runtime ved hjelp av kode) bestemmer datalayoutskjemaet:
      • Tekst til forespørselen/forespørslene
      • Beskrivelse av beregnede felt
      • Forhold mellom forespørsler (hvis det er flere av dem)
      • Rapportalternativer
      • Standard instillinger
      • Etc.
    • Innstillingene ovenfor lagres i oppsettet
    • Bruker åpner rapporten
      • Gjør muligens ytterligere innstillinger (for eksempel endrer parameterverdier)
      • Klikker på "Generer"-knappen
    • Brukerinnstillinger brukes på datasammensetningsskjemaet definert av utvikleren.
    • Det dannes et mellomliggende datasammensetningsoppsett, som inneholder instruksjoner om hvor du skal motta data fra. Spesielt er spørsmålene spesifisert i oppsettet justert. Dermed fjernes felt som ikke brukes i rapporten fra forespørselen (dette gjøres for å minimere mengden data som mottas). Alle felt som deltar i beregnede feltformler legges til spørringen.
    • Datasammensetningsprosessoren spiller inn. Layoutprosessoren utfører spørringer, kobler sammen datasett, beregner verdier for beregnede felt og ressurser og utfører gruppering. Med et ord, den gjør alle beregningene som ikke ble utført på DBMS-nivå.
    • Datautdataprosessoren starter en forespørsel om utførelse og viser de mottatte dataene i et regnearkdokument, diagram, etc.


    Prosessen med å generere en rapport ved hjelp av ACS-mekanismen

    Vi prøver å minimere mengden rapportdata som overføres fra serveren til klientapplikasjonen. Når vi viser data i et regnearkdokument, når vi åpner et regnearkdokument, overfører vi fra serveren kun de linjene som brukeren ser i begynnelsen av dokumentet. Når brukeren beveger seg langs linjene i dokumentet, lastes de manglende dataene ned fra serveren til klienten.

    Egendefinerte innstillinger

    Alle ACS-verktøy er tilgjengelige for både utvikleren og sluttbrukeren. Men praksis har vist at sluttbrukeren ofte blir skremt av overfloden av verktøyfunksjoner. Dessuten, i de fleste tilfeller trenger ikke sluttbrukeren all kraften til innstillinger - det er nok for ham å ha rask tilgang til å sette opp en eller to rapportparametere (for eksempel periode og motpart). Med utgangspunkt i en bestemt versjon av plattformen har rapportutvikleren mulighet til å markere hvilke rapportinnstillinger som er tilgjengelige for brukeren. Dette gjøres ved å bruke avmerkingsboksen "Inkluder i brukerinnstillinger". I tillegg har rapportinnstillingene nå et "Visningsmodus"-flagg, som har en av tre verdier:
    • Rask tilgang. Innstillingen vil vises direkte øverst i rapportvinduet.
    • Vanlig. Innstillingen vil være tilgjengelig via "Innstillinger"-knappen.
    • Ikke tilgjengelig. Innstillingen vil ikke være tilgjengelig for sluttbrukeren.


    Stille inn visningsmodus i designtid


    Vis innstillingen i hurtigtilgangsmodus under kjøring (under Generer-knappen)

    Utviklingsplaner

    Et av våre prioriterte områder i utviklingen av tilgangskontrollsystemer er å forenkle brukerinnstillingene. Vår erfaring viser at for noen sluttbrukere er arbeid med brukerinnstillinger fortsatt en stor oppgave. Vi tar hensyn til dette og jobber i denne retningen. Følgelig vil det også bli lettere for utviklere å jobbe med tilgangskontrollsystemer, pga Vi ønsker som tidligere å tilby ett enkelt verktøy for å sette opp rapporter for både utvikleren og sluttbrukeren.