Nyttige eksempler på å lage et datasammensetningsdiagram. Se hva "SKD" er i andre ordbøker 1s SKD betyr

Vi vil gi et eksempel i "Management"-konfigurasjonen produksjonsbedrift" versjon 1.3. I informasjonsgrunnlaget for alle elementer i katalogen "Organisasjoner" er egenskapene "Hovedvarehus", "Relatert motpart" og "Lokasjonsland" lagt til. Vi må lage en rapport i datasammensetningssystemet (DCS), der vi kan bruke utvalg ved tilleggsegenskaper og organisasjoner.

I dette tilfellet vil vi bruke standard ACS-funksjonalitet for å jobbe med objektegenskaper. Vi vil også vurdere et trekk ved utviklingen av slike rapporter, nemlig manglende evne til å bruke tilleggsegenskaper i dai "Konfigurator" -modus. Sistnevnte tillater ikke bruk av karakteristiske felt ved oppsett av felt som skal vises i en rapport, utvalg, gruppering i rapportstrukturen, og så videre.

Opprette en rapport og sette opp egenskaper

La oss lage en enkel rapport. Den vil ha ett datasett med følgende spørring:

QueryText = "VELG | Organisasjoner . Link AS organisasjon,| Organisasjoner . TINN,| Organisasjoner . kontrollpunkt |FRA Katalog" ;

Rapportstrukturen vil bare gi ut detaljerte poster med alle felt valgt i spørringen. I designeren vil oppsett av rapportstrukturen se slik ut:

Skjermbildet nedenfor viser rapportutgangen med gjeldende innstillinger.

Flott. La oss nå gå videre til å angi egenskapene, men før det, la meg minne deg på det generell disposisjon drift av karakteristikkmekanismen i de fleste standardkonfigurasjoner, inkludert mykstartere. For å gjøre dette brukes flere konfigurasjonsobjekter.

  1. Plan over typer egenskaper "Properties of Objects".
  2. Register over informasjon "Verdier av objektegenskaper".

Grafisk kan forholdet mellom et informasjonsbaseobjekt og dets egenskaper avbildes ved hjelp av følgende diagram:

La oss beskrive ordningen mer detaljert. Informasjonsregisteret "ObjectPropertyValues" i dimensjonen "Objekt" inneholder en lenke til infobaseelementet som egenskapen er lagret for. I vårt eksempel er dette en lenke til katalogelementet "Organisasjoner". Alle mulige egenskaper til et objekt er definert i form av karakteristiske typer (PVC) "Objektegenskaper". Karakteristikkverdien som er lagret i detaljregisteret avhenger av tilgjengelige datatyper for karakteristikktypeplanelementet som er registrert i egenskapsdimensjonen. Denne beskrivelsen skal bare gi generell idé om tilleggsmekanismen egenskaper. I praksis er det mer komplisert.

La oss nå gå videre til å sette opp egenskaper i datasammensetningsskjemaet. For å gjøre dette, start spørringsdesigneren og gå til fanen "Kenskaper". Her må du legge til et felt som kobler infobaseobjektet med tabeller over egenskaper og egenskapsverdier. Tidligere har vi sett på kommunikasjonsskjemaet mellom konfigurasjonsobjekter for lagring av tillegg. egenskaper/karakteristikker. Basert på denne informasjonen vil oppsettet være som følger:

Etter dette vil datasettforespørselen bli supplert med instruksjoner for innhenting av objektegenskaper.

" VELG | Organisasjoner . Link AS organisasjon,| Organisasjoner . TINN,| Organisasjoner . kontrollpunkt |FRA| Katalog . Organisasjoner AS Organisasjoner | // Legg til. instruksjoner for å oppnå egenskaper |(EGENSKAPER| TYPE (Katalog. Organisasjoner) | TYPER KARAKTERISTIKKER Plan over typer kjennetegn. Objektegenskaper | FELTØKKEL Link | FELTNAVN Navn | FLYTYPE VERDIER TypeVerdier | KARAKTERISTIKKER VERDIER Informasjonsregister. Objektegenskapsverdier | FELTOBJEKT Objekt | POLEVIDA Eiendom | NYTTIGE VERDIER Betydning )"

Det er alt. Rapportfunksjonaliteten lar deg nå velge felt for tilleggsegenskaper i rapporten (utdatafelt, utvalg osv.). Men det er ett MEN. Vi kan bruke disse feltene i rapportinnstillinger bare i 1C:Enterprise-modus. I konfiguratoren kan vi ikke se egenskapsfeltene, noe som er logisk, fordi egenskapene legges inn av brukeren og lagres i informasjonsbasen.

Men om nødvendig kan vi legge til egenskapsfelt, for eksempel til utvalget før vi åpner det. La oss se på et lite eksempel.

Programmatisk arbeid med egenskaper

Når du åpner rapportskjemaet, utfør følgende programkode:

CurrentSettings = ComposerSettings. Innstillinger; CollectionCollection = CurrentSettings. Utvalg. Elementer;// Legg til valg etter tillegg. til varedetaljer "Hovedlager" . [ Hovedlager]// Legg til valg etter tillegg. til nomenklaturdetaljene "Plasseringsland" NovEl = CollectionSelections. Legg til(Type(" Valg ElementData Layout " ) ); NewEl.ComparisonType = DataCompositionComparisonType. Er lik; NewEl.LeftValue =. [publiseringsland] " ) ; NewEl. Usage = False ;// Legg til valg etter tillegg. til nomenklaturdetaljene "Plasseringsland" NovEl = CollectionSelections. Legg til(Type("// Legg til valg etter tillegg. til varedetaljer "Relatert motpart" " ) ); NewEl.ComparisonView = DataCompositionComparisonView. Er lik; NewEl.LeftValue = NewDataCompositionField("Organisasjon. [Relatert motpart]

" ) ; NewEl. Usage = False ;

Dermed la vi programmatisk til et utvalg basert på tilleggsegenskaper til katalogen "Organisasjoner", til tross for at disse feltene ikke var tilgjengelige i ACS-designeren. Legg merke til syntaksen for å definere et datakomposisjonsfelt.

NewDataCompositionField(" Organisasjon " ) ); NewEl.ComparisonView = DataCompositionComparisonView. Er lik; NewEl.LeftValue = NewDataCompositionField("Organisasjon" ) ,

nemlig teksten «[Tilknyttet motpart]». Hvis vi skriver slik:

NewDataCompositionField(" Organisasjon . Beslektet motpart" ) ,

Når rapporten kjøres, vil ACS oppdage layoutfeltene feil. I innstillingene vil valgfeltene være uthevet som feil:

For ytterligere egenskaper og detaljer som ikke er tilgjengelige i ACS-designeren, må du bruke følgende syntaks når du åpner programmatisk:

NewDataCompositionField(" . " )

Dermed kan vi sette rapportinnstillinger selv om feltene ikke er tilgjengelige i ACS-designeren.

Konklusjon

Bruk av karakteristikkinnstillinger i ACS kan forenkle utviklingen av komplekse rapporter betraktelig. Til tross for noen mangler i arbeidet, for eksempel mangel på evne til å konfigurere valg av tillegg. egenskaper hos designeren etc., kan karakteristikkmekanismen betraktes som et betydelig skritt i å forenkle utviklingen av rapporter i 1C:Enterprise-systemet.

I artikkelen vurderte vi ikke alle egenskapene til egenskaper i ACS. Utenfor rammen av artikkelen er det slike muligheter som: vilkårlig definisjon av datakilder, både for egenskaper og for karakteristiske verdier, samt valg av eier for alle tilgjengelige egenskaper i informasjonsbasen og mye mer. Temaet er stort, det er rom for å utvide kunnskapskretsen din.

Et eksempel på hvordan du kan få feltene til forrige post i en gruppe med mer. Praktisk for å beregne forskjellen mellom verdiene til forrige pris og gjeldende.

Essensen av løsningen er å bruke ACS-uttrykksspråkfunksjonen CalculateExpression() i det tillagte beregnede feltet som jeg ringte Delta. Funksjonen har følgende parametere:

Alternativer:

  • Uttrykk. Type Linje;
  • Gruppering. Type Linje;
  • Beregningstype. Type Linje;
  • Start
  • Slutt. En streng som inneholder ett av alternativene;
  • Sortering. Linje;
  • Hierarkisk sortering;
  • Behandler samme bestillingsverdier

Vi er interessert i parameter 4 og 5 ( Start Og Slutt). Uttrykket vil se slik ut:

isNULL((BEREGN UTTRYKK("Pris", "Forrige", "Forrige") - Pris), 0)

Her beregner vi den forrige verdien av feltet Pris og trekk gjeldende feltverdi fra den Pris. Naturligvis, for den første posten vil ikke den forrige verdien bli beregnet, og resultatet av subtraksjon med verdien av det gjeldende feltet vil være Null, så for å holde alt "rent" bruker vi isNULL-funksjonen for å konvertere Null til tallet null.

Plasser en verditabell i en dokumentcelle i et regneark

Noen ganger er det nødvendig å plassere tabelldelen av et dokument eller data som representerer radene i tabelldelen i en celle i tabelldokumentet, for eksempel slik:

For å gjøre dette må du bruke funksjonen: CalculateExpressionWithGroupValueTable() , som har parametere:

  • Uttrykk- uttrykket som skal beregnes. Skriv inn streng. En linje kan inneholde flere uttrykk atskilt med komma. Etter hvert uttrykk kan det være et valgfritt nøkkelord AS er navnet på verditabellkolonnen. For eksempel: "Motpart, Beløp (Beløp Omsetning) Som Salgsvolum."
  • FieldExpressionsGroups- uttrykk for grupperingsfelt, atskilt med komma. For eksempel "Motpart, Part";
  • Utvalg av poster- et uttrykk brukt på detaljposter. For eksempel, "Slett flagg = False";
  • Valg av grupperinger- utvalg brukt på gruppeposter. For eksempel: "Beløp (Beløp Omsetning) > &Parameter1".

For å gjøre dette lager vi et beregnet felt der vi vil vise den resulterende tabellen, deretter plasserer vi dette feltet i ressursene med uttrykket CalculateExpressionWithGroupValueTable("Nomenklatur, mengde")

Nummerer kolonnene

Et eksempel på hvordan du kan nummerere kolonner i et adgangskontrollsystem.

Essensen av løsningen:

  1. Vi lager en spørring der vi nummererer linjene i søkeresultatet innenfor en viss underordning
  2. Vi viser resultatet i en krysstabell

VIKTIG!

Etter at linjene i forespørselen er nummerert, må de plasseres i en VT og deretter velges fra denne VT, ellers vil adgangskontrollsystemet gjøre alt på sin egen måte og feil felt vil bli inkludert i grupperingen

For å få resultatet må du lage et beregnet felt med uttrykket "Ansatt" + Format(NPP,"CHTs=3; CHVN=") og det beregnede feltet Fullt navn, hvor du ganske enkelt kan plassere den ansatte, så plasserer vi feltet Fullt navn til en ressurs med et uttrykk Maksimum (fullt navn) eller rett og slett Fullt navn- ingen forskjell

Vekslende grupper med fargeutheving

Et sted på Mist eller på samme 1Cskd.ru var det et spørsmål om hvordan du skulle fremheve forskjellige farger strenger som danner grupper

Dette oppnås ved å lage et beregnet felt:

CalculateExpression("Quantity (Various Nomenclature)","First", "Previous","Together") % 2

Vi teller antall forskjellige "grupperinger" i nomenklaturfeltet. grupperingene kan telles ved å sette verdien til parameteren Processing Identical OrderValues ​​= "Together";

Resten av deling med to vil gjøre det klart om gruppen er jevn eller ikke, vi lager et betinget designelement med betingelsen Felt = 1

Forblir etter egenskaper. Kjennetegn på linje med mengde i parentes

På samme 1CSkd.ru var det et emne der forfatteren ber om hjelp til å lage en rapport, hvor det i en av kolonnene er nødvendig med en liste over egenskaper (skostørrelser) med deres mengde. http://1cskd.ru/2013/05/podskazhite-novichku-v-skd/

Dette oppnås ved hjelp av samme funksjon CalculateExpressionWithGroupArray()

I dette eksemplet ser funksjonen slik ut:

CalculateExpressionWithGroupArray("Kjennetegn ved Nomenclature.Name +
""("" + Format(QuantityRemaining,""CHG=0"") + "")""",
,
"ValueFilled(Nomenklaturkarakteristikk)")

Den tredje parameteren er valg, den lar deg unngå å presentere den tomme strengen "" - følgelig vil du ikke se rester uten egenskaper

Slå sammen to tabeller med nøkkelrad = tall

Eller et alternativ for å konvertere en talltypeverdi til en streng i SKD

Fra tid til annen på fora ser jeg et emne som "Hvordan konvertere et tall til en streng i en spørring." Hvis du skriver en rapport om et tilgangskontrollsystem og du trenger å utføre en lignende transformasjon, trenger du ikke skrive noen triks i forespørselen.

For å konvertere et tall til en streng, bruk ganske enkelt uttrykksspråkfunksjonen til ACS-datasammensetningssystemet Linje() eller Format()

For å konvertere en streng til et tall kan du bruke funksjonen Regne ut()

Sorter etter streng som etter nummer

I mitt eksempel vil jeg ganske enkelt vise ansattkatalogen, sortere den etter personalnummer (kode)

Resultatet vil se slik ut:

Dette oppnås ved å lage et beregnet felt og bruke ACS-uttrykksspråkfunksjonen Regne ut()

  1. Lag et beregnet felt TabNumberNumber, med uttrykket: Beregn (ansatt.kode)
  2. Sorter etter dette feltet

i hovedsak er dette å konvertere en streng til et tall ved å bruke SKD-uttrykksspråkfunksjonen Regne ut()

Jeg anbefaler deg også å se "Videoopplæringer på ACS" (lett søkt på Google)

Når jeg utvikler bruker jeg en konvertert .

Noen ganger hender det at dataene i en rapport ikke kan hentes ved hjelp av en spørring eller en kombinasjon av spørringer. Du må bruke noen prosedyrer for å samle inn data, og dataene plasseres i en verditabell. Spørsmålet oppstår - kan disse dataene brukes i et datasammensetningsskjema? Tross alt er SKD-verktøyet kraftig og praktisk. Det viser seg at det er mulig å bruke data fra verditabellen som datakilde for en rapport i adgangskontrollsystemet og det er slett ikke vanskelig å gjøre. Denne artikkelen vil vise deg hvordan du lager en slik rapport for vanlige skjemaer.
Så hvordan lager du en ACS-rapport ved å bruke data fra en verditabell? Første ting først.
Først av alt, åpne konfiguratoren og opprett en ny ekstern rapport.

Åpne objektmodulen og lag en forhåndsdefinert prosedyre når du komponerer resultat (DocumentResult, Decryption Data, StandardProcessing)

Inne i denne prosedyren vil vi samle inn data og generere en rapport.
I prosedyren Når du komponerer resultat, deaktiverer vi standardbehandling. StandardProcessing = False;
Deretter danner vi en verditabell på en vilkårlig måte. Navnene på kolonnene i verditabellen må samsvare med de fremtidige feltene i datasettet i ACS:


La oss for eksempel legge til tre rader med data. Deretter lager vi rapportutgangen trinn for trinn.

  • Fra diagrammet får vi standardinnstillingene.

  • Vi sender dekrypteringsdata til den aktuelle variabelen.

  • Vi lager oppsettet ved hjelp av layoutbyggeren.

  • Vi overfører diagrammet, innstillingene og dekodingsdataene til layoutoppsettet.

  • Vi utfører oppsettet ved hjelp av layoutprosessoren. For å gjøre dette, kjør datasammensetningsprosessorens Initialize()-metode. Som parametere passerer vi datasammensetningsoppsettet, eksterne datasett (type: Struktur, strukturnøkkelen må samsvare med navnet på objektet i datasammensetningsskjemaet, verdien er den genererte verditabellen), dekrypteringsdata.

  • Tøm feltet i regnearkdokumentet.

  • Vi viser resultatet i et regnearkdokument.
Resultatet er følgende kode:
DataLayoutScheme = GetLayout( "MainDataCompositionSchema"); //Settings = DataCompositionScheme.DefaultSettings; // - Hvis du gjør det som vist ovenfor (anbefalt på noen ressurser), så når du endrer innstillingene i klientmodus // vil du ikke se disse endringene, fordi innstillingene alltid vil være som standard. Hvordan gjøre det riktig - alternativet nedenfor Innstillinger = SettingsComposer. GetSettings(); DecryptionData = newDataCompositionDecryptionData; LayoutLinker = newDataLayoutLayoutLinker; LayoutLayout = LayoutLocator. Utfør(DataCompositionScheme, Settings, DecryptionData); ExternalDataSet = New Structure( "Verditabelleksempel", TZOutput); DataCompositionProcessor = newDataCompositionProcessor; DataCompositionProcessor. Initialiser(LayoutLayout, ExternalDataSet, DecryptionData); Dokumentresultat. Klar();

OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument; Utgangsprosessor. SetDocument(DocumentResult); Utgangsprosessor. Output(DataCompositionProcessor); Legge til et layoutdiagram. Vi kan la navnet stå som standard. Vi lager et datasett. For å gjøre dette, legg til et nytt datasett av typen Objekt. I feltet Navn til objektet som inneholder dataene, plasserer vi navnet som vi spesifiserte som nøkkelen da vi opprettet den eksterne datasettstrukturen. Så legger vi til felt. Navnene må samsvare nøyaktig med navnene på kolonnene i verditabellen. Neste kan vi indikere gyldige verdier

, formater osv.

Legg til ressurser om nødvendig. Resultatene vil bli beregnet basert på dem. I vårt tilfelle er dette feltene Antall og Mengde.

I Innstillinger-fanen, ved hjelp av innstillingsdesigneren, lager vi et standard rapportalternativ


Vi lagrer rapporten vår. Vi lanserer den i klienten og lager den. Et eksempel på å kjøre en ACS-rapport ved å bruke data fra verditabellen er vist på bildet.

Det er alt. Enkelt nok, ikke sant?

Den resulterende eksempelrapporten kan lastes ned

I spørringsdesigneren, når den kalles fra datakildeoppsettskjemaet, for datasammensetningsskjemaet. Det er en "egenskaper"-fane, hvis bruk ikke er tydelig beskrevet i dokumentasjonen. I denne artikkelen vil jeg prøve å forklare hvordan og hvorfor egenskaper brukes i ACS.

Da jeg først møtte behovet for å bruke denne mekanismen i et tilgangskontrollopplegg, slet jeg veldig lenge, organiserte nestede søk, ble med i hovedutvalget og lurte på hvordan jeg skulle ta hensyn til muligheten for fremveksten av nye typer eiendommer som ikke eksisterte på tidspunktet for rapportutvikling. Hele mekanismen med egenskaper, som var enkel og logisk fra brukerens synspunkt, ga seg ikke til noen normal behandling før jeg fant ut fanen "Kenskaper".

Tabellen på fanen er veldig lunefull, enten du skriver inn hele linjen riktig, eller nekter å gå inn i linjen i det hele tatt, vil systemet ikke tillate deg å forlate en ufullstendig fylt linje "for senere."

Så la oss gå ned til detaljene. Første kolonne: Type– her velger vi typen objekt som egenskapene skal knyttes til, for eksempel "DirectoryLink.Nomenclature"

Dette betyr at det nå vil være mulig å få egenskapsverdier for alle objekter av den angitte typen.

Videre i neste kolonne Kilde til arter vi må angi egenskapsvisningens kildeparametere. Mulige alternativer bord m be om, hvorfor trenger vi et alternativ? be om Jeg skal fortelle deg senere, la oss nå velge et element bord.

I en kolonne Typer egenskaper vi må velge infobasetabellen der nødvendige typer kjennetegn, i vårt eksempel vil det være "Plan av typer kjennetegn. Egenskaper til objekter".

Deretter verdiene som er tilgjengelige for oss for valg i kolonnene Nøkkelfelt, Navnefelt Og Felt for verditype, direkte avhengig av feltene i tabellen vi velger. I Nøkkelfelt vi velger Link, V NavnefeltOpptreden(brukeren vil se det som navnet på attributtet), og i Type-feltet hhv TypeVerdi.

La oss nå gå videre til kilden til verdier. Vår verdikilde vil være informasjonsregisteret "ObjectPropertyValues", så vi velger i kolonnen Kilde til verdierbord, og i kolonnen Attributtverdier– "Informasjonsregister. Verdier av objektegenskaper." I kolonner En gjenstand, Eiendom, Betydning, velg de riktige registerfeltene En gjenstand, Eiendom, Betydning.

Det ser ut til at det er alt. Vi går til skjemainnstillingene, legger til en gruppering etter produkter, og legger til en underordnet gruppering, for eksempel etter merkevarer, vi har en slik egenskap.

Vi utvider listen over detaljer for nomenklaturgruppen og ... vi ser ingen egenskaper der:

Faktum er at vi er i konfiguratoren, hvor det ikke er tilgang til dataene. Hvordan gjøre de nødvendige innstillingene? Den mest praktiske måten å gjøre dette på er å bruke datakomposisjonskonsollen, den på ITS-disken eller den som er inkludert i undersystemet "Utviklerverktøy". Men du kan ganske enkelt åpne rapportinnstillingene i bedriftsmodus.

Så la oss åpne den samme innstillingen, men i bedriftsmodus:

Som du kan se, har vi lagt til nye "Detaljer", og eiendommen " Merke” utad skiller seg ikke fra de vanlige katalogdetaljene. Og eiendommen " Produkttype” står i hakeparenteser fordi egenskapsrepresentasjonen inneholder et mellomrom.

Men vi har også eiendommen " Type avtale" som er knyttet til katalogen " Traktat" og har ingenting med " Nomenklatur". Hvis ikke brukt i innstillingen " Type avtale” så vil alt fungere riktig, men hvis du velger det, vil det som et resultat vise seg å være ufylt, fordi ikke et eneste element i nomenklaturen har denne egenskapen faktisk fylt ut. Men hvordan kan du filtrere bort unødvendige egenskaper slik at de ikke kommer under føttene dine?

For å gjøre dette, må vi endre visningskildeinnstillingen i spørringsdesigneren, på fanen "Kenskaper". Husk at jeg i begynnelsen av artikkelen lovet å fortelle deg hvorfor visningskildetypen er nødvendig be om? Nå er nettopp et slikt tilfelle. Endre visningskildetypen til be om. I kolonnen med egenskaper klikker du på "[...]"-knappen og et nytt spørringsdesignervindu åpnes.

Skriv inn følgende spørring der:

VELGE
Objektegenskaper.Ref.
Objektegenskaper Navn + "(egenskap)" AS Navn,
Object Properties.TypeValues
FRA
Plan over egenskaper for objekter AS Egenskaper til objekter
HVOR
Objektegenskaper Formål med egenskaper = VERDI (Plan av kjennetegn. Formål med egenskaper for objektkategorier. Directory_Nomenclature)
OG (IKKE ObjectProperties.DeletionMark)
OG (IKKE ObjectProperties.Category)

I kolonner Nøkkelfelt, Navnefelt Og Felt for verditype, velg de aktuelle valgfeltene: Link, Navn Og TypeVerdi. Det vil bli slik:

Nå, når vi går videre til å sette opp rapporten, vil bildet i listen over nomenklaturdetaljer endres:

Nå har produktet bare de egenskapene som er tildelt det, dessuten er de nå merkbart forskjellige fra de vanlige detaljene, takket være postscriptet (eiendom), som vi la til eiendomsnavnet i forespørselen.

Det er alt, men mange kan bli forvirret over umuligheten av å sette den opp i konfiguratoren. Det er egentlig ikke noe galt med det. Det er nok å lagre innstillingen (eller hele kretsen) til en fil og gjenopprette den i konfiguratoren.

Konfiguratoren vil vise detaljer som den ikke forstår med røde kryss som utilgjengelige:

Men dette er ikke lenger skummelt, fordi en rapport med slike innstillinger kan lagres i konfigurasjonen og den vil fungere korrekt når den åpnes av brukeren.

I dette korte notatet vil jeg vise hvordan du kan oppsummere verdier på ulike grupperingsnivåer i en rapport ved hjelp av et datasammensetningssystem.
Som vist på bildet, bare på "Varegrupper"-grupperingsnivået, beregnes "Ordre"-ressursen, den viser hvor mye som må bestilles av nåværende gruppe nomenklatur basert på visse betingelser:


Denne verdien kan kun beregnes for dette nivået grupperinger fordi, over eller under, det ikke er noen verdier å beregne. For eksempel på nivå med detaljerte poster er det ingen data om maksimalt antall i gruppen, fordi disse dataene er sanne bare for gruppen som helhet, og ikke for dens individuelle komponenter.

Følgelig er det nå nødvendig å beregne totalsummene for grupperingene ovenfor ("Lagre", "Lagerhustyper") og totalsummen.
For å gjøre dette, bruk funksjonen CalculateExpressionWithGroupArray:
EVALUATE EXPRESSIONWITHGROUPARRAY (EVALEXPRESSIONWITHGROUPARRAY)
Syntaks:
EvaluateExpressionWithGroupArray(,)
Beskrivelse:
Funksjonen returnerer en matrise, hvor hvert element inneholder resultatet av å evaluere et uttrykk for gruppering etter det angitte feltet.
Når layoutbyggeren genererer en layout, konverterer funksjonsparametere til datalayout-layoutfelt. For eksempel vil Konto-feltet bli konvertert til DataSet.Account.
Når layoutbyggeren genererer uttrykk for utdata fra et tilpasset felt hvis uttrykk bare inneholder CalculateArrayWithGroupArray()-funksjonen, genererer utdatauttrykket slik at utdatainformasjonen blir ordnet. For eksempel, for et tilpasset felt med uttrykket:

CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Motpart")
Layoutbyggeren vil generere følgende uttrykk for utdata:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.SumTurnover)),Sum(DataSet.SumTurnover)",,"DataSet.Account"),"2")))

Alternativer:

Type: String. Uttrykket som skal vurderes. String, for eksempel Amount(AmountTurnover).

Type: String. Grupperingsfeltuttrykk – uttrykk for grupperingsfelt, atskilt med komma. For eksempel entreprenør, part.

Type: String. Et uttrykk som beskriver utvalget brukt på detaljposter. Uttrykket støtter ikke bruk av aggregerte funksjoner. For eksempel, DeletionFlag = False.

Type: String. Et uttrykk som beskriver utvalget brukt på gruppeposter. For eksempel, Amount(AmountTurnover) > &Parameter1.
Eksempel:

Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Motpart"));

En detaljert beskrivelse av funksjonssyntaksen finner du på http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Nå for beregningen, dupliser "Ordre"-feltet med forskjellige betydninger"Beregn etter..." ved å bruke følgende uttrykk, merk at hvert nivå over bruker verdiene til nivåene under grupperingene.

Som et resultat får vi følgende konstruksjon: