1s skd aggregat funktioner array. SKD. Visar tabellinformation i en cell. Skapar en ny rapport

I denna korta notering vill jag visa hur du kan summera värden på olika grupperingsnivåer i en rapport med hjälp av ett datasammansättningssystem.
Som visas i bilden, endast på grupperingsnivån "Artikelgrupper", beräknas resursen "Beställning", den visar hur mycket som ska beställas för den aktuella varugruppen baserat på vissa villkor:


Detta värde kan endast beräknas för given nivå gruppering eftersom, över eller under, det inte finns några värden att beräkna. Till exempel, på nivån för detaljerade poster, finns det inga uppgifter om det maximala antalet i en grupp, eftersom dessa data endast är sanna för gruppen som helhet och inte för dess individuella komponenter.

Följaktligen är det nu nödvändigt att beräkna summorna för de högre grupperingarna ("Lager", "Lagertyper") och totalen.
För detta används funktionen Beräkna uttryck med grupperad matris:
UTVÄRDERA UTTRYCK FÖR ARRAYGRUPPER (EVALEXPRESSIONWITHGROUPARRAY)
Syntax:
ComputeExpressionGroupedArray(,)
Beskrivning:
Funktionen returnerar en array, vars varje element innehåller resultatet av att utvärdera uttrycket för gruppering efter det angivna fältet.
Layoutbyggaren, när den genererar en layout, konverterar funktionsparametrar till termer av datalayoutlayoutfält. Till exempel kommer fältet Konto att konverteras till Dataset. Konto.
När layoutbyggaren genererar uttryck för att visa ett anpassat fält vars uttryck endast innehåller funktionen CalculateArrayWithGroupArray() genererar utmatningsuttrycket på ett sådant sätt att utdatainformationen ordnas. Till exempel, för ett anpassat fält med ett uttryck:

Beräkna ExpressionWith GroupingArray("Amount(AmountTurnover)", "Motpart")
Layoutbyggaren kommer att generera följande uttryck för utdata:

ConcatenateStrings(Array(Order(CalculateGroup ExpressionValueTable("View(Amount(DataSet.AmountTurnover)),Amount(DataSet.AmountTurnover)","DataSet.Counterparty"),"2")))

Alternativ:

Typ: Sträng. Uttrycket som ska utvärderas. En sträng, till exempel Amount(AmountTurnover).

Typ: Sträng. Gruppering av fältuttryck – gruppering av fältuttryck separerade med kommatecken. Till exempel Entreprenör, Part.

Typ: Sträng. Ett uttryck som beskriver filtret som tillämpas på detaljposter. Aggregatfunktioner stöds inte i ett uttryck. Till exempel, DeletionMark = False.

Typ: Sträng. Ett uttryck som beskriver filtret som tillämpas på gruppposter. Till exempel, Amount(AmountTurnover) > &Parameter1.
Exempel:

Maximum(Beräkna uttryckMed GroupingArray("Amount(AmountOmsättning)", "Motpart"));

En detaljerad beskrivning av funktionssyntaxen finns på http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Nu för beräkningen kommer vi att duplicera fältet "Order", med olika värden för "Beräkna med ...", med hjälp av följande uttryck, notera att på varje högre nivå, värdena för nivåerna på den lägre grupperingar används.

Som ett resultat får vi följande konstruktion:

Korrekt användning av datasammansättningsschemat (SKD) låter dig:

  • avsevärt minska den tid som krävs för att utveckla en rapport;
  • eliminera behovet av att skapa hanterad form hanterare;
  • få ett vackert resultat med möjlighet till ytterligare anpassning av användaren.

Men inte alla utvecklare använder schemats kapacitet maximalt, eftersom inte alla dess inställningar är uppenbara och intuitiva. I synnerhet vet många att det finns beräknade fält i 1C i ACS, men de förstår inte helt området för deras användning och metoder för att arbeta med dem.

Vad är ett beräknat fält

I de flesta fall är datakällan i layoutschemat en fråga. I princip kan olika formler, konstruktioner och uttryck redan användas i själva frågan. Uppstår berättigad fråga Varför behöver vi dubbla funktioner?

Faktum är att ACS är något mer än att bara visa resultatet av en fråga, och detta framgår tydligt av formuläret för att skapa ett schema (Fig. 1).

Beräknade fält låter dig utföra vissa åtgärder med den genererade datamängden:

  • Visa i en viss cell en uppsättning data som mottagits av begäran, kombinera flera rader till en;
  • Få tillgång till exportfunktionerna för en gemensam modul;
  • Exekvera olika uttryck som är tillgängliga för länkspråket och använd specialfunktioner Evaluate Expression.

Låt oss gå igenom den här listan.

Matris av värden i en cell

Låt oss simulera en situation när det är nödvändigt att få alla antal kvittodokument för en motpart i en separat cell:


Därför har vi skapat ytterligare ett beräkningsfält i vårt system;


Som du kan se från exemplet ovan finns det inga svårigheter att lägga till och bearbeta beräknade fält. Vi använde två funktioner: Array() och ConnectStrings().

Några ord om det senare. Förutom att den första parametern pekar på arrayens identifierare, värden eller värde, kan ytterligare två ställas in i den:

  1. Elements Separator - indikerar vilket tecken som kommer att separera ett element i arrayen eller en rad i värdetabellen från en annan (i vårt fall utelämnade vi denna parameter och radbrytningen tilldelades som standard);
  2. Kolumnseparator – tecken som används för att separera kolumner i värdetabellen (som standard används ett semikolon).

Anropa exportfunktioner för en gemensam modul

Funktionerna hos en gemensam modul kan fungera som en datakälla för att fylla i ett beräknat fält.

Några viktiga punkter:

  • Funktionen måste kunna exporteras;
  • Om funktionen finns i en gemensam modul med flaggan "Global" anropas den direkt med namn, annars måste funktionen anropas enligt schemat "Common module name". "Namnet på den funktion som ska anropas."

Som exempel på användning kommer vi att ta samma begäran om kvittodokument och visa den i en separat kolumn. Vi kommer inte att beskriva själva frågan, vi går direkt till de beräknade fälten:


Således ser vi att nästan vilken datahanterare som helst kan initieras från ACS, vilket avsevärt utökar möjligheterna att använda schemat.

Länka språkuttryck

Ganska ofta i en utvecklares arbete uppstår en situation när det är nödvändigt att visa resultatet av divisionen i ACS-fältet:

  1. Beräkna den genomsnittliga kostnaden för objektet;
  2. Alla typer av intresse;
  3. Beräkningar av medelinkomster m.m.

För att undvika problem är det i dessa fall önskvärt att ange en check för division med 0 i det beräknade fältet.

Detta kan göras med hjälp av konstruktionen "Val när .... Sedan ... Annars ... Slut".

I slutet några ord om nog ny funktion Beräkna uttryck(). Med dess hjälp kan du i synnerhet beräkna avvikelserna i kostnaden mellan nuvarande och föregående rad, det kumulativa saldot etc.

Låt oss säga att du kan få DocumentAmount från föregående rad i vår fråga genom att ange värdet CalculateExpression("DocumentAmount", "PreviousAmount") i fältet "Expression".

God dag kära läsare av vår blogg! Idag vill jag berätta, med hjälp av ett verkligt exempel, hur
använd SKD-funktionerna Array (Array) och ConnectStrings (JoinStrings). I en artikel om

lite nämnt hur man arbetar med
på bokmärket
, har också förklarats som
med hjälp av fliken Resurser. Idag ska vi återigen uppmärksamma dessa
bokmärken i ljuset av vårt tema.

Utseendet på ett exempel på en 1C-rapport med två ACS-funktioner array och ConnectStrings Nästa:

Förklaring av problemet för att tillämpa ACS-funktionerna Array (Array) och ConnectStrings (JoinStrings)

Uppgift: Det är nödvändigt att infoga alla försäljningsnummer för en produkt i en cell.

Något som: nomenklatur | kvantitet | 001, 002 osv. |

Vi kommer att använda en begäran till ackumuleringsregistret "Implementering av TMZ".

VÄLJA
Implementering av TMZ. Registrator. Siffra,
Implementering av TMZ. Nomenklatur,
Implementering av TMZ. Registrator,
Implementering av TMZ. Kvantitet Omsättning
FRÅN
Registrera Ackumulering. Implementering av TMZ. Omsättningar
(, , Registrar, ) HUR MAN implementerar TMZ

Ackumuleringsregistret "Implementering av TMZ" finns både i redovisningen och i konfigurationen Trade Enterprise Management (UTP). Ta reda på hur i USP-konfigurationen i katalogelementet "Nomenclature". Därför, efter nedladdning, för att kontrollera dess prestanda, kan du köra den här rapporten i båda konfigurationerna.

Implementering av uppgiften med användning av funktionerna SKD Array och ConnectStrings


Samma steg, men med några tillägg, användes för att skapa
.

Beskrivning av funktionen JoinStrings (JoinStrings).

JoinStrings (JoinStrings)

Används för att sammanfoga strängar till en sträng.

Syntax:

ConcatenateStrings(Value, Element Separator, Column Separatorer)

Alternativ:

  1. Menande- uttryck som ska kombineras till en rad.
    Om det är en array kommer elementen i arrayen att kombineras till en sträng.
    Om är en ValueTable, kommer alla kolumner och rader i tabellen att kombineras till en rad;
  2. Elementseparatorär en sträng som innehåller texten som ska användas som
    separator mellan matriselement och värdetabellsrader. Standard är ett nyradstecken;
  3. Kolumnavskiljare-sträng som innehåller texten som ska användas som avgränsare
    mellan kolumnerna i värdetabellen. Standard ";".

Logga in som student

Logga in som elev för att få tillgång till skolinnehåll

1C 8.3 datasammansättningssystem för nybörjare: räkna resultaten (resurser)

Målet med denna lektion kommer att vara:

  • Skriv en rapport som visar en lista över produkter (matkatalog), deras kaloriinnehåll och smak.
  • Gruppera produkter efter färg.
  • Bekanta dig med summeringsfunktionen (resurser) och beräknade fält.

Skapar en ny rapport

Som i tidigare lektioner, öppna databasen " Deli" i konfiguratorn och skapa en ny rapport via menyn " Fil"->"Ny...":

Typ av dokument - extern rapport:

I formuläret för rapportinställningar skriver du namnet " Lektion 3"och tryck på knappen" Öppna datasammansättningsdiagrammet":

Lämna standardschemanamnet och klicka på " Redo":

Lägga till en fråga via konstruktorn

På fliken " Datauppsättning"klick grön plustecken och välj " Lägg till datauppsättning - Fråga":

Istället för att skriva texten i begäran manuellt, kör igen frågekonstruktör:

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

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

Det blev så här:

Tryck på knappen " OK" - förfrågningstexten genererades automatiskt:

Inställningar för presentation av rapport

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

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

Dra och släpp från vänster kolumn till höger fälten som kommer att visas i listan och klicka på " Ytterligare":

Dra från vänster kolumn till höger fält " Färg"- enligt det kommer att hända gruppering rader i rapporten. Tryck " OK":

Och här är resultatet av konstruktören. Hierarki i vår rapport:

  • rapportera som helhet
  • gruppering "Färg"
  • detaljerade register - rader med livsmedelsnamn

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

Ändra kolumnordningen

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

Spara rapporten och öppna den igen i användarläge:

Bra, det är mycket bättre.

Summering (summa) efter kaloriinnehåll

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

Det finns en resursberäkningsmekanism för detta.

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

Samtidigt, i uttrycksfältet, välj från rullgardinsmenyn " Mängd (kalorier)", eftersom summan kommer att vara summan av alla element som ingår i summan:

Spara och generera en rapport:

Vi har resultaten 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 annan kolumn visas medel kaloriinnehåll i produkter efter grupper och i allmänhet för rapporten.

Det är omöjligt att röra den redan befintliga kolumnen "Kaloriinnehåll" - totalsumman visas redan i den, därför låt oss lägga till ett annat fält, som kommer att vara en exakt kopia av "Calorie"-fältet.

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

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

I en kolumn" Dataväg"skriv namnet på det nya fältet ( tillsammans, utan mellanslag). Låt det kallas Genomsnittliga kalorier" och i kolumnen " Uttryck" vi skriver namnet på ett redan befintligt fält, utifrån vilket det nya fältet kommer att beräknas. Vi skriver där " kalorier". Kolumn" rubrik" kommer att fyllas i automatiskt.

Vi har lagt till ett nytt fält (" Genomsnittliga kalorier"), men det kommer inte att visas i rapporten av sig självt - du måste antingen ringa upp det igen inställningskonstruktör("trollspö") eller lägg till det här fältet manuellt.

Låt oss agera andra sätt. För att göra detta, gå till fliken " inställningar", Välj " Rapportera" (Vi vill trots allt lägga till fältet som en helhet i rapporten), välj fliken nedan " Valda fält"och dra fältet" Genomsnittliga kalorier" från vänster kolumn till höger:

Det blev så här:

Spara och generera en rapport:

Fältet har dykt upp och vi ser att dess värden är värdena i fältet "Kalori". Excellent!

För att göra detta använder vi återigen den mekanism som redan är bekant för oss. Resurser(sammanfattande). Gå till bokmärke Resurser"och dra fältet" Genomsnittliga kalorier" från vänster kolumn till höger:

Samtidigt i kolumnen Uttryck"välja" Average (Average Calorie)":

Spara och generera en rapport:

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

Vet du varför de dök upp (betydelser inte i grupper)? För när vi lade till fältet " Genomsnittliga kalorier" i rapportinställningarna, i det andra steget vi valde hela rapporten och detta nya fält träffade elementet " Detaljerad uppgifter".

Låt oss åtgärda felet. För att göra detta, gå tillbaka till fliken " inställningar", välj" Detaljposter"top först (steg 2) och sedan" Detaljposter"underifrån (steg 3), gå till bokmärke" Vald fält" och se elementet i dess högra kolumn " Bil".

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

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

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

Här är vårt fält Genomsnittliga kalorier"som kom hit från stycket" Rapportera"när vi släpade dit den. Bara låt oss lyfta bocka bredvid detta fält för att ta bort dess utdata.

I ljuset av den kommande utgåvan av 8.2.14 ska jag 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 frågedatauppsättning och skriver, antingen manuellt eller med hjälp av frågebyggaren, den enklaste frågan:

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

2. Ställ in beräknade fält i ACS

3. Vi konfigurerar datalayouten på fliken Inställningar

4. Vi lanserar 1C Enterprise 8.2.14. Vi öppnar rapporten. Vi formar, vi tar emot.

Beskrivning av själva de nya funktionerna:

1. Det aktuella datumet()

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

2. COMPUTE EXPRESSION()

Syntax:

Beräkna uttryck(,)

Beskrivning:

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

Funktionen tar hänsyn till urvalet av grupperingar, men tar inte hänsyn till hierarkiska urval.

Funktionen kan inte tillämpas på en gruppering i gruppvalet för den grupperingen. Till exempel, i valet av nomenklaturgrupperingen kan du inte använda uttrycket Beräkna uttryck ("Sum(Sumomsättning)", "TotalTotal") > 1000. Men ett sådant uttryck kan användas i hierarkiskt urval.

Om slutposten föregår startposten anses det inte finnas några poster för beräkning av detaljerade data och beräkning av aggregerade funktioner.

Vid beräkning av intervalluttryck för en totalsumma (parametern Gruppering är satt till GrandTotal ), anses det inte finnas några poster för beräkning av detaljerad data och beräkning av aggregerade funktioner.

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

alternativ

Sorts: Linje. Uttrycket som ska utvärderas.

Sorts: Linje. Innehåller namnet på den gruppering i vars sammanhang 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 strängen GrandTotal 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 det namnet.

Till exempel:

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

detta exempel resultatet blir förhållandet mellan summan över fältet Försäljning.Belopp Omsättning gruppera poster till summan av samma fält i hela layouten;

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

· Det totala resultatet— Uttrycket kommer att utvärderas för alla grupperingsposter.

· Hierarki— Uttrycket kommer att 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 kommer att utvärderas för den aktuella gruppposten för grupperingen.

· GroupingNotResource— vid beräkning av en funktion för en grupppost efter resurser, kommer uttrycket att beräknas för den första gruppposten i den initiala grupperingen.

Vid beräkning av funktionen Beräkna uttryck() med mening GroupingNotResource 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.

Layoutbyggaren för datasammansättningslayout, när den genererar en layoutlayout för datasammansättning, när resursfältet som grupperingen utförs visas med, placerar ett uttryck i layouten som beräknas med funktionen Beräkna uttryck() , anger parametern GroupingNotResource. För andra resurser grupperade efter resurs placeras vanliga resursuttryck.

Sorts: Linje. Anger vilken post som ska starta fragmentet där uttryckets aggregerade funktioner ska beräknas och från vilken post som ska hämta värdena för fälten utanför de aggregerade funktionerna. Värdet kan vara något av följande:

· Första (första)

· Sista (sista)

· Föregående (Föregående )

· Nästa (Nästa)

· Aktuell (aktuell)

· LimitingValue(BoundaryValue) LimitingValue

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

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

Om den första posten ligger utanför grupperingen anses det inte finnas några poster. Till exempel, om det finns 3 poster, och du vill få First(4) , så anses det att det inte finns några poster.

· Sista (sista). Du måste skaffa den senaste grupperingsposten. Efter ordet inom parentes kan du ange ett uttryck, vars resultat kommer att användas som en offset från slutet av grupperingen. Det resulterande värdet måste vara ett heltal större än noll. Till exempel, Last(3) - hämta den tredje posten från slutet av grupperingen.

Om en sista rekordet går utöver grupperingen anses det saknas register. Till exempel, om det finns 3 poster, och du vill få Last(4) , så anses det att det inte finns några poster.

· Föregående (Föregående ). Du måste hämta den tidigare grupperingsposten. Efter ordet inom parentes kan du ange ett uttryck, vars resultat kommer att användas som en förskjutning tillbaka från den aktuella grupperingsposten. Till exempel, Previous(2) - hämta föregående från föregående post.

Om den föregående posten ligger utanför grupperingen (till exempel kräver den andra grupperingsposten Previous(3) , då erhålls den första grupperingsposten.

När man hämtar det tidigare rekordet för grupperingssumman, anses det att den första posten erhålls.

· Nästa (Nästa). Du måste få nästa grupperingspost. Efter ordet inom parentes kan du ange ett uttryck, vars resultat kommer att användas som ett skift framåt från den aktuella grupperingsposten. Till exempel, Next(2) - hämta nästa från nästa post.

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

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

· Aktuell (aktuell). Du måste hämta den aktuella posten.

När den hämtas för en grupperingssumma, hämtas den första posten.

· LimitingValue(BoundaryValue). Behovet av att få posten med det angivna värdet. Efter ordet LimitingValue inom parentes måste du ange uttrycket med värdet som du vill starta fragmentet av, det första ordningsfältet.

Posten kommer att vara den första posten vars beställningsfältvärde är större än eller lika med det angivna värdet. Till exempel, om du använder fältet Period som beställningsfält, och det har värdena 01/01/2010 , 02/01/2010 , 03/01/2010 , och du vill få LimitValue(DatumTime(2010, 1, 15)), då kommer en post med datumet 2010-01-02 att tas emot.

Sorts: Linje. Kommaseparerade uttryck som beskriver ordningsreglerna listas. 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 specificera nyckelord Asc(för stigande ordning), Nedåtgående(för fallande ordning) och Automatisk arrangemang(för att sortera referensfält efter de fält som du vill sortera objektet som refereras till). Ord Automatisk arrangemang kan användas som med ordet Asc, och med ordet Nedåtgående.

Sorts: Linje. Samma som parameter Sortering. Används för att ordna hierarkiska poster. Om det inte anges genererar layoutbyggaren en beställning enligt den ordning som anges i parametern Sortering.

Sorts: Linje. Anger en regel för att fastställa föregående eller nästa post om det finns flera poster med samma ordningsvärde:

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

· Tillsammans (Together) indikerar att föregående och nästa post bestäms baserat på värdena för ordningsuttrycken.

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

datumet Fullständiga namn Menande
1 1 januari 2001

Ivanov M.

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

Separat, sedan:

§ den föregående posten till post 3 kommer att vara post 2.

aktuell, aktuell(respektive parametrarna Start och Slutet), 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, sedan:

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

§ om det beräknade fragmentet definieras som aktuell, aktuell(respektive parametrarna Start och Slutet), då för post 2 kommer detta fragment att bestå av post 2 och 3. Uttrycket CalculateExpression("Sum(Value)", Current, Current) kommer att vara lika med 50.

När du anger ett parametervärde lika med Tillsammans, i parametrar Start och Slutet du kan inte ange en offset för positioner Första , Sist , Föregående , Nästa.

CalculateExpression("Belopp(AmountOmsättning)", "Första", "Nuvarande")

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

CalculateExpression("Kurs", "Föregående")

Lista ny funktioner:

ComputeExpressionGroupedArray(,) -

Funktionen returnerar en array, vars varje element innehåller resultatet av att utvärdera uttrycket för gruppering efter det angivna fältet.

ComputeExpressionGroupedValueTable(,) -

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

ValueFilled() - Returnerar True om värdet skiljer sig från värdet av denna typ default, annat än NULL , annat än nullreferens, annat än Undefined . Booleska värden testas mot NULL. Strängar kontrolleras för icke-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 i 1C:Enterprise-systemet.

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

Stränglängd() - Funktionen är utformad för att bestämma längden på en sträng. Parameter är ett uttryck av strängtyp

Linje() - Om en array skickas som en parameter, returnerar funktionen en sträng som innehåller strängrepresentationer av alla element i arrayen, åtskilda av tecknen "; ". Om en värdetabell skickas som en parameter, returnerar funktionen en sträng som innehåller strängrepresentationer av alla rader i värdetabellen, och cellrepresentationerna för varje rad separeras av tecknen ";", och raderna separeras av nyradstecknet. Om något element har en tom strängrepresentation, visas en sträng istället för dess representation.