Datasammansättningsschema för beräknade fält. Uttrycksspråksfunktioner i datasammansättningssystemet

Datasammansättningssystemets uttrycksspråk

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:

  • datakompositionschema - för att beskriva beräknade fält, totala fält, relationsuttryck, etc.
  • datakompositionsinställningar - för att beskriva anpassade fältuttryck;
  • datasammansättningsmall - för att beskriva datasatsrelationer, beskriva mallparametrar etc.

Bokstäver

Uttryck kan innehålla bokstaver. Bokstaver av följande typer är möjliga:

  • Linje;
  • Siffra;
  • Datum;
  • Booleansk.

Linje

En sträng bokstavligt skrivs med tecknen “” ”, till exempel:

"Sträng bokstavligt"

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

Till exempel:

"Bokstavligt" "i citat" ""

siffra

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

10.5 200

datum

Datumet bokstavligt skrivs med tangenten DATETIME bokstavlig. Efter det här nyckelordet anges inom parentes, åtskilda med kommatecken, år, månad, dag, timmar, minuter, sekunder. Tiden är valfri.

Till exempel:

DATUMTID (1975, 1, 06) - 6 januari 1975 DATUM (2006, 12, 2, 23, 56, 57) - 2 december 2006, 23 timmar 56 minuter 57 sekunder, 23 timmar 56 minuter 57 sekunder

Booleansk

Booleanska värden kan skrivas med bokstavarna True, False.

Menande

För att ange bokstäver av andra typer (systemräkningar, fördefinierade data), använd nyckelord Ett värde följt av det bokstavliga namnet inom parentes.

Värde (kontotyp. Aktivt)

Operationer på nummer

Unary -

Denna operation är avsedd att vända tecknet på ett tal. Till exempel:

Försäljning.Mängd

Unary +

Denna åtgärd utför ingen åtgärd på numret. Till exempel:

Försäljning.Mängd

binär -

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

Balanser & omsättningar.Ingångssaldo - Saldon och omsättningar.Slutbalanssaldo & omsättningar.Ingångsbalans - 100 400 - 357

Binärt +

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

Balanser & omsättningar.Ingångssaldo + Saldon & omsättningar.Omsättningsaldon & omsättningar.Ingångssaldo + 100 400 + 357

Arbete

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

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

Division

Denna operation är avsedd att erhålla resultatet av att dela en operand med en annan. Till exempel:

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

Resten av divisionen

Denna operation är avsedd att erhålla återstoden av att dela en operand med en annan. Till exempel:

Nomenklatur Pris% 1,2 2% 3,14

Strängoperationer

Sammanfogning (binär +)

Denna operation är avsedd att sammanfoga två strängar. Till exempel:

Nomenclature.Article + “:” + Nomenclature.Name

Tycka om

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

Värdet för LIKE -operatören är SANT om värdet<Выражения>matchar mönstret, och annars FALSK.

Följande tecken i<Строке_шаблона>meningsfullt annat än bara nästa radkaraktär:

  • % - procent: en sekvens som innehåller noll eller fler godtyckliga tecken;
  • _ - understrykning: en godtycklig karaktär;
  • […] - ett eller flera tecken inom hakparenteser: ett tecken, något av de som anges inom hakparenteser. 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 hakparenteser en negationsikon följt av ett eller flera tecken: alla tecken utom de som anges efter negationsikonen;

Varje annan symbol betyder sig själv och har ingen ytterligare mening. Om det är nödvändigt att skriva en av de listade tecknen som en själv, måste den föregås av<Спецсимвол>anges efter sökordet ESCAPE.

Till exempel mallen

"% ABC [abcg] \ _ abc%" SPECIELL SYMBOL "\"

betyder en delsträng bestående 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 karaktär; bokstäverna a; bokstäverna b; bokstäver c. Dessutom kan denna sekvens lokaliseras från en godtycklig position i linjen.

Jämförelseverksamhet

Är lika

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

Sales.Contractor = Sales.NomenclatureMainSupplier

Inte jämnlikt

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

Försäljning, entreprenör<>Sales.NomenclatureMainSupplier

Mindre

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

SalesCurrent.Mount< ПродажиПрошлые.Сумма

Mer

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

SalesCurrent.Total> SalesPast.Amount

Mindre än eller lika med

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

SalesCurrent.Mount<= ПродажиПрошлые.Сумма

Mer eller lika

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

SalesCurrent.Amount> = SalesPast.Amount

Operation B

Den här åtgärden kontrollerar om det finns ett värde i den godkända värdelistan. Resultatet av operationen blir sant om värdet hittas eller falskt på annat sätt. Till exempel:

Artikel B (& artikel1, och artikel2)

Funktionen för att kontrollera förekomsten av ett värde i en datamängd

Operationen kontrollerar om det finns ett värde i den angivna datamängden. Valideringsuppsättningen måste innehålla ett fält. Till exempel:

Försäljning. Motpart till motparter

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

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

Sales.Contractor ÄR NULL

Funktionen för att kontrollera ett värde för NULL ojämlikhet

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

Försäljning. Entreprenören ÄR INTE NULL

Logiska operationer

Logiska operationer tar booleska uttryck som operander.

Operation INTE

Operationen returnerar INTE sant om dess operand är falsk, och falsk om dess operand är sant. Till exempel:

NOT Document.Consignee = Document.Shipper

Drift OCH

OCH -operatören returnerar sant om båda operanderna är sanna och falska om en av operanderna är falska. Till exempel:

Document.Consignee = Document.Shipper AND Document.Consignee = & Motpart

ELLER drift

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

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

Sammanlagda funktioner

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

Belopp

Funktionen Summa aggregat beräknar summan av uttrycksvärdena som skickas till den som ett argument för alla detaljposter. Till exempel:

Belopp (Sales.AmountTurnover)

Kvantitet

Count-funktionen beräknar antalet icke-nullvärden. Till exempel:

Antal (försäljning. Entreprenör)

Antal olika

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

Kvantitet (Olika försäljningar. Entreprenör)

Maximal

Funktionen får det maximala värdet. Till exempel:

Maximalt (saldon. Kvantitet)

Minimum

Funktionen får minimivärdet. Till exempel:

Lägsta (saldon. Kvantitet)

Genomsnittet

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

Genomsnitt (saldo.belopp)

Övrig verksamhet

Operation VÄLJ

Operation Select är utformad för att välja ett av flera värden när vissa villkor är uppfyllda. Till exempel:

Val när belopp> 1000 Sedan belopp annat 0 slut

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

Om typerna av de jämförda värdena skiljer sig från varandra, bestäms förhållandet mellan värdena baserat på prioriteringen av typerna:

  • NULL (lägsta);
  • Boolean;
  • Siffra;
  • Datum;
  • Linje;
  • Referenstyper

Förhållandena mellan de olika referenstyperna bestäms utifrån referensnumren i tabellerna som motsvarar en viss typ.

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

  • Boolsk typ har SANT -värde större än FALSKT värde.
  • nummertypen har de vanliga jämförelsesreglerna för siffror;
  • datumtypen har tidigare datum mindre än senare;
  • för strängtyp - strängjämförelser i enlighet med de fastställda nationella egenskaperna hos databasen;
  • referenstyper jämförs baserat på deras värden (rekordnummer, etc.).

Arbetar med ett NULL -värde

Varje operation där värdet på en av operanderna är NULL kommer att resultera i NULL.

Det finns undantag:

  • AND-operationen returnerar endast NULL om ingen av operanderna är False;
  • OR -operationen returnerar NULL endast om ingen av operanderna är True.

Operationsprioriteringar

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

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

Datasammansättningssystemets uttrycksspråkfunktioner

Beräkna

Funktionen Beräkna är utformad för att utvärdera ett uttryck inom ramen för en grupp. Funktionen har följande parametrar:

  • Uttryck. Typ String. Innehåller ett beräknat uttryck;
  • Gruppering. Skriv sträng. Innehåller namnet på gruppen i det sammanhang som uttrycket ska utvärderas. Om en tom sträng används som ett grupperingsnamn kommer beräkningen att utföras inom ramen för den aktuella grupperingen. Om GeneralTotal -strängen används som gruppnamn kommer beräkningen att utföras i sammanhanget av totalsumman. Annars kommer beräkningen att utföras inom ramen för den överordnade grupperingen med detta namn. Till exempel:
Belopp (Sales.Turnover Belopp) / Beräkna ("Belopp (Sales.Turnover Belopp)", "TotalTotal")

V detta exempel som ett resultat får du förhållandet mellan beloppet för fältet "Sales.SumTurnover" i gruppposten till summan av samma fält i hela layouten.

Nivå

Funktionen är avsedd att få den aktuella inspelningsnivån.

Nivå()

NumberOrder

Få nästa sekvensnummer.

Nummerordning ()

NumberOrderInGroup

Returnerar nästa sekvensnummer i den aktuella gruppen.

NumberOrderInGrouping ()

Formatera

Hämta den formaterade strängen för passerat värde.

Formatsträngen ställs in enligt formatsträng 1C: Företag.

Alternativ:

  • Menande;
  • Formatera sträng.

Format (Invoices.SumDoc, "NPT = 2")

Periodens början

Alternativ:

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

Periodens början (DateTime (2002, 10, 12, 10, 15, 34), "månad")

Resultat:

01.10.2002 0:00:00

Slut på period

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

Alternativ:

  • Datum. Skriv datum. Angivet datum;
  • Periodtyp. Typ String. Innehåller ett av värdena:
    • Minut;
    • Dag;
    • En vecka;
    • Månad;
    • Fjärdedel;
    • Årtionde;
    • Ett halvår.

EndPeriod (DateTime (2002, 10, 12, 10, 15, 34), "vecka")

Resultat:

13.10.2002 23:59:59

Lägg till i datum

Funktionen är avsedd för att lägga till ett visst värde till datumet.

Alternativ:

  • Förstoringstyp. Typ String. Innehåller ett av värdena:
    • Minut;
    • Dag;
    • En vecka;
    • Månad;
    • Fjärdedel;
    • Årtionde;
    • Ett halvår.
  • Värde - hur mycket datumet ska ökas. Typnummer. Bråkdelen ignoreras.

