Come configurare smartphone e PC. Portale informativo
  • casa
  • OS
  • Linguaggio di espressione del sistema di composizione dei dati (1Cv8). Entrare nella richiesta dei prezzi alla data del documento Come impostare la data corrente nel ckd

Linguaggio di espressione del sistema di composizione dei dati (1Cv8). Entrare nella richiesta dei prezzi alla data del documento Come impostare la data corrente nel ckd

ACS 1C sta per Sistema di composizione dei dati. ACS 1C è un nuovo modo di scrivere report in 1C, che consente all'utente di personalizzare completamente il report da solo.

Lo svantaggio di ACS 1C è che le sue impostazioni sono piuttosto complesse e non tutti gli utenti le apprendono rapidamente.

La scrittura di report ACS richiede la capacità di lavorare con le richieste in 1C, di cui abbiamo discusso.

Qual è la tecnologia per creare il report ACS 1C:

  • Scrivi una richiesta 1C all'ACS 1C, che fornisce la ricezione dei dati
  • Specificare il ruolo dei campi ACS 1C (campi calcolati, risorse)
  • Immettere le impostazioni 1C ACS predefinite.

L'utente ha la possibilità di modificare molte impostazioni a piacimento.

Qual è la tecnologia per creare un report sulle tecnologie precedenti:

  • Scrivi una richiesta nel programma 1C
  • Sviluppare un modulo di impostazioni (unico per il report), che consentirà di modificare solo le N impostazioni selezionate dal programmatore
  • Scrivere il codice (programma) per eseguire la richiesta e costruire la forma stampabile del report.

Come puoi vedere, ACS 1C ha un vantaggio significativo sia per l'utente che per il programmatore:

  • Programmatore: elimina la necessità di scrivere un programma per eseguire il report e le impostazioni
  • Utente: ottiene un accesso significativo alle impostazioni del rapporto.

In tutte le nuove configurazioni 1C, tutti i report verranno utilizzati solo sull'ACS 1C.

Vediamo come creare da zero un report sull'ACS 1C.

Creiamo un report SKD 1C

Nel configuratore, fare clic sul pulsante Nuovo file (File / Nuovo menu).

Seleziona il tipo di file Nuovo rapporto.

Verrà generato un nuovo rapporto. Inseriamo il nome - nessuno spazio per la configurazione, sinonimo per l'utente.

Creiamo uno schema ACS 1C di base.

Crea una richiesta per il rapporto ACS 1C

Ci possono essere molte fonti di dati per ACS 1C. Per utilizzare, ad esempio, due query separate, aggiungi prima "Set di dati - Unione" e poi diverse query.

Nel nostro esempio utilizzeremo una semplice query.

Elaboriamo una richiesta per ottenere i dati.

Lavorare con il costruttore di query non è diverso dal solito, ne abbiamo discusso in.

A seguito della formazione di una richiesta, ACS 1C creerà un elenco di campi disponibili per l'uso e compilerà i nomi per impostazione predefinita.

Se il nome è scomodo, puoi cambiarlo qui.

Nota che abbiamo usato il parametro &StartDate nella richiesta. In ACS 1C c'è un parametro predefinito (data) con il nome & Periodo e puoi usarlo.

Inoltre, non è necessario specificarlo direttamente nella richiesta: verrà utilizzato automaticamente. Tuttavia, c'è una sottigliezza: si applica a tutte le tabelle, inclusi i join a sinistra e così via, che possono dare origine a errori.

Ad esempio, ottieni il saldo all'inizio del mese e con la connessione sinistra ottieni i dati per oggi. Quando si utilizza il periodo verrà applicato a tutte le tabelle allo stesso modo e la query non funzionerà correttamente.

Impostazioni ACS 1C

Nella scheda Risorse, indicheremo i campi che verranno sommati per i totali (cioè i numeri). Per i campi è possibile specificare una funzione di sommatoria. Per impostazione predefinita, questa è Somma (cioè somma i numeri di tutte le righe e ottieni il totale), ma puoi usare Media, Quantità, Massimo, ecc.

Nella scheda Parametri, disattiveremo quelli non necessari e abiliteremo quelli necessari. Qui puoi anche impostare il nome umano del parametro.

Le impostazioni principali vengono effettuate nella scheda Impostazioni:


Apriamolo in modalità Enterprise. Si prega di notare che non abbiamo eseguito alcuna programmazione, disegno di forme o altro. Per impostare il parametro, fare clic sul pulsante Impostazioni.

L'utente vede quasi la stessa forma di impostazioni del programmatore.

Ecco. Il rapporto sta funzionando.

Impostazioni ACS 1C

Tutte le impostazioni del rapporto ACS 1C vengono effettuate facendo clic sul pulsante Impostazioni. Almeno nel modello predefinito. E' possibile creare la maggior parte del form del report ACS 1C e poi le impostazioni possono essere trasferite ad altri form disegnati dal programmatore in autonomia.

Trascina Magazzino da Colonna a Righe.

Trascina la nomenclatura nel magazzino.

Fare clic su OK e generare il report. Evviva: abbiamo appena cambiato il funzionamento del report nella modalità di programmazione senza programmazione.

Fare clic con il pulsante destro del mouse su Linee (oppure su uno qualsiasi dei campi) e selezionare Nuovo raggruppamento.

Espandi il campo Magazzino e seleziona uno dei suoi campi, ad esempio Tipo di magazzino.

Riflettendoci, ci siamo ricordati che vorremmo che più campi fossero visualizzati in una colonna contemporaneamente. Fare doppio clic sul campo appena creato con il tasto sinistro del mouse. Puoi aggiungere campi qui.

Se aggiungi un nuovo raggruppamento ma non selezioni un campo, significa Tutti i campi (visualizzati come Record di dettaglio). Sembra questo.

Prendi il nostro raggruppamento con il tasto sinistro del mouse (Magazzino / Nomenclatura) e trascinalo nel nuovo raggruppamento (Tipo Magazzino).

Il risultato delle nostre impostazioni.

Oltre alle impostazioni, la cui azione è facile da indovinare in base al loro nome (Selezione, Ordinamento, ecc.), C'è la scheda "Altre impostazioni". Ti consente di abilitare o disabilitare cose come la visualizzazione dei totali, l'organizzazione di raggruppamenti in colonne, ecc.

Si noti che le impostazioni possono essere specificate per l'intero report (è selezionato Report) o per una riga specifica di campi (selezionare una riga, ad esempio Nomenclatura, e selezionare Impostazioni: Nonmenclatura).

Linguaggio di espressione del sistema di composizione dei dati

Il linguaggio delle espressioni del sistema di composizione dei dati è progettato per scrivere espressioni utilizzate in varie parti del sistema.

Le espressioni sono utilizzate nei seguenti sottosistemi:

  • schema di composizione dei dati - per descrivere campi calcolati, campi totali, espressioni di relazione, ecc.
  • impostazioni di composizione dei dati - per descrivere le espressioni dei campi personalizzati;
  • modello di composizione dei dati - per descrivere le espressioni di relazione del set di dati, descrivere i parametri del modello, ecc.

letterali

Le espressioni possono contenere letterali. Sono possibili letterali dei seguenti tipi:

  • Linea;
  • Numero;
  • Data;
  • booleano.

Linea

Un letterale stringa è scritto in "" "caratteri, ad esempio:

"Stringa letterale"

Se è necessario utilizzare il carattere "" "all'interno di una stringa letterale, è necessario utilizzare due di questi caratteri.

Ad esempio:

"Letterale" "tra virgolette" ""

Numero

Il numero è scritto senza spazi, in formato decimale. La parte frazionaria è separata dal simbolo "." Ad esempio:

10.5 200

Data

Il valore letterale della data viene scritto utilizzando il valore letterale della chiave DATETIME. Dopo questa parola chiave, tra parentesi, separate da virgole, sono elencati l'anno, il mese, il giorno, le ore, i minuti, i secondi. L'ora è facoltativa.

Ad esempio:

DATA ORA (1975, 1, 06) - 6 gennaio 1975 DATA (2006, 12, 2, 23, 56, 57) - 2 dicembre 2006, 23 ore 56 minuti 57 secondi, 23 ore 56 minuti 57 secondi

booleano

I valori booleani possono essere scritti usando i letterali True, False.

Senso

Per specificare valori letterali di altri tipi (enumerazioni di sistema, dati predefiniti), viene utilizzata la parola chiave Value, seguita dal nome letterale tra parentesi.

Valore (Tipo di account. Attivo)

Operazioni sui numeri

unario -

Questa operazione ha lo scopo di invertire il segno di un numero. Ad esempio:

Numero.Vendite

unario +

Questa operazione non esegue alcuna azione sul numero. Ad esempio:

Numero.Vendite

binario -

Questa operazione è progettata per calcolare la differenza tra due numeri. Ad esempio:

Avanzi e fatturati.Saldo iniziale - Avanzi e fatturati.Saldo finale Avanzi e fatturati.Saldo iniziale - 100 400 - 357

Binario +

Questa operazione è progettata per calcolare la somma di due numeri. Ad esempio:

Saldi e fatturati.Saldo iniziale + Saldi e fatturati.Fatturato Saldi e fatturati.Saldo iniziale + 100 400 + 357

Opera

Questa operazione è progettata per calcolare il prodotto di due numeri. Ad esempio:

Nomenclatura.Prezzo * 1.2 2 * 3.14

Divisione

Questa operazione ha lo scopo di ottenere il risultato della divisione di un operando per un altro. Ad esempio:

Nomenclatura.Prezzo / 1.2 2 / 3.14

Resto della divisione

Questa operazione ha lo scopo di ottenere il resto della divisione di un operando per un altro. Ad esempio:

Nomenclatura Prezzo% 1.2 2% 3.14

Operazioni sulle stringhe

Concatenazione (binario +)

Questa operazione ha lo scopo di concatenare due stringhe. Ad esempio:

Nomenclatura.Articolo + “:” + Nomenclatura.Nome

Piace

Questa operazione controlla se la stringa corrisponde al modello passato.

Il valore dell'operatore LIKE è TRUE se il valore<Выражения>corrisponde al modello e FALSE altrimenti.

I seguenti caratteri in<Строке_шаблона>ha senso oltre al carattere della riga successiva:

  • % - percentuale: una sequenza contenente zero o più caratteri arbitrari;
  • _ - underscore: un carattere arbitrario;
  • […] - uno o più caratteri tra parentesi quadre: un carattere, uno qualsiasi di quelli elencati tra parentesi quadre. L'enumerazione può contenere intervalli, ad esempio a-z, che indica un carattere arbitrario incluso nell'intervallo, comprese le estremità dell'intervallo;
  • [^…] - tra parentesi quadre un'icona di negazione seguita da uno o più caratteri: qualsiasi carattere eccetto quelli elencati dopo l'icona di negazione;

Qualsiasi altro simbolo significa se stesso e non ha alcun significato aggiuntivo. Se è necessario scrivere uno dei caratteri elencati come se stessi, allora deve essere preceduto da<Спецсимвол>specificato dopo la parola chiave ESCAPE.

Ad esempio, il modello

"% ABC [abvg] \ _ abc%" SIMBOLO SPECIALE "\"

indica una sottostringa costituita da una sequenza di caratteri: la lettera A; lettere B; lettere B; una cifra; una delle lettere a, b, c o d; carattere di sottolineatura; lettere a; lettere b; lettere c. Inoltre, questa sequenza può essere localizzata a partire da una posizione arbitraria nella linea.

Operazioni di confronto

Equivale

Questa operazione ha lo scopo di confrontare due operandi per l'uguaglianza. Ad esempio:

Sales.Contractor = Sales.NomenclatureMainSupplier

Non uguale

Questa operazione ha lo scopo di confrontare due operandi per la disuguaglianza. Ad esempio:

Vendite, appaltatore<>Vendite.NomenclaturaFornitore principale

Meno

Questa operazione ha lo scopo di verificare che il primo operando sia minore del secondo. Ad esempio:

Importo.corrente.vendite< ПродажиПрошлые.Сумма

Di più

Questa operazione ha lo scopo di verificare che il primo operando sia maggiore del secondo. Ad esempio:

SalesCurrent.Total> SalesPast.Amount

Meno o uguale

Questa operazione ha lo scopo di verificare che il primo operando sia minore o uguale al secondo. Ad esempio:

Importo.corrente.vendite<= ПродажиПрошлые.Сумма

Più o uguale

Questa operazione ha lo scopo di verificare che il primo operando sia maggiore o uguale al secondo. Ad esempio:

SalesCurrent.Amount> = SalesPast.Amount

Operazione B

Questa operazione verifica la presenza di un valore nell'elenco di valori passato. Il risultato dell'operazione sarà True se il valore viene trovato o False in caso contrario. Ad esempio:

Articolo B (& Articolo1 & Articolo2)

L'operazione di verifica dell'esistenza di un valore in un dataset

L'operazione verifica l'esistenza di un valore nel set di dati specificato. Il set di dati di convalida deve contenere un campo. Ad esempio:

Vendite Controparte alle controparti

Operazione di verifica di un valore per NULL

Questa operazione restituisce True se il valore è NULL. Ad esempio:

Sales.Contractor IS NULL

L'operazione di controllo di un valore per la disuguaglianza NULL

Questa operazione restituisce True se il valore non è NULL. Ad esempio:

Sales.Contractor NON È NULL

Operazioni logiche

Le operazioni logiche accettano le espressioni booleane come operandi.

Operazione NON

L'operazione NON restituisce True se il suo operando è False e False se il suo operando è True. Ad esempio:

NOT Document.Consignee = Document.Shipper

Operazione AND

L'operatore AND restituisce True se entrambi gli operandi sono True e False se uno degli operandi è False. Ad esempio:

Document.Consignee = Document.Shipper AND Document.Consignee = & Controparte

O operazione

L'operazione OR restituisce True se uno degli operandi è True e False se entrambi gli operandi sono False. Ad esempio:

Document.Destinatario = Document.Trasportatore O Document.Consignee = & Controparte

Funzioni aggregate

Le funzioni aggregate eseguono alcune azioni su un set di dati.

Somma

La funzione di aggregazione Sum calcola la somma dei valori dell'espressione passati ad essa come argomento per tutti i record di dettaglio. Ad esempio:

Importo (Sales.SumFatturato)

Quantità

La funzione Count calcola il numero di valori non nulli. Ad esempio:

Quantità (vendite. appaltatore)

Numero di diversi

Questa funzione calcola il numero di valori distinti. Ad esempio:

Quantità (Varie Vendite. Appaltatore)

Massimo

La funzione ottiene il valore massimo. Ad esempio:

Massimo (Saldi.Quantità)

Minimo

La funzione ottiene il valore minimo. Ad esempio:

Minimo (Saldi.Quantità)

La media

La funzione ottiene la media dei valori non NULL. Ad esempio:

Media (saldo.importo)

Altre operazioni

Operazione SELEZIONA

Operation Select è progettato per selezionare uno dei diversi valori quando vengono soddisfatte determinate condizioni. Ad esempio:

Scelta quando importo> 1000 Quindi importo altrimenti 0 Fine

Regole per confrontare due valori

Se i tipi dei valori confrontati differiscono l'uno dall'altro, la relazione tra i valori viene determinata in base alla priorità dei tipi:

  • NULL (minimo);
  • booleano;
  • Numero;
  • Data;
  • Linea;
  • Tipi di riferimento

Le relazioni tra i vari tipi di riferimento sono determinate in base ai numeri di riferimento delle tabelle corrispondenti a un particolare tipo.

Se i tipi di dati corrispondono, i valori vengono confrontati in base alle seguenti regole:

  • Il tipo booleano ha un valore TRUE maggiore del valore FALSE;
  • il tipo Numero ha le solite regole di confronto per i numeri;
  • il tipo Data ha date precedenti inferiori a quelle successive;
  • per il tipo Stringa - confronti di stringhe secondo le caratteristiche nazionali stabilite della banca dati;
  • i tipi di riferimento vengono confrontati in base ai loro valori (numeri di record, ecc.).

Lavorare con valori NULL

Qualsiasi operazione in cui il valore di uno degli operandi è NULL risulterà in NULL.

Ci sono eccezioni:

  • l'operazione AND restituirà NULL solo se nessuno degli operandi è False;
  • l'operazione OR restituirà NULL solo se nessuno degli operandi è True.

Priorità dell'operazione

Le operazioni hanno le seguenti priorità (la prima riga ha la priorità più bassa):

  • B IS NULL NON È NULL;
  • =, <>, <=, <, >=, >;
  • Binario +, Binario -;
  • *, /, %;
  • Unario +, unario -.

Funzioni del linguaggio di espressione del sistema di composizione dei dati

Calcolare

La funzione Calcola è progettata per valutare un'espressione nel contesto di alcuni raggruppamenti. La funzione ha i seguenti parametri:

  • Espressione. Tipo Stringa. Contiene un'espressione calcolata;
  • Raggruppamento. Tipo Stringa. Contiene il nome del raggruppamento nel cui contesto deve essere valutata l'espressione. Se viene utilizzata una stringa vuota come nome del raggruppamento, il calcolo verrà eseguito nel contesto del raggruppamento corrente. Se la riga GeneralTotal viene utilizzata come nome del raggruppamento, il calcolo verrà eseguito nel contesto del totale generale. In caso contrario, il calcolo verrà eseguito nel contesto del raggruppamento padre con lo stesso nome. Ad esempio:
Importo (Sales.SumFatture) / Calcola ("Importo (Sales.SumFatture)", "TotaleTotale")

In questo esempio, il risultato sarà il rapporto tra l'importo del campo Sales.SumTurnover del record di raggruppamento e l'importo dello stesso campo nell'intero formato.

Livello

La funzione ha lo scopo di ottenere il livello di registrazione corrente.

Livello()

NumeroOrdine

Ottieni il numero di sequenza successivo.

NumeroOrdine ()

NumeroOrdineInGruppo

Restituisce il numero sequenziale successivo nel raggruppamento corrente.

NumeroOrdineInRaggruppamento ()

Formato

Ottieni la stringa formattata del valore passato.

La stringa di formato è impostata in conformità con 1C: Stringa di formato Enterprise.

Parametri:

  • Senso;
  • Stringa di formato.

Formato (Fatture.SumDoc, "NPT = 2")

Inizio del periodo

Parametri:

    • Minuto;
    • Giorno;
    • Una settimana;
    • Mese;
    • Trimestre;
    • Decennio;
    • Metà anno.

Inizio del periodo (DateTime (2002, 10, 12, 10, 15, 34), "Mese")

Risultato:

01.10.2002 0:00:00

Fine del periodo

La funzione è progettata per estrarre una data specifica da una determinata data.

Parametri:

  • Data. Digita la data. Data specificata;
  • Tipo di periodo. Tipo Stringa. Contiene uno dei valori:
    • Minuto;
    • Giorno;
    • Una settimana;
    • Mese;
    • Trimestre;
    • Decennio;
    • Metà anno.

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

Risultato:

13.10.2002 23:59:59

Aggiungi a data

La funzione ha lo scopo di aggiungere un certo valore alla data.

Parametri:

  • Tipo di ingrandimento. Tipo Stringa. Contiene uno dei valori:
    • Minuto;
    • Giorno;
    • Una settimana;
    • Mese;
    • Trimestre;
    • Decennio;
    • Metà anno.
  • Valore - di quanto deve essere aumentata la data. Digitare il numero. La parte frazionaria viene ignorata.

Aggiungi a data (DateTime (2002, 10, 12, 10, 15, 34), "Mese", 1)

Risultato:

12.11.2002 10:15:34

Differenza di data

La funzione è progettata per ottenere la differenza tra due date.

Parametri:

  • Espressione. Digita la data. Data originale;
  • Espressione. Digita la data. Data sottratta;
  • Tipo di differenza. Tipo Stringa. Contiene uno dei valori:
    • Secondo;
    • Minuto;
    • Giorno;
    • Mese;
    • Trimestre;

DIFFERENZA (DATA ORA (2002, 10, 12, 10, 15, 34), DATA ORA (2002, 10, 14, 9, 18, 06), "GIORNO")

Risultato:

sottostringa

Questa funzione è progettata per estrarre una sottostringa da una stringa.

Parametri:

  • Linea. Tipo Stringa. La stringa da cui estrarre la sottostringa;
  • Posizione. Digitare il numero. La posizione del carattere da cui inizia la sottostringa da estrarre dalla stringa;
  • Lunghezza. Digitare il numero. La lunghezza della sottostringa da selezionare.

SUBSTRATO (Appaltatori.Indirizzo, 1, 4)

Lunghezza della linea

La funzione è progettata per determinare la lunghezza di una stringa.

Parametro:

  • Linea. Tipo Stringa. La stringa da specificare in lunghezza.

Stringa (Account.Indirizzo)

Anno

Questa funzione è progettata per estrarre un anno da un valore di tipo Date.

Parametro:

  • Data. Digita la data. La data entro la quale viene determinato l'anno.

ANNO (data fattura)

Trimestre

Questa funzione ha lo scopo di estrarre un quarto di numero da un valore di tipo Data. Il numero del quarto è normalmente compreso tra 1 e 4.

Parametro

  • Data. Digita la data. La data entro la quale viene determinato il trimestre
TRIMESTRE (Data di consegna)

Mese

Questa funzione ha lo scopo di estrarre il numero del mese da un valore di tipo Date. Il numero del mese è normalmente compreso tra 1 e 12.

  • Data. Digita la data. La data entro la quale viene determinato il mese.
MESE (data fattura)

Giorno dell'anno

Questa funzione è progettata per ottenere il giorno dell'anno da un valore di tipo Date. Il giorno dell'anno è normalmente compreso tra 1 e 365 (366).

  • Data. Digita la data. La data entro la quale viene determinato il giorno dell'anno.
GIORNO DELL'ANNO (Data fattura)

Giorno

Questa funzione ha lo scopo di ottenere il giorno del mese da un valore di tipo Date. Il giorno del mese è normalmente compreso tra 1 e 31.

  • Data. Digita la data. La data entro la quale viene determinato il giorno del mese.
GIORNO (data fattura)

Una settimana

Questa funzione ha lo scopo di ottenere il numero della settimana dell'anno da un valore di tipo Date. Le settimane dell'anno sono numerate a partire da 1.

  • Data. Digita la data. La data entro la quale vengono determinati i numeri delle settimane.
SETTIMANA (data fattura)

Giorno della settimana

Questa funzione ha lo scopo di ottenere il giorno della settimana da un valore di tipo Date. Il giorno della settimana è normalmente compreso tra 1 (lunedì) e 7 (domenica).

  • Data. Digita la data. La data entro la quale viene determinato il giorno della settimana.
GIORNO DELLA SETTIMANA (Data fattura)

Ora

Questa funzione è progettata per ottenere l'ora del giorno da un valore di tipo Date. L'ora del giorno va da 0 a 23.

  • Data. Digita la data. La data in cui viene determinata l'ora del giorno.
ORA (Data di consegna)

minuto

Questa funzione ha lo scopo di ottenere il minuto di un'ora da un valore di tipo Date. I minuti dell'ora vanno da 0 a 59.

  • Data. Digita la data. La data in base alla quale viene determinato il minuto dell'ora.
MINUTO (data fattura)

Secondo

Questa funzione ha lo scopo di ottenere un secondo di un minuto da un valore di tipo Date. Il secondo di un minuto va da 0 a 59.

  • Data. Digita la data. La data in base alla quale vengono determinati i secondi del minuto.
SECONDO (Data fattura)

Esprimere

Questa funzione ha lo scopo di estrarre un tipo da un'espressione che può contenere un tipo complesso. Se l'espressione contiene un tipo diverso da quello richiesto, verrà restituito un valore NULL.

Parametri:

  • L'espressione da convertire;
  • Indicazione del tipo. Tipo Stringa. Contiene una stringa di tipo. Ad esempio, "Numero", "Stringa", ecc. Oltre ai tipi primitivi, questa stringa può contenere il nome della tabella. In questo caso si cercherà di esprimere un riferimento alla tabella specificata.

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

SìNull

Questa funzione restituisce il valore del secondo parametro se il valore del primo parametro è NULL.

In caso contrario, verrà restituito il valore del primo parametro.

YesNULL (Importo (Sales.SumFatture), 0)

Funzioni comuni del modulo

Un'espressione del motore di composizione dati può contenere chiamate a funzioni di moduli di configurazione comuni globali. Non è necessaria alcuna sintassi aggiuntiva per chiamare tali funzioni.

In questo esempio, la funzione "AbbreviatedName" verrà chiamata dal modulo di configurazione generale.

Si noti che l'utilizzo delle funzioni dei moduli comuni è consentito solo quando è specificato il corrispondente parametro del responsabile della composizione dei dati.

Inoltre, le funzioni dei moduli comuni non possono essere utilizzate nelle espressioni di campo personalizzate.

Ad un certo punto, è necessario lavorare con variabili del tipo "Data". In questo articolo, esamineremo le tecniche di base: passare la data corrente, verificare la presenza di un valore vuoto, una data arbitraria.

Quando si scrivono query, è spesso necessario confrontare i dati con la data corrente. Il linguaggio 1C integrato ha la funzione CurrentDate(). Ti consente di determinare l'ora e la data correnti sul tuo computer. Per eseguire operazioni con la data corrente è necessario passare il valore di questa funzione come parametro alla richiesta.

Di seguito è riportata una query che seleziona tutti i file allegati alle note spese con una data di creazione fino ad ora:

EsempioRequest = Nuova richiesta;
EsempioRequest.Text = "
| SCEGLI
| Anticipo ReportAttached Files.Link
| DA
| Reference.AvailableReportAttachedFilesASA AdvanceReportAttachedFiles
| DOVE
| File allegati del rapporto anticipato.Data< &ТекДата»;
EsempioRequest.SetParameter ("CurrentDate", CurrentDate ());

Data personalizzata

La funzione di cui sopra consente di confrontare e, quindi, effettuare una selezione per qualsiasi periodo. Questo metodo consente di specificare una selezione rigorosa nella query senza utilizzare parametri aggiuntivi.

Nota che usando questa funzione nell'esempio sopra, abbiamo passato solo tre numeri (anno, mese, giorno) come parametri di input. Gli ultimi tre (ora, minuto, secondo) sono facoltativi e, se assenti, vengono sostituiti con "0", cioè l'inizio della giornata.

Per questo esempio, riceverai tutti i file allegati alle note spese fino alla fine dello scorso 2016. A questo proposito, indicheremo l'ora, i minuti e i secondi per confrontare con il momento temporale "31 dicembre 2016 alle 23:59:59".

SELEZIONARE
Anticipo ReportAttached Files.Link
A PARTIRE DAL
Directory.AvailableReportAttachedFiles AS AdvanceReportAttachedFiles
DOVE
File allegati del rapporto anticipato.Data< ДАТАВРЕМЯ(2016, 12, 31, 23, 59, 59)

Data vuota

È più semplice controllare una variabile per vedere se contiene una data vuota con un semplice confronto. In questo esempio, utilizzando una query, selezioneremo tutte le ricevute di cassa su un conto bancario, per cui la data di entrata non è compilata.

Accedi come studente

Sistema di composizione dati 1C 8.3 per principianti: il primo rapporto sull'ACS

Se non hai letto l'introduzione a questo modulo, leggila:.

Per completare le lezioni, avrai bisogno di 1C 8.3 (non inferiore 8.3.13.1644 ) .

Se hai già installato la versione 1C 8.3, usala. In caso contrario, scarica e installa la versione didattica, rilasciata da 1C appositamente per scopi didattici:.

Il seguente collegamento dovrebbe apparire sul desktop:

Per tutte le lezioni di questo ciclo, utilizzeremo il database Gastronom che ho preparato. Coincide completamente con la base che abbiamo usato nei moduli della scuola durante lo studio delle query. Pertanto, mi aspetto che tu conosca i suoi libri di riferimento e documenti.

Se l'hai cancellato, scaricalo di nuovo su quello successivo, decomprimilo e nell'elenco dei database.

Infine, il posto di lavoro è impostato e ora creeremo insieme il nostro primo report utilizzando il sistema di composizione dei dati. Sarà molto semplice dimostrare le capacità generali del sistema di composizione dei dati (abbreviato SKD).

Abbiamo fissato un obiettivo

Lo scopo di questo tutorial- creare un report che, in modalità utente, visualizzi un elenco di clienti con i seguenti campi:

  • Nome
  • Pavimento
  • Il colore preferito dal cliente.

La relazione deve essere esterna. Ciò significa che verrà creato e configurato nel configuratore e quindi salvato come file separato (esterno) sul tuo computer.

Per generare un tale rapporto in 1C, l'utente dovrà avviare il database in modalità utente, aprire questo file e fare clic sul pulsante "Genera".

Andare!

Crea un rapporto

Avvia il configuratore per il database Gastronom:

Dal menù principale selezionare la voce "File" -> "Nuovo...":

Selezioniamo "Rapporto esterno":

Crea uno schema di composizione dei dati all'interno di un report

Si è aperta la finestra per la creazione di un report esterno. Inserisci come nome: " Lezione 1"e poi premere il pulsante" Schema di composizione dei dati aperti":

Il generatore di schemi è stato avviato. D'accordo con il nome predefinito " Layout dei dati di base"e premere il pulsante" Pronto":

Si è aperta la finestra di lavoro principale, con molte schede e campi, in cui personalizzeremo il nostro schema di composizione dei dati.

Non c'è bisogno di avere paura - ci sono davvero molte opportunità qui, ma non abbiamo bisogno di tutte. Soprattutto nella prima lezione.

Ora siamo sul segnalibro" Set di dati". Ci rimarremo.

Scriviamo una richiesta tramite il costruttore

Il sistema di composizione dei dati (abbreviato ACS) ci impone di dati, che mostrerà all'utente.

La via più facile - scrivi una richiesta alla base. Nelle scuole abbiamo imparato a scrivere e comprendere le query, quindi mi aspetto che tu abbia le competenze appropriate.

Clicca su verde segno più e nell'elenco a discesa selezionare la voce " Aggiungi set di dati - query":

Il nostro compito è scrivere il testo della richiesta in questo campo. Hai già dimenticato come si fa?

ti do un indizio:

In questa query abbiamo selezionato tre campi (" Nome", "Pavimento" e " Colore preferito") dal tavolo" Directory.Clienti".

Ma non affrettarti a scrivere manualmente questo testo nel campo "Richiesta".

Ora creeremo la stessa query visivamente, solo con l'aiuto del mouse. Questo metodo si chiama " Costruttore di query".

Per chiamare questo costruttore, premere il tasto " Costruttore di query..."nella parte in alto a destra del campo" Richiesta ":

Nella finestra che si apre, trascina la tabella " Clienti"dalla prima colonna alla seconda, per indicare cosa esattamente da questa tabella richiederemo i dati:

Si è scoperto così:

Quindi, apriamo la tabella " Clienti"nella seconda colonna per segno" Un vantaggio"per vedere tutti i suoi campi e trascinare il campo" Nome"dalla seconda colonna alla terza, per indicare che da questa tabella dobbiamo interrogare il campo" Nome ":

Si è scoperto così:

Facciamo lo stesso con i campi" Pavimento" e " Colore preferito". Il risultato sarà così:

Premere il pulsante "OK" per uscire dal costruttore di query e vedere che il testo della query è stato aggiunto automaticamente al campo "Query".

Inoltre, in base al testo della richiesta, 1C stesso ha estratto i nomi dei campi (l'area sopra la richiesta) che verranno utilizzati dallo schema di composizione dei dati:

Ora che abbiamo compilato la richiesta, l'ACS sa come ottenere i dati per il report.

Impostazione della presentazione dei dati

Rimasto in qualche modo visualizzare questi dati per l'utente sotto forma di modulo stampato. Ed è qui che l'ACS può fare miracoli!

Per creare un tale miracolo, vai su " Impostazioni"e fai clic sul pulsante del designer delle impostazioni ( bacchetta magica):

Nella finestra che si apre, specificare il tipo di rapporto " Elenco" e premere " Ulteriore":

Nella finestra successiva, seleziona (trascinando) i campi che dovranno essere visualizzati nell'elenco (trascinando e rilasciando tutto ciò a nostra disposizione: " Colore preferito", "Nome" e " Pavimento"):

Otteniamo il seguente risultato e premiamo il pulsante " ok":

Il costruttore delle impostazioni si è chiuso e l'elemento " Registri dettagliati":

Il rapporto è pronto, controlliamolo. Per fare ciò, salva prima il rapporto come file esterno.

Salva il rapporto come file

Apriamo la voce del menu principale " File"->"Salva":

Lo salverò sul desktop con il nome " Lezione 1":

Controllo del report in modalità utente

Infine chiudiamo il configuratore e andiamo nel nostro database in modalità utente:

Nome utente "Amministratore", nessuna password:

Seleziona la voce " File"->"Aprire...":

E indicheremo il file di report (l'ho salvato sul desktop con il nome "Lesson1.erf":

Il modulo di segnalazione si è aperto, premere il pulsante " Dare forma":

Pronto! Ecco il nostro stampabile con un elenco di clienti, il loro colore e genere preferiti:

Il modulo stampato può essere facilmente stampato. Per farlo basta selezionare la voce " File"->"Sigillo...":

È così semplice, senza programmazione, siamo riusciti a creare un report completo che gli utenti possono aprire nei loro database, generare e stampare.

studenti - rispondo per posta, ma prima dai un'occhiata.

Accedi come studente

Accedi come studente per accedere ai materiali scolastici

Alla luce dell'imminente rilascio dell'8.2.14, cercherò di descrivere alcune delle nuove funzioni del sistema di composizione dei dati.

Aprire lo schema di composizione dei dati, preferibilmente in un report esterno, per facilitarne la modifica.

Aggiungiamo un set di dati del tipo di query e scriviamo, manualmente o utilizzando il costruttore di query, la query più semplice:

1. Configurare una richiesta nell'ACS.

2. Configurazione dei campi calcolati nell'ACS

3. Configuriamo la composizione dei dati nella scheda delle impostazioni

4. Avvio di 1C Enterprise 8.2.14. Apriamo il rapporto. Formiamo, otteniamo.

Descrizione delle nuove funzioni stesse:

1. La data attuale()

Restituisce la data di sistema. Quando il layout del layout è collegato, in tutte le espressioni presenti nel layout, la funzione CurrentDate() viene sostituita con il valore della data corrente.

2. CALCOLA L'ESPRESSIONE ()

Sintassi:

Valuta espressione (,)

Descrizione:

La funzione è progettata per valutare un'espressione nel contesto di alcuni raggruppamenti.

La funzione tiene conto della selezione dei raggruppamenti, ma non tiene conto delle selezioni gerarchiche.

La funzione non può essere applicata a un raggruppamento nella selezione del gruppo di questo raggruppamento. Ad esempio, nella selezione della Nomenclatura di raggruppamento, non è possibile utilizzare l'espressione Calcola Espressione ("Somma (SommaFatturato)", "TotaleTotale")> 1000... Ma tale espressione può essere utilizzata nella selezione gerarchica.

Se il record di fine precede il record di inizio, si considera che non ci siano record per il calcolo dei dati dettagliati e il calcolo delle funzioni aggregate.

Quando si calcolano le espressioni di intervallo per il totale generale (il parametro Raggruppamento è impostato su Totale generale), si presume che non vi siano record per il calcolo dei dati dettagliati e il calcolo delle funzioni aggregate.

Linker di layout durante la generazione di un'espressione di funzione ValutaEspressione, nel caso in cui l'espressione di ordinamento contenga campi che non possono essere utilizzati nel raggruppamento, sostituisce la funzione ValutaEspressione sul NULLO.

Parametri

Un tipo: Linea... L'espressione da valutare.

Un tipo: Linea... Contiene il nome del raggruppamento nel cui contesto deve essere valutata l'espressione. Se viene utilizzata una stringa vuota come nome del raggruppamento, il calcolo verrà eseguito nel contesto del raggruppamento corrente. Se la riga GeneralTotal viene utilizzata come nome del raggruppamento, il calcolo verrà eseguito nel contesto del totale generale. In caso contrario, il calcolo verrà eseguito nel contesto del raggruppamento padre con lo stesso nome.

Ad esempio:

Importo (Sales.SumFatture) / Calcola ("Importo (Sales.SumFatture)", "TotaleTotale")

In questo esempio, il risultato sarà il rapporto tra la somma e il campo Importo.VenditeFatturato raggruppare i record alla somma dello stesso campo nell'intero layout;

Un tipo: Linea... Il parametro può assumere i seguenti valori:

· Il risultato complessivo- l'espressione sarà valutata per tutti i record di raggruppamento.

· Gerarchia- l'espressione verrà valutata per il record gerarchico padre, se presente, e per l'intero raggruppamento, se non è presente un record gerarchico padre.

· Raggruppamento- l'espressione sarà valutata per il record di gruppo corrente del raggruppamento.

· RaggruppamentoNonRisorsa- quando si calcola una funzione per un record di gruppo per risorse, l'espressione verrà calcolata per il primo record di gruppo del raggruppamento originale.

Quando si calcola la funzione ValutaEspressione () con il significato RaggruppamentoNonRisorsa per i record di gruppo che non sono raggruppamenti per risorse, la funzione viene calcolata nello stesso modo in cui verrebbe calcolata se il valore del parametro fosse uguale al valore Raggruppamento.

Il compositore del modello di composizione dati, quando genera il modello di composizione dati, quando visualizza il campo risorsa con cui viene eseguito il raggruppamento nel modello, inserisce un'espressione calcolata utilizzando la funzione ValutaEspressione () , specificando il parametro RaggruppamentoNonRisorsa... Per il resto delle risorse, le espressioni di risorse regolari sono raggruppate per risorsa.

Un tipo: Linea... Indica con quale record avviare il frammento, in cui calcolare le funzioni aggregate dell'espressione e da quale record ottenere i valori dei campi esterni alle funzioni aggregate. Il valore può essere uno dei seguenti:

· Primo

· Scorso

· Precedente

· Avanti (Successivo)

· Attuale

· Valore limite(Valore limite) Valore limite

Un tipo: Linea... Indica a quale record continuare il frammento in cui valutare le funzioni aggregate dell'espressione. Il valore può essere uno dei seguenti:

· Primo... Devi ottenere il primo record di raggruppamento. Dopo la parola tra parentesi, è possibile specificare un'espressione, il cui risultato verrà utilizzato come offset dall'inizio del raggruppamento. Il valore risultante deve essere un numero intero maggiore di zero. Ad esempio, Primo (3): ottenere il terzo record dall'inizio del raggruppamento.

Se il primo record è al di fuori dei limiti di raggruppamento, si considera che non ci siano record. Ad esempio, se sono presenti 3 record e si desidera ottenere il primo (4), si considera che non vi siano record.

· Scorso... Devi ottenere l'ultimo record di raggruppamento. È possibile specificare un'espressione dopo la parola tra parentesi, il cui risultato verrà utilizzato come offset dalla fine del raggruppamento. Il valore risultante deve essere un numero intero maggiore di zero. Ad esempio, Last (3): ottenere il terzo record dalla fine del raggruppamento.

Se l'ultimo record è al di fuori dei limiti di raggruppamento, si considera che non ci siano record. Ad esempio, se sono presenti 3 record e si desidera ottenere l'ultimo (4), si considera che non ci siano record.

· Precedente... Devi ottenere il record di raggruppamento precedente. È possibile specificare un'espressione dopo la parola tra parentesi, il cui risultato verrà utilizzato come scostamento dal record di raggruppamento corrente. Ad esempio, Precedente (2): recupera quello precedente dal record precedente.

Se il record precedente è esterno al raggruppamento (ad esempio, per il secondo record di raggruppamento si desidera ottenere Precedente (3), viene ottenuto il primo record di raggruppamento.

Quando si recupera il record precedente per il totale del raggruppamento, si considera ottenuto il primo record.

· Avanti (Successivo)... Devi ottenere il record di raggruppamento successivo. È possibile specificare un'espressione dopo la parola tra parentesi, il cui risultato verrà utilizzato come offset in avanti rispetto al record di raggruppamento corrente. Ad esempio, Successivo (2): ottieni il successivo dal record successivo.

Se il record successivo esce dal raggruppamento, si considera che non ci siano record. Ad esempio, se sono presenti 3 record e viene ricevuto Next() per il terzo record, non sono presenti record.

Quando viene ricevuto il record successivo per il totale del raggruppamento, si considera che non vi sia alcun record.

· Attuale... Devi ottenere il record corrente.

Quando si recupera il totale del raggruppamento, si ottiene il primo record.

· Valore limite(Valore limite)... La necessità di ottenere un record al valore specificato. Dopo la parola Valore limite tra parentesi, è necessario specificare un'espressione con il valore di cui si desidera avviare il frammento, il primo campo di ordinamento.

Come record, si otterrà il primo record, il cui valore del campo di ordinamento è maggiore o uguale al valore specificato. Ad esempio, se il campo Periodo viene utilizzato come campo di ordinamento e ha i valori 01/01/2010, 01/02/2010, 01/03/2010 e si desidera ottenere ConstrainingValue (DateTime (2010, 1, 15)), quindi riceverai un record con la data 02/01/2010.

Un tipo: Linea... Un elenco di espressioni separate da virgole che descrivono le regole di confronto. Se non specificato, l'ordinamento viene eseguito allo stesso modo del raggruppamento per il quale viene valutata l'espressione. Dopo ogni espressione, puoi specificare una parola chiave Età(ordinare in ordine crescente), Discendente(per ordine decrescente) e Ordine automatico(per ordinare i campi referenziati in base ai campi in base ai quali si desidera ordinare l'oggetto referenziato). Parola Ordine automatico può essere usato come con una parola Età, quindi con la parola Discendente.

Un tipo: Linea... Simile al parametro Ordinamento... Utilizzato per organizzare i record gerarchici. Se non specificato, il compositore di layout genera l'ordinamento secondo l'ordinamento specificato nel parametro Ordinamento.

Un tipo: Linea... Specifica la regola per determinare il record precedente o successivo nel caso in cui siano presenti più record con lo stesso valore di ordinamento:

· Separatamente indica che viene utilizzata una sequenza di record ordinati per definire i record precedenti e successivi. Valore di default.

· Insieme indica che i record precedenti e successivi sono determinati in base ai valori delle espressioni di ordinamento.

Ad esempio, se la sequenza risultante è ordinata per data:

Data Nome e cognome Senso
1 01 gennaio 2001

Ivanov M.

10
2 02 gennaio 2001 Petrov S. 20
3 03 gennaio 2001 R. 30
4 04 gennaio 2001 Petrov S. 40

Separatamente, poi:

La voce precedente alla voce 3 sarà la voce 2.

Corrente, Corrente(rispettivamente, i parametri Inizio e Fine), quindi per il record 2 questo frammento sarà costituito da un record 2. L'espressione sarà uguale a 20.

Se il valore del parametro è Insieme, poi:

La voce precedente alla voce 3 sarà la voce 1.

§ se il frammento calcolato è definito come Corrente, Corrente(rispettivamente, i parametri Inizio e Fine), quindi per il record 2 questo frammento sarà composto dai record 2 e 3. Espressione Calcola espressione ("Somma (valore)", Corrente, Corrente) sarà pari a 50.

Quando specificato, il valore del parametro è Insieme, nei parametri Inizio e Fine non è possibile specificare un offset per le posizioni Primo, Ultimo, Precedente, Successivo.

Calcola espressione ("Somma (SumTurnover)", "Primo", "Corrente")

Se vuoi ottenere il valore di raggruppamento nella riga precedente, puoi usare la seguente espressione:

Valuta espressione (corso, precedente)

Elenco nuovo funzioni:

ValutaEspressioneGroupedArray(,) -

La funzione restituisce un array, ogni elemento del quale contiene il risultato della valutazione dell'espressione da raggruppare per il campo specificato.

ValutaEspressioneGroupedValuesTable(,) -

La funzione restituisce una tabella di valori, ogni riga della quale contiene il risultato della valutazione delle espressioni per il raggruppamento in base al campo specificato

Valore riempito() - Restituisce True se il valore è diverso dal valore predefinito del tipo specificato, diverso da NULL, diverso da un riferimento vuoto, diverso da Undefined. Per i valori booleani, viene eseguito un controllo null. Per le stringhe viene verificata l'assenza di caratteri non di spaziatura

Formato(,) - Ottieni la stringa formattata del valore passato. La stringa di formato viene impostata in base alla stringa di formato del sistema 1C: Enterprise.

sottostringa(,,) - Questa funzione è progettata per estrarre una sottostringa da una stringa.

Lunghezza della linea() - La funzione è progettata per determinare la lunghezza della stringa. Il parametro è un'espressione di tipo stringa

Linea() - Se un array viene passato come parametro, la funzione restituisce una stringa contenente rappresentazioni di stringa di tutti gli elementi dell'array separati da caratteri ";". Se una tabella di valori viene passata come parametro, la funzione restituisce una stringa contenente rappresentazioni di stringa di tutte le righe della tabella di valori, con rappresentazioni di celle di ciascuna riga separate da caratteri ";" e stringhe - per avanzamento riga. Se un elemento ha una rappresentazione di stringa vuota, viene visualizzata una stringa invece della sua rappresentazione.

Principali articoli correlati