Uttrycksspråk för datasammansättningssystem (1Cv8). Datasammansättningssystem uttrycksspråk (1Cv8) 1c anpassat uttrycksfält

Vi undersökte i detalj inställningarna för rapporter som implementerats på basis av passerkontrollsystemet. Låt oss nu titta på mer subtila och detaljerade inställningar för rapportalternativ. Fönstret för "avancerade" inställningar för rapportalternativet anropas av kommandot "Mer" - "Övrigt" - "Ändra rapportalternativ".

Fönstret för att ändra rapportversionen är uppdelat i två delar:

1. Rapportstruktur.

2. Rapportinställningar.


Sektionen för struktur för rapportalternativ liknar fliken "Struktur" i standardrapportinställningarna. Syftet med och konfigurationen av grupperingar diskuteras i detalj i del 1 av artikeln.

Rapportvariantstrukturtabellen innehåller, förutom den faktiska kolumnen med grupperingar, flera ytterligare kolumner:

Inställningar för rapportalternativ ger användaren stora möjligheter att konfigurera rapporten så att den passar deras behov. Det sammanfaller nästan helt med standardrapportinställningarna som diskuteras i del 1. Låt oss titta på alla flikar i avsnittet och notera skillnaderna.

Inställningssektionen består av följande flikar:

1. Parametrar. Innehåller ACS-parametrar tillgängliga för användaren.

SKD-parametern är ett värde som används för att få rapportdata. Detta kan vara ett villkorsvärde för att välja eller kontrollera data, såväl som ett hjälpvärde.


Parametertabellen presenteras i formatet "Parameter" - "Värde". Vid behov kan du ändra parametervärdena. Genom att klicka på knappen "Egenskaper för anpassade inställningar" öppnas de anpassade inställningarna för elementet.


I det här fönstret kan du välja om elementet ska ingå i användarinställningarna (det vill säga synligt för användaren när en rapport ställs in), ställa in elementets presentation och redigeringsläge (snabbåtkomst i rapporthuvudet, normalt i rapportinställningar och otillgängliga).

Egenskaper för anpassade inställningar har också grupperbara fält, marginaler, urval och villkorliga utseendeelement.

2. Anpassade fält. Innehåller fält som genereras av användaren själv baserat på data som valts av rapporten.


Användaren kan lägga till två typer av fält:

  • Nytt urvalsfält...
  • Nytt uttrycksfält...

Urvalsfält låter dig beräkna ett värde baserat på ett givet villkor. Fönstret för redigering av urvalsfält innehåller en fälttitel och en tabell i vilken fältets urval, värde och presentation anges. Urval är ett villkor, beroende på vilket önskat värde kommer att ersättas.


Låt oss till exempel beräkna en uppskattning av antalet försäljningar. Vi kommer att anta att om mindre än 10 enheter av en produkt säljs så sålde vi lite och om mer än 10 enheter sålde vi mycket. För att göra detta kommer vi att ställa in 2 värden för det beräknade fältet: det första kommer att vara med urvalet "Antal varor Mindre än eller lika med "10"", det andra med urvalet "Antal varor Större än "10" ””.

Uttrycksfält låter dig beräkna ett värde med godtyckliga algoritmer. De kan använda funktionerna i frågespråket och det inbyggda 1C-programmeringsspråket. Fönstret för redigering av uttrycksfält innehåller två fält för uttryck av detaljerade poster och sammanfattande poster. Totalt antal poster är grupperingar konfigurerade i området "Rapportstruktur", de måste använda aggregerade funktioner ("Summa", "Minimum", "Maximum", "Kvantitet").

Låt oss till exempel beräkna den genomsnittliga rabattprocenten. Den genomsnittliga rabattprocenten beräknas med formeln: [Försäljningsbelopp utan rabatt] - [Försäljningsbelopp med rabatt] / [Försäljningsbelopp utan rabatt]. Det är viktigt att komma ihåg att försäljningssumman utan rabatt kan vara noll, så vi använder SELECT-operatorn för att kontrollera. Vi får följande uttryck:

· För detaljerade poster:

Val

När [Försäljningsbelopp utan rabatt] = 0

Sedan 0

Annars [Försäljningsbelopp utan rabatt] - [Försäljningsbelopp med rabatt] / [Försäljningsbelopp utan rabatt]

Slutet

· För sammanfattande poster:

Val

När Belopp([Försäljningsbelopp utan rabatt]) = 0

Sedan 0

Annars Sum([Försäljningsbelopp utan rabatt]) - Sum([Försäljningsbelopp med rabatt]) / Sum([Försäljningsbelopp utan rabatt])

Slutet

Som nämnts tidigare, i uttrycket av totala poster använder vi den aggregerade funktionen "Summa".

3. Grupperbara fält. Innehåller fält efter vilka resultaten av rapportvarianten kommer att grupperas. Grupperade fält konfigureras separat för varje gruppering, men du kan ställa in allmänna grupperade fält för ett rapportalternativ om du väljer roten "Rapport" i strukturträdet. Du kan lägga till ett fält från rapportresultatet, ett anpassat fält eller välja ett autofält, då kommer systemet att välja fälten automatiskt. Den här fliken låter dig också ändra ordningen på grupperade fält.


4. Fält. Innehåller de fält som kommer att matas ut som ett resultat av rapportvarianten. Fält konfigureras separat för varje gruppering, men du kan ställa in vanliga fält för ett rapportalternativ om du väljer roten "Rapport" i strukturträdet. Du kan lägga till ett fält från rapportresultatet, ett anpassat fält eller välja ett autofält, då kommer systemet att välja fälten automatiskt. Den här fliken låter dig också ändra ordningen på fälten.

Fält kan grupperas för att logiskt markera valfri del av rapporten eller för att ange ett speciellt arrangemang av kolumner. När du lägger till en grupp blir kolumnen "Plats" aktiv och låter dig välja ett av platsalternativen:

  • Auto - systemet placerar fält automatiskt;
  • Horisontell - fält är placerade horisontellt;
  • Vertikal - fält är anordnade vertikalt;
  • I en separat kolumn - fält finns i olika kolumner;
  • Tillsammans - fälten finns i en kolumn.


5. Urval. Innehåller urval som används i rapportvarianten. Att ställa in urval diskuterades i detalj i del 1 av den här artikeln. Filter konfigureras separat för varje gruppering, men du kan ställa in allmänna filter för ett rapportalternativ om du väljer roten "Rapport" i strukturträdet.


6. Sortering. Innehåller sorteringsfälten som används i rapportvarianten. Att ställa in sorteringsfält diskuterades i detalj i del 1 av den här artikeln. Sortering konfigureras separat för varje gruppering, men du kan ställa in allmänna sorteringsfält för ett rapportalternativ om du väljer roten "Rapport" i strukturträdet.


7. Villkorlig registrering. Innehåller villkorliga designelement som används i rapportvarianten. Att ställa in villkorligt utseende diskuterades i detalj i del 1 av den här artikeln. Villkorligt utseende konfigureras separat för varje gruppering, men du kan ställa in allmänna element för villkorligt utseende för ett rapportalternativ om du väljer roten "Rapport" i strukturträdet.


8. Ytterligare inställningar. Innehåller ytterligare rapportdesigninställningar. Låter dig välja rapportens allmänna utseende, plats för fält, grupperingar, detaljer, resurser, summor, ställa in diagraminställningar, kontrollera visningen av titeln, parametrar och urval, bestämma resursernas position och fixa rubriken och grupperingen kolumner i rapportversionen.


Sammanfattningsvis vill jag notera att rapportinställningar inte bara kan sparas som ett rapportalternativ, utan även laddas upp till en fil (menyn "Mer" - "Spara inställningar"). För att ladda ner måste du välja "Ladda inställningar" och välja den sparade filen. Således kan vi överföra rapportvariantinställningar mellan olika databaser som har samma konfiguration.


Utifrån detta kan vi sammanfatta att användaren inte bara självständigt kan anpassa rapporten för att passa hans behov, utan även spara sina inställningar och använda dem i framtiden vid behov.

Uttrycksspråk för datasammansättningssystem

Datasammansättningssystemets uttrycksspråk är utformat för att skriva uttryck som används i olika delar av systemet.

Uttryck används i följande delsystem:

  • datalayoutdiagram - för att beskriva beräknade fält, totala fält, anslutningsuttryck, etc.;
  • datalayoutinställningar - för att beskriva anpassade fältuttryck;
  • datalayoutlayout - för att beskriva uttryck för att koppla datamängder, beskriva layoutparametrar, etc.

Bokstäver

Uttrycket kan innehålla bokstaver. Följande typer av bokstaver är möjliga:

  • Linje;
  • Siffra;
  • Datum för;
  • Boolean.

Linje

En bokstavlig sträng skrivs med ""-tecken, till exempel:

"Sträng bokstavlig"

Om du behöver använda tecknet "" i en bokstavlig sträng bör du använda två sådana tecken.

Till exempel:

"Ordagrant ""inom citattecken"""

siffra

Numret skrivs utan mellanslag, i decimalformat. Bråkdelen separeras med "."-symbolen. Till exempel:

10.5 200

datum

En bokstavlig datum skrivs med hjälp av nyckeln DATETIME. Efter detta nyckelord listas år, månad, dag, timmar, minuter, sekunder inom parentes, separerade med kommatecken. Tidsspecifikation krävs inte.

Till exempel:

DATETIME(1975, 1, 06) – 6 januari 1975 DATETIME(2006, 12, 2, 23, 56, 57) – 2 december 2006, 23 timmar 56 minuter 57 sekunder, 23 timmar 56 minuter 57 sekunder

Boolean

Booleska värden kan skrivas med bokstaverna True (True), False (False).

Menande

För att specificera bokstaver av andra typer (systemuppräkningar, fördefinierade data) används nyckelordet Value, följt av namnet på bokstaven inom parentes.

Värde(Kontotyp. Aktiv)

Operationer på siffror

Unary –

Denna operation är avsedd att ändra tecknet för ett tal till det motsatta tecknet. Till exempel:

Försäljning. Kvantitet

Unary +

Denna operation utför inga åtgärder på numret. Till exempel:

Försäljning. Kvantitet

Binär -

Denna operation är avsedd att beräkna skillnaden mellan två tal. Till exempel:

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

Binär +

Denna operation är utformad för att beräkna summan av två tal. Till exempel:

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

Arbete

Denna operation är utformad för att beräkna produkten av två tal. Till exempel:

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

Division

Denna operation är utformad för att erhålla resultatet av att dividera en operand med en annan. Till exempel:

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

Resten av divisionen

Denna operation är utformad för att erhålla resten när en operand delas med en annan. Till exempel:

Nomenklatur Pris % 1,2 2 % 3,14

Strängoperationer

Sammanfogning (binär +)

Denna operation är utformad för att sammanfoga två strängar. Till exempel:

Nomenclature.Article + “: ”+ Nomenclature.Name

Tycka om

Denna operation kontrollerar om strängen matchar det passerade mönstret.

Värdet på LIKE-operatorn är TRUE om värdet<Выражения>uppfyller mönstret, och FALSK i övrigt.

Följande karaktärer i<Строке_шаблона>har en annan betydelse än bara en annan karaktär i raden:

  • % - procent: en sekvens som innehåller noll eller fler godtyckliga tecken;
  • _ - understreck: ett godtyckligt tecken;
  • […] - ett eller flera tecken inom hakparenteser: ett tecken, något av de som anges inom hakparenteserna. Uppräkningen kan innehålla intervall, till exempel a-z, vilket betyder ett godtyckligt tecken som ingår i intervallet, inklusive ändarna av intervallet;
  • [^...] - inom hakparentes en negeringsikon följt av ett eller flera tecken: vilket tecken som helst förutom de som listas efter negationsikonen;

Någon annan symbol betyder sig själv och bär ingen extra belastning. Om ett av de listade tecknen måste skrivas som sig själv, måste det föregås av<Спецсимвол>, specificerat efter nyckelordet SPECIAL CHARACTER (ESCAPE).

Till exempel mall

"%ABV[abvg]\_abv%" SPECIALTECKET "\"

betyder en delsträng som består av en sekvens av tecken: bokstaven A; bokstäverna B; bokstäverna B; en siffra; en av bokstäverna a, b, c eller d; understryka; bokstäverna a; bokstäverna b; bokstäver v. Dessutom kan denna sekvens lokaliseras med början från en godtycklig position i linjen.

Jämförelseoperationer

Lika

Denna operation är avsedd att jämföra två operander för jämlikhet. Till exempel:

Försäljning.Motpart = Försäljning.NomenklaturHuvudleverantör

Inte jämnlikt

Denna operation är avsedd att jämföra två operander för ojämlikhet. Till exempel:

Försäljning. Motpart<>Försäljning.NomenklaturHuvudleverantör

Mindre

Denna operation är utformad för att kontrollera att den första operanden är mindre än den andra. Till exempel:

FörsäljningsAktuellt.Belopp< ПродажиПрошлые.Сумма

Mer

Denna operation är utformad för att kontrollera att den första operanden är större än den andra. Till exempel:

SalesCurrent.Sum > SalesPast.Sum

Mindre eller lika

Denna operation är utformad för att kontrollera att den första operanden är mindre än eller lika med den andra. Till exempel:

FörsäljningsAktuellt.Belopp<= ПродажиПрошлые.Сумма

Mer eller lika

Denna operation är utformad för att kontrollera att den första operanden är större än eller lika med den andra. Till exempel:

SalesCurrent.Amount >= SalesPast.Amount

Operation B

Denna operation kontrollerar förekomsten av ett värde i den godkända värdelistan. Resultatet av operationen blir True om värdet hittas, eller False annars. Till exempel:

Artikel B (&Produkt1, &Produkt2)

Funktion för att kontrollera närvaron av ett värde i en datamängd

Operationen kontrollerar förekomsten av ett värde i den angivna datamängden. Valideringsdataset måste innehålla ett fält. Till exempel:

Försäljning Motpart Till Motparter

Funktion för att kontrollera ett värde för NULL

Denna operation returnerar True om värdet är NULL. Till exempel:

Försäljning. Motpart ÄR NULL

Funktion för att kontrollera ett värde för NULL-olikhet

Denna operation returnerar True om värdet inte är NULL. Till exempel:

Försäljning. Motpart ÄR INTE NULL

Logiska operationer

Logiska operationer accepterar uttryck av typen Boolean som operander.

Operation NOT

NOT-operationen returnerar True om dess operand är False och False om dess operand är True. Till exempel:

INTE Document.Consignee = Document.Consignee

Operation I

AND-operationen returnerar True om båda operanderna är True, och False om en av operanderna är False. Till exempel:

Document.Consignee = Document.Consignor OCH Document.Consignee = &Motpart

ELLER operation

Operationen OR returnerar True om en av dess operander är True, och False om båda operanderna är False. Till exempel:

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

Aggregerade funktioner

Aggregatfunktioner utför någon åtgärd på en uppsättning data.

Belopp

Den aggregerade funktionen Sum beräknar summan av värdena för uttrycken som skickas till den som ett argument för alla detaljposter. Till exempel:

Belopp (försäljning. belopp omsättning)

Kvantitet

Räknefunktionen beräknar antalet andra värden än NULL. Till exempel:

Kvantitet (försäljning. motpart)

Antal olika

Denna funktion beräknar antalet distinkta värden. Till exempel:

Kvantitet (Olika försäljningar. Motpart)

Maximal

Funktionen får maxvärdet. Till exempel:

Maximum (återstående. kvantitet)

Minimum

Funktionen får minimivärdet. Till exempel:

Minimum (återstående. kvantitet)

Genomsnitt

Funktionen får medelvärdet av icke-NULL-värden. Till exempel:

Genomsnitt (återstående. kvantitet)

Övriga operationer

Operation SELECT

Funktionen Select är avsedd att välja ett av flera värden när vissa villkor är uppfyllda. Till exempel:

Välj När Belopp > 1000 Sedan Belopp Annars 0 Slut

Regler för att jämföra två värden

Om typerna av värdena som jämförs skiljer sig från varandra, bestäms relationerna mellan värdena baserat på typens företräde:

  • NULL (lägst);
  • Boolean;
  • Siffra;
  • Datum för;
  • Linje;
  • Referenstyper

Relationerna mellan olika referenstyper bestäms utifrån referensnumren i de tabeller som motsvarar en viss typ.

Om datatyperna är desamma jämförs värdena enligt följande regler:

  • för den booleska typen är värdet TRUE större än värdet FALSE;
  • Nummertypen har de vanliga jämförelsereglerna för siffror;
  • för datumtypen är tidigare datum mindre än senare;
  • för strängtypen - jämförelse av strängar i enlighet med databasens etablerade nationella egenskaper;
  • referenstyper jämförs baserat på deras värden (rekordnummer, etc.).

Arbeta med NULL-värde

Varje operation där en av operanderna är NULL kommer att ge ett NULL-resultat.

Det finns undantag:

  • AND-operationen returnerar endast NULL om ingen av operanderna är False;
  • ELLER-operationen returnerar bara NULL om ingen av dess operander är True.

Operationsprioriteringar

Operationerna har följande prioriteringar (första raden har lägst prioritet):

  • B, ÄR NULL, ÄR INTE NULL;
  • =, <>, <=, <, >=, >;
  • Binär +, Binär – ;
  • *, /, %;
  • Unary +, Unary -.

Datasammansättningssystem Uttryck Språkfunktioner

Beräkna

Funktionen Beräkna är utformad för att beräkna ett uttryck inom ramen för en viss gruppering. Funktionen har följande parametrar:

  • Uttryck. Skriv sträng. Innehåller ett beräknat uttryck;
  • Gruppering. Skriv sträng. Innehåller namnet på den gruppering i vilken uttrycket ska utvärderas. Om en tom sträng används som grupperingsnamn kommer beräkningen att utföras i samband med den aktuella grupperingen. Om GrandTotal-strängen används som gruppnamn, kommer beräkningen att utföras i samband med totalsumman. Annars kommer beräkningen att utföras inom ramen för den överordnade gruppen med samma namn. Till exempel:
Sum(Sales.SumTurnover) / Calculate("Sum(Sales.SumTurnover)", "Total")

I det här exemplet blir resultatet förhållandet mellan beloppet för fältet "Sales.AmountTurnover" i grupperingsposten och beloppet för samma fält i hela layouten.

Nivå

Funktionen är utformad för att erhålla den aktuella inspelningsnivån.

Nivå()

NumberInOrder

Få nästa sekvensnummer.

NumberByOrder()

NumberInOrderInGrouping

Returnerar nästa ordningsnummer i den aktuella grupperingen.

NumberByOrderInGroup()

Formatera

Få en formaterad sträng med det godkända värdet.

Formatsträngen ställs in i enlighet med 1C:Enterprise-formatsträngen.

Alternativ:

  • Menande;
  • Formatera sträng.

Format(Invoices.Doc Amount, "NPV=2")

Början av perioden

Alternativ:

    • Minut;
    • Dag;
    • En vecka;
    • Månad;
    • Fjärdedel;
    • Årtionde;
    • Halvår.

StartPeriod(DatumTime(2002, 10, 12, 10, 15, 34), "Månad")

Resultat:

01.10.2002 0:00:00

Periodens slut

Funktionen är utformad för att extrahera ett specifikt datum från ett givet datum.

Alternativ:

  • Datum för. Skriv datum. Angivet datum;
  • Periodtyp. Skriv sträng. Innehåller ett av följande värden:
    • Minut;
    • Dag;
    • En vecka;
    • Månad;
    • Fjärdedel;
    • Årtionde;
    • Halvår.

EndPeriod(DatumTime(2002, 10, 12, 10, 15, 34), "Vecka")

Resultat:

13.10.2002 23:59:59

AddToDate

Funktionen är utformad för att lägga till ett visst värde till ett datum.

Alternativ:

  • Förstoringstyp. Skriv sträng. Innehåller ett av följande värden:
    • Minut;
    • Dag;
    • En vecka;
    • Månad;
    • Fjärdedel;
    • Årtionde;
    • Halvår.
  • Belopp – med hur mycket du behöver öka datumet. Typnummer. Bråkdelen ignoreras.

AddToDate(DatumTime(2002, 10, 12, 10, 15, 34), "Månad", 1)

Resultat:

12.11.2002 10:15:34

Datumskillnad

Funktionen är designad för att se skillnaden mellan två datum.

Alternativ:

  • Uttryck. Skriv datum. Originaldatum;
  • Uttryck. Skriv datum. Subtraherat datum;
  • Skillnadstyp. Skriv sträng. Innehåller ett av följande värden:
    • Andra;
    • Minut;
    • Dag;
    • Månad;
    • Fjärdedel;

DATUMSKILLNAD(DATETIME(2002; 10; 12; 10; 15; 34); DATUMTID(2002; 10; 14; 9; 18; 06); "DAG")

Resultat:

Delsträng

Denna funktion är utformad för att extrahera en delsträng från en sträng.

Alternativ:

  • Linje. Skriv sträng. Strängen från vilken delsträngen extraheras;
  • Placera. Typnummer. Positionen för tecknet från vilken delsträngen som ska extraheras från strängen börjar;
  • Längd. Typnummer. Längden på den tilldelade delsträngen.

SUBSTRING(Konton.Adress, 1, 4)

Linjelängd

Funktionen är utformad för att bestämma längden på en sträng.

Parameter:

  • Linje. Skriv sträng. En sträng vars längd bestäms.

Rad(motparter.adress)

År

Den här funktionen är utformad för att extrahera året från ett datumtypvärde.

Parameter:

  • Datum för. Skriv datum. Det datum då året bestäms.

ÅR(Utgift.Datum)

Fjärdedel

Denna funktion är utformad för att extrahera kvartalsnumret från ett datumtypvärde. Kvartalsnumret varierar normalt från 1 till 4.

Parameter

  • Datum för. Skriv datum. Det datum då kvartalet bestäms
KVARTAL(Utgift.Datum)

Månad

Denna funktion är utformad för att extrahera månadsnumret från ett datumtypvärde. Månadsnumret varierar normalt från 1 till 12.

  • Datum för. Skriv datum. Det datum då månaden bestäms.
MONTH(Utgift.Datum)

Årets dag

Den här funktionen är utformad för att hämta dagen på året från ett datumtypvärde. Årets dag varierar normalt från 1 till 365 (366).

  • Datum för. Skriv datum. Det datum då dagen på året bestäms.
DAGÅR(ExpenseAccount.Date)

Dag

Denna funktion är utformad för att erhålla dagen i månaden från ett datumtypvärde. Dagen i månaden varierar normalt från 1 till 31.

  • Datum för. Skriv datum. Det datum då dagen i månaden bestäms.
DAG(Utgift.Datum)

En vecka

Denna funktion är utformad för att erhålla veckonummer för året från ett datumtypvärde. Årets veckor räknas från 1.

  • Datum för. Skriv datum. Det datum då veckonummer fastställs.
VECKA(Utgift.Datum)

Veckodag

Denna funktion är utformad för att hämta veckodagen från ett datumtypvärde. Den normala veckodagen sträcker sig från 1 (måndag) till 7 (söndag).

  • Datum för. Skriv datum. Det datum då veckodagen bestäms.
VECKODAG (Utgift.Datum)

Timme

Denna funktion är utformad för att erhålla timmen på dygnet från ett datumtypvärde. Klockan på dygnet varierar från 0 till 23.

  • Datum för. Skriv datum. Det datum då dygnets timme bestäms.
HOUR(Utgift.Datum)

Minut

Denna funktion är utformad för att erhålla timmens minut från ett datumtypvärde. Timmens minut varierar från 0 till 59.

  • Datum för. Skriv datum. Det datum då timmens minut bestäms.
MINUTE(Utgift.Datum)

Andra

Denna funktion är utformad för att erhålla sekunden i en minut från ett datumtypvärde. Den andra i en minut varierar från 0 till 59.

  • Datum för. Skriv datum. Det datum då sekunderna i minuten bestäms.
SEKUND(Utgift.Datum)

uttrycka

Denna funktion är utformad för att extrahera en typ från ett uttryck som kan innehålla en sammansatt typ. Om uttrycket innehåller en annan typ än den önskade typen, kommer NULL att returneras.

Alternativ:

  • Uttryck att konvertera;
  • Typindikation. Skriv sträng. Innehåller en typsträng. Till exempel "Nummer", "Sträng" osv. Förutom primitiva typer kan denna rad innehålla namnet på tabellen. I detta fall kommer ett försök att göras att uttrycka en hänvisning till den angivna tabellen.

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

Är inget

Denna funktion returnerar värdet för den andra parametern om värdet för den första parametern är NULL.

Annars kommer värdet på den första parametern att returneras.

JaNULL(Belopp(Försäljning.Belopp Omsättning), 0)

Funktioner för gemensamma moduler

Ett datasammansättningsmotoruttryck kan innehålla anrop till funktioner för globala gemensamma konfigurationsmoduler. Ingen ytterligare syntax krävs för att anropa sådana funktioner.

I det här exemplet kommer funktionen "AbbreviatedName" att anropas från den allmänna konfigurationsmodulen.

Observera att användningen av gemensamma modulfunktioner endast är tillåten om lämplig datasammansättningsprocessorparameter är specificerad.

Dessutom kan funktioner för vanliga moduler inte användas i anpassade fältuttryck.

För kompetent ledning behöver alla handelsorganisationer snabbt ta emot information om det aktuella tillståndet för varor, försäljning och vinster. Men om vi betänker att organisationer ofta arbetar med ett brett utbud av varor och ett stort antal motparter, så spelar det analytiska rapportanpassningsverktyget en viktig roll för att få fram nödvändig information. Låt oss titta närmare på hur man arbetar med anpassade fält i standardprogramrapporter (rev. 11).

Utvecklingen av plattformen 1C: Enterprise 8 ger användarna fler och fler möjligheter. Till exempel i version 8.2 blev rapporterna mer flexibla, vilket gjorde att de kunde anpassas för att passa olika krav utan hjälp av kvalificerade programmerare.

Ändra rapportinställningar

För att visa eller ändra rapportinställningar, gå till menyn "Alla åtgärder" och välj kommandot "Ändra alternativ". Efter detta öppnas ett fönster med inställningar för den öppna rapporten framför användaren.

I den övre delen av inställningsfönstret kan du se rapportens struktur, som inte är något annat än en visuell reflektion av rapportkolumnerna och grupperingar av dess rader, vilket i huvudsak gör det möjligt att föreställa sig i vilken ordning analytiska data är visas i denna rapport.

Längst ner i inställningsfönstret visas den faktiska informationen och fältinställningarna, relaterade antingen till rapporten eller till elementen i dess struktur (kolumner och radgrupperingar).

Anpassade fält

I ett program 1C: Handelshantering 8 Edition 11 rapportinställningar ger användarna fler alternativ i sin generation.

I fönstret för redigering av inställningar och rapportstruktur vill vi uppmärksamma användarna särskilt på fliken "Anpassade fält", som låter dig skapa dina egna fält och lägga till dem i rapporten. Det bör komma ihåg att tidigare kunde användaren endast använda de fält som implementerades av utvecklaren.

Låt oss titta på användningen av denna funktion med hjälp av ett exempel.

Låt oss anta att chefen för ett handelsföretag som säljer varor i Moskva och regionerna vill anpassa rapporten "Försäljningshistorik" till sina krav, och vill visa i den data om försäljningen av produkter i Moskva och regionerna i allmänhet, som såväl som till partners. Detta är mycket enkelt att göra med hjälp av anpassade fält.

Således visar ett tydligt exempel att flexibla inställningar för anpassade fält i ett standardprogram 1C: Handelshantering 8 ge användaren stora möjligheter att skräddarsy rapporter, så att de snabbt kan få den nödvändiga informationen i en bekväm form.

Varje organisation behöver, för att kunna fatta snabba och korrekta förvaltningsbeslut, operativ information om tillgången på varor i lager, dess kostnader och försäljning. Branschorganisationer arbetar med ett stort antal poster och motparter, och detta kräver en bra uppsättning av analytisk redovisning och snabb inhämtning av den information som krävs från dess data. Artikeln diskuterar de grundläggande teknikerna för att arbeta med standardrapporter i standardlösningen "1C: Trade Management 8" (utgåva 11), byggd på basis av ett datasammansättningssystem, och ger användbara praktiska rekommendationer som kommer att vara användbara för både nybörjare och de som har bytt till den nya upplagan från tidigare upplagor.

Låt oss till exempel ta rapporten

  • Analys av produkttillgänglighet;

inställningar.

I en kolumn Typ av jämförelse Nomenklatur

  • Lika
  • Inte jämnlikt
  • På listan
  • Inte på listan
  • I grupp Nomenklatur;
  • Inte i grupp Nomenklatur;
  • I en grupp från listan Nomenklatur;
  • Inte i en grupp från listan Nomenklatur.

Menande

"Snabbval"

I takt med att 1C:Enterprise 8-plattformen utvecklas och den nya versionen 8.2 dyker upp blir rapporterna i systemen mer flexibla, och användarna får fler och fler möjligheter att anpassa dem till sina krav utan hjälp av programmerare.

Nya möjligheter från datakompositionssystemet (DCS) gör att du kan uppleva fördelarna med 1C:Enterprise 8-funktioner när du skapar rapporter som aldrig förr. Och trots att rapportgränssnittet har genomgått betydande förändringar (jämfört med utgåva 10.3 av "Trade Management"-konfigurationen, nedan kallad UT), är rapportinställningarna fortfarande tillgängliga för den genomsnittliga användaren. Låt oss titta på några grundläggande tekniker för att arbeta med dem.

Det första du kan vara uppmärksam på är de snabba valen. De låter dig visa data i en rapport baserad på vissa värden av rapportfält enligt användarens önskemål.

Låt oss till exempel ta rapporten Analys av produkttillgänglighet i UT. Låt oss omedelbart notera att hela demonstrationen av rapporteringsförmågan i UT 11 kommer att ske med exemplet med två rapporter:

  • Analys av produkttillgänglighet;
  • Intäkter och kostnader för försäljning.

Val av vissa fält kan göras antingen direkt i rapportformuläret eller med en knapp inställningar.

I en kolumn Typ av jämförelse användaren kan välja olika jämförelseförhållanden. Till exempel för fältet Nomenklatur Du kan välja följande typer av jämförelser:

  • Lika- rapporten kommer endast att skapas för det valda objektet;
  • Inte jämnlikt- rapporten kommer att genereras för hela produktsortimentet, förutom den valda artikeln;
  • På listan- Rapporten kommer att baseras på en lista över objekt;
  • Inte på listan- rapporten kommer att bygga på hela produktsortimentet, förutom utvalda artiklar;
  • I grupp- rapporten kommer att byggas på hela objektet som finns i den valda katalogmappen Nomenklatur;
  • Inte i grupp- rapporten kommer att bygga på hela produktsortimentet, förutom artiklar som finns i den valda katalogmappen Nomenklatur;
  • I en grupp från listan- liknande jämförelse I listan är endast mappar i katalogen valda som listvärden Nomenklatur;
  • Inte i en grupp från listan- liknande jämförelse Inte i listan, endast mappar i katalogen är valda som listvärden Nomenklatur.

Kryssrutan till vänster om urvalsfältet indikerar att valet för detta fält är "aktiverat", dvs. tas med i rapporten.

Omarkerade fält beaktas inte även om du har valt specifika värden för dessa fält.

Beroende på vald typ av jämförelse i kolumnen Menande ett specifikt element eller mapp (grupp) i katalogen, eller en lista med element eller mappar anges.

"Snabbval" finns i alla lösningar på 1C:Enterprise 8-plattformen.

Ett exempel på en enkel ändring av rapportinställningar

För att se/ändra rapportinställningar måste du gå till menyn Alla åtgärder - Ändra alternativ.

Inställningsfönstret för det valda rapportalternativet öppnas framför oss.

Rapportstrukturen visas högst upp i fönstret. I huvudsak är detta en visuell visning av grupperingarna av rader och kolumner i rapporten, det vill säga i vilken ordning analysdata kommer att visas i rapporten i rader och kolumner.

Längst ner i fönstret visas information relaterad till rapporten som helhet (om den översta nivån är vald i rapportstrukturen Rapportera), eller till en specifik gruppering av rader eller kolumner i rapporten (om en gruppering på en lägre nivå är vald), inställningar för visning av information och design av fält.

Exempel 1

Steg 1. Vi måste ta bort grupperingen efter produktegenskaper och bara lämna kvar grupperingen efter produkt. För att göra detta klickar du på fältet högst upp i fönstret för rapportinställningar Nomenklatur, egenskaper. Gå till fliken längst ned i fönstret Grupper.

Välj fältet Karakteristisk och klicka på knappen Radera kommandopanelen.

Bekräfta ändringar av rapportinställningarna genom att klicka på knappen Slutför redigeringen i det nedre vänstra hörnet av skärmen.

Steg 2. Efter att ha tagit bort egenskapen blir vår uppgift, enligt villkoren i exemplet, att lägga till en prisgrupp. I huvudsak bör denna gruppering vara på en lägre nivå än grupperingen efter lager, men på en nivå högre än grupperingen efter artikel. Därför kommer vi i rapportens struktur att lyfta fram en gruppering Stock.

Genom att högerklicka på det, välj kommandot från snabbmenyn Ny grupp.

I redigeringsfönstret för grupperingsfält som öppnas väljer du Nomenklatur.Prisgrupp.

Genom att klicka på knappen OK, kommer vi att se att en ny gruppering har lagts till i rapporten, underordnad grupperingen Stock.

Låt oss nu välja gruppering efter produkt och, utan att släppa höger musknapp, dra den in i (dvs. nedanför) grupperingen efter prisgrupp. Vi kommer att få strukturen som presenteras i figur 1. Resultatet av att sätta upp rapporten presenteras i figur 2.

Ris. 1. Den resulterande rapportstrukturen

Ris. 2. Resultat av rapportanpassning

Arbeta med anpassade fält

Låt oss nu titta närmare på de nya alternativen för att anpassa rapporter i programmet 1C: Trade Management 8.

I form av att redigera strukturen och inställningarna för vår rapport, låt oss vara uppmärksamma på fliken Anpassade fält.

Tidigare har vi lagt till fält i rapporten, vars lista var fördefinierad av utvecklaren. Med den här fliken kan vi skapa våra egna fält som vi behöver - Urvalsfält eller Uttrycksfält.

Exempel 2

Låt oss anpassa rapporten "Försäljningshistorik" (alternativet för rapporten "Intäkt och försäljningskostnad"). Vi kommer att visa försäljningsdata per partners och produktsortiment. Låt oss anta att vårt företag säljer varor i Moskva och i regionerna. Således tillhör varje klient i informationsbasen en specifik geografisk region (attributet "Business Region" i "Partners"-katalogen). Vi kan enkelt gruppera försäljningsdata i en rapport efter region, men vad händer om vi är intresserade av mer aggregerad statistik, i synnerhet svaret på frågan "Hur många varor såldes i Moskva och hur många i alla andra regioner tillsammans"? Det är här "anpassade fält" kommer till användning.

Steg 1. Låt oss öppna rapporten. Låt oss gå till formuläret för att ställa in rapportstrukturen ( Alla åtgärder -> Ändra alternativ). Låt oss i sin tur ta bort alla grupper som tidigare skapats i rapporten - för att göra detta, välj var och en av dem och klicka på knappen Radera kommandopanelen eller använd DEL-tangenten.

Precis som i föregående exempel, låt oss lägga till en gruppering i rapporten efter partner och sedan efter objekt. Vi vet redan hur man gör detta, så det tar inte mycket tid.

Steg 2. Låt oss skapa ett nytt anpassat fält. Låt oss öppna bokmärket Anpassade fält och kör kommandot Lägg till -> Nytt Välj fält.

Låt oss ge vårt nya fält ett namn - Region i allmänhet.

Låt oss klicka på knappen Lägg till. I en ny rad klickar du på knappen i kolumnen Urval. I formuläret för redigering av urval som visas lägger du till urval för fält Partner.Business region. Låt oss välja typ av jämförelse Lika, betyder - Moskva.

Låt oss klicka på knappen OK, varefter vi återgår till det anpassade fältredigeringsfönstret. Därefter måste du klicka på knappen i kolumnen Menande och välj i vallistan för datatyp som visas Linje och skriv som värde Moskva.

Låt oss upprepa operationen. Låt oss lägga till en rad till i tabellen. Denna gång för urval per fält Partner.Business region välj typ av jämförelse Inte jämnlikt.

Återgår till det anpassade fältredigeringsfönstret, i kolumnen Menande låt oss skriva Andra regioner(se fig. 3).

Ris. 3. Redigera ett anpassat fält

Låt oss klicka på knappen OK. Vårt nya fält är klart.

Steg 3. Låt oss lägga till vårt nya fält i rapportstrukturen. Välj den översta nivån med musen Rapport i struktur, lägg till en ny gruppering. I rekvisita Fält låt oss välja Region i allmänhet.

Låt oss dra grupperingen efter partner och den underordnade grupperingen efter objekt inuti den nyskapade med musen.

Låt oss skapa en rapport och titta på resultatet (visas i fig. 4).

Ris. 4. Resultat av rapportgenerering

Urval och sortering

Låt oss gå tillbaka till fönstret för att redigera rapportstrukturen och inställningarna och vara uppmärksam på bokmärkena Urval Och Sortering.

Om rotelementet är valt i rapportstrukturen ( Rapportera), så kommer inställningarna på dessa flikar att gälla för hela rapporten som helhet. Om en rapportgruppering väljs kommer inställningarna endast att påverka den grupperingen.

Exempel 3

Som ett resultat av rapporten Försäljningshistorik Endast de implementeringar där chefen är specificerad kommer att inkluderas. Ivanov Ivan Fedorovich.

Exempel 4

Spara de ändringar som gjorts

Om du ändrar rapportstrukturen kan du alltid spara den med kommandot Alla åtgärder -> Spara alternativ.

I formuläret för att spara ett alternativ kan du använda knappen för att välja Spara till befintlig rapportversion(istället för ett av de redan tillgängliga alternativen), eller Spara ny rapportversion.

Rapporten tar emot saldon av varor i lager i olika sektioner (egenskaper, serier, måttenheter etc.). För att inte komplicera exemplet lämnar vi endast gruppering efter post och visar endast det slutliga saldot per rapportdatum. Den sista tabellen kommer att visa saldot för artikeln i lagren.

Men sedan rapporterade användaren att han behövde lägga till ytterligare två fält:

  1. Kvantitetsvarning. Om kvantiteten är mindre än eller lika med 5, är varningen "Otillräcklig". Om mängden är större än 5, då mindre än eller lika med 10, är ​​varningen "Normal". Om mängden är mer än 10, då "Overabundance".
  2. Formel för att beräkna slutbalansen. I den extra kolumnen vill användaren se vilka åtgärder programmet utförde för att få det slutliga saldovärdet. Det vill säga formeln "Initialt saldo + Omsättning = Slutsaldo", där motsvarande värden kommer att ersättas.

Naturligtvis kan en programmerare ingripa här och ändra datasammansättningsschemabegäran och rapportinställningar, men vi kommer att slutföra uppgiften i användarläge utan att ändra rapporten i konfiguratorläge.

Ytterligare fält

Så, låt oss börja. Låt oss gå till inställningarna för rapportalternativ:

Inställningsdesignern för ACS-rapportalternativet öppnas framför oss. Genom att gå till fliken "Anpassade fält" börjar vi skapa dem.

Skärmdumpen visar redan två skapade anpassade fält, vars funktionalitet beskrevs ovan. Låt oss titta på inställningarna för var och en. Låt oss börja med fältet "Meddelande".

I inställningarna måste vi ställa in fälttiteln som ska visas i rapporten, samt ställa in uttryck för att generera värdet i det detaljerade postfältet och i totalsummorna för detta fält. Eftersom det inte finns något behov av att visa varningen i summorna kommer vi att skriva ett uttryck endast för detaljerade poster.

Uttryckssyntaxen liknar frågespråket 1C:Enterprise. Det finns några skillnader, men vi kommer inte att beröra dem i detalj i den här artikeln. Uttrycket använder urvalsoperatorn:

"Val När Sen Annars Slutet"

liknar en operatör i ett frågespråk. Fält i anpassade fältuttryck specificeras av deras representation. För att plattformen ska förstå att den angivna vyn representerar ett visst fält, omges vynnamnet av hakparenteser "". Om fältrepresentationen är ett ord, är hakparenteserna valfria. I exemplet ovan tittar vi på fältet Slutsaldo.

Inställningarna för fältet "Formel för beräkning av slutsaldo" ställs in på samma sätt:


Här är det nödvändigt att nämna några nyanser:

  1. Vi kan bara visa formeln i en cell som en linje. Därför konverterar vi alla numeriska värden till en sträng med SKD-uttrycksspråkmetoden "String()", som konverterar vilket värde som helst till en sträng. Sedan utför vi strängsammansättning.
  2. För att fältet ska visas i rapportsummorna kommer vi att lägga till en liknande formel till uttrycket för totalposterna. Du behöver bara lägga till aggregeringsfunktionerna "SUM()" för varje värde i enlighet med totalsummorna.

Du är redo att använda fält i din rapport!

Upprätta och generera en rapport

Lägg till fältet "Formel för beräkning av slutsaldo" i rapportens utdatafält:

Vi kommer att lägga till uttrycket "Meddelande" till detaljerade poster. För att göra detta, lägg till uttrycksfältet "Anmälan" till gruppen "Nomenklatur". Efter detta kommer rapportstrukturen att ha följande form:

Rapportinställningen är nu klar. Vid behov kan de tillagda inställningarna sparas för återanvändning. Låt oss skapa en rapport:

Som vi kan se har fält lagts till i rapporten i enlighet med villkoren för uppgiften. Samtidigt fanns det inget behov av att ändra rapporten i konfiguratorläge. Detta är den största fördelen med anpassade fält! En användare som är utbildad för att använda dem kan använda dem för att skapa en rapport om sina krav internt, utan hjälp av en programmerare.

Tro mig, det är möjligt att träna honom att använda dessa funktioner, eftersom det är mycket lättare än att skriva formler i Excel-kalkylblad.