Lägg till datum (DateTime (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. Ursprungligt datum;
  • Uttryck. Skriv datum. Draget datum;
  • Skillnadstyp. Typ String. Innehåller ett av värdena:
    • Andra;
    • Minut;
    • Dag;
    • Månad;
    • Fjärdedel;

DIFFERENCE (DATE TIME (2002, 10, 12, 10, 15, 34), DATE TIME (2002, 10, 14, 9, 18, 06), "DAY")

Resultat:

Substrä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 ska extraheras;
  • Placera. Typnummer. Positionen för det tecken från vilket delsträngen som ska extraheras från strängen börjar;
  • Längd. Typnummer. Längden på delsträngen att välja.

SUBSTRATE (Contractors.Adress, 1, 4)

Linjelängd

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

Parameter:

  • Linje. Skriv sträng. Strängen som ska anges i längd.

Sträng (Accounts.Address)

År

Denna funktion är utformad för att extrahera året från ett värde av datumtypen.

Parameter:

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

ÅR (fakturadatum)

Fjärdedel

Denna funktion är avsedd att extrahera ett kvartsnummer från ett värde av typen Datum. Kvartalsnumret ligger normalt i intervallet från 1 till 4.

Parameter

  • Datum. Skriv datum. Det datum då kvartalet bestäms
KVARTAL (Sändningsdatum)

Månad

Denna funktion är avsedd att extrahera månadens nummer från ett värde av datumtypen. Månadsnumret ligger normalt i intervallet från 1 till 12.

  • Datum. Skriv datum. Det datum då månaden bestäms.
MÅNAD (Fakturadatum)

Årets dag

Denna funktion är utformad för att få dagen på året från ett värde av datumtypen. Årets dag ligger normalt i intervallet från 1 till 365 (366).

  • Datum. Skriv datum. Det datum då årets dag bestäms.
ÅRETS DAG (Fakturadatum)

Dag

Denna funktion är avsedd att få dagen i månaden från ett värde av typen Datum. Månadens dag ligger normalt i intervallet från 1 till 31.

  • Datum. Skriv datum. Det datum då dagen i månaden bestäms.
DAG (fakturadatum)

En vecka

Denna funktion är avsedd att få antalet veckor på året från ett värde av datumtypen. Veckorna på året är numrerade från och med 1.

  • Datum. Skriv datum. Datumet för vilket veckosiffrorna bestäms.
VECKA (fakturadatum)

Veckodag

Denna funktion är avsedd att få veckodagen från ett värde av datumtypen. Veckodagen är normalt mellan 1 (måndag) och 7 (söndag).

  • Datum. Skriv datum. Datumet för vilket veckodagen bestäms.
Veckans dag (fakturadatum)

Timme

Denna funktion är avsedd att få timmen på dagen från ett värde av datumtypen. Dagens timme varierar från 0 till 23.

  • Datum. Skriv datum. Datumet för vilket timmen på dagen bestäms.
HOUR (fakturadatum)

Minut

Denna funktion är utformad för att få minutens minut från ett värde av datumtypen. Timmens minut varierar från 0 till 59.

  • Datum. Skriv datum. Datumet för vilket minutens minut bestäms.
MINUTE (fakturadatum)

Andra

Denna funktion är avsedd att hämta sekunden i minuten från ett värde av typen Datum. Den andra i minuten varierar från 0 till 59.

  • Datum. Skriv datum. Datumet för vilket minutens sekunder bestäms.
ANDRA (fakturadatum)

uttrycka

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

Alternativ:

  • Uttrycket som ska konverteras;
  • Typindikation. Typ String. Innehåller en typsträng. Till exempel "Antal", "Sträng", etc. Förutom primitiva typer given sträng kan innehålla tabellnamnet. I detta fall kommer ett försök att uttryckas till en hänvisning till den angivna tabellen.

Express (Data.Props1, "Number (10.3)")

JaNull

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

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

YesNULL (Belopp (Sales.SumTurnover), 0)

Gemensamma modulfunktioner

Datasammansättningens motoruttryck kan innehålla anrop till globala funktioner gemensamma moduler konfiguration. Ingen ytterligare syntax krävs för att anropa sådana funktioner.

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

Observera att användningen av funktionerna för vanliga moduler endast är tillåten när motsvarande parameter för datasammansättningsprocessorn är specificerad.

Dessutom kan funktionerna i vanliga moduler inte användas i anpassade fältuttryck.

Mot bakgrund av den kommande versionen av 8.2.14 kommer jag att försöka beskriva några av de nya funktionerna i datasammansättningssystemet.

Öppna datasammansättningsschemat, gärna i en extern rapport, för att göra det lättare att redigera.

Vi lägger till en datamängd av frågetypen och skriver en enkel fråga, antingen manuellt eller med hjälp av frågekonstruktorn:

1. Ställ in en begäran i ACS.

2. Konfigurera de beräknade fälten i ACS

3. Utför datakompositionen på fliken Inställningar

4. Lansering av 1C Enterprise 8.2.14. Vi öppnar rapporten. Vi formar, vi får.

Beskrivning av själva de nya funktionerna:

1. Det aktuella datumet ()

Returnerar systemdatumet. När layouten för layouten är länkad, i alla uttryck som finns i layouten, ersätts funktionen CurrentDate () med värdet för det aktuella datumet.

2. RÄKNA UTTRYCK ()

Syntax:

Utvärdera uttryck (<Выражение>, <Группировка>, <ОбластьВычисления>, <Начало>, <Конец>, <Сортировка>, <ИерархическаяСортировка>, <ОбработкаОдинаковыхЗначенийПорядка>)

Beskrivning:

Funktionen är utformad för att utvärdera ett uttryck inom ramen för någon gruppering.

Funktionen tar hänsyn till valet av grupperingar, men tar inte hänsyn till hierarkiska val.

Funktionen kan inte tillämpas på en gruppering i gruppvalet för denna gruppering. Till exempel, i valet av nomenklaturgruppen kan du inte använda uttrycket CalculateExpression ("Sum (SumTurnover)", "TotalTotal")> 1000. Men ett sådant uttryck kan användas i ett hierarkiskt urval.

Om slutposten föregår startposten, anses det att det inte finns några poster för att beräkna detaljerade data och beräkna aggregerade funktioner.

Vid beräkning av intervalluttryck för totalsumman (parametern Gruppering är inställd på Allmänt totalt) antas det att det inte finns några poster för beräkning av detaljerade data och beräkning av aggregerade funktioner.

Layoutkomponisten ersätter EvaluateExpression -funktionen med NULL när det genererar ett uttryck för EvaluateExpression -funktionen, om ordningsuttrycket innehåller fält som inte kan användas i grupperingen.

alternativ

<Выражение>

Typ: String. Uttrycket att utvärdera.

<Группировка>

Typ: String. Innehåller namnet på gruppen i det sammanhang som uttrycket ska utvärderas. Om en tom sträng används som ett grupperingsnamn, kommer beräkningen att utföras i samband med den aktuella grupperingen. Om raden GeneralTotal används som grupperingsnamn kommer beräkningen att utföras i samband med totalsumman. Annars kommer beräkningen att utföras i samband med föräldragruppen med samma namn.

Till exempel:

Belopp (Sales.SumTurnover) / Beräkna ("Belopp (Sales.SumTurnover)", "TotalTotal")

I det här exemplet blir resultatet förhållandet mellan beloppet för Sales.SumTurnover -fältet i grupperingsposten och mängden av samma fält i hela layouten;

<ОбластьВычисления>

Typ: Sträng. Parametern kan ta följande värden:

  • Totalt - uttrycket utvärderas för alla grupperingsposter.
  • Hierarki - uttrycket utvärderas för den överordnade hierarkiska posten, om det finns en, och för hela gruppen, om det inte finns någon överordnad hierarkisk post.
  • Gruppering - uttrycket utvärderas för den aktuella grupperingsposten.
  • GroupingNoResource - vid utvärdering av en funktion för en grupppost efter resurser beräknas uttrycket för den första gruppposten för den ursprungliga grupperingen.

Vid beräkning av funktionen EvaluateExpression () med GroupNoResource -värdet för gruppposter som inte är grupperade efter resurs beräknas funktionen på samma sätt som den skulle beräknas om parametervärdet var lika med Grouping.

Kompositören av datakompositionmallen, vid generering av datakompositionmallen, vid visning av resursfältet genom vilken grupperingen utförs i mallen, placerar ett uttryck beräknat med funktionen EvaluateExpression (), som anger parametern GroupNoResource. För resten av resurserna grupperas de vanliga resursuttrycken efter resurs.

<Начало>

Typ: String. Anger med vilken post fragmentet ska startas, i vilket man ska beräkna uttryckets aggregerade funktioner och från vilken post värdena för fälten utanför aggregatfunktionerna ska beräknas. Värdet kan vara något av följande:

<Конец>

Typ: Sträng. Indikerar till vilken post som ska fortsätta fragmentet där uttryckets aggregerade funktioner ska utvärderas. Värdet kan vara något av följande:

  • Först (första). Du måste hämta den första grupperingsposten. Efter ordet inom parentes kan du ange ett uttryck, vars resultat kommer att användas som en förskjutning från början av gruppen. Det resulterande värdet måste vara ett heltal större än noll. Till exempel, First (3) - få den tredje posten från början av grupperingen.

Om den första posten ligger utanför grupperingsgränserna, anses det att det inte finns några poster. Om det till exempel finns tre poster och du vill få First (4), anses det att det inte finns några poster.

  • Sista (sista). Du måste få den senaste grupperingsrekordet. Ett uttryck kan anges efter ordet inom parentes, vars resultat kommer att användas som en förskjutning från slutet av grupperingen. Det resulterande värdet måste vara ett heltal större än noll. Till exempel Last (3) - hämtar den tredje posten från slutet av grupperingen.

Om den sista posten ligger utanför grupperingsgränserna, anses det att det inte finns några poster. Om det till exempel finns tre poster och du vill få den sista (4), anses det att det inte finns några poster.

  • Tidigare. Du måste hämta den tidigare grupperingsposten. Ett uttryck kan anges efter ordet inom parentes, vars resultat kommer att användas som en förskjutning tillbaka från den aktuella grupperingsposten. Till exempel föregående (2) - hämta det föregående från föregående post.

Om den föregående posten går utöver grupperingen (till exempel för den andra grupperingsposten måste du hämta föregående (3), då erhålls den första gruppposten.

När du hämtar den föregående posten för grupperingstotalen anses den första posten erhållen.

  • Nästa (Nästa). Du måste få nästa grupperingspost. Ett uttryck kan anges efter ordet inom parentes, vars resultat kommer att användas som en förskjutning framåt från den aktuella grupperingsposten. Till exempel Nästa (2) - hämta nästa från nästa post.

Om nästa post går ut ur gruppen, anses det att det inte finns några poster. Om det till exempel finns tre poster och Next () tas emot för den tredje posten, finns det inga poster.

När nästa post tas emot för grupperingssumman anses det inte finnas någon post.

  • Ström (Ström). Du måste få det aktuella rekordet.

När du hämtar för grupperingstotalen erhålls den första posten.

  • Gränsvärde. Behovet av att få ett rekord specificerat värde... Efter ordet BoundedValue inom parentes måste du ange ett uttryck med vars värde du vill starta fragmentet, det första beställningsfältet.

Som en post kommer den första posten att erhållas, vars värde i beställningsfältet är större än eller lika med det angivna värdet. Till exempel, om fältet Period används som beställningsfält och det har värdena 01/01/2010, 01/02/2010, 01/03/2010 och du vill få ett BoundingValue (DateTime (2010) , 1, 15)), så får du en post med datum 01.02.2010.

<Сортировка>

Typ: String. Listar uttryck, separerade med kommatecken, som beskriver ordningsreglerna. Om det inte anges utförs beställningen på samma sätt som för den gruppering som uttrycket utvärderas för. Efter varje uttryck kan du ange sökordet Stigande (för stigande ordning), Fallande (för fallande ordning) och Auto-ordning (för att ordna de refererade fälten med de fält som du vill beställa det refererade objektet). Ordet Auto-arrangera kan användas med både stigande och fallande.

<ИерархическаяСортировка>

Typ: String. Samma som sortering. Används för att ordna hierarkiska poster. Om det inte anges genererar layoutbyggaren beställningen enligt den ordning som anges i parametern Sortera.

<ОбработкаОдинаковыхЗначенийПорядка>

Typ: Sträng. Anger regeln för bestämning av föregående eller nästa post om det finns flera poster med samma beställningsvärde:

  • Separat betyder att en sekvens av ordnade poster används för att definiera föregående och nästa post. Standardvärde.
  • Tillsammans betyder att de tidigare och nästa posterna bestäms utifrån värdena på ordningsuttrycken.

Till exempel, om den resulterande sekvensen är ordnad efter datum:

datum Fullständiga namn Menande
1 01 januari 2001 Ivanov M. 10
2 2 januari 2001 Petrov S. 20
3 3 januari 2001 Sidorov R. 30
4 04 januari 2001 Petrov S. 40

Om parametervärdet är Separat:

Den föregående posten till post 3 blir post 2.

§ om det beräknade fragmentet definieras som ström, ström (respektive start- och slutparametrar), så kommer posten för post 2 att bestå av en post 2. Expression Beräkna uttryck (“Summa (värde)”, ström, ström) kommer vara lika med 20.

Om parametervärdet är Tillsammans:

Den föregående posten till post 3 blir post 1.

§ om det beräknade fragmentet är definierat som ström, ström (respektive start- och slutparametrar), så kommer posten för post 2 att bestå av poster 2 och 3. Expression Beräkna uttryck (“Summa (värde)”, ström, ström) kommer att vara lika med 50.

När du anger värdet för parametern som är lika med Tillsammans kan du inte ange en förskjutning för första, sista, föregående, nästa position i parametrarna Start och Slut.

Beräkna uttryck ("Sum (SumTurnover)", "First", "Current")

Om du vill få grupperingsvärdet på föregående rad kan du använda följande uttryck:

Utvärdera uttryck ("Kurs", "Föregående")

Lista ny funktioner:

EvaluateExpressionGroupedArray(<Выражение>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funktionen returnerar en matris, vars element innehåller resultatet av utvärdering av uttrycket som ska grupperas efter det angivna fältet.

EvaluateExpressionGroupedValuesTable(<Выражения>, <ВыражениеПолейГруппировки>, <ОтборЗаписей>, <ОтборГруппировок>) –

Funktionen returnerar en tabell med värden, där varje rad innehåller resultatet av utvärdering av uttryck för gruppering efter det angivna fältet

Värdefylld(<Выражение>) - Returnerar True om värdet skiljer sig från värdet av denna typ som standard, icke-NULL, icke-null, icke-odefinierad. För booleska värden utförs en nollkontroll. För strängar utförs en kontroll för frånvaron av tecken som inte är blanksteg

Formatera(<Выражение>, <Форматная строка>) - Hämta den formaterade strängen för det godkända värdet. Formatsträngen ställs in i enlighet med formatsträngen för 1C: Enterprise-systemet.

Substräng(<Выражение>, <Начальные символ>, <ДлинаПодстроки>) - Denna funktion är utformad för att extrahera en delsträng från en sträng.

Linjelängd(<Выражение>) - Funktionen är utformad för att bestämma strängens längd. Parameter är ett strängtypsuttryck

Linje(<Выражение>) - Om en array skickas som en parameter, returnerar funktionen en sträng som innehåller strängrepresentationer för alla element i matrisen, separerade med symboler “; ”. Om en tabell med värden skickas som en parameter returnerar funktionen en sträng som innehåller strängrepresentationer för alla rader i tabellen med värden och cellrepresentationerna för varje rad separeras med “; “, Och strängar - med en radmatningskaraktär. Om något element har en tom strängrepresentation visas strängen istället för dess representation<Пустое значение>.

Logga in som student

Logga in som elev för att komma åt skolmaterial

Datasammansättningssystem 1C 8.3 för nybörjare: överväga resultaten (resurser)

Målet med denna handledning kommer att vara:

  • Skriv en rapport som visar en lista över livsmedel (matkatalog), deras kaloriinnehåll och smak.
  • Gruppera produkter efter färg.
  • Lär dig mer om sammanfattning (resurser) och beräknade fält.

Skapar en ny rapport

Som på de tidigare lektionerna öppnar vi basen " Deli"i konfiguratorn och skapa ny rapport genom menyn " Fil"->"Ny...":

Typ av dokument - extern rapport:

I form av inställning av rapporten, skriv namnet " Lektion 3"och tryck på knappen" Öppet schema för datakomposition":

Lämna standardschemans namn och klicka på " Redo":

Lägga till en begäran via konstruktören

På " Datauppsättning"skjuta på grön plustecken och välj objektet " Lägg till dataset - fråga":

Istället för att skriva förfrågningstexten manuellt kör vi igen fråga konstruktör:

På " Tabeller"dra bordet" Mat"från den första kolumnen till den andra:

Välj från tabellen " Mat"fält som vi kommer att begära. För att göra detta, dra fälten" namn", "Smak", "Färg"och" Kaloriinnehåll"från den andra kolumnen till den tredje:

Det blev så här:

Tryck på knappen " OK"- begäranstexten genererades automatiskt:

Vi bildar inställningarna för presentationen av rapporten

Gå till bokmärket " inställningar"och klicka på trollspö, att ringa inställningar konstruktör:

Välj typ av rapport " Lista... "och tryck på knappen" Ytterligare":

Dra från den vänstra kolumnen till de högra fälten som visas i listan och klicka på " Ytterligare":

Dra från den vänstra kolumnen till höger marginal " Färg"- det kommer att vara gruppering rader i rapporten. Klick " OK":

Och här är resultatet av konstruktörens arbete. Hierarkin i vår rapport:

  • rapport som helhet
  • gruppera "Färg"
  • detaljerade poster - rader med matnamn

Spara rapporten (knapp diskett) och utan att stänga i konfiguratorn öppnar vi den omedelbart i användarläge. Det blev så här:

Ändra ordningen på kolumnerna

Men låt oss ändra ordningen kolumner (upp- och nedpilar) så att det ser ut som på bilden nedan:

Låt oss spara rapporten och öppna den igen i användarläge:

Jättebra, så mycket bättre.

Summering (mängd) efter kaloriinnehåll

Det skulle vara trevligt att sammanfatta kaloriinnehållet i livsmedel efter grupp. För att se summan av kalorierna i alla livsmedel, säg vit eller gul. Eller ta reda på det totala kaloriinnehållet för alla produkter i databasen.

För detta finns det en mekanism för att beräkna resurser.

Gå till " Resurser"och dra fältet" Kaloriinnehåll"(vi ska sammanfatta det) från den vänstra kolumnen till höger.

Välj i så fall uttrycket i fältet från listrutan " Belopp (kalorier)", eftersom summan kommer att vara summan av alla element som ingår i totalen:

Vi sparar och genererar en rapport:

Vi har nu summor för var och en av grupperna och för rapporten som helhet.

Sammanfattning (genomsnitt) efter kaloriinnehåll

Låt oss nu göra det så att en kolumn till visas genomsnitt kaloriinnehåll i produkter efter grupper och i allmänhet enligt rapporten.

Du kan inte röra vid den redan befintliga "Kalori" -kolumnen - den totala summan visas därför redan i den låt oss få ett annat fält vilket kommer bli exakt kopia fält "Kaloriinnehåll".

För att skapa ett sådant "virtuellt" fält kommer vi att använda mekanismen beräknade fält.

Gå till bokmärket " Beräknade fält"och klicka grön plustecken:

I en kolumn" Datasökväg"skriv namnet på det nya fältet ( tillsammans, utan mellanslag). Låt det heta " Genomsnittligt kaloriinnehåll"och i kolumnen" Uttryck"vi skriver namnet på ett befintligt fält, utifrån vilket det nya fältet kommer att beräknas. Vi skriver där" Kaloriinnehåll". Högtalare" Rubrik"kommer att fyllas i automatiskt.

Vi har lagt till ett nytt fält (" Genomsnittligt kaloriinnehåll"), men det kommer inte att visas i rapporten av sig själv - du måste antingen ringa inställningar konstruktör("trollstav") eller lägg till det här fältet manuellt.

Låt oss göra andra sätt. För att göra detta, gå till " inställningar", välj" Rapportera"(vi vill ju lägga till fältet som helhet i rapporten), välj fliken nedan" Valda fält"och dra fältet" Genomsnittligt kaloriinnehåll"från vänster kolumn till höger:

Det blev så här:

Vi sparar och genererar en rapport:

Fältet har dykt upp och vi ser att dess värden är värdena för fältet "Kaloriinnehåll". Bra!

För att göra detta kommer vi återigen att använda den redan bekanta mekanismen Resurser(sammanfattande). Gå till bokmärket " Resurser"och dra fältet" Genomsnittligt kaloriinnehåll"från vänster kolumn till höger:

Dessutom i kolumnen " Uttryck"välja" Genomsnitt (genomsnittlig kalori)":

Vi sparar och genererar en rapport:

Vi ser att för grupper, det vill säga för varje färg, och för rapporten som helhet, beräknades medelvärdet helt korrekt. Men det är extra poster för enskilda produkter (inte för grupper) som vi vill ta bort från rapporten.

Vet du varför de dök upp (värden inte per grupp)? För när vi lade till fältet " Genomsnittligt kaloriinnehåll"i rapportinställningarna, i det andra steget vi valde hela rapporten som helhet och det här nya fältet kom in i elementet " Detaljerad uppgifter".

Låt oss åtgärda felet. För att göra detta, låt oss gå tillbaka till " inställningar", Välj" Detaljerade register"först uppifrån (steg 2) och sedan" Detaljerade register"nedan (steg 3), gå till fliken" Vald fält"och vi kommer att se ett element i dess högra kolumn" Bil".

Element " Bil"är inte ett fält. Det här är flera fält som kommer hit automatiskt baserat på de högre inställningarna.

För att se vilka dessa fält är - klicka på " Bil" höger knappen och välj objektet " Bygga ut":

Element " Bil"utvidgas till följande fält:

Och här är vårt fält " Genomsnittligt kaloriinnehåll"som kom hit från varan" Rapportera"när vi släpade dit honom. Bara ta av kryssrutan bredvid detta fält för att ta bort dess utdata.

Datasammansättningsschema (1C ACS)- en bekväm konstruktör att skapa i mjukvaruprodukter 1C: Enterprise av komplexa rapporter som bidrar till utveckling och spårning av produktionsautomatisering, så att du kan göra dem så flexibla och vackra som möjligt på minsta tid. Ett ytterligare plus för Data Composition Scheme (1C ACS) är den automatiska genereringen av ett kontrollerat rapportformulär, och med den vidare utvecklingen av denna riktning är det viktig faktor när man väljer metod för att utveckla en rapport. Men på grund av komplexiteten i strukturen för datakompositionsschemat (1C ACS) och ett stort antal inställningar leder det ofta till en längre utveckling av rapporten än genom "output form designer". Därför måste en 1C -programmerare förstå alla krångligheterna i Data Composition Scheme (1C ACS) för att ytterligare påskynda utvecklingstiden för att generera rapporter.

Låt oss analysera de tre första flikarna i schemat för datasammansättning (1C ACS) - datauppsättning, datauppsättningslänkar och beräknade fält.

Datauppsättning i 1C ACS

Datauppsättningen innehåller möjligheten skapande av tre objekt - fråga, objekt och förening, låt oss bo på var och en av dem mer i detalj:

Det är en vanlig fråga som bildas genom att klicka på knappen Fråkonstruktör. Om flaggan för Autoslutförande är inställd, kommer alla valda detaljer automatiskt att hamna i datamängdsfälten. Det är också möjligt att anpassa fyllningen av fälten i begäran på fliken Datasammansättning, där det finns tre flikar:

Tabeller, här väljer vi de tabeller som kommer att delta i bildandet av rapporten, vanligtvis väljs standarddata, eftersom vi på fliken Tabeller och fält redan har valt de dokument, referensböcker, register vi behöver ...

Fält, här väljer vi de objekt som ska ingå i rapporten, barnflaggan indikerar om det kommer att finnas tillgängliga underelement för objektet eller inte, det är logiskt att flaggan inte kan ställas in på True för sträng, numeriska och liknande data .

Villkor, här väljer vi de objekt som kan användas under förhållandena i ACS.

En del av arbetet görs i datakompositionschemat, en del av det programmatiskt, låt oss titta på ett enkelt exempel:

Först kommer vi att skapa en layout för datakompositionsschemat för dokumentet och ge ACS ett namn (till exempel: 1C ACS), skapa ett objekt i det och sedan fylla i fälten, till exempel har vi dokumentet tabelldel varor med detaljer - nomenklatur, kvantitet och pris.

Låt oss lägga till tre fält och fyll i fältet för varje kolumn med namnet på detaljerna, resten av kolumnerna fylls i automatiskt:

Låt oss skapa en knapp på dokumentformuläret, beskriv mekanismen för arbete i hanterade formulär:

& OnClient

Procedurutskrift ()

OurReport = PrintOnServer (); // ring funktionen på servern

OurReport.Show (); // visa den genererade rapporten

Slutet av proceduren

& På servern

PrintOnServer () funktion

DocumentObject = FormAvailableValue ("Object");

//vi lägger tabellavsnittet Varor i strukturen med namnet GoodsSKD på samma sätt som vi i själva ACS angav namnet på objektet som innehåller data

Dataset = Ny struktur;

SetData.Insert ("GoodsSKD", DocumentObject.Goods);

//få vår layout och ställ in standardinställningarna så att alla rapportutmatningsinställningar tas från vår layout

OurMakeup = DocumentObject.GetMakeup (“SKD”);

Settings = OurLayout.Default Settings;

//skapa en datakompositionslayout med våra inställningar

Layout Composer = New DataComposition Layout Composer;

LayoutComposition = LayoutComposer.Execute (OurLayout, Settings);

//utför datasammansättning med vår dataset

DataComposition Processor = Ny DataComposition Processor;

DataCompositionProcessor.Initialize (LayoutDataset);

//form kalkylarkdokument och visa vår rapport i den

ReportDocument = Nytt SpreadsheetDocument;

OutputProcessor = New OutputProcessorDataCompositionResultInTableSheetDocument;

OutputProcessor.SetDocument (ReportDoc);

OutputProcessor.Output (DataComposition Processor);

Återlämnande av rapportdokumentet;

EndFunction

Om du vill kan du få områdena och alla andra layouter och även visa i den här rapporten, till exempel har vi en typisk layout för bildandet av en betalning och en rubrik är mycket väl skapad i den, så att vi gör det gör inte onödigt arbete, vi får bara först layouten, visar rubriken, sedan kommer vi att generera och visa vår rapport om ACS.

O enande

Vi kan lägga in våra frågor och objekt i den, men till skillnad från en länk lägger den helt enkelt till tabeller till varandra, det vill säga om vi länkar två identiska tabeller hamnar vi med en, och när den kombineras kommer den att fördubblas, betrakta en enkel exempel:

Vi har tabeller:

Vid kommunikation får vi:

Och när du kombinerar:

Låt oss nu överväga fyllningen av kolumner i datauppsättningar (vi kommer att hoppa över några av dem, eftersom de är relaterade till andra flikar, vi kommer att återkomma till dem i framtida artiklar):

- fält, ange det allmänna namnet på rekvisitan;

­­- sätt, anger vi namnet på det krav som vi kommer att hänvisa till det i ACS, till exempel i Beräknade fält;

- rubrik, ange namnet på variabeln som ska visas i rapporten;

- fältbegränsning, ange tillgängligheten för detta krav;

- Begränsning av rekvisit, vi anger tillgängligheten för underordnade element, det är viktigt att om tillgängligheten av detaljer anges, då är fältet självt tillgängligt, det är möjligt att denna mekanik kommer att ändras i framtida utgåvor;

- uttryck genom vilket representationen av fältet utvärderas, det är bekvämt att använda när vi behöver ändra lite utdata från detaljerna, till exempel behöver vi det efter namnet nomenklatur drogs tillbaka lager, på vilken den finns, fyll sedan i följande: Nomenklatur + "i lager" + Lager. Jag upprepar att adressen till kraven utförs med det namn som anges i kolumnen sätt;

- uttrycksordning, en bekväm mekanism för att ställa in beställningen av rapporten, där villkoret kan ställas in manuellt, i likhet med föregående punkt, men som praxis visar fungerar denna mekanism ofta inte som vi skulle vilja, och jag råder dig att använda standarden sortering;

- värde typ, typen av värde för variabeln anges, det är nödvändigt att fylla i om du ska använda nästa fält;

- tillgängliga värden, fungerar bara när det är fyllt värde typ, öppna fyllningsformuläret och i kolumnen Menande vi anger elementet som behöver ändras, beroende på typ kan det vara fördefinierade objekt eller numeriska, till exempel attribut, ha enkla värden, i underkastelse vi anger vad vi behöver ändra, ett exempel på en boolsk typ:

- registreringstandardinställning fältets format, liknande inställningen i hanterade formulär, låter dig mer exakt och vackert anpassa utmatningen från vissa rekvisita.

Datauppsättningslänkar i 1C ACS

Endast vänster gå med, enligt en princip liknande anslutningar i förfrågningar, i kommunikationskälla vi anger huvudtabellen för anslutningen, i mottagare ytterligare. V uttryckskälla och uttrycksmottagare vi anger de detaljer med vilka anslutningen kommer att ske. Vi kommer att överväga resten av kolumnerna mer detaljerat när vi analyserar fliken. alternativ... Om inte ytterligare kommunikation med parametrar, rekommenderas att göra anslutningen i begäran, detta kommer att påskynda rapporten.

Mot bakgrund av den kommande versionen av 8.2.14 kommer jag att försöka beskriva några av de nya funktionerna i datasammansättningssystemet.

Öppna datasammansättningsschemat, gärna i en extern rapport, för att göra det lättare att redigera.

Vi lägger till en datamängd av frågetypen och skriver en enkel fråga, antingen manuellt eller med hjälp av frågekonstruktorn:

1. Ställ in en begäran i ACS.

2. Konfigurera de beräknade fälten i ACS

3. Utför datakompositionen på fliken Inställningar

4. Lansering av 1C Enterprise 8.2.14. Vi öppnar rapporten. Vi formar, vi får.

Beskrivning av själva de nya funktionerna:

1. Det aktuella datumet ()

Returnerar systemdatumet. När layouten för layouten är länkad, i alla uttryck som finns i layouten, ersätts funktionen CurrentDate () med värdet för det aktuella datumet.

2. RÄKNA UTTRYCK ()

Syntax:

Utvärdera uttryck (,)

Beskrivning:

Funktionen är utformad för att utvärdera ett uttryck inom ramen för någon gruppering.

Funktionen tar hänsyn till valet av grupperingar, men tar inte hänsyn till hierarkiska val.

Funktionen kan inte tillämpas på en gruppering i gruppvalet för denna gruppering. Du kan till exempel inte använda uttrycket i valet av grupperingens nomenklatur CalculateExpression ("Sum (SumTurnover)", "TotalTotal")> 1000... Men ett sådant uttryck kan användas i hierarkiskt urval.

Om slutposten föregår startposten, anses det att det inte finns några poster för att beräkna detaljerade data och beräkna aggregerade funktioner.

Vid beräkning av intervalluttryck för totalsumman (parametern Gruppering är inställd på Allmänt totalt) antas det att det inte finns några poster för beräkning av detaljerade data och beräkning av aggregerade funktioner.

Layoutlinker när ett funktionsuttryck genereras Utvärdera uttryck, om ordningsuttrycket innehåller fält som inte kan användas i grupperingen, ersätter funktionen Utvärdera uttryckNULL.

alternativ

Sorts: Linje... Uttrycket att utvärdera.

Sorts: Linje... Innehåller namnet på gruppen i det sammanhang som uttrycket ska utvärderas. Om en tom sträng används som ett grupperingsnamn, kommer beräkningen att utföras i samband med den aktuella grupperingen. Om raden GeneralTotal används som grupperingsnamn kommer beräkningen att utföras i samband med totalsumman. Annars kommer beräkningen att utföras inom ramen för den överordnade grupperingen med detta namn.

Till exempel:

Belopp (Sales.SumTurnover) / Calculate ("Belopp (Sales.SumTurnover)", "TotalTotal")

I det här exemplet blir resultatet förhållandet mellan summan över fältet Sales.AmountTurnover gruppera poster till summan av samma fält i hela layouten;

Sorts: Linje... Parametern kan ta följande värden:

· Det övergripande resultatet- Uttrycket kommer att utvärderas för alla grupperingsposter.

· Hierarki- Uttrycket kommer att utvärderas för den överordnade hierarkiska posten, om någon, och för hela grupperingen, om det inte finns någon överordnad hierarkisk post.

· Gruppering- uttrycket kommer att utvärderas för gruppens aktuella grupprekord.

· GroupingNonResource- vid beräkning av en funktion för en grupppost med resurser beräknas uttrycket för den första gruppposten för den ursprungliga grupperingen.

Vid beräkning av funktionen EvaluateExpression () med innebörden GroupingNonResource för gruppposter som inte är grupperingar efter resurser beräknas funktionen på samma sätt som den skulle beräknas om parametervärdet var lika med värdet Gruppering.

Kompositören av datakompositionmallen, vid generering av datakompositionmallen, vid visning av resursfältet genom vilken grupperingen utförs i mallen, placerar ett uttryck beräknat med funktionen EvaluateExpression () , specificerar parametern GroupingNonResource... För resten av resurserna grupperas de vanliga resursuttrycken efter resurs.

Sorts: Linje... Anger med vilken post fragmentet ska startas, i vilket man ska beräkna uttryckets aggregerade funktioner och från vilken post värdena för fälten utanför aggregatfunktionerna ska beräknas. Värdet kan vara något av följande:

· Först

· Sista

· Tidigare

· Nästa (Nästa)

· Nuvarande

· Begränsande värde(BoundaryValue) Begränsande värde

Sorts: Linje... Indikerar till vilken post som ska fortsätta fragmentet där uttryckets aggregerade funktioner ska utvärderas. Värdet kan vara något av följande:

· Först... Du måste hämta den första grupperingsposten. Efter ordet inom parentes kan du ange ett uttryck, vars resultat kommer att användas som en förskjutning från början av gruppen. Det resulterande värdet måste vara ett heltal större än noll. Till exempel, First (3) - få den tredje posten från början av grupperingen.

Om den första posten ligger utanför grupperingsgränserna, anses det att det inte finns några poster. Till exempel, om det finns tre poster, och du vill få den första (4), anses det att det inte finns några poster.

· Sista... Du måste få den senaste grupperingsrekordet. Ett uttryck kan anges efter ordet inom parentes, vars resultat kommer att användas som en förskjutning från slutet av grupperingen. Det resulterande värdet måste vara ett heltal större än noll. Till exempel Last (3) - hämtar den tredje posten från slutet av grupperingen.

Om den sista posten ligger utanför grupperingsgränserna, anses det att det inte finns några poster. Om det till exempel finns tre poster och du vill få den sista (4), anses det att det inte finns några poster.

· Tidigare... Du måste hämta den tidigare grupperingsposten. Ett uttryck kan anges efter ordet inom parentes, vars resultat kommer att användas som en förskjutning tillbaka från den aktuella grupperingsposten. Till exempel föregående (2) - hämta det föregående från föregående post.

Om den föregående posten går utöver grupperingen (till exempel för den andra grupperingsposten måste du hämta föregående (3), då erhålls den första gruppposten.

När du hämtar den föregående posten för grupperingstotalen anses den första posten erhållen.

· Nästa (Nästa)... Du måste få nästa grupperingspost. Ett uttryck kan anges efter ordet inom parentes, vars resultat kommer att användas som en förskjutning framåt från den aktuella grupperingsposten. Till exempel Nästa (2) - hämta nästa från nästa post.

Om nästa post går ut ur gruppen, anses det att det inte finns några poster. Till exempel, om det finns 3 poster och Next () tas emot för den tredje posten, anses det inte finnas några poster.

När nästa post tas emot för grupperingssumman anses det inte finnas någon post.

· Nuvarande... Du måste få det aktuella rekordet.

När du hämtar för grupperingstotalen erhålls den första posten.

· Begränsande värde(BoundaryValue)... Behovet av att få en post till det angivna värdet. Efter ordet Begränsande värde inom parentes måste du ange ett uttryck med det värde för vilket du vill starta fragmentet, det första ordningsfältet.

Som en post kommer den första posten att erhållas, vars värde i beställningsfältet är större än eller lika med det angivna värdet. Om till exempel fältet Period används som beställningsfält och det har värdena 01/01/2010, 01/02/2010, 01/03/2010 och du vill få ConstrainingValue (DateTime (2010, 1, 15)), då får du ett rekord med datumet 2010/01/01.

Sorts: Linje... Listar uttryck, separerade med kommatecken, som beskriver ordningsreglerna. Om det inte anges utförs beställningen på samma sätt som för den gruppering som uttrycket utvärderas för. Efter varje uttryck kan du ange ett nyckelord Ålder(att beställa i stigande ordning), Nedåtgående(för fallande ordning) och Automatisk beställning(för att sortera de refererade fälten efter de fält som du vill sortera det refererade objektet efter). Ord Automatisk beställning kan användas som med ett ord Ålder, så med ordet Nedåtgående.

Sorts: Linje... Liknar parametern Sortering... Används för att ordna hierarkiska poster. Om det inte anges genererar layout -länken beställningen enligt den ordning som anges i parametern Sortering.

Sorts: Linje... Anger regeln för bestämning av föregående eller nästa post om det finns flera poster med samma beställningsvärde:

· Separat indikerar att en sekvens av ordnade poster används för att definiera föregående och nästa post. Standardvärde.

· Tillsammans indikerar att de föregående och nästa posterna bestäms baserat på värdena på ordningsuttrycken.

Till exempel, om den resulterande sekvensen är ordnad efter datum:

datum Fullständiga namn Menande
1 01 januari 2001

Ivanov M.

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

Separat, då:

Den föregående posten till post 3 blir post 2.

Aktuell, Aktuell(parametrarna respektive Start och Slutet), då för post 2 kommer detta fragment att bestå av en post 2. Uttrycket kommer att vara lika med 20.

Om parametervärdet är Tillsammans, då:

Den föregående posten till post 3 kommer att vara post 1.

§ om det beräknade fragmentet definieras som Aktuell, Aktuell(parametrarna respektive Start och Slutet), då för post 2 kommer detta fragment att bestå av poster 2 och 3. Uttryck Beräkna uttryck ("Summa (värde)", ström, ström) kommer att vara lika med 50.

När parametern är angiven är parametervärdet Tillsammans, i parametrar Start och Slutet du kan inte ange en förskjutning för positioner Första, sista, föregående, nästa.

Beräkna uttryck ("Summa (Sumomsättning)", "Första", "Nuvarande")

Om du vill få grupperingsvärdet på föregående rad kan du använda följande uttryck:

Utvärdera uttryck (kurs, föregående)

Lista ny funktioner:

EvaluateExpressionGroupedArray(,) -

Funktionen returnerar en matris, vars element innehåller resultatet av utvärdering av uttrycket som ska grupperas efter det angivna fältet.

EvaluateExpressionGroupedValuesTable(,) -

Funktionen returnerar en tabell med värden, där varje rad innehåller resultatet av utvärdering av uttryck för gruppering efter det angivna fältet

Värdefylld() - Returnerar True om värdet skiljer sig från standardvärdet för den givna typen, annat än NULL, annat än en tom referens, andra än Odefinierad. För booleska värden utförs en nollkontroll. För strängar utförs en kontroll av frånvaron av icke-blanksteg

Formatera(,) - Hämta den formaterade strängen för det överförda värdet. Formatsträngen ställs in i enlighet med formatsträngen för 1C: Enterprise -systemet.

Substräng(,,) - Denna funktion är utformad för att extrahera en delsträng från en sträng.

Linjelängd() - Funktionen är utformad för att bestämma strängens längd. Parameter är ett strängtypsuttryck

Linje() - Om en array skickas som en parameter returnerar funktionen en sträng som innehåller strängrepresentationer av alla arrayelement separerade med ";"-tecken. Om en tabell med värden skickas som en parameter returnerar funktionen en sträng som innehåller strängrepresentationer för alla rader i tabellen med värden, med cellrepresentationer för varje rad åtskilda med ";" tecken och strängar - efter radmatning. Om något element har en tom strängrepresentation visas en sträng istället för dess representation.

Dela detta