Funktioner af datasammensætningssystemets udtrykssprog. Datalayoutdiagram (1C SKD) Beregn SKD-array med gruppering

Data Composition System Expression Language

Datasammensætningssystemets udtrykssprog er designet til at skrive udtryk, der bruges i forskellige dele af systemet.

Udtryk bruges i følgende undersystemer:

  • datalayoutdiagram - til at beskrive beregnede felter, samlede felter, forbindelsesudtryk osv.;
  • datalayoutindstillinger - for at beskrive brugerdefinerede feltudtryk;
  • datalayout-layout - til beskrivelse af udtryk til sammenkobling af datasæt, beskrivelse af layout-parametre mv.

Bogstaver

Udtrykket kan indeholde bogstaver. Følgende typer bogstaver er mulige:

  • linje;
  • Nummer;
  • Dato;
  • Boolean.

Linje

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

"Streng bogstavelig"

Hvis du skal bruge tegnet "" inde i en streng, skal du bruge to sådanne tegn.

For eksempel:

"Bogstaveligt ""i anførselstegn"""

Nummer

Tallet skrives uden mellemrum, i decimalformat. Brøkdelen adskilles ved hjælp af "." For eksempel:

10.5 200

dato

En dato literal skrives ved hjælp af nøglen literal DATETIME. Efter dette søgeord er år, måned, dag, timer, minutter, sekunder angivet i parentes, adskilt af kommaer. Tidsspecifikation er ikke påkrævet.

For eksempel:

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

Boolean

Booleske værdier kan skrives ved at bruge bogstaverne True (True), False (False).

Betyder

For at specificere bogstaver af andre typer (systemoptællinger, foruddefinerede data) bruges nøgleordet Værdi efterfulgt af navnet på bogstavet i parentes.

Værdi (Kontotype. Aktiv)

Operationer på tal

Unær -

Denne operation er beregnet til at ændre fortegn for et tal til det modsatte fortegn. For eksempel:

Salg.Mængde

Unær +

Denne handling udfører ingen handlinger på nummeret. For eksempel:

Salg.Mængde

Binær -

Denne operation er beregnet til at beregne forskellen mellem to tal. For eksempel:

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

Binær +

Denne operation er designet til at beregne summen af ​​to tal. For eksempel:

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

Arbejde

Denne operation er designet til at beregne produktet af to tal. For eksempel:

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

Division

Denne operation er designet til at opnå resultatet af at dividere en operand med en anden. For eksempel:

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

Resten af ​​delingen

Denne operation er designet til at opnå resten, når en operand er divideret med en anden. For eksempel:

Nomenklatur Pris % 1,2 2 % 3,14

Strengeoperationer

Sammenkædning (binær +)

Denne operation er designet til at sammenkæde to strenge. For eksempel:

Nomenclature.Article + “: ”+ Nomenclature.Name

Synes godt om

Denne operation kontrollerer, om strengen matcher det beståede mønster.

Værdien af ​​LIKE-operatoren er TRUE, hvis værdien<Выражения>opfylder mønsteret, og ellers FALSK.

Følgende tegn i<Строке_шаблона>har en betydning, der er forskellig fra blot et andet tegn i linjen:

  • % - procent: en sekvens, der indeholder nul eller flere vilkårlige tegn;
  • _ - understregning: et vilkårligt tegn;
  • […] - et eller flere tegn i kantede parenteser: et tegn, ethvert af dem, der er anført inden for firkantede parenteser. Opregningen kan indeholde intervaller, for eksempel a-z, hvilket betyder et vilkårligt tegn inkluderet i intervallet, inklusive enderne af intervallet;
  • [^...] - i firkantede parenteser et negationsikon efterfulgt af et eller flere tegn: ethvert tegn undtagen dem, der er angivet efter negationsikonet;

Ethvert andet symbol betyder sig selv og bærer ingen ekstra belastning. Hvis et af de anførte tegn skal skrives som sig selv, skal det indledes med<Спецсимвол>, angivet efter søgeordet SPECIAL CHARACTER (ESCAPE).

For eksempel skabelon

"%ABV[abvg]\_abv%" SÆRLIGE KARAKTER "\"

betyder en understreng bestående af en sekvens af tegn: bogstavet A; bogstaverne B; bogstaverne B; et ciffer; et af bogstaverne a, b, c eller d; understregning; bogstaverne a; bogstaverne b; bogstaver v. Desuden kan denne sekvens lokaliseres startende fra en vilkårlig position i linjen.

Sammenligningsoperationer

Lige med

Denne operation er beregnet til at sammenligne to operander for lighed. For eksempel:

Salg.Modpart = Salg.NomenklaturHovedleverandør

Ikke lige

Denne operation er beregnet til at sammenligne to operander for ulighed. For eksempel:

Salg.Modpart<>Salg.NomenklaturHovedleverandør

Mindre

Denne operation er designet til at kontrollere, at den første operand er mindre end den anden. For eksempel:

Salgsaktuelt.beløb< ПродажиПрошлые.Сумма

Mere

Denne operation er designet til at kontrollere, at den første operand er større end den anden. For eksempel:

SalgAktuel.Sum > SalgForl.Sum

Mindre eller lige

Denne operation er designet til at kontrollere, at den første operand er mindre end eller lig med den anden. For eksempel:

Salgsaktuelt.beløb<= ПродажиПрошлые.Сумма

Mere eller lige

Denne operation er designet til at kontrollere, at den første operand er større end eller lig med den anden. For eksempel:

SalgCurrent.Amount >= SalesPast.Amount

Operation B

Denne handling kontrollerer tilstedeværelsen af ​​en værdi i den beståede liste over værdier. Resultatet af handlingen vil være True, hvis værdien er fundet, eller False ellers. For eksempel:

Vare B (&Produkt1, &Produkt2)

Funktion til at kontrollere tilstedeværelsen af ​​en værdi i et datasæt

Operationen kontrollerer tilstedeværelsen af ​​en værdi i det angivne datasæt. Valideringsdatasættet skal indeholde ét felt. For eksempel:

Salg Modpart Til Modparter

Funktion til at kontrollere en værdi for NULL

Denne operation returnerer True, hvis værdien er NULL. For eksempel:

Salg.Modpart ER NULL

Funktion til at kontrollere en værdi for NULL-ulighed

Denne operation returnerer True, hvis værdien ikke er NULL. For eksempel:

Salg Modpart ER IKKE NULL

Logiske operationer

Logiske operationer accepterer udtryk af typen Boolean som operander.

Operation IKKE

NOT-operationen returnerer True, hvis dens operand er False og False, hvis dens operand er True. For eksempel:

IKKE Document.Consignee = Document.Consignee

Operation I

AND-operationen returnerer Sand, hvis begge operander er Sande, og Falsk, hvis en af ​​operanderne er Falsk. For eksempel:

Document.Consignee = Document.Consignor OG Document.Consignee = &Modpart

ELLER operation

OR-operationen returnerer Sand, hvis en af ​​dens operander er Sand, og Falsk, hvis begge operander er falsk. For eksempel:

Document.Consignee = Document.Consignor ELLER Document.Consignee = &Modpart

Samlede funktioner

Aggregerede funktioner udfører en handling på et sæt data.

Sum

Sum aggregate-funktionen beregner summen af ​​værdierne af de udtryk, der sendes til den som et argument for alle detaljeposter. For eksempel:

Beløb (Salg.Beløb Omsætning)

Antal

Tællefunktionen beregner antallet af andre værdier end NULL. For eksempel:

Mængde (Salg. Modpart)

Antal forskellige

Denne funktion beregner antallet af forskellige værdier. For eksempel:

Mængde (Diverse Salg. Modpart)

Maksimum

Funktionen får den maksimale værdi. For eksempel:

Maksimum (Resterende. Antal)

Minimum

Funktionen får minimumsværdien. For eksempel:

Minimum (Resterende. Antal)

Gennemsnit

Funktionen får gennemsnittet af ikke-NULL værdier. For eksempel:

Gennemsnit (Resterende. Kvantitet)

Andre operationer

Betjening VÆLG

Funktionen Vælg er beregnet til at vælge en af ​​flere værdier, når visse betingelser er opfyldt. For eksempel:

Vælg Når Beløb > 1000 Så Beløb ellers 0 Slut

Regler for sammenligning af to værdier

Hvis typerne af de værdier, der sammenlignes, er forskellige fra hinanden, bestemmes forholdet mellem værdierne ud fra typernes forrang:

  • NULL (laveste);
  • Boolean;
  • Nummer;
  • Dato;
  • linje;
  • Referencetyper

Relationerne mellem forskellige referencetyper bestemmes ud fra referencenumrene i de tabeller, der svarer til en bestemt type.

Hvis datatyperne er de samme, sammenlignes værdierne i henhold til følgende regler:

  • for den boolske type er værdien TRUE større end værdien FALSE;
  • Nummertypen har de sædvanlige sammenligningsregler for tal;
  • for datotypen er tidligere datoer mindre end senere;
  • for strengtypen - sammenligning af strenge i overensstemmelse med databasens etablerede nationale karakteristika;
  • referencetyper sammenlignes baseret på deres værdier (rekordnummer osv.).

Arbejde med NULL-værdi

Enhver operation, hvor en af ​​operanderne er NULL, vil give et NULL-resultat.

Der er undtagelser:

  • AND-operationen returnerer kun NULL, hvis ingen af ​​operanderne er falsk;
  • ELLER-operationen returnerer kun NULL, hvis ingen af ​​dens operander er Sande.

Driftsprioriteter

Operationerne har følgende prioriteter (den første linje har den laveste prioritet):

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

Data Composition System Expression Sprogfunktioner

Beregn

Funktionen Beregn er designet til at beregne et udtryk i sammenhæng med en bestemt gruppering. Funktionen har følgende parametre:

  • Udtryk. Skriv streng. Indeholder et beregnet udtryk;
  • Gruppering. Skriv streng. Indeholder navnet på den gruppering, i hvilken sammenhæng udtrykket skal evalueres. Hvis en tom streng bruges som grupperingsnavn, vil beregningen blive udført i sammenhæng med den aktuelle gruppering. Hvis GrandTotal-strengen bruges som gruppenavn, vil beregningen blive udført i sammenhæng med den samlede total. Ellers vil beregningen blive udført i sammenhæng med den overordnede gruppe med samme navn. For eksempel:
Sum(Salg.SumOmsætning) / Calculate("Sum(Salg.SumOmsætning)", "Total")

I dette eksempel vil resultatet være forholdet mellem beløbet for "Sales.AmountTurnover"-feltet i grupperingsposten og mængden af ​​det samme felt i hele layoutet.

Niveau

Funktionen er designet til at opnå det aktuelle optageniveau.

Niveau()

NumberInOrder

Få det næste sekvensnummer.

NumberByOrder()

NumberInOrderInGrouping

Returnerer det næste ordenstal i den aktuelle gruppering.

NumberByOrderInGroup()

Format

Få en formateret streng med den beståede værdi.

Formatstrengen indstilles i overensstemmelse med 1C:Enterprise-formatstrengen.

Muligheder:

  • Betyder;
  • Formater streng.

Format(Forbrugsfakturaer. Dokumentbeløb, "NPV=2")

Begyndelse af menstruation

Muligheder:

    • Minut;
    • Dag;
    • En uge;
    • Måned;
    • Kvarter;
    • Årti;
    • Halvt år.

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

Resultat:

01.10.2002 0:00:00

Afslutning af periode

Funktionen er designet til at udtrække en bestemt dato fra en given dato.

Muligheder:

  • Dato. Indtast dato. Angivne dato;
  • Periodetype. Skriv streng. Indeholder en af ​​værdierne:
    • Minut;
    • Dag;
    • En uge;
    • Måned;
    • Kvarter;
    • Årti;
    • Halvt år.

EndPeriod(DatoTime(2002, 10, 12, 10, 15, 34), "Uge")

Resultat:

13.10.2002 23:59:59

AddToDate

Funktionen er designet til at tilføje en bestemt værdi til en dato.

Muligheder:

  • Forstørrelsestype. Skriv streng. Indeholder en af ​​værdierne:
    • Minut;
    • Dag;
    • En uge;
    • Måned;
    • Kvarter;
    • Årti;
    • Halvt år.
  • Beløb – hvor meget skal du øge datoen med. Typenummer. Brøkdelen ignoreres.

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

Resultat:

12.11.2002 10:15:34

Dato forskel

Funktionen er designet til at få forskellen mellem to datoer.

Muligheder:

  • Udtryk. Indtast dato. Original dato;
  • Udtryk. Indtast dato. Fratrukket dato;
  • Forskelstype. Skriv streng. Indeholder en af ​​værdierne:
    • Anden;
    • Minut;
    • Dag;
    • Måned;
    • Kvarter;

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

Resultat:

Understreng

Denne funktion er designet til at udtrække en understreng fra en streng.

Muligheder:

  • Linje. Skriv streng. Den streng, som understrengen er udtrukket fra;
  • Position. Typenummer. Placeringen af ​​tegnet, hvorfra understrengen, der skal udtrækkes fra strengen, begynder;
  • Længde. Typenummer. Længden af ​​den tildelte understreng.

SUBSTRING(Konti.Adresse, 1, 4)

Linjelængde

Funktionen er designet til at bestemme længden af ​​en streng.

Parameter:

  • Linje. Skriv streng. En streng, hvis længde er bestemt.

Linje(modparter.adresse)

År

Denne funktion er designet til at udtrække året fra en datotypeværdi.

Parameter:

  • Dato. Indtast dato. Den dato, hvor året er fastsat.

ÅR(udgift.dato)

Kvarter

Denne funktion er designet til at udtrække kvartalstallet fra en datotypeværdi. Kvartalstallet varierer normalt fra 1 til 4.

Parameter

  • Dato. Indtast dato. Den dato, hvor kvartalet er fastsat
KVARTAL(Udgift.Dato)

Måned

Denne funktion er designet til at udtrække månedsnummeret fra en datotypeværdi. Månedstallet varierer normalt fra 1 til 12.

  • Dato. Indtast dato. Den dato, hvor måneden er fastsat.
MÅNED(udgift.dato)

Årets dag

Denne funktion er designet til at hente dagen i året fra en datotypeværdi. Årets dag varierer normalt fra 1 til 365 (366).

  • Dato. Indtast dato. Den dato, hvor årets dag bestemmes.
DAGÅR(udgiftskonto.dato)

Dag

Denne funktion er designet til at hente dagen i måneden fra en datotypeværdi. Dagen i måneden varierer normalt fra 1 til 31.

  • Dato. Indtast dato. Den dato, hvor dagen i måneden bestemmes.
DAG(udgift.dato)

En uge

Denne funktion er designet til at få årets ugenummer fra en datotypeværdi. Årets uger er talte fra 1.

  • Dato. Indtast dato. Den dato, hvor ugenumre er fastsat.
UGE(Udgift.Dato)

Dag i ugen

Denne funktion er designet til at hente ugedagen fra en datotypeværdi. Den normale ugedag varierer fra 1 (mandag) til 7 (søndag).

  • Dato. Indtast dato. Den dato, hvor ugedagen bestemmes.
UGEDAG (udgiftsfakturedato)

Time

Denne funktion er designet til at hente klokkeslættet på dagen fra en datotypeværdi. Klokken på dagen varierer fra 0 til 23.

  • Dato. Indtast dato. Den dato, hvor klokken på dagen bestemmes.
HOUR(Udgift.Dato)

Minut

Denne funktion er designet til at hente minuttet i timen fra en datotypeværdi. Minuttet i timen varierer fra 0 til 59.

  • Dato. Indtast dato. Den dato, hvor minut af timen bestemmes.
MINUTE(Udgift.Dato)

Anden

Denne funktion er designet til at få det andet af et minut fra en datotypeværdi. Det andet af et minut varierer fra 0 til 59.

  • Dato. Indtast dato. Den dato, hvorfra sekunderne i minuttet bestemmes.
SECOND(Udgift.Dato)

Express

Denne funktion er designet til at udtrække en type fra et udtryk, der kan indeholde en sammensat type. Hvis udtrykket indeholder en anden type end den påkrævede type, returneres NULL.

Muligheder:

  • Udtryk at konvertere;
  • Typeangivelse. Skriv streng. Indeholder en typestreng. For eksempel "Nummer", "String" osv. Ud over primitive typer kan denne linje indeholde navnet på tabellen. I dette tilfælde vil der blive gjort et forsøg på at udtrykke en henvisning til den angivne tabel.

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

IsNull

Denne funktion returnerer værdien af ​​den anden parameter, hvis værdien af ​​den første parameter er NULL.

Ellers vil værdien af ​​den første parameter blive returneret.

JaNULL(Beløb(Salg.Beløb Omsætning), 0)

Funktioner af fælles moduler

Et datasammensætningsmotorudtryk kan indeholde kald til funktioner i globale fælles konfigurationsmoduler. Der kræves ingen yderligere syntaks for at kalde sådanne funktioner.

I dette eksempel vil funktionen "AbbreviatedName" blive kaldt fra det generelle konfigurationsmodul.

Bemærk, at brugen af ​​fælles modulfunktioner kun er tilladt, hvis den relevante datasammensætningsprocessorparameter er angivet.

Derudover kan funktioner i almindelige moduler ikke bruges i brugerdefinerede feltudtryk.

Hej, kære læser! Vi har endnu en lektion om det grundlæggende i layoutsystemet. I blev bekendt med funktionerne i SKD-udtrykssproget, så funktionerne i layoutsystemet og forstod også de grundlæggende indstillinger af layoutfelterne. Nu vil vi se på nyt materiale. Gå!

Yderligere indstillinger for ACS-felter.

Kolonne "Værditype" Giver dig mulighed for at angive datatypen for layoutfeltet. Hvorfor angive typen, for eksempel for feltet "Nomenklatur", hvis du allerede ved, hvilken type det er? Dette er nødvendigt, hvis layoutfeltet er af en sammensat type. Du kan vælge en specifik type, så når du vælger ved dette felt, vil værdier af denne type blive valgt.

Kolonne "Tilgængelige værdier" giver dig mulighed for at angive de tilgængelige værdier for valg og begrænse brugerens valg til bestemte grænser.

Kolonne "Dekor" giver dig mulighed for at angive designet af et layoutfelt uden at bruge layouts. Du kan angive skrifttypefarve, rammefarve, tekstretning osv.

Kolonne "Redigeringsmuligheder" Giver dig mulighed for at angive, hvordan layoutfeltet skal redigeres. For eksempel kan du angive et hurtigt udvalg af elementer fra en liste i et udvalg. Som standard arver et layoutfelt alle redigeringsmuligheder fra metadataobjektet.

Beregnede felter

På fanen "Beregnede felter" i datasammensætningen kan du oprette dine egne beregnede felter.

Hvorfor har du brug for beregnede felter, når du kan oprette dem på forespørgselsniveau? Ikke alle felter kan beskrives ved hjælp af en forespørgsel. Hvis du skal oprette et komplekst felt fra forskellige datasæt, for eksempel en forespørgsel og et objekt, så kan du ikke undvære beregnede felter. Du kan ikke tilføje et datasammensætningsfelt, hvis datakilden er en forespørgsel, og autofyld er aktiveret, men ved at bruge beregnede felter kan du tilføje så mange felter, som du vil.

I kolonnen "Udtryk" i det beregnede felt skal du skrive et vilkårligt udtryk, der bruger datasammensætningsfelterne og får adgang til deres sti (kolonnen "Sti" på fanen "Datasæt"). Enten kan du bruge matematiske transformationsfunktioner eller få adgang til funktionerne i almindelige moduler. Lad os for eksempel skrive navnet på det beregnede felt "Afvigelse" i kolonnen "Datasti" og i feltet "Udtryk" følgende.

I lyset af den kommende udgivelse af 8.2.14 vil jeg forsøge at beskrive nogle nye funktioner i datasammensætningssystemet.

Åbn datalayoutdiagrammet, helst i en ekstern rapport, for at gøre redigeringen nemmere.

Vi tilføjer et datasæt af forespørgselstypen og skriver, enten manuelt eller ved hjælp af forespørgselsdesigneren, en simpel forespørgsel:

1. Opsæt en anmodning i adgangskontrolsystemet.

2. Opsæt beregnede felter i adgangskontrolsystemet

3. Konfigurer datalayoutet på fanen Indstillinger

4. Start 1C Enterprise 8.2.14. Åbn rapporten. Vi danner, vi modtager.

Beskrivelse af selve de nye funktioner:

1. Den aktuelle dato()

Returnerer systemdatoen. Når du komponerer et layoutlayout, i alle udtryk, der er til stede i layoutet, erstattes CurrentDate()-funktionen med værdien af ​​den aktuelle dato.

2. COMPUTEEXPRESSION()

Syntaks:

CalculateExpression(,)

Beskrivelse:

Funktionen er designet til at evaluere et udtryk i sammenhæng med en eller anden gruppering.

Funktionen tager højde for valg af grupperinger, men tager ikke højde for hierarkiske valg.

Funktionen kan ikke anvendes på en gruppering i gruppevalget for denne gruppering. For eksempel, når du vælger nomenklaturgrupperingen, kan du ikke bruge udtrykket CalculateExpression("Sum(SumOmsætning)", "TotalTotal") > 1000. Men sådan et udtryk kan bruges i hierarkisk udvælgelse.

Hvis slutposten går forud for startposten, anses det for, at der ikke er nogen poster til beregning af detaljerede data og beregning af aggregerede funktioner.

Ved beregning af intervaludtryk for en totaltotal (Grupperingsparameteren er sat til GrandTotal), antages det, at der ikke er nogen poster til beregning af detaljerede data og beregning af aggregerede funktioner.

Layoutlinker ved generering af et funktionsudtryk Beregn udtryk, hvis bestillingsudtrykket indeholder felter, der ikke kan bruges i gruppering, erstatter funktionen Beregn udtrykNUL.

Muligheder

Type: Linje. Udtrykket, der skal vurderes.

Type: Linje. Indeholder navnet på den gruppering, i hvilken sammenhæng udtrykket skal evalueres. Hvis en tom streng bruges som grupperingsnavn, vil beregningen blive udført i sammenhæng med den aktuelle gruppering. Hvis GeneralTotal-strengen bruges som gruppenavn, vil beregningen blive udført i sammenhæng med den samlede total. Ellers vil beregningen blive udført i sammenhæng med den overordnede gruppe med samme navn.

For eksempel:

Sum(Salg.SumOmsætning)/Calculate("Sum(Salg.SumOmsætning)", "Total")

I dette eksempel vil resultatet være forholdet mellem summen for felt Salg.BeløbOmsætning gruppering af poster til summen af ​​det samme felt i hele layoutet;

Type: Linje. Parameteren kan have følgende værdier:

· Totalt— udtrykket vil blive beregnet for alle grupperingsposter.

· Hierarki— udtrykket vil blive evalueret for den overordnede hierarkiske post, hvis der er en, og for hele grupperingen, hvis der ikke er nogen overordnet hierarkisk post.

· Gruppering— udtrykket vil blive evalueret for den aktuelle gruppegrupperingspost.

· GrupperingNonResource— ved beregning af en funktion for en gruppepost efter ressourcer, vil udtrykket blive beregnet for den første gruppepost i den oprindelige gruppering.

Ved beregning af en funktion CalculateExpression() med mening GrupperingNonResource for gruppeposter, der ikke er grupperet efter ressourcer, beregnes funktionen på samme måde, som den ville blive beregnet, hvis parameterværdien var lig med værdien Gruppering.

Layoutbyggeren for datasammensætning placerer, når den genererer et datasammensætningslayout, når der udlæses et ressourcefelt, hvormed gruppering udføres til layoutet, et udtryk i layoutet, der beregnes ved hjælp af funktionen CalculateExpression() , der angiver parameteren GrupperingNonResource. For andre ressourcer placeres de sædvanlige ressourceudtryk i ressourcegrupperingen.

Type: Linje. Angiver fra hvilken post fragmentet skal begynde, i hvilke aggregerede udtryksfunktioner skal beregnes, og fra hvilken post der skal opnås feltværdier uden for aggregerede funktioner. Værdien kan være en af ​​følgende:

· Først

· Sidste (sidste)

· Tidligere

· Næste (Næste)

· Nuværende

· LimitingValue(BoundaryValue) LimitingValue

Type: Linje. Angiver til hvilken post fragmentet skal fortsættes, i hvilke aggregerede ekspressionsfunktioner skal beregnes. Værdien kan være en af ​​følgende:

· Først. Det er nødvendigt at indhente den første grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en offset fra begyndelsen af ​​grupperingen. Den resulterende værdi skal være et heltal større end nul. For eksempel First(3) - modtagelse af den tredje post fra begyndelsen af ​​grupperingen.

Hvis den første post er uden for grupperingen, anses det for, at der ikke er nogen poster. For eksempel, hvis der er 3 poster, og du ønsker at få First(4), så anses det for, at der ikke er nogen poster.

· Sidste (sidste). Du skal have den sidste grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en offset fra slutningen af ​​grupperingen. Den resulterende værdi skal være et heltal større end nul. For eksempel Last(3) - modtagelse af den tredje post fra slutningen af ​​gruppen.

Hvis den sidste post er uden for grupperingen, anses det for, at der ikke er nogen poster. For eksempel, hvis der er 3 poster, og du ønsker at få Last(4), så anses det for, at der ikke er nogen poster.

· Tidligere. Du skal have den tidligere grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en forskydning tilbage fra den aktuelle grupperingspost. For eksempel Previous(2) - henter den forrige fra den forrige post.

Hvis den forrige post går ud over grupperingen (f.eks. for den anden grupperingspost skal du hente Previous(3)), så opnås den første grupperingspost.

Ved hentning af den tidligere post for en grupperingstotal, anses det for, at den første post er opnået.

· Næste (Næste). Du skal have den næste grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en forskydning fremad fra den aktuelle grupperingsindgang. For eksempel, Next(2) - at få næste fra den næste post.

Hvis den næste post går ud over grupperingen, anses det for, at der ikke er nogen poster. For eksempel, hvis der er 3 poster, og den tredje post modtager Next() , så anses det for, at der ikke er nogen poster.

Når den næste post modtages for grupperingstotalen, anses det for, at der ikke er nogen post.

· Nuværende. Du skal have den aktuelle rekord.

Når der hentes til en grupperingstotal, opnås den første post.

· LimitingValue(BoundaryValue). Behovet for at opnå en post med den angivne værdi. Efter ordet LimitingValue i parentes skal du angive udtrykket med den værdi, som du vil starte fragmentet af, det første bestillingsfelt.

Den første post, hvis bestillingsfeltværdi er større end eller lig med den angivne værdi, returneres som posten. For eksempel, hvis feltet Periode bruges som bestillingsfelt, og det har værdierne 01/01/2010, 02/01/2010, 03/01/2010, og du ønsker at få LimitingValue(DatoTime(2010, 1, 15)), så modtages en registrering med datoen 02/01/2010.

Type: Linje. Viser udtryk, adskilt af kommaer, der beskriver rækkefølgereglerne. Hvis det ikke er angivet, udføres rækkefølgen på samme måde som for den gruppering, som udtrykket evalueres for. Efter hvert udtryk kan du angive et nøgleord Alder(til bestilling i stigende rækkefølge), Aftagende(til bestilling i faldende rækkefølge) og Auto-bestilling(for at sortere referencefelter efter de felter, som du vil sortere det refererede objekt efter). Ord Auto-bestilling kan bruges som med ordet Alder, altså med ordet Aftagende.

Type: Linje. Samme som parameter Sortering. Bruges til at organisere hierarkiske poster. Hvis det ikke er angivet, genererer layoutbyggeren bestillingen i henhold til rækkefølgen angivet i parameteren Sortering.

Type: Linje. Angiver reglen for bestemmelse af den forrige eller næste post, hvis der er flere poster med samme rækkefølgeværdi:

· Separat angiver, at en sekvens af ordnede poster bruges til at bestemme de forrige og næste poster. Standard værdi.

· Sammen angiver, at de forrige og næste poster bestemmes ud fra værdierne af ordensudtrykkene.

For eksempel, hvis den resulterende sekvens er sorteret efter dato:

dato Fulde navn Betyder
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

Separat, At:

§ den forrige post til post 3 vil være post 2.

Aktuel, Aktuel(henholdsvis parametre Start Og Ende), så for post 2 vil dette fragment bestå af én post 2. Udtrykket vil være lig med 20.

Hvis parameterværdien er Sammen, At:

§ den forrige post til post 3 vil være post 1.

§ hvis beregningsfragmentet er defineret som Aktuel, Aktuel(henholdsvis parametre Start Og Ende), så for post 2 vil dette fragment bestå af post 2 og 3. Udtryk CalculateExpression("Sum(Værdi)", Aktuel, Aktuel) vil være lig med 50.

Når du angiver en parameterværdi lig med Sammen, i parametre Start Og Ende du kan ikke angive en offset for positioner Første, sidste, forrige, næste.

CalculateExpression("Sum(SumOmsætning)", "Først", "Nuværende")

Hvis du vil have grupperingsværdien i den forrige linje, kan du bruge følgende udtryk:

CalculateExpression("Rate", "Forrige")

Liste ny funktioner:

CalculateExpressionWithGroupArray(,) -

Funktionen returnerer et array, hvor hvert element indeholder resultatet af evaluering af et udtryk til gruppering efter det angivne felt.

CalculateExpressionWithGroupValueTable(,) -

Funktionen returnerer en tabel med værdier, hvor hver række indeholder resultatet af evaluering af udtryk til gruppering efter det angivne felt

Værdifyldt() - Returnerer True, hvis værdien er en anden end standardværdien af ​​denne type, bortset fra NULL, bortset fra en tom reference, bortset fra Udefineret. Booleske værdier kontrolleres for NULL-værdier. Strenge kontrolleres for fravær af tegn uden mellemrum

Format(, ) - Modtag en formateret streng med den beståede værdi. Formatstrengen indstilles i overensstemmelse med formatstrengen i 1C:Enterprise-systemet.

Understreng(, , ) - Denne funktion er designet til at udtrække en understreng fra en streng.

Linjelængde() - Funktionen er designet til at bestemme længden af ​​en streng. Parameter er et strengudtryk

Linje() - Hvis en matrix sendes som en parameter, returnerer funktionen en streng, der indeholder strengrepræsentationer af alle matrixelementer, adskilt af "; "-tegn. Hvis en værditabel sendes som en parameter, returnerer funktionen en streng, der indeholder strengrepræsentationer af alle rækker i værditabellen, med cellerepræsentationerne for hver række adskilt af ";"-tegn, og rækkerne af en ny linje Karakter. Hvis et elements strengrepræsentation er tom, vises en streng i stedet for dens repræsentation.

1. Beregn (Eval)- er beregnet til at evaluere et udtryk i sammenhæng med en eller anden gruppering. Funktionen bruges til kompatibilitet med tidligere versioner af platformen. Det anbefales at bruge funktionen CalculateExpression i stedet.

Syntaks:
Beregn (udtryk, gruppering, beregningstype)

Muligheder :

  • Udtryk(Linje). Indeholder et beregnet udtryk;
  • Gruppering(Linje). Indeholder navnet på den gruppering, i hvilken sammenhæng udtrykket skal evalueres. Hvis en tom streng bruges som grupperingsnavn, vil beregningen blive udført i sammenhæng med den aktuelle gruppering. Hvis GrandTotal-strengen bruges som gruppenavn, vil beregningen blive udført i sammenhæng med den samlede total. Ellers vil beregningen blive udført i sammenhæng med den overordnede gruppe med samme navn.
    For eksempel:
    Sum(Salg.SumOmsætning) / Calculate("Sum(Salg.SumOmsætning)", "Total").
    I dette eksempel vil resultatet være forholdet mellem beløbet for "Sales.AmountTurnover"-feltet i grupperingsposten og mængden af ​​det samme felt i hele layoutet.
  • Beregningstype(Linje). Hvis denne parameter er sat til "TotalTotal", vil udtrykket blive beregnet for alle grupperingsposter. Hvis værdien af ​​parameteren er "Grupper", vil værdierne blive beregnet for den aktuelle grupperingsgruppepost.
2. Evaluer udtryk (EvalExpression) - er beregnet til at evaluere et udtryk i sammenhæng med en eller anden gruppering. Funktionen tager højde for valg af grupperinger, men tager ikke højde for hierarkiske valg. Funktionen kan ikke anvendes på en gruppering i gruppevalget for denne gruppering.

Syntaks:
CalculateExpression(Expression, Grouping, CalculationType, Start, End, Sort, HierarchicalSort, ProcessingIdentical OrderValues)

Muligheder :

  • Udtryk(Linje). Indeholder et beregnet udtryk;
  • Gruppering(Linje). Indeholder navnet på den gruppering, i hvilken sammenhæng udtrykket skal evalueres. Hvis en tom streng bruges som grupperingsnavn, vil beregningen blive udført i sammenhæng med den aktuelle gruppering. Hvis GrandTotal-strengen bruges som gruppenavn, vil beregningen blive udført i sammenhæng med den samlede total. Ellers vil beregningen blive udført i sammenhæng med den overordnede gruppering med det navn;
  • Beregningstype(Linje). Hvis denne parameter er sat til "TotalTotal", vil udtrykket blive beregnet for alle grupperingsposter. Hvis værdien af ​​parameteren er "Grupper", vil værdierne blive beregnet for den aktuelle grupperingsgruppepost. Hvis parameteren er sat til "Non-Resource Grouping", så vil udtrykket blive evalueret for den første gruppepost i den oprindelige gruppering, når funktionen beregnes for en gruppepost for ressource. Når funktionen CalculateExpression evalueres med værdien "GroupingNonResource" for gruppeposter, der ikke er gruppering efter ressource, evalueres funktionen på samme måde, som den ville blive evalueret med værdien af ​​parameteren "Groupering". Layoutbyggeren til datasammensætningen, når den genererer et datasammensætningslayout ved output af et felt - en ressource, som gruppering udføres med, til layoutet, udsender til layoutet et udtryk beregnet ved hjælp af CalculateExpression-funktionen med den angivne "GroupingNon-Resource"-parameter. For andre ressourcer grupperet efter ressource returneres normale ressourceudtryk. Hvis parameteren er sat til "Hierarki", skal udtrykket evalueres for den overordnede hierarkiske post, hvis der er en, og for hele grupperingen, hvis der ikke er nogen overordnet hierarkisk post. Layoutbyggeren genererer, når den genererer et udtryk for % i Hierarchy Group-feltet, et udtryk, der indeholder relationen mellem ressourceudtrykket og funktionen CalculateExpression for det ressourceudtryk, der beregnes for den aktuelle gruppering med beregningstypen Hierarki.
  • Start. Angiver fra hvilken post fragmentet skal begynde, i hvilke aggregerede udtryksfunktioner skal beregnes, og fra hvilken post der skal opnås feltværdier uden for aggregerede funktioner. En streng, der indeholder en af:
    • "Først" Det er nødvendigt at indhente den første grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en offset fra begyndelsen af ​​grupperingen. Den resulterende værdi skal være et heltal større end nul. For eksempel First(3) – modtagelse af den tredje post fra begyndelsen af ​​grupperingen. Hvis den første post er uden for grupperingen, anses det for, at der ikke er nogen poster. For eksempel, hvis der er 3 poster, og du ønsker at få First(4), så anses det for, at der ikke er nogen poster.
    • "Sidst" Du skal have den sidste grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en offset fra slutningen af ​​grupperingen. Den resulterende værdi skal være et heltal større end nul. For eksempel Last(3) – modtagelse af den tredje post fra slutningen af ​​gruppen. Hvis den sidste post er uden for grupperingen, anses det for, at der ikke er nogen poster. For eksempel, hvis der er 3 poster, og du ønsker at få Last(4), så anses det for, at der ikke er nogen poster.
    • "Tidligere" Du skal have den tidligere grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en forskydning tilbage fra den aktuelle grupperingspost. For eksempel Previous(2) – henter den forrige fra den forrige post. Hvis den forrige post er uden for grupperingen (for eksempel kræver den anden grupperingspost at få Previous(3)), så opnås den første grupperingspost. Ved modtagelse af den forrige post for grupperingstotalen opnås den første post.
    • "Næste" Du skal have den næste grupperingspost. Efter ordet i parentes kan du angive et udtryk, hvis resultat vil blive brugt som en forskydning fremad fra den aktuelle grupperingsindgang. For eksempel, Next(2) – får den næste fra den næste post. Hvis den næste post går ud over grupperingen, anses det for, at der ikke er nogen poster. For eksempel, hvis der er 3 poster, og den tredje post modtager Next, så anses det for, at der ikke er nogen poster. Når den næste post modtages for grupperingstotalen, anses det for, at der ikke er nogen post.
    • "Nuværende". Du skal have den aktuelle rekord. Når der hentes til en grupperingstotal, opnås den første post.
    • "Grænseværdi". Behovet for at opnå en post med den angivne værdi. Efter ordet LimitingValue i parentes skal du angive udtrykket med den værdi, som du vil starte fragmentet af, det første rækkefølgefelt. Den første post, hvis bestillingsfeltværdi er større end eller lig med den angivne værdi, returneres som posten. For eksempel, hvis feltet Periode bruges som bestillingsfeltet, og det har værdierne 01/01/2010, 02/01/2010, 03/01/2010, og du ønsker at få LimitingValue(DateTime(2010) , 1, 15)), så vil en post med datoen 02/01 blive opnået 2010.
  • Ende. Angiver til hvilken post fragmentet skal fortsættes, hvori det aggregerede udtryk skal beregnes. En streng, der indeholder en af:
    • "Først"
    • "Sidst"
    • "Tidligere"
    • "Næste"
    • "Nuværende".
    • "Grænseværdi".
  • Sortering. En streng, der angiver udtrykkene, adskilt af kommaer, i hvilken retning sekvensen skal sorteres. Hvis det ikke er angivet, udføres rækkefølgen på samme måde som for den gruppering, som udtrykket evalueres for. Efter hvert udtryk kan du angive nøgleordet Stigende, for rækkefølge i stigende rækkefølge, Faldende, for rækkefølge i faldende rækkefølge, Auto-Ordering, for at sortere referencefelterne efter de felter, som du vil sortere det objekt, der henvises til. Ordet Autorækkefølge kan bruges med både ordet Stigende og Ordet Faldende.
  • Hierarkisk sortering. Svarende til sortering. Bruges til at organisere hierarkiske poster. Hvis det ikke er angivet, genererer layout-sammensætteren rækkefølgen i henhold til den rækkefølge, der er angivet i Sort-parameteren.
  • Behandling af samme ordreværdier. En streng, der indeholder en af:
    • "Together" betyder, at en sekvens af ordnede poster bruges til at bestemme de forrige og næste poster;
    • "Separat" betyder, at de forrige og næste poster bestemmes baseret på værdierne af ordensudtrykkene;
    For eksempel, hvis den resulterende sekvens er sorteret efter dato:
    1. januar 01, 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 bruger behandling af identiske værdier af rækkefølgen "Separat", vil den forrige for post 3 være post 2, og når du bruger "Together" - post 1. Og fragmentet for den aktuelle post for post 2 for "Separat" vil være post 2, og for "Together" - post 2 og 3. Således vil totalen for den aktuelle post for "Separat" være 20, og for "Together" - 50. Når "Together" er angivet i Start- og Slutparametre, du kan ikke angive en offset for positionerne "Første", "Sidste", "Forrige", "Næste". Standardværdien er "Separat".
Eksempel:
Indhentning af forholdet mellem beløbet for feltet "Sales.AmountTurnover" i en grupperingspost og beløbet for det samme felt i hele layoutet:
Sum(Salg.SumOmsætning) / CalculateExpression("Sum(Salg.SumOmsætning)", "Total").

Dette eksempel beregner værdien af ​​det aktuelle hierarki:
Valg
Når Level() > 0
Derefter EvaluateExpression("Reference", "Hierarki")
Ellers Null
Ende

Bemærkninger:
Funktionen tager højde for valg af grupperinger, men tager ikke højde for hierarkiske valg. Funktionen kan ikke anvendes på en gruppering i gruppevalget for denne gruppering. For eksempel, når du vælger nomenklaturgrupperingen, kan du ikke bruge udtrykket CalculateExpression("Sum(SumOmsætning)", "TotalTotal") > 1000 . Men sådan et udtryk kan bruges i hierarkisk udvælgelse. Hvis slutposten går forud for startposten, anses det for, at der ikke er nogen poster til beregning af detaljerede data og beregning af aggregerede funktioner. Ved beregning af intervaludtryk for en totalsum (Grupperingsparameteren er sat til "Bruttototal"), antages det, at der ikke er nogen poster til beregning af detaljerede data og beregning af aggregerede funktioner. Når du genererer et udtryk for funktionen CalculateExpression, erstatter layout-sammensætteren, hvis bestillingsudtrykket indeholder felter, der ikke kan bruges i gruppering, funktionen CalculateExpression med NULL.

3. Evaluer udtryk med gruppearray (EvalExpression med gruppearray) - funktionen returnerer et array, hvor hvert element indeholder resultatet af beregningen af ​​et udtryk til gruppering efter det angivne felt.

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

Muligheder :

  • Udtryk(String) - det udtryk, der skal evalueres. For eksempel "Amount(AmountOmsætning)";
  • FieldExpressionsGroups
  • Udvælgelse af poster
  • Valg af grupper- valg anvendt på gruppeposter. For eksempel: "Beløb (Beløb Omsætning) > &Parameter1".
Eksempel:
Maximum(CalculateExpressionWithGroupArray("Beløb(Beløbsomsætning)", "Modpart"));


Layoutbyggeren, når den genererer udtryk til visning af et brugerdefineret felt, hvis udtryk kun indeholder funktionen CalculateArrayWithGroup, genererer visningsudtrykket, så de data, der vises af visningerne og dataene, er ordnet.
For eksempel for et brugerdefineret felt med udtrykket:
CalculateExpressionWithGroupArray("Beløb(Beløbsomsætning)", "Modpart")
Layoutbyggeren vil generere følgende udtryk til output:
ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)), Amount(DataSet.AmountTurnover)", "DataSet.Account"), "2")))

4. Beregn udtryk med GroupValueTable (EvalExpressionWithGroupValueTable) - funktionen returnerer en tabel med værdier, hvor hvert element indeholder resultatet af beregningen af ​​et udtryk til gruppering efter det angivne felt.

Syntaks:
CalculateExpressionWithGroupValueTable (udtryk, gruppefeltudtryk, registreringsvalg, gruppevalg)

Muligheder :

  • Udtryk(String) - det udtryk, der skal evalueres. En linje kan indeholde flere udtryk adskilt af kommaer. Efter hvert udtryk kan der være et valgfrit nøgleord AS og navnet på værditabelkolonnen. For eksempel: "Modpart, Beløb (Beløb Omsætning) Som Salgsvolumen."
  • FieldExpressionsGroups- udtryk for gruppering af felter, adskilt af kommaer. For eksempel "Modpart, Part";
  • Udvælgelse af poster- et udtryk anvendt på detaljeposter. For eksempel "Sletningsflag = Falsk." Hvis denne parameter bruger en aggregeret funktion, vil der opstå en fejl ved sammensætning af dataene;
  • Valg af grupper- valg anvendt på gruppeposter. For eksempel: "Beløb (Beløb Omsætning) > &Parameter1".
Eksempel:
CalculateExpressionWithGroupValueTable("Konto AS Modpart, Beløb(Beløb Omsætning) ASSalesVolume", "Konto")

Resultatet af denne funktion vil være en værditabel med kolonnerne Modpart og Salgsvolumen, som vil indeholde modparter med deres salgsvolumener.
Layoutsammensætteren konverterer, når den genererer et layout, funktionsparametre til datasammensætningslayoutfelter. For eksempel vil feltet Konto blive konverteret til DataSet.Account.
For eksempel et brugerdefineret felt med udtrykket:
CalculateExpressionWithGroupValueTable("Konto, Beløb(Beløb Omsætning)", "Konto")
Layoutbyggeren vil generere følgende udtryk til output:
ConnectRows(GetPart(Order(CalculateExpressionWithGroupingValueTable("DataSet.Account, DataSet.AccountRepresentation, Sum(DataSet.AmountTurnover), View(DataSet.AmountTurnover), DataSet.OrderingField", "DataSet".Account"), "3".Konto") ), "2, 4"))

5. Niveau - funktionen er designet til at opnå det aktuelle optageniveau.

Syntaks:
Niveau()

Eksempel:
Niveau()

6. Sekvensnummer - få det næste serienummer.

Syntaks:
NumberByOrder()

Eksempel:
NumberByOrder()

7. SequenceNumberInGrouping - returnerer det næste sekvensnummer i den aktuelle gruppering.

Eksempel:
NumberByOrderInGroup()

8. Format - få en formateret streng af den beståede værdi.

Syntaks:
Format(Værdi, Formatstreng)

Muligheder :

  • Betyder- det udtryk, der skal formateres;
  • FormatString- formatstrengen er indstillet i overensstemmelse med 1C:Enterprise-formatstrengen.
Eksempel:
Format(Forbrugsfakturaer. Dokumentbeløb, "NPV=2")

9. StartOfPeriod

Syntaks:
StartPeriode(Dato, PeriodeType)

Muligheder :

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

10. EndOfPeriod - funktionen er designet til at vælge en bestemt dato fra en given dato.

Syntaks:
EndPeriod(Dato, PeriodeType)

Muligheder :

  • dato(Dato). Angivne dato;
  • Periode Type(Linje). Indeholder en af ​​følgende værdier: Minut; Time; Dag; En uge; Måned; Kvarter; År; Årti; Halvt år.
Eksempel:
EndPeriod(DatoTime(2002, 10, 12, 10, 15, 34), "Uge")
Resultat: 13/10/2002 23:59:59

11. AddKDate (DateAdd) - Funktionen er designet til at tilføje en vis værdi til datoen.

Syntaks:
AddToDate(Udtryk, IncrementType, Magnitude)

Muligheder :

  • Udtryk(Dato). Original dato;
  • TypeForstørrelse(Linje). Indeholder en af ​​følgende værdier: Minut; Time; Dag; En uge; Måned; Kvarter; År; Årti; Halvt år.
  • Størrelse(Nummer). Hvor meget datoen skal øges, ignoreres brøkdelen.
Eksempel:
AddToDate(DatoTime(2002, 10, 12, 10, 15, 34), "Måned", 1)
Resultat: 11/12/2002 10:15:34

12. DatoDifference - Funktionen er designet til at få forskellen mellem to datoer.

Syntaks:
DifferenceDate(Expression1, Expression2, DifferenceType)

Muligheder :

  • Udtryk 1(Dato). Fratrukket dato;
  • Udtryk 2(Dato). Original dato;
  • Typeforskel(Linje). Indeholder en af ​​værdierne: Anden; Minut; Time; Dag; Måned; Kvarter; År.
Eksempel:
DATODIFFERENCE(DATETIME(2002; 10; 12; 10; 15; 34);
DATOTIME(2002, 10, 14, 9, 18, 06), "DAG")
Resultat: 2

13. Understreng - denne funktion er designet til at udtrække en understreng fra en streng.

Syntaks:
Understreng (streng, position, længde)

Muligheder :

  • Linje(Linje). Den streng, som understrengen er udtrukket fra;
  • Position(Nummer). Placeringen af ​​tegnet, hvorfra understrengen, der skal udtrækkes fra strengen, begynder;
  • Længde(Nummer). Længden af ​​den tildelte understreng.
Eksempel:
SUBSTRING(Konti.Adresse, 1, 4)

14. StringLength - funktionen er designet til at bestemme længden af ​​en streng.

Syntaks:
StringLength(String)

Parameter:

  • Linje(Linje). En streng, hvis længde er bestemt.
Eksempel:
Linje(modparter.adresse)

15. Årg- denne funktion er designet til at udtrække året fra en datotypeværdi.

Syntaks:
År (dato)

Parameter:

  • dato(Dato). Den dato, hvor året er fastsat.
Eksempel:
ÅR(udgift.dato)

16. Kvartal - denne funktion er designet til at udtrække kvartalstallet fra en datotypeværdi. Kvartalstallet varierer normalt fra 1 til 4.

Syntaks:
Kvartal (dato)

Parameter:

  • dato(Dato). Den dato, hvor kvartalet er fastsat
Eksempel:
KVARTAL(Udgift.Dato)

17. Måned - denne funktion er designet til at udtrække månedsnummeret fra en datotypeværdi. Månedstallet varierer normalt fra 1 til 12.

Syntaks:
Måned (dato)

Parameter:

  • dato(Dato). Den dato, hvor måneden er fastsat.
Eksempel:
MÅNED(udgift.dato)

18. Årets dag (DayOfYear) - denne funktion er designet til at hente dagen i året fra en datotypeværdi. Årets dag varierer normalt fra 1 til 365 (366).

Syntaks:
Årets dag (dato)

Parameter:

  • dato(Dato). Den dato, hvor årets dag bestemmes.
Eksempel:
DAGÅR(udgiftskonto.dato)

19. Dag- denne funktion er designet til at hente dagen i måneden fra en datotypeværdi. Dagen i måneden varierer normalt fra 1 til 31.

Syntaks:
Dag (dato)

Parameter:

  • dato(Dato). Den dato, hvor dagen i måneden bestemmes.
Eksempel:
DAG(udgift.dato)

20. Uge - denne funktion er designet til at få årets ugenummer fra en datotypeværdi. Årets uger er talte fra 1.

Syntaks:
Uge (dato)

Parameter:

  • dato(Dato). Den dato, hvor ugenumre er fastsat.
Eksempel:
UGE(Udgift.Dato)

21. Ugedag - denne funktion er designet til at hente ugedagen fra en datotypeværdi. Den normale ugedag varierer fra 1 (mandag) til 7 (søndag).

Syntaks:
Ugedag (dato)

Parameter:

  • dato(Dato). Den dato, hvor ugedagen bestemmes.
Eksempel:
UGEDAG (udgiftsfakturedato)

22. Time- denne funktion er designet til at få time på dagen fra en datotypeværdi. Klokken på dagen varierer fra 0 til 23.

Syntaks:
Time (dato)

Parameter:

  • dato(Dato). Den dato, hvor klokken på dagen bestemmes.
Eksempel:
HOUR(Udgift.Dato)

23. Minut - denne funktion er designet til at hente minuttet i timen fra en datotypeværdi. Minuttet i timen varierer fra 0 til 59.

Syntaks:
minut (dato)

Parameter:

  • dato(Dato). Den dato, hvor minut af timen bestemmes.
Eksempel:
MINUTE(Udgift.Dato)

24. Anden - denne funktion er designet til at opnå det sekund af et minut fra en datotypeværdi. Det andet af et minut varierer fra 0 til 59.

Syntaks:
Anden (dato)

Parameter:

  • dato(Dato). Den dato, hvorfra sekunderne i minuttet bestemmes.
Eksempel:
SECOND(Udgift.Dato)

25. Cast - denne funktion er designet til at udtrække en type fra et udtryk, der kan indeholde en sammensat type. Hvis udtrykket indeholder en anden type end den påkrævede type, returneres NULL.

Syntaks:
Express(udtryk, typeindikation)

Muligheder :

  • Udtryk- det udtryk, der skal konverteres;
  • Typeindikation(Linje). Indeholder en typestreng. For eksempel "Nummer", "String" osv. Ud over primitive typer kan denne linje indeholde navnet på tabellen. I dette tilfælde vil der blive gjort et forsøg på at udtrykke en henvisning til den angivne tabel.
Eksempel:
Express(Data.Props1, "Number(10,3)")

26. IsNull (IsNull) - denne funktion returnerer værdien af ​​den anden parameter, hvis værdien af ​​den første parameter er NULL. Ellers vil værdien af ​​den første parameter blive returneret.

Syntaks:
IsNull(Udtryk1, Udtryk2)

Muligheder :

  • Udtryk 1- værdi, der skal kontrolleres;
  • Udtryk 2- Returner værdi, hvis Udtryk1 er NULL.
Eksempel:
JaNULL(Beløb(Salg.Beløb Omsætning), 0)

27.ACos- beregner buecosinus i radianer.

Syntaks:
ACos (udtryk)

Parameter:

  • Udtryk(Nummer). Cosinusværdien (i området -1 ... 1), som vinklen bestemmes af.
28.ASin- beregner arcsinus i radianer.

Syntaks:
ASin (udtryk)

Parameter:

  • Udtryk(Nummer). Sinusværdien (i området -1 ... 1), som vinklen bestemmes af.
29.ATan- beregner arctangensen i radianer.

Syntaks:
ATan (udtryk)

Parameter:

  • Udtryk(Nummer). Tangentværdien, som vinklen bestemmes med.
30.Cos- beregner cosinus.

Syntaks:
Cos (udtryk)

Parameter:

  • Udtryk
31. Exp- at hæve tallet e til en potens.

Syntaks:
Exp(udtryk)

Parameter:

  • Udtryk(Nummer). Gradens betydning.
32. Log- beregner den naturlige logaritme.

Syntaks:
Log (udtryk)

Parameter:

  • Udtryk
33.Log10- beregner logaritmen af ​​X til base 10.

Syntaks:
Log10 (udtryk)

Parameter:

  • Udtryk(Nummer). Det oprindelige tal er større end 0.
34. Pow- eksponentiering.

Syntaks:
Pow (Base, Indikator)

Muligheder :

  • Grundlag(Nummer). Grundlaget for eksponentieringsoperationen.
  • Indeks(Nummer). Eksponent.
35. Synd- beregner sinus.

Syntaks:
Synd (udtryk)

Parameter:

  • Udtryk(Nummer). Angivet i radianer.
36. Sqrt- beregner kvadratroden.

Syntaks:
Sqrt(udtryk)

Parameter:

  • Udtryk(Nummer). Ikke-negativt tal.
37. Tan- beregner tangenten.

Syntaks:
Tan (udtryk)

Parameter:

  • Udtryk(Nummer). Sinusværdien, som vinklen bestemmes med.
38. Rund- runder det oprindelige tal til den nødvendige bitdybde. Afrundingstilstanden er standard (1,5 som 2).

Syntaks:
Env (udtryk, bitdybde)

Muligheder :

  • Udtryk(Nummer). Original nummer;
  • Lidt dybde(Nummer). Antallet af decimaler at afrunde til.
39. Int- skærer brøkdelen af ​​et tal af.

Syntaks:
Objekt (udtryk)

Parameter:

  • Udtryk(Nummer). Et brøktal.
40. Funktioner af fælles moduler

Et datasammensætningsmotorudtryk kan indeholde kald til funktioner i globale fælles konfigurationsmoduler. Der kræves ingen yderligere syntaks for at kalde sådanne funktioner.

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

I dette eksempel vil funktionen "AbbreviatedName" blive kaldt fra det generelle konfigurationsmodul.
Bemærk, at brugen af ​​fælles modulfunktioner kun er tilladt, hvis den relevante datasammensætningsprocessorparameter er angivet.
Derudover kan funktioner i almindelige moduler ikke bruges i brugerdefinerede feltudtryk.

41. Harme - denne funktion returnerer en strengrepræsentation af den beståede værdi af en ikke-primitiv type. For værdier af en primitiv type, returnerer selve værdien.

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

Eksempel:
Præsentation (modpart)

42. Snor - denne funktion konverterer den beståede værdi til en streng.

Hvis et array eller en værditabel bruges som en parameter, returnerer funktionen en streng, der indeholder en strengrepræsentation af alle elementerne i arrayet, adskilt af tegnene "; ". Hvis et element har en tom strengrepræsentation, så er strengen "<Пустое значение>".

Eksempel:
Række (salgsdato)

43. VærdiErFyldt

For NULL-værdier returnerer Undefined altid False.
For booleske værdier returnerer den altid True.
For andre typer returnerer True, hvis værdien afviger fra standardværdien for den givne type.

Eksempel:
ValueFilled (Leveringsdato)

44. LevelInGroup - denne funktion får det aktuelle optagelsesniveau i forhold til grupperingen.

Kan bruges til at opnå indlejringsniveauet for en post i en hierarkisk gruppering.

Eksempel:
LevelInGroup()

45. ValueType

Syntaks:
ValueType (udtryk)

Parameter:

  • Udtryk(Linje). Strengværditype.
Returnerer en værdi af typen Type, der indeholder værditypen for funktionsparameteren.
  • 1C-Bitrix
  • Et af de vigtigste områder inden for forretningssoftware er rapportering. En virksomheds skæbne kan afhænge (og ikke i overført betydning!) af, hvor nemt det er at tilpasse en eksisterende rapport til virksomhedens (og lovgivningens) skiftende behov eller oprette en ny, det være sig en rapport til skattekontoret eller et diagram over efterspørgslens afhængighed af sæsonen og andre faktorer. Et kraftfuldt og fleksibelt rapporteringssystem, der gør det nemt at udtrække de nødvendige data fra systemet, præsentere dem i en forståelig form, så slutbrugeren kan omkonfigurere en standardrapport for at se dataene i et nyt lys - dette er det ideelle, som hver forretningssystemet skal stræbe efter.

    I 1C:Enterprise-platformen er en mekanisme kaldet "Data Composition System" (forkortet DCS) ansvarlig for at generere rapporter. I denne artikel vil vi forsøge at give en kort beskrivelse af ideen og arkitekturen af ​​ACS-mekanismen og dens muligheder.


    ACS er en mekanisme baseret på en deklarativ beskrivelse af rapporter. Adgangskontrolsystemet er designet til at generere rapporter og til at vise information med en kompleks struktur. Udover at udvikle rapporter bruges ACS-mekanismen også i 1C:Enterprise i en dynamisk liste, et værktøj til at vise listeinformation med rig funktionalitet (visning af flade og hierarkiske lister, betinget design af rækker, grupperinger osv.). ).

    Lidt historie

    I den allerførste version af 1C:Enterprise 8-platformen, version 8.0, blev der lavet rapporter som dette:
    1. En eller flere forespørgsler blev skrevet i 1C-forespørgselssproget (SQL-lignende sprog, mere om det nedenfor).
    2. Kode blev skrevet, der overførte resultaterne af udførte forespørgsler til et regnearksdokument eller diagram. Koden kunne også udføre arbejde, der ikke kunne udføres i en forespørgsel - for eksempel beregnede den værdier ved hjælp af det indbyggede 1C-sprog.
    Fremgangsmåden er ligetil, men ikke den mest bekvemme - der er minimale visuelle indstillinger, alt skal programmeres "hånd-til-hånd". Og et af trumfkortene på det tidspunkt på den helt nye platform "1C:Enterprise 8" var minimeringen i applikationsløsningen af ​​mængden af ​​kode, der skulle skrives manuelt, især gennem visuelt design. Det ville være logisk at følge samme vej i rapporteringsmekanismen. Dette blev gjort ved at udvikle en ny mekanisme - Data Composition System.

    En af idéerne, der lå til grund for adgangskontrolsystemet, var fleksibilitet og tilpasning af rapporter, som var tilgængelig for både udvikler og slutbruger. Ideelt set vil jeg gerne give slutbrugeren adgang til det samme sæt af rapportdesignværktøjer som udvikleren. Det ville være logisk at oprette et enkelt sæt værktøjer, der er tilgængelige for alle. Nå, da værktøjerne kræver slutbrugerens deltagelse, betyder det, at brugen af ​​programmering i dem skal reduceres til et minimum (det er bedst at eliminere det helt), og visuelle indstillinger skal bruges maksimalt.

    Formulering af problemet

    Opgaven før udviklingsteamet var at skabe et rapporteringssystem baseret ikke på en algoritme (dvs. ved at skrive kode), men på en deklarativ tilgang til oprettelse af rapporter. Og vi mener, at problemet er blevet løst med succes. Det er vores erfaring, at omkring 80% af den påkrævede rapportering kan implementeres ved hjælp af ACS uden en enkelt kodelinje (undtagen for at skrive formler til beregnede felter), for det meste gennem visuelle indstillinger.
    Udviklingen af ​​den første version af SDS tog omkring 5 personår.

    To sprog

    Der er to sprog involveret i oprettelse af rapporter. Det ene er et forespørgselssprog, der bruges til at hente data. Det andet er datasammensætningsudtrykssproget, beregnet til at skrive udtryk, der bruges i forskellige dele af systemet, for eksempel i datasammensætningsindstillinger, til at beskrive udtryk for brugerfelter.

    Forespørgselssprog

    Forespørgselssproget er baseret på SQL og er nemt at lære for dem, der har viden om SQL. Eksempel på anmodning:

    Det er nemt at se analoger af sektionsstandard for SQL-forespørgsler - SELECT, FROM, GROUP BY, ORDER BY.

    Samtidig indeholder forespørgselssproget et betydeligt antal udvidelser, der har til formål at afspejle de specifikke finansielle og økonomiske problemer og minimere den indsats, der kræves for at udvikle applikationsløsninger:

    • Adgang til felter ved hjælp af en prik. Hvis felterne i en tabel er af en referencetype (de gemmer links til objekter i en anden tabel), kan udvikleren henvise til dem i teksten til anmodningen gennem ".", og systemet begrænser ikke antallet af indlejringsniveauer af sådanne links (f.eks. Kundeordre. Aftale. Organisation. Telefon).
    • Multidimensionel og multilevel dannelse af resultater. Totaler og subtotaler dannes under hensyntagen til gruppering og hierarki, niveauer kan krydses i vilkårlig rækkefølge med opsummering, og den korrekte konstruktion af totaler efter tidsdimensioner er sikret.
    • Understøttelse af virtuelle borde. Virtuelle tabeller leveret af systemet giver dig mulighed for at få næsten færdige data til de fleste applikationsopgaver uden at skulle oprette komplekse forespørgsler. En virtuel tabel kan således give data om produktsaldi efter perioder på et tidspunkt. Samtidig udnytter virtuelle tabeller maksimalt de lagrede informationer, for eksempel tidligere beregnede totaler mv.
    • Midlertidige borde. Forespørgselssproget giver dig mulighed for at bruge midlertidige tabeller i forespørgsler. Med deres hjælp kan du forbedre forespørgselsydelsen, i nogle tilfælde reducere antallet af blokeringer og gøre forespørgselsteksten lettere at læse.
    • Batch anmodninger. For at gøre arbejdet med midlertidige tabeller mere bekvemt, understøtter forespørgselssproget arbejde med batchforespørgsler - således er oprettelsen af ​​en midlertidig tabel og dens brug placeret i én forespørgsel. En batch-anmodning er en sekvens af anmodninger adskilt af semikolon (";"). Anmodningerne i partiet udføres efter hinanden. Resultatet af at udføre en batch-anmodning, afhængigt af den anvendte metode, vil enten være resultatet returneret af den sidste anmodning i batchen eller en række resultater fra alle forespørgsler i batchen i den rækkefølge, som forespørgslerne i batchen følger i. .
    • Hentning af repræsentationer af referencefelter. Hver objekttabel (hvori en mappe eller et dokument er gemt) har et virtuelt felt - "Vis". Dette felt indeholder en tekstlig repræsentation af objektet og gør rapportopretterens job lettere. Så for et dokument indeholder dette felt alle nøgleoplysninger - navnet på dokumenttypen, dens nummer og dato (for eksempel "Salg 000000003 fra 07/06/2017 17:49:14"), hvilket gemmer udvikleren fra at skrive et beregnet felt.
    • og osv.
    Anmodningsmekanismen ændrer automatisk anmodningen under hensyntagen til de roller, som brugeren, på hvis vegne anmodningen udføres, tilhører (dvs. brugeren vil kun se de data, som han har ret til at se) og funktionelle muligheder (dvs. i overensstemmelse med med dem, der er konfigureret i applikationsløsningens funktionalitet).

    Der er også specielle forespørgselssprogudvidelser til adgangskontrolsystemer. Udvidelse udføres ved hjælp af specielle syntaktiske instruktioner omsluttet af krøllede seler og placeret direkte i anmodningens krop. Ved hjælp af udvidelser bestemmer udvikleren, hvilke handlinger slutbrugeren vil være i stand til at udføre, når rapporten tilpasses.

    For eksempel:

    • VÆLGE. Denne sætning beskriver de felter, som brugeren vil være i stand til at vælge til output. Efter dette nøgleord er aliaser af felter fra hovedforespørgselsvalglisten, der vil være tilgængelige for konfiguration, opført, adskilt af kommaer. Eksempel: (VÆLG vare, lager)
    • HVOR. De felter, som brugeren kan anvende valg på, er beskrevet. Dette forslag bruger tabelfelter. Brug af valglistefeltaliaser er ikke tilladt. Hver del af foreningen kan indeholde sit eget WHERE-element. Eksempler: (WHERE Item.*, Warehouse), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
    • og osv.
    Eksempel på brug af udvidelser:

    Datasammensætning udtrykssprog

    Data Composition Expression Language er designet til at skrive udtryk, der især bruges til at beskrive brugerdefinerede feltudtryk. SKD giver dig mulighed for at definere brugerdefinerede felter i en rapport ved hjælp af enten dine egne udtryk eller sæt af muligheder med betingelser for deres valg (analogt med CASE i SQL). Brugerdefinerede felter ligner beregnede felter. De kan indstilles både i konfiguratoren og i 1C:Enterprise-tilstand, men funktionerne i almindelige moduler kan ikke bruges i brugerdefinerede feltudtryk. Derfor er brugerdefinerede felter beregnet til brugeren i stedet for udvikleren.

    Eksempel:

    Processen med at oprette en rapport om adgangskontrolsystemet

    Når vi opretter en rapport, skal vi lave et layout, der definerer, hvordan dataene vil blive vist i rapporten. Du kan oprette et layout baseret på et datalayoutdiagram. Et datalayoutdiagram beskriver essensen af ​​de data, der leveres til rapporten (hvor dataene kan hentes fra, og hvordan deres layout kan kontrolleres). Datasammensætningsskemaet er grundlaget for, at alle former for rapporter kan genereres. Datasammensætningsskemaet kan indeholde:
    • anmodningstekst med instruktioner til datasammensætningssystemet;
    • beskrivelse af flere datasæt;
    • detaljeret beskrivelse af tilgængelige felter;
    • beskrive relationer mellem flere datasæt;
    • beskrivelse af dataindsamlingsparametre;
    • beskrivelse af feltlayouts og grupperinger;
    • og osv.

    For eksempel kan du tilføje en forespørgsel til datasammensætningsskemaet som et datasæt og kalde forespørgselskonstruktøren, som giver dig mulighed for grafisk at oprette en forespørgsel af vilkårlig kompleksitet:

    Resultatet af lanceringen af ​​forespørgselsdesigneren vil være forespørgselsteksten (på 1C:Enterprise-forespørgselssproget). Denne tekst kan om nødvendigt justeres manuelt:

    Der kan være flere datasæt i et datalayoutskema, datasæt kan sammenkædes i layoutet på enhver måde, beregnede felter kan tilføjes, rapportparametre kan specificeres mv. Det er værd at nævne et interessant træk ved forespørgselsmekanismen i 1C:Enterprise. Forespørgsler oversættes i sidste ende til en SQL-dialekt, der er specifik for det DBMS, som applikationen fungerer direkte med. Generelt forsøger vi at bruge mulighederne på DBMS-servere maksimalt (vi er begrænset af det faktum, at vi kun bruger de funktioner, der er tilgængelige samtidigt i alle DBMS'er, der understøttes af 1C:Enterprise-platformen - MS SQL, Oracle, IBM DB2 , PostgreSQL). På forespørgselsniveau i beregnede felter kan vi således kun bruge de funktioner, der er oversat til SQL.

    Men på niveauet for datasammensætningsskemaet kan vi allerede tilføje brugerdefinerede felter og bruge funktioner i dem i det indbyggede 1C-udviklingssprog (inklusive dem, der er skrevet af os), hvilket i høj grad udvider rapporternes muligheder. Teknisk ser det sådan ud - alt, der kan oversættes til SQL, oversættes til SQL, forespørgslen udføres på DBMS-niveau, forespørgselsresultaterne placeres i hukommelsen på 1C-applikationsserveren, og SKD'en beregner værdierne for hver post. af beregnede felter, hvis formler er skrevet på 1C-sproget.


    Tilføjelse af brugerdefinerede felter

    Du kan tilføje et vilkårligt antal tabeller og diagrammer til rapporten:


    Rapport designer


    Runtime rapport

    Ved hjælp af SKD kan brugeren tilføje komplekse markeringer til rapporten (som vil blive tilføjet til anmodningen de rigtige steder), betinget design (så at de viste felter kan formateres anderledes - med skrifttype, farve osv., afhængigt af deres værdier ) og meget mere. .

    Processen med at konstruere og generere en rapport kan kort beskrives som følger:

    • Udvikleren i designtid ved hjælp af en designer (eller i runtime ved hjælp af kode) bestemmer datalayoutskemaet:
      • Tekst til anmodningen/anmodningerne
      • Beskrivelse af beregnede felter
      • Relationer mellem anmodninger (hvis der er flere af dem)
      • Rapportindstillinger
      • Standardindstillinger
      • Etc.
    • Ovenstående indstillinger gemmes i layoutet
    • Bruger åbner rapport
      • Foretager muligvis yderligere indstillinger (for eksempel ændrer parameterværdier)
      • Klik på knappen "Generer".
    • Brugerindstillinger anvendes på datasammensætningsskemaet defineret af udvikleren.
    • Der dannes et mellemliggende datasammensætningslayout, der indeholder instruktioner om, hvor data skal modtages fra. Især de forespørgsler, der er angivet i layoutet, justeres. Dermed fjernes felter, der ikke er brugt i rapporten, fra anmodningen (dette gøres for at minimere mængden af ​​modtaget data). Alle felter, der deltager i beregnede feltformler, føjes til forespørgslen.
    • Datasammensætningsprocessoren kommer i spil. Layoutprocessoren udfører forespørgsler, sammenkæder datasæt, beregner værdier for beregnede felter og ressourcer og udfører gruppering. Med et ord, det laver alle de beregninger, der ikke blev udført på DBMS-niveau.
    • Dataoutputprocessoren starter en anmodning om eksekvering og viser de modtagne data i et regnearksdokument, et diagram osv.


    Processen med at generere en rapport ved hjælp af ACS-mekanismen

    Vi forsøger at minimere mængden af ​​rapportdata, der overføres fra serveren til klientapplikationen. Når vi viser data i et regnearksdokument, når vi åbner et regnearksdokument, overfører vi kun de linjer fra serveren, som brugeren ser i begyndelsen af ​​dokumentet. Når brugeren bevæger sig langs dokumentets linjer, downloades de manglende data fra serveren til klienten.

    Brugerdefinerede indstillinger

    Alle ACS-værktøjer er tilgængelige for både udvikleren og slutbrugeren. Men praksis har vist, at slutbrugeren ofte bliver skræmt af overfloden af ​​værktøjsmuligheder. Desuden har slutbrugeren i de fleste tilfælde ikke brug for alle indstillinger - det er nok for ham at have hurtig adgang til at opsætte en eller to rapportparametre (for eksempel periode og modpart). Med udgangspunkt i en bestemt version af platformen har rapportudvikleren mulighed for at markere, hvilke rapportindstillinger der er tilgængelige for brugeren. Dette gøres ved at bruge afkrydsningsfeltet "Medtag i brugerindstillinger". Desuden har rapportindstillingerne nu et "Visningstilstand"-flag, som har en af ​​tre værdier:
    • Hurtig adgang. Indstillingen vil blive vist direkte øverst i rapportvinduet.
    • Almindelig. Indstillingen vil være tilgængelig via knappen "Indstillinger".
    • Ikke tilgængelig. Indstillingen vil ikke være tilgængelig for slutbrugeren.


    Indstilling af visningstilstand i designtid


    Vis indstillingen i tilstanden Hurtig adgang under kørsel (under knappen Generer)

    Udviklingsplaner

    Et af vores prioriterede områder i udviklingen af ​​adgangskontrolsystemer er at forenkle brugerindstillinger. Vores erfaring viser, at det for nogle slutbrugere stadig er en stor opgave at arbejde med brugerindstillinger. Det tager vi højde for og arbejder i denne retning. Derfor bliver det også lettere for udviklere at arbejde med adgangskontrolsystemer, pga Vi ønsker som tidligere at levere et enkelt værktøj til opsætning af rapporter til både udvikleren og slutbrugeren.