Come configurare smartphone e PC. Portale informativo
  • casa
  • Sistemi operativi
  • SD è il valore medio delle risorse. Funzioni aggregate del sistema di composizione dei dati

SD è il valore medio delle risorse. Funzioni aggregate del sistema di composizione dei dati

In questa breve nota, voglio mostrare come è possibile riassumere valori a diversi livelli di raggruppamento in un report utilizzando un sistema di composizione dei dati.
Come mostrato nell'immagine, solo a livello di raggruppamento "Gruppi di articoli" viene calcolata la risorsa "Ordine", che mostra quanto ordinare per il gruppo di articoli corrente in base a determinate condizioni:


Questo valore può essere calcolato solo a questo livello di raggruppamento, perché, sopra o sotto, non ci sono valori da calcolare. Ad esempio, a livello di record dettagliati, non ci sono dati sul numero massimo in un gruppo, perché questi dati sono veri solo per il gruppo nel suo insieme e non per i suoi singoli componenti.

Di conseguenza, ora è necessario calcolare i totali per i raggruppamenti superiori ("Magazzini", "Tipi di magazzino") e il totale.
Per questo, viene utilizzata la funzione Calcola espressione con array raggruppato:
VALUTARE L'ESPRESSIONE DEL RAGGRUPPAMENTO DI ARRAY (EVALEXPRESSIONCON GROUPARRAY)
Sintassi:
ComputeExpressionGroupedArray()
Descrizione:
La funzione restituisce un array, ogni elemento del quale contiene il risultato della valutazione dell'espressione per il raggruppamento in base al campo specificato.
Il generatore di layout, durante la generazione di un layout, converte i parametri della funzione in termini di campi di layout del layout dati. Ad esempio, il campo Account verrà convertito in Dataset.Account.
Il generatore di layout, durante la generazione di espressioni per la visualizzazione di un campo personalizzato la cui espressione contiene solo la funzione CalculateArrayWithGroupArray(), genera l'espressione di output in modo tale che le informazioni di output siano ordinate. Ad esempio, per un campo personalizzato con un'espressione:

Calculate ExpressionWith GroupingArray("Amount(AmountTurnover)", "Controparty")
Il generatore di layout genererà la seguente espressione per l'output:

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

Parametri:

Tipo: stringa. L'espressione da valutare. Una stringa, ad esempio Amount(AmountTurnover).

Tipo: stringa. Raggruppamento di espressioni di campo: raggruppamento di espressioni di campo separate da virgole. Ad esempio, appaltatore, parte.

Tipo: stringa. Un'espressione che descrive il filtro applicato ai record di dettaglio. Le funzioni aggregate non sono supportate in un'espressione. Ad esempio,DeletionMark = False.

Tipo: stringa. Un'espressione che descrive il filtro applicato ai record di gruppo. Ad esempio, Importo(Fatturato Importo) > &Parametro1.
Esempio:

Massimo(Calcola EspressioneCon RaggruppamentoArray("Amount(AmountTurnover)", "Controparte"));

Una descrizione dettagliata della sintassi della funzione è disponibile all'indirizzo http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Ora per il calcolo, duplicheremo il campo "Ordine", con diversi valori di "Calcola per ...", utilizzando le seguenti espressioni, si noti che in ogni livello superiore, i valori dei livelli al di sotto della posizione vengono utilizzati i raggruppamenti.

Di conseguenza, otteniamo la seguente costruzione:

Facciamo un esempio:

Al cliente vengono spedite più unità di merce con sconti diversi. È necessario visualizzare nel report i valori degli sconti per ciascun prodotto e calcolare lo sconto medio. Creiamo un rapporto sull'SKD.
Per tutti i campi per i quali è richiesta la visualizzazione dei totali, impostare l'espressione (metodo) per il loro calcolo nella scheda "Risorse". Per il campo "Sconto", impostare il metodo di calcolo come "Media".

Produciamo il rapporto:

Come puoi vedere, il totale del campo "Sconto" viene calcolato come media aritmetica dei valori del campo, ovvero la somma di tutti i valori divisa per il numero di valori. Ma da allora i volumi di merce spedita con sconti diversi sono diversi, quindi lo sconto medio può essere calcolato in un altro modo: ad esempio come rapporto tra l'importo totale della merce spedita, tenendo conto dello sconto, e l'importo totale della merce spedita. Ma qui sorge la domanda: se nell'ACS è possibile scrivere una formula per calcolare i valori dei campi dei record dettagliati, i totali vengono calcolati automaticamente secondo l'espressione specificata nella scheda "Risorse" e lì, come abbiamo visto in precedenza, la "Media" viene calcolata come media aritmetica dei valori visualizzati, come in questo caso calcolare il totale in questa colonna usando la tua formula?
In realtà non è difficile. Per fare ciò, correggeremo il nostro report aggiungendo i campi necessari che parteciperanno al calcolo, nel nostro caso questi sono "AmountWithDiscount" e "AmountByPrice".

Affinché l'ACS possa "insegnare" a visualizzare i nostri risultati, eseguiamo i seguenti passaggi:
1. nella scheda "Impostazioni" per il raggruppamento "" assegnare un nome, ad esempio "TotalSKD", per questo chiamiamo il menu contestuale per il raggruppamento e clicchiamo "assegna un nome";

2. nella scheda "Layout", aggiungiamo il "layout intestazione di raggruppamento", dove selezioniamo il nome precedentemente assegnato "TotalSKD";

3. tracciamo una linea di layout, dove lasciamo tutti i totali, il cui calcolo ci conviene così come sono, e per calcolare la percentuale media dello sconto, scriviamo una formula per il calcolo;

Se tutto è corretto, quando viene visualizzato il report, sotto di esso verranno visualizzate due righe di totali, prima quella generata automaticamente, poi quella che hai creato.

Per lasciare l'output solo della tua riga di totali, devi nella scheda "Impostazioni" nella sezione "Altre impostazioni" dell'output del layout, disabilitare l'output per "Posizione orizzontale dei totali generali" e "Posizione verticale di totali complessivi"

Importante! Se il parametro della funzione è di tipo String e specifica un nome di campo che contiene spazi, tale nome di campo deve essere racchiuso tra parentesi quadre.
Ad esempio: "[Numero fatturato]".

1. Totale- calcola la somma dei valori delle espressioni passategli come argomento per tutti i record dettagliati. Puoi passare un array come parametro. In questo caso, la funzione verrà applicata al contenuto dell'array.

Esempio :
Importo(Vendite.ImportoFatturato)

2. Numero (conteggio) - conta il numero di valori non nulli. Puoi passare un array come parametro. In questo caso, la funzione verrà applicata al contenuto dell'array.

Sintassi:
Quantità (parametro [Vario])

Quando si specifica come ottenere valori diversi, specificare Distinct prima del parametro del metodo Quantità.

Esempio :
Quantità (vendite. Appaltatore)
Quantità (Varie Vendite. Appaltatore)

3. Massimo (Massimo) - ottiene il valore massimo. Puoi passare un array come parametro. In questo caso, la funzione verrà applicata al contenuto dell'array.

Esempio :
Massimo(Resti. Quantità)

4. Minimo - ottiene il valore minimo. Puoi passare un array come parametro. In questo caso, la funzione verrà applicata al contenuto dell'array.

Esempio :
Minimo (Saldo. Quantità)

5. Nella media - ottiene il valore medio per valori non nulli. Puoi passare un array come parametro. In questo caso, la funzione verrà applicata al contenuto dell'array.

Esempio :
Media(Resti. Quantità)

6. Matrice - forma un array contenente il valore del parametro per ogni record dettagliato.

Sintassi:
Array([Varie] Espressione)

Puoi usare una tabella di valori come parametro. In questo caso, il risultato della funzione sarà un array contenente i valori della prima colonna della tabella dei valori, passati come parametro. Se un'espressione contiene una funzione Array, l'espressione viene considerata un'espressione aggregata. Se viene specificata la parola chiave Variant, l'array risultante non conterrà valori duplicati.

Esempio :
Matrice(Account)

7. Tabella dei valori - genera una tabella di valori contenente tante colonne quanti sono i parametri per la funzione. I record dettagliati vengono ottenuti dai set di dati necessari per ottenere tutti i campi coinvolti nelle espressioni dei parametri di funzione.

Sintassi:
ValueTable([Varie] Espressione1 [AS ColumnName1][, Expression2 [AS ColumnName2],...])

Se i parametri della funzione sono campi residui, la tabella di valori risultante includerà i valori per i record per combinazioni univoche di misurazioni di altri periodi. In questo caso, i valori si ottengono solo per campi saldo, dimensioni, conti, campi periodo e relativi dettagli. I valori di altri campi nei record di altri periodi sono considerati NULL. Se un'espressione contiene la funzione ValueTable, l'espressione viene considerata un'espressione aggregata. Se viene specificata la parola chiave Different, la tabella di valori risultante non conterrà righe contenenti gli stessi dati. Ciascun parametro può essere seguito da una parola chiave AS opzionale e da un nome che verrà assegnato alla colonna della tabella dei valori.

Esempio :
Tabella dei Valori (Va Nomenclatura, Nomenclatura Caratteristica AS Caratteristica)

8. Comprimi (GroupBy) - progettato per rimuovere i duplicati da un array.

Sintassi:
Comprimi(Espressione, NumeriColonna)

Parametri:

  • Espressione- un'espressione di tipo Array o ValueTable, i cui valori degli elementi devono essere compressi;
  • Numeri Colonne- (se l'espressione è di tipo ValueTable) di tipo String. Numeri o nomi (separati da virgole) delle colonne della tabella dei valori, tra i quali è necessario cercare i duplicati. L'impostazione predefinita è tutte le colonne.
Esempio :
Comprimi(Tabella Valori(NumeroTelefono, Indirizzo), "NumeroTelefono");

9. GetPart (GetPart) - ottiene una tabella di valori contenente determinate colonne dalla tabella di valori originale.

Sintassi:
GetPart(Espressione, NumeriColonna)

Parametri:

  • Espressione- tipoTabellaValore. Tabella dei valori da cui ricavare le colonne;
  • Numeri Colonne- digitare Stringa. Numeri o nomi (separati da virgole) delle colonne della tabella dei valori da ottenere.
Valore restituito: una ValueTable che contiene solo le colonne specificate nel parametro.

Esempio :
GetPart(Collapse(TabellaValore(NumeroTelefono,Indirizzo),"NumeroTelefono"),"NumeroTelefono");

10. Ordine - serve per ordinare gli elementi dell'array e la tabella dei valori.

Sintassi:
Ordine(Espressione, NumeriColonna)

Parametri:

  • Espressione- Array o Table of Values ​​da cui ricavare colonne;
  • Numeri Colonne- (se l'espressione è di tipo ValueTable) numeri o nomi (separati da virgole) delle colonne della tabella dei valori in base a cui ordinare. Può contenere la direzione di ordinazione e la necessità di ordinazione automatica: Decrescente/Crescente + Ordine automatico.
Valore restituito: Array o ValueTable, con elementi ordinati.

Esempio :
Ordina(TabellaValore(NumeroTelefono, Indirizzo,DataChiam),"DataDecrescente");

11. ConnectStrings (JoinStrings) - progettato per concatenare stringhe in un'unica stringa.

Sintassi:
ConcatenateStrings(Valore, Separatore di elementi, Separatori di colonna)

Parametri:

  • Significato- espressioni da combinare in una riga. Se si tratta di un array, gli elementi dell'array verranno combinati in una stringa. Se è una ValueTable, tutte le colonne e le righe della tabella verranno combinate in una riga;
  • Separatore di elementi- una stringa contenente il testo da utilizzare come separatore tra gli elementi dell'array e le righe della tabella valori. L'impostazione predefinita è un carattere di nuova riga;
  • Separatori di colonne- una stringa contenente il testo da utilizzare come separatore tra le colonne della tabella dei valori. Predefinito "; ".
Esempio :
ConnectStrings(TabellaValore(NumeroTelefono,Indirizzo));

12. Elaborazione di gruppo - restituisce l'oggetto DataCompositionGroupProcessingData. Nell'oggetto, nella proprietà Data, i valori di raggruppamento sono inseriti sotto forma di tabella di valori per ogni espressione specificata nel parametro della funzione Espressioni. Nel caso di utilizzo del raggruppamento gerarchico, ogni livello della gerarchia viene elaborato separatamente. Nei dati vengono inseriti anche i valori per le voci gerarchiche. La proprietà CurrentElement dell'oggetto è impostata sulla stringa della tabella dei valori per la quale la funzione è attualmente in fase di valutazione.

Sintassi:
GroupProcessing(Espressioni, Espressioni Gerarchia, NomeGruppo)

Parametri:

  • Espressioni. Espressioni da valutare. Una stringa contenente un elenco di espressioni separate da virgole da valutare. Ciascuna espressione può essere seguita da una parola chiave AS opzionale e da un nome di colonna della tabella dei valori risultante. Ogni espressione forma una colonna della tabella dei valori della proprietà Data dell'oggetto DataCompositionGroupProcessingData.
  • Espressioni Gerarchie. Espressioni da valutare per le voci gerarchiche. Simile al parametro Espressioni, con la differenza che il parametro Espressioni gerarchiche viene utilizzato per i record gerarchici. Se il parametro non è specificato, le espressioni specificate nel parametro Expression vengono utilizzate per calcolare i valori per i record gerarchici.
  • Nome raggruppamento. Il nome del raggruppamento in cui calcolare il raggruppamento di elaborazione. Linea. Se non specificato, il calcolo avviene nel raggruppamento corrente. Se il calcolo è nella tabella e il parametro contiene una stringa vuota o non è specificato, il valore viene calcolato per il raggruppamento: la stringa. Il generatore di layout, quando genera un layout di layout dati, sostituisce il nome dato con il nome del raggruppamento nel layout risultante. Se il raggruppamento non è disponibile, la funzione verrà sostituita con un valore NULL.
13. Tutti (tutti) - se almeno un record ha il valore False, il risultato è False, altrimenti True.

Sintassi:
Ciascuno (Espressione)

Parametro:

  • Espressione- Tipo booleano.
Esempio :
Ogni()

14. Qualsiasi (Qualsiasi)- se almeno una voce è True, il risultato è True, altrimenti False

Sintassi:
Qualsiasi(Espressione)

Parametro:

  • Espressione- Tipo booleano.
Esempio :
Qualsiasi()

15. Deviazione standard della popolazione (Stddev_Pop) - Calcola la deviazione standard della popolazione. Si calcola con la formula: SQRT(Varianza della popolazione generale (X)).

Sintassi:
Deviazione standard della popolazione (espressione)

Parametro:

  • Espressione- digitare Numero.

Esempio :

X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELEZIONA Deviazione standard della popolazione (Y) DALLA tabella
Risultato: 805.694444

16. Deviazione standard del campione (Stddev_Samp) - calcola la deviazione standard cumulativa. Calcolato utilizzando la formula: SQRT(Sampling Variance(X)).

Sintassi:
Esempio di deviazione standard (espressione)

Parametro:

  • Espressione- digitare Numero.
Tipo di reso Numero.

Esempio :

X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELEZIONA Esempio di deviazione standard (Y) DALLA tabella
Risultato: 28.3847573

17. VarianceSampling (Var_Samp) - calcola la differenza tipica di una serie di numeri senza tenere conto dei valori NULL in questo insieme. Calcolato utilizzando la formula: (Sum(X^2) - Sum(X)^2 / Amount(X)) / (Amount(X) - 1). Se Quantità(X) = 1, viene restituito NULL.

Sintassi:
Campionamento varianza(Espressione)

Parametro:

  • Espressione- digitare Numero.
Esempio :
SELECT Population Variance(Y) FROM Table
Risultato: 716.17284

19. Covarianza della popolazione (Covar_Pop) - calcola la covarianza di un numero di coppie numeriche. Calcolato utilizzando la formula: (Sum(Y * X) - Sum(X) * Sum(Y) / n) / n, dove n è il numero di coppie (Y, X) in cui né Y né X sono NULL.

Sintassi:
Covarianza della popolazione(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELECT Population Covariance(Y, X) FROM Table
Risultato: 59.4444444

20. Covarianza del campione (Covar_Samp) - calcola la differenza tipica di una serie di numeri senza tenere conto dei valori NULL in questo insieme. Calcolato utilizzando la formula: (Sum(Y * X) - Sum(Y) * Sum(X) / n) / (n-1), dove n è il numero di coppie (Y, X) in cui né Y né X sono NULLI.

Sintassi:
Esempio di covarianza (Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELECT CovarianceSamples(Y, X) FROM Table
Risultato: 66.875

21. Correlazione (Corr) - calcola il coefficiente di correlazione di un numero di coppie numeriche. Calcolato dalla formula: Covarianza della popolazione(Y, X) / (Deviazione standard della popolazione(Y) * Deviazione standard della popolazione(X)). Le coppie in cui Y o X sono NULL non vengono prese in considerazione.

Sintassi:
Correlazione(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELEZIONA correlazione(X, Y) DALLA tabella
Risultato: 0,860296149

22. Pendenza di regressione (Regr_Slope) - calcola la pendenza della linea. Calcolato dalla formula: Population Covariance(Y, X) / Population Variance(X). Calcolato senza tenere conto delle coppie contenenti NULL.

Sintassi:
Pendenza di regressione(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELECT RegressionSlope(Y, X) FROM Table
Risultato: 8.91666667

23. Intercetta di regressione (Regr_Intercept) - calcola il punto Y di intersezione della retta di regressione. Calcolato utilizzando la formula: Media(Y) - Pendenza di regressione(Y, X) * Media(X). Calcolato senza tenere conto delle coppie contenenti NULL.

Sintassi:
Segmento di regressione(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
SELEZIONA Conteggio regressione(Y, X) DALLA tabella
Risultato: 9

25. Regressione R2 (Regr_R2) - calcola il coefficiente di determinazione. Calcolato senza tenere conto delle coppie contenenti NULL.

Sintassi:
Regressione R2(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Valore di ritorno:
  • Null - se Varianza della Popolazione Generale (X) = 0;
  • 1 - se Variazione della popolazione(Y)=0 AND Varianza della popolazione(X)<>0;
  • POW(Correlation(Y,X),2) - se Population Variance(Y)>0 AND Population Variance(X)<>0.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELEZIONA Regressione R2(Y, X) DALLA tabella
Risultato: 0,740109464

26. RegressionAverageX (Regr_AvgX) - Calcola la media di X dopo aver escluso le coppie X e Y in cui X o Y sono vuote. La media(X) viene calcolata senza tenere conto delle coppie che contengono NULL.

Sintassi:
Media di regressioneX(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELECT RegressionMeanX(Y,X) FROM Table
Risultato: 5

27. RegressionAverageY (Regr_AvgY) - calcola la media di Y dopo aver escluso le coppie X e Y, dove X o Y sono vuote. La media(Y) viene calcolata senza tenere conto delle coppie che contengono NULL.

Sintassi:
Media di regressioneY(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELEZIONA Media di regressione Y(Y, X) DALLA tabella
Risultato: 24.2222222

28. RegressioneSXX (Regr_SXX) - è calcolato con la formula: ImportoRegressione(Y, X) * Varianza della Popolazione Generale(X). Calcolato senza tenere conto delle coppie contenenti NULL.

Sintassi:
RegressioneSXX(Y, X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Restituisce la somma dei quadrati di espressioni indipendenti utilizzate in un modello di regressione lineare. La funzione può essere utilizzata per valutare la validità statistica di un modello di regressione.

Esempio :
SELECT RegressionSYY(Y, X) FROM Table
Risultato: 6445.55556

30. RegressioneSXY (Regr_SXY) - è calcolato con la formula: ImportoRegressione(Y, X) * Covarianza della Popolazione Generale(Y, X). Calcolato senza tenere conto delle coppie contenenti NULL.

Sintassi:
RegressioneSXY(Y,X)

Parametri:

  • Y- digitare Numero;
  • X- digitare Numero.
Esempio :
X1 2 3 4 5 6 7 8 9
Y7 1 2 5 7 34 32 43 87
SELECT RegressionSXY(Y, X) FROM Table
Risultato: 535

31. Classifica

Sintassi:
PlaceInOrder(Order, HierarchyOrder, GroupName)

Parametri:

  • Ordine– digitare Stringa. Contiene le espressioni nella sequenza in cui si desidera inserire i record di gruppo, separate da virgole. La direzione di ordinazione è controllata dalle parole Asc, Desc. Il campo può anche essere seguito dalla stringa AutoOrder, il che significa che l'ordinamento dei collegamenti deve utilizzare i campi di ordinamento definiti per l'oggetto di riferimento. Se non viene specificata alcuna sequenza, il valore viene calcolato nella sequenza di raggruppamento;
  • Ordine della Gerarchia– digitare Stringa. Contiene espressioni di ordinamento per record gerarchici;
  • Nome raggruppamento– digitare Stringa. Il nome del raggruppamento in cui calcolare il raggruppamento di elaborazione. Se non specificato, il calcolo avviene nel raggruppamento corrente. Se il calcolo è nella tabella e il parametro contiene una stringa vuota o non è specificato, il valore viene calcolato per il raggruppamento: la stringa. Il generatore di layout, quando genera un layout di layout dati, sostituisce il nome dato con il nome del raggruppamento nel layout risultante. Se il raggruppamento non è disponibile, la funzione verrà sostituita con un valore NULL.
Se nella sequenza sono presenti due o più record con gli stessi valori del campo di ordinamento, la funzione restituisce gli stessi valori per tutti i record.

Esempio :
PlaceInOrder("[Numero fatturato]")

32. ClassificazioneABC (ClassificazioneABC)

Sintassi:
ClassificazioneABC(Valore, Numero di gruppi, Percentuali per gruppi, Nome gruppo)

Parametri:

  • Significato– digitare Stringa. su cui calcolare la classifica. La stringa contenente l'espressione;
  • Numero di gruppi- digitare Numero. Specifica il numero di gruppi in cui dividere;
  • Interesse per gruppi- digitare Stringa. Tanto quanto il numero di gruppi che devi dividere meno 1. Separato da virgole. Se non è impostato, automaticamente;
  • Nome raggruppamento- digitare Stringa. Il nome del raggruppamento in cui calcolare il raggruppamento di elaborazione. Se non specificato, il calcolo avviene nel raggruppamento corrente. Se il calcolo è nella tabella e il parametro contiene una stringa vuota o non è specificato, il valore viene calcolato per il raggruppamento: la stringa. Il generatore di layout, quando genera un layout di layout dati, sostituisce il nome dato con il nome del raggruppamento nel layout risultante. Se il raggruppamento non è disponibile, la funzione verrà sostituita con un valore NULL.
Il risultato della funzione sarà il numero di classe, a partire da 1, che corrisponde alla classe A.

Esempio :
ClassificazioneABC("Importo(Utile Lordo)", 3, "60, 90")

Articoli correlati in alto