Esempi utili di creazione di un diagramma di composizione dei dati. Scopri cosa significa "SKD" in altri dizionari 1s SKD

Daremo un esempio nella configurazione "Gestione". impresa manifatturiera" versione 1.3. Nella base informativa di tutti gli elementi della directory "Organizzazioni" sono state aggiunte le proprietà "Magazzino principale", "Controparte correlata" e "Paese di ubicazione". Dobbiamo creare un report nel sistema di composizione dei dati (DCS), in cui possiamo applicare la selezione tramite caratteristiche aggiuntive e organizzazioni.

In questo caso, utilizzeremo la funzionalità ACS standard per lavorare con le caratteristiche dell'oggetto. Considereremo anche una caratteristica dello sviluppo di tali report, ovvero l'impossibilità di utilizzare caratteristiche aggiuntive nel progettista dello schema di composizione dei dati in modalità “Configuratore”. Quest'ultimo non consente l'utilizzo di campi caratteristici nell'impostazione dei campi da visualizzare in un report, selezioni, raggruppamenti nella struttura del report e così via.

Creazione di un report e impostazione delle caratteristiche

Creiamo un semplice report. Avrà un set di dati con la seguente query:

QueryText = "SELECT | Organizzazioni . Collega l'organizzazione AS,| Organizzazioni| . STAGNO, |. punto di controllo DA

Elenco" ;

La struttura del report produrrà solo record dettagliati con tutti i campi selezionati nella query. Nella finestra di progettazione, l'impostazione della struttura del report sarà simile alla seguente:

Lo screenshot seguente mostra l'output del report con le impostazioni correnti. Grande. Passiamo ora all'impostazione delle caratteristiche, ma prima lascia che te lo ricordi schema generale

  1. funzionamento del meccanismo delle caratteristiche nella maggior parte delle configurazioni standard, compresi gli avviatori statici. A tale scopo vengono utilizzati diversi oggetti di configurazione.
  2. Piano dei tipi di caratteristiche "Proprietà degli oggetti".

Registro delle informazioni "Valori delle proprietà degli oggetti".

Graficamente, la relazione tra un oggetto della base informativa e le sue caratteristiche può essere rappresentata utilizzando il seguente diagramma: idea generale sul meccanismo aggiuntivo proprietà. In pratica è più complicato.

Passiamo ora all'impostazione delle caratteristiche nello schema di composizione dei dati. Per fare ciò, avvia il query designer e vai alla scheda “Caratteristiche”. Qui è necessario aggiungere un campo per connettere l'oggetto infobase con tabelle di proprietà e valori di proprietà. In precedenza, abbiamo esaminato lo schema di comunicazione tra gli oggetti di configurazione per la memorizzazione di ulteriori. proprietà/caratteristiche. Sulla base di queste informazioni, la configurazione sarà la seguente:

Successivamente, la richiesta del set di dati verrà integrata con le istruzioni per ottenere le caratteristiche dell'oggetto.

" SELEZIONA | Organizzazioni . Collega l'organizzazione AS,| Organizzazioni| . STAGNO, |. punto di controllo| Direttorio | . Organizzazioni AS Organizzazioni // Aggiungere. istruzioni per ottenere le caratteristiche|(CARATTERISTICHE | | TIPO | (Directory. Organizzazioni) | TIPI DI CARATTERISTICHE Piano dei Tipi di Caratteristiche. Proprietà dell'oggetto | CHIAVE DI CAMPO Link | NOME CAMPO Nome | VALORI DEL TIPO DI VOLO TypeValues | CARATTERISTICHE VALORI Informazioni Registro. Valori delle proprietà dell'oggetto | OGGETTO CAMPO Oggetto"

Proprietà POLEVIDA

VALORI UTILI Significato )

Questo è tutto. La funzionalità del report ora consente di selezionare campi per caratteristiche aggiuntive nel report (campi di output, selezioni, ecc.). Ma ce n'è uno MA. Possiamo utilizzare questi campi nelle impostazioni del report solo in modalità 1C:Enterprise. Nel configuratore non possiamo vedere i campi delle caratteristiche, il che è logico, perché le caratteristiche vengono inserite dall'utente e memorizzate nella base delle informazioni.

Ma se necessario, possiamo aggiungere campi caratteristiche, ad esempio, alla selezione prima di aprirla. Diamo un'occhiata a un piccolo esempio.

Lavoro programmatico con caratteristiche Quando si apre il modulo del rapporto, eseguire il seguente codice di programma:Impostazioni correnti = Impostazioni compositore. Impostazioni; CollectionCollection = Impostazioni correnti. Selezione. Elementi; // Aggiunge la selezione tramite ulteriore. alla scheda articolo "Magazzino principale". [Magazzino principale] // Aggiunge la selezione tramite ulteriore. ai dettagli della nomenclatura "Paese di collocamento" NovEl = CollectionSelections. Aggiungi(Tipo(" Layout dei dati degli elementi di selezione" ) ) ; NewEl.ComparisonType = DataCompositionComparisonType. Uguale a; NewEl.LeftValue = . [Paese di distacco]. [Magazzino principale] // Aggiunge la selezione tramite ulteriore. ai dettagli della nomenclatura "Paese di collocamento"" ); NewEl. Utilizzo = False ; // Aggiunge la selezione tramite ulteriore. al dettaglio della voce “Controparte correlata”" ) ); NewEl.ComparisonView = DataCompositionComparisonView. Equals; NewEl.LeftValue = NewDataCompositionField("Organizzazione

. [Controparte correlata]

Pertanto, abbiamo aggiunto a livello di codice una selezione basata su caratteristiche aggiuntive della directory "Organizzazioni", nonostante questi campi non fossero disponibili nel progettista ACS. Nota la sintassi per definire un campo di composizione dati.

Nuovocampocomposizionedati(" Organizzazione // Aggiunge la selezione tramite ulteriore. al dettaglio della voce “Controparte correlata”" ) ,

vale a dire il testo “[controparte collegata]”. Se scriviamo così:

Nuovocampocomposizionedati(" Organizzazione . Controparte correlata" ) ,

quindi durante l'esecuzione del report, ACS rileverà erroneamente i campi del layout. Nelle impostazioni i campi di selezione verranno evidenziati come errati:

Per proprietà e dettagli aggiuntivi che non sono disponibili in ACS Designer, quando si accede a livello di programmazione, è necessario utilizzare la seguente sintassi:

NuovocampoComposizioneDati(" . " )

Pertanto, possiamo definire le impostazioni del report anche se i campi non sono disponibili in ACS Designer.

Conclusione

L'utilizzo delle impostazioni delle caratteristiche in ACS può semplificare notevolmente lo sviluppo di report complessi. Nonostante alcune carenze nel lavoro, come la mancanza di capacità di configurare la selezione aggiuntiva. proprietà nel progettista, ecc., il meccanismo delle caratteristiche può essere considerato un passo significativo nella semplificazione dello sviluppo di report nel sistema 1C:Enterprise.

Nell'articolo non abbiamo considerato tutte le capacità delle caratteristiche dell'ACS. Al di fuori dello scopo dell'articolo ci sono possibilità come: definizione arbitraria delle fonti di dati, sia per le proprietà che per i valori caratteristici, nonché la selezione da parte del proprietario per tutti caratteristiche disponibili nella base informativa e molto altro ancora. L'argomento è grande, c'è spazio per espandere la tua cerchia di conoscenze.

Un esempio di come è possibile ottenere i campi del record precedente in un gruppo e altro ancora. Comodo per calcolare la differenza tra i valori del prezzo precedente e quello attuale.

L'essenza della soluzione è utilizzare la funzione del linguaggio delle espressioni ACS CalcolaEspressione() nel campo calcolato aggiunto che ho chiamato Delta. La funzione ha i seguenti parametri:

parametri:

  • Espressione. Tipo Linea;
  • Raggruppamento. Tipo Linea;
  • Tipo di calcolo. Tipo Linea;
  • Inizio
  • FINE. Una stringa contenente una delle opzioni;
  • Ordinamento. Linea;
  • Ordinamento gerarchico;
  • Elaborazione degli stessi valori dell'ordine

Siamo interessati ai parametri 4 e 5 ( Inizio E FINE). L'espressione sarà simile a questa:

isNULL((CALCULATEEXPRESSION("Prezzo", "Precedente", "Precedente") - Prezzo), 0)

Qui calcoliamo il valore precedente del campo Prezzo e sottrarre da esso il valore del campo corrente Prezzo. Naturalmente per il primo record non verrà calcolato il valore precedente e il risultato della sottrazione con il valore del campo corrente sarà Null, quindi per mantenere tutto “puro” utilizziamo la funzione isNULL per convertire Null nel numero zero.

Inserisci una tabella di valori in una cella del documento del foglio di calcolo

A volte è necessario posizionare la parte tabellare di un documento o i dati che rappresentano le righe della parte tabellare in una cella del documento tabellare, ad esempio in questo modo:

Per fare ciò è necessario utilizzare la funzione: CalculateExpressionWithGroupValueTable() , che ha parametri:

  • Espressione- l'espressione da calcolare. Digitare Stringa. Una riga può contenere più espressioni separate da virgole. Dopo ogni espressione può esserci un facoltativo parola chiave AS è il nome della colonna della tabella dei valori. Ad esempio: "Controparte, Importo (Importo Fatturato) come volume delle vendite".
  • GruppiEspressioniCampo- espressioni di raggruppamento di campi, separati da virgole. Ad esempio, "Controparte, Partito";
  • Selezione dei record- un'espressione applicata alle registrazioni di dettaglio. Ad esempio, "Elimina flag = False";
  • Selezione dei raggruppamenti- selezione applicata ai record di gruppo. Ad esempio: "Importo(ImportoFatturato) > &Parametro1".

Per fare ciò creiamo un campo calcolato in cui visualizzeremo la tabella risultante, quindi inseriamo questo campo nelle risorse con l'espressione CalculateExpressionWithGroupValueTable("Nomenclatura, Quantità")

Numera le colonne

Un esempio di come numerare le colonne in un sistema di controllo degli accessi.

L'essenza della soluzione:

  1. Creiamo una query in cui numeriamo le righe del risultato della query entro una certa subordinazione
  2. Visualizziamo il risultato in una tabella a campi incrociati

IMPORTANTE!

Dopo aver numerato le righe della richiesta è necessario inserirle in un VT e poi selezionarle da questo VT, altrimenti il ​​sistema di controllo accessi farà tutto a modo suo e verranno inseriti nel raggruppamento i campi sbagliati

Per ottenere il risultato, è necessario creare un campo calcolato con l'espressione "Dipendente" + Formato(NPP,"CHTs=3; CHVN=") e il campo calcolato Nome completo, in cui puoi semplicemente inserire il Dipendente, quindi inseriamo il campo Nome e cognome a una risorsa con un'espressione Massimo(nome completo) o semplicemente Nome e cognome- nessuna differenza

Gruppi alternati con evidenziazione del colore

Da qualche parte su Mist o sullo stesso 1Cskd.ru c'era una domanda su come evidenziare colori diversi stringhe che formano gruppi

Ciò si ottiene creando un campo calcolato:

CalculateExpression("Quantità (varie nomenclature)","Primo","Precedente","Insieme") % 2

Contiamo il numero di “raggruppamenti” diversi del campo Nomenclature i raggruppamenti possono essere conteggiati impostando il valore del parametro Processing Identical OrderValues ​​= “Together”;

Il resto della divisione per due chiarirà se il gruppo è pari o meno, di conseguenza creiamo un elemento di progettazione condizionale con la condizione; Campo = 1

Rimane per caratteristiche. Caratteristiche in linea con quantità tra parentesi

Sullo stesso 1CSkd.ru c'era un argomento in cui l'autore chiede aiuto per realizzare un rapporto, dove in una delle colonne è richiesto un elenco di caratteristiche (taglie di scarpe) con la loro quantità. http://1cskd.ru/2013/05/podskazhite-novichku-v-skd/

Ciò si ottiene utilizzando la stessa funzione CalculateExpressionWithGroupArray()

In questo esempio la funzione è simile alla seguente:

CalculateExpressionWithGroupArray("Caratteristica di Nomenclature.Name +
""("" + Formato(Quantità rimanente,""CHG=0"") + "")""",
,
"ValueFilled (caratteristica della nomenclatura)")

Il terzo parametro è la selezione, permette di evitare di presentare la stringa vuota "" - di conseguenza non vedrai residui senza caratteristiche

Unisci due tabelle con la chiave Riga = Numero

Oppure un'opzione per convertire un valore di tipo numerico in una stringa in SKD

Di tanto in tanto sui forum vedo un argomento come "Come convertire un numero in una stringa in una query". Se stai scrivendo un report su un sistema di controllo degli accessi e devi eseguire una trasformazione simile, non è necessario scrivere alcun trucco nella richiesta.

Per convertire un numero in una stringa è sufficiente utilizzare la funzione linguaggio espressione del sistema di composizione dati ACS Linea() O Formato()

Per convertire una stringa in un numero è possibile utilizzare la funzione Calcolare()

Ordina per stringa come per numero

Nel mio esempio, visualizzerò semplicemente l'elenco dei dipendenti, ordinandolo per numero del personale (codice)

Il risultato sarà simile a questo:

Ciò si ottiene creando un campo calcolato e utilizzando la funzione del linguaggio delle espressioni ACS Calcolare()

  1. Crea un campo calcolato NumeroTabNumero, con l'espressione: Calcola(Dipendente.Codice)
  2. Ordina in base a questo campo

essenzialmente si tratta di convertire una stringa in un numero utilizzando la funzione del linguaggio delle espressioni SKD Calcolare()

Ti consiglio anche di guardare i “Video tutorial su ACS” (facilmente ricercabili su Google)

Durante lo sviluppo, utilizzo un file .

A volte capita che i dati di un report non possano essere ottenuti utilizzando una query o una combinazione di query. È necessario utilizzare alcune procedure per raccogliere i dati e i dati vengono inseriti in una tabella di valori. Sorge la domanda: questi dati possono essere utilizzati in uno schema di composizione dei dati? Dopotutto, lo strumento SKD è potente e conveniente. Risulta che è possibile utilizzare i dati della tabella dei valori come fonte dati per un report nel sistema di controllo degli accessi e non è affatto difficile da fare. Questo articolo ti mostrerà come creare un report di questo tipo per i moduli regolari.
Quindi, come si crea un report ACS utilizzando i dati di una tabella di valori? Per prima cosa.
Innanzitutto apri il configuratore e crea un nuovo report esterno.

Aprire il modulo oggetto e creare una procedura predefinita durante la composizione del risultato (DocumentResult, Decryption Data, StandardProcessing)

All'interno di questa procedura raccoglieremo i dati e genereremo un report.
Nella procedura Durante la composizione del risultato, disabilitiamo l'elaborazione standard. Elaborazione standard = Falso;
Quindi formiamo una tabella di valori in modo arbitrario. I nomi delle colonne della tabella dei valori devono corrispondere ai campi futuri del set di dati nell'ACS:


Ad esempio, aggiungiamo tre righe di dati. Successivamente, creiamo l'output del report passo dopo passo.

  • Dal diagramma otteniamo le impostazioni predefinite.

  • Inviamo i dati di decrittazione alla variabile appropriata.

  • Creiamo il layout utilizzando il generatore di layout.

  • Trasferiamo il diagramma, le impostazioni e i dati di decrittografia al layout del layout.

  • Eseguiamo il layout utilizzando il processore di layout. Per fare ciò, eseguire il metodo del processore di composizione dati Inizializzazione(). Come parametri passiamo il layout di composizione dei dati, set di dati esterni (tipo: Struttura, la chiave della struttura deve corrispondere al nome dell'oggetto nello schema di composizione dei dati, il valore è la tabella di valori generata), dati di decrittazione.

  • Cancella il campo del documento del foglio di calcolo.

  • Visualizziamo il risultato in un documento di foglio di calcolo.
Il risultato è il seguente codice:
SchemaLayoutDati = OttieniLayout( "Schema di composizione dei dati principali"); //Impostazioni = DataCompositionScheme.DefaultSettings; Impostazioni = ImpostazioniCompositore. OttieniImpostazioni(); DecryptionData = newDataCompositionDecryptionData; LayoutLinker = newDataLayoutLayoutLinker;

LayoutLayout = LayoutLocker. Esegui (Schema Composizione Dati, Impostazioni, Decrittografia Dati); SetDatiEsterni = Nuova struttura("Esempio di tabella dei valori"

, TZOutput);

DataCompositionProcessor = nuovoDataCompositionProcessor;

Processore di composizione dati. Inizializza (LayoutLayout, ExternalDataSet, DecryptionData);


Risultato documento. Chiaro(); OutputProcessor = Nuovo OutputProcessorDataCompositionResultInTabularDocument;

Processore di uscita. ImpostaDocumento(RisultatoDocumento);

Processore di uscita. Output (processore di composizione dati);

Aggiunta di un layout del diagramma di layout. Possiamo lasciare il nome come predefinito.

Quando ho riscontrato per la prima volta la necessità di utilizzare questo meccanismo in uno schema di controllo degli accessi, ho lottato a lungo, organizzando query annidate, unendole alla selezione principale e scervellandomi su come tenere conto della possibilità dell'emergere di nuove tipologie di proprietà che non esistevano al momento dello sviluppo del report. L'intero meccanismo delle proprietà, essendo semplice e logico dal punto di vista dell'utente, non si prestava ad alcuna normale elaborazione finché non ho scoperto la scheda "Caratteristiche".

La tabella nella scheda è molto capricciosa, o inserisci correttamente l'intera riga, oppure rifiuti di inserire completamente la riga, il sistema non ti consentirà di lasciare una riga compilata in modo incompleto “per dopo”.

Quindi, scendiamo nello specifico. Prima colonna: Tipo– qui selezioniamo il tipo di oggetto a cui verranno allegate le caratteristiche, ad esempio “DirectoryLink.Nomenclature”

Ciò significa che ora sarà possibile ottenere valori di proprietà per tutti gli oggetti del tipo specificato.

Più avanti nella colonna successiva Origine della specie dobbiamo impostare i parametri della sorgente della vista della proprietà. Opzioni possibili tavolo M richiesta, perché abbiamo bisogno di un'opzione? richiesta Te lo dirò più tardi, ora selezioniamo un elemento tavolo.

Nella colonna Tipi di caratteristiche dobbiamo selezionare la tabella della infobase in cui tipi richiesti caratteristiche, nel nostro esempio sarà “Piano dei Tipi di Caratteristiche.Proprietà degli Oggetti”.

Successivamente, i valori a nostra disposizione per la selezione nelle colonne Campo chiave, Campo nome E Campo del tipo di valore, dipendono direttamente dai campi della tabella che selezioniamo. IN Campo chiave scegliamo Collegamento, V Campo nomePrestazione(l'utente lo vedrà come il nome dell'attributo) e in Campo tipo rispettivamente TipoValore.

Passiamo ora alla fonte dei valori. La nostra fonte di valori sarà il registro delle informazioni “ObjectPropertyValues”, quindi selezioniamo nella colonna Fonte di valoritavolo e nella colonna Valori degli attributi– “Registro delle informazioni. Valori delle proprietà dell'oggetto”. Nelle colonne Oggetto, Proprietà, Senso, selezionare i campi di registro appropriati Oggetto, Proprietà, Senso.

Sembrerebbe che questo sia tutto. Andiamo alle impostazioni dello schema, aggiungiamo un raggruppamento per prodotti e aggiungiamo un raggruppamento subordinato, ad esempio per Marchi, abbiamo una tale proprietà.

Espandiamo l'elenco dei dettagli del gruppo Nomenclatura e... non vediamo nessuna proprietà lì:

Il fatto è che siamo nel configuratore, da dove non è possibile accedere ai dati. Come effettuare le impostazioni necessarie? Il modo più comodo per farlo è utilizzare la console di composizione dati, quella presente sul disco ITS, oppure quella inclusa nel sottosistema “Strumenti per sviluppatori”. Ma puoi semplicemente aprire le impostazioni del report in modalità aziendale.

Quindi, apriamo la stessa impostazione, ma in modalità aziendale:

Come puoi vedere, abbiamo aggiunto nuovi “Dettagli” e la proprietà “ Marca" Esteriormente non differisce dai soliti dettagli della directory. E la proprietà” Tipo di prodotto" è tra parentesi quadre perché la rappresentazione della proprietà contiene uno spazio.

Però abbiamo anche la proprietà” Tipo di accordo" che è collegato alla directory " Trattato" e non ha nulla a che fare con " Nomenclatura“. Se non utilizzato nell'impostazione “ Tipo di accordo" allora tutto funzionerà correttamente, ma se lo selezioni, di conseguenza risulterà vuoto, perché non un singolo elemento nella nomenclatura ha effettivamente compilato questa proprietà. Ma come filtrare le proprietà non necessarie in modo che non ti finiscano sotto i piedi?

Per fare ciò, dobbiamo modificare l'impostazione della vista sorgente nel progettista della query, nella scheda "Caratteristiche". Ricorda, all'inizio dell'articolo ho promesso di dirti perché è necessario il tipo di origine della visualizzazione richiesta? Adesso è proprio un caso del genere. Modificare il tipo di origine della vista in richiesta. Nella colonna dei tipi di caratteristiche, fare clic sul pulsante “[...]” e si apre una nuova finestra di progettazione query.

Inserisci lì la seguente query:

SCEGLIERE
Proprietà oggetto.Rif.
Proprietà oggetto Nome + "(proprietà)" Nome AS,
Proprietà oggetto.TypeValues
DA
Piano dei Tipi di Caratteristiche Proprietà degli Oggetti AS Proprietà degli Oggetti
DOVE
Proprietà dell'oggetto. Scopo delle proprietà = VALORE (Piano dei tipi di caratteristiche. Scopo delle proprietà delle categorie di oggetti. Directory_Nomenclatura)
AND (NON ObjectProperties.DeletionMark)
AND (NON ObjectProperties.Category)

Nelle colonne Campo chiave, Campo nome E Campo del tipo di valore, selezionare i campi di selezione appropriati: Collegamento, Nome E TipoValore. Risulterà così:

Ora, quando passiamo all'impostazione del report, l'immagine nell'elenco dei dettagli della nomenclatura cambierà:

Ora il prodotto ha solo le proprietà che gli sono state assegnate, inoltre, ora sono notevolmente diverse dai soliti dettagli, grazie al postscript (proprietà), che abbiamo aggiunto al nome della proprietà nella richiesta.

Questo è tutto, ma molti potrebbero rimanere confusi dall'impossibilità di configurarlo nel configuratore. Non c'è davvero niente di sbagliato in questo. E' sufficiente salvare l'impostazione (o l'intero circuito) in un file e ripristinarla nel configuratore.

Il configuratore mostrerà i dettagli che non comprende con croci rosse come non disponibili:

Ma questo non fa più paura, perché un report con tali impostazioni può essere salvato nella configurazione e funzionerà correttamente una volta aperto dall'utente.

In questa breve nota voglio mostrare come è possibile riassumere valori a vari livelli di raggruppamento in un report utilizzando un sistema di composizione dei dati.
Come mostrato nell'immagine, solo a livello di raggruppamento “Gruppi articoli”, viene calcolata la risorsa “Ordine”, che visualizza quanto deve essere ordinato per gruppo attuale nomenclatura basata su determinate condizioni:


Questo valore può essere calcolato solo per questo livello raggruppamenti perché, sopra o sotto, non ci sono valori da calcolare. Ad esempio, a livello di registrazioni dettagliate, non ci sono dati in merito numero massimo nel gruppo, perché questi dati valgono solo per il gruppo nel suo insieme e non per i suoi singoli componenti.

Occorre quindi ora calcolare i totali dei suddetti raggruppamenti (“Magazzini”, “Tipologie di Magazzino”) ed il totale complessivo.
Per fare ciò, utilizzare la funzione CalculateExpressionWithGroupArray:
VALUTAZIONE EXPRESSIONWITHGROUPARRAY (EVALEXPRESSIONWITHGROUPARRAY)
Sintassi:
ValutaExpressionWithGroupArray(,)
Descrizione:
La funzione restituisce un array, ciascun elemento del quale contiene il risultato della valutazione di un'espressione per il raggruppamento in base al campo specificato.
Il generatore di layout, quando genera un layout, converte i parametri della funzione in termini di campi del layout del layout dati. Ad esempio, il campo Account verrà convertito in DataSet.Account.
Il generatore di layout, quando genera espressioni per l'output di un campo personalizzato la cui espressione contiene solo la funzione CalculateArrayWithGroupArray(), genera l'espressione di output in modo che le informazioni di output siano ordinate. Ad esempio, per un campo personalizzato con l'espressione:

CalculateExpressionWithGroupArray("Importo(Importo Fatturato)", "Controparte")
Il generatore di layout genererà la seguente espressione per l'output:

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

parametri:

Tipo: corda. L'espressione da valutare. Riga, ad esempio, Importo(ImportoFatturato).

Tipo: corda. Espressioni di campi di raggruppamento: espressioni di campi di raggruppamento, separati da virgole. Ad esempio, Appaltatore, Parte.

Tipo: corda. Un'espressione che descrive la selezione applicata ai record di dettaglio. L'espressione non supporta l'uso di funzioni aggregate. Ad esempio, Eliminazione Flag = False.

Tipo: corda. Un'espressione che descrive la selezione applicata ai record di gruppo. Ad esempio, Importo(ImportoFatturato) > &Parametro1.
Esempio:

Massimo(CalculateExpressionWithGroupArray("Importo(ImportoFatturato)", "Controparte"));

Una descrizione dettagliata della sintassi della funzione può essere trovata su http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Ora per il calcolo, duplica il campo “Ordine”, con significati diversi“Calcola per...” utilizzando le seguenti espressioni, notare che ogni livello superiore utilizza i valori dei livelli inferiori ai raggruppamenti.

Di conseguenza, otteniamo la seguente costruzione: