Casa / Buono a sapersi / Il linguaggio integrato di 1C: Enterprise. Piccoli trucchi per grandi query È possibile utilizzare le sottoquery

Il linguaggio integrato di 1C: Enterprise. Piccoli trucchi per grandi query È possibile utilizzare le sottoquery

    Nome: Registri di accumulo rotativi. Rapporti. Selezione dei dati da una tabella. Selezione dei dati da due tabelle.

    Bersaglio: Impara a lavorare con i registri di informazioni e le enumerazioni quando lavori in 1C 8.

    Preparazione per la lezione:

      Secondo la letteratura indicata, studia l'argomento discusso in questa mappa tecnologica

    Letteratura:

4.1 Ignatov A.S. manuale didattico e metodico "Programmazione 1C", 2014

4.2 Ignatov. COME. dispense sulla disciplina "Programmazione 1C" 2014.

    Elenco attrezzature:

5.1 PC personale IBM.

5.2 1C versione 8.

    Esercizio:

6.1 Esaminare la procedura di accesso ai dati.

6.2 Imparare a lavorare con le richieste.

6.3 Esaminare le impostazioni nel configuratore e in modalità 1C:Enterprise.

    Ordine di lavoro:

7.1 Creare un rapporto Registro dei documenti.

7.3 Modificare i parametri del rapporto.

8.1 Frontespizio

      Nome e scopo dell'opera

      Attività completata

      Risposte alle domande di sicurezza

      Conclusione sul lavoro svolto

    Domande di controllo:

9.1 In quali parti è composto il testo della richiesta, quali di esse sono obbligatorie.

9.2 Quali sono i costrutti sintattici di base del linguaggio di interrogazione.

9.3 Qual è la fonte dei dati della query.

9.4 Cosa sono gli alias nel linguaggio di interrogazione.

9.5 Cosa sono i parametri di query.

9.6 Qual è lo scopo dell'oggetto linguaggio integrato Request.

9.7 Qual è lo scopo del sistema di composizione dei dati.

9.8 Qual è lo scopo di uno schema di composizione dei dati.

9.9 A cosa servono le impostazioni di composizione dei dati?

9.10 Qual è la differenza tra tavoli reali e virtuali.

Applicazione:

PARTE TEORICA

Modi per accedere ai dati

Il sistema 1C:Enterprise 8 supporta due modi per accedere ai dati archiviati nel database:

    oggetto (per leggere e scrivere),

    tabulare (per la lettura).

La modalità oggetto di accesso ai dati è implementata attraverso l'uso di oggetti del linguaggio integrato. Una caratteristica importante del metodo oggetto di accesso ai dati è che, quando ci si riferisce a qualsiasi oggetto del linguaggio integrato, si fa riferimento a un determinato insieme di dati nel database come un tutto unico. La tecnica dell'oggetto garantisce la conservazione dell'integrità degli oggetti, la memorizzazione nella cache degli oggetti, la chiamata dei gestori di eventi appropriati, ecc. L'accesso tabulare ai dati in 1C: Enterprise 8 viene implementato utilizzando query di database compilate nel linguaggio di query. In questa tecnica, lo sviluppatore ha l'opportunità di operare con singoli campi di tabelle di database che memorizzano determinati dati. La tecnica tabulare è progettata per ottenere informazioni dal database su determinate condizioni (selezione, raggruppamento, ordinamento, combinazione di più campioni, calcolo dei totali, ecc.). La tecnica tabulare è ottimizzata per l'elaborazione di grandi quantità di informazioni situate nel database e l'ottenimento di dati che soddisfano i criteri specificati.

PARTE PRATICA

Selezione dei dati da una tabella

Creiamo un rapporto Registro dei documenti per la fornitura di servizi utilizzando il sistema di composizione dei dati. Questo rapporto elencherà i documenti di fornitura di servizi esistenti nel database in ordine di data e numero.

    In modalità Configuratore

Aggiungiamo un oggetto di configurazione Report nel configuratore.

Nella scheda Generale: nome rapporto - RegistryDocumentsPceivingServices; visualizzazione avanzata - Elenco dei servizi resi per la segnalazione nell'interfaccia del programma. Creiamo uno schema di composizione dei dati per il rapporto, fai clic sul pulsante Apri schema di composizione dei dati. Nella finestra di dialogo Progettazione layout che si apre, fare clic su Fine. Nel costruttore dello schema di composizione dei dati, creeremo un set di dati: una query.

Riso. 13.1. Registrazione di una fattura in entrata in due registri

Successivamente, premeremo il pulsante Query Designer, come origine dati per la query, selezioneremo la tabella degli oggetti del documento Fornitura di servizi. Seleziona i seguenti campi da questa tabella:

Segnalibro Unioni/Alias indicare che il campo Collegamento avrà uno pseudonimo Documento. Segnalibro Ordine specificare che il risultato della query deve essere ordinato in base al valore del campo Documento.

Segnalibro Impostazioni Creiamo le impostazioni standard che determinano come verranno visualizzate le informazioni nel rapporto.

La struttura gerarchica di un report può contenere tre elementi principali in varie combinazioni:

    Raggruppamento: per visualizzare le informazioni sotto forma di un normale rapporto lineare.

    Tabella - per visualizzare le informazioni sotto forma di tabella.

    Grafico - per visualizzare le informazioni sotto forma di grafico.

Per aggiungere un nuovo elemento, nel nostro caso raggruppamento, seleziona l'elemento Radice del report nell'albero della struttura del report e chiamalo menù contestuale. Nella finestra di selezione del campo di raggruppamento, fare semplicemente clic su OK. Il raggruppamento verrà visualizzato nella struttura del rapporto Record di dettaglio. Nella scheda Campi selezionati trascinare con il mouse i campi che verranno visualizzati nel report dall'elenco dei campi disponibili:

    Documento,

Di conseguenza, la finestra delle impostazioni del report dovrebbe apparire così. Questo completa la creazione del rapporto.

Riso. 13.2. Crea un rapporto

    Nella finestra per la modifica dell'oggetto di configurazione Report Registry of Documents Rendering Services, vai alla scheda Sottosistemi.

Notare nell'elenco il sottosistema Servizi di rendering.

    In 1C: modalità Enterprise

Eseguire 1C: Enterprise in modalità debug.

Nella finestra 1C: Imprese che si apre, si può osservare che nel riquadro azioni della sezione Servizi, nel gruppo dei comandi per l'esecuzione dei report, è comparso un comando per generare un report Registro dei documenti per l'erogazione dei servizi. Inoltre, se ci si avvicina con il mouse, verrà visualizzato un suggerimento a comparsa Elenco dei servizi resi, determinato dalla proprietà Vista estesa.

    Eseguiamo il comando Anagrafe dei documenti per l'erogazione dei servizi.

Vedremo un modulo di segnalazione generato automaticamente dal sistema.

    Fare clic sul pulsante Genera.

Riso. 13.3. Modulo report generato automaticamente dal sistema

Verrà visualizzato un report contenente un registro dei documenti Prestazione di servizi.

Facendo doppio clic sul campo Documento, è possibile aprire il documento originale, nonché eseguire altre azioni di "decrittografia" fornite dal sistema di composizione dei dati.

PARTE TEORICA

Nel sistema 1C:Enterprise?

1. I testi di configurazione e database sono memorizzati nel formatoUNICODE

3. Non esiste una risposta giusta

6.75 Qual è lo scopo della configurazione e dei testi del database nel formatoUNICODE?

1. Il formato UNICODE garantisce l'immutabilità (indipendenza dalla piattaforma software sistema operativo) presentazione delle informazioni

2. FormatoUNICODE ti consente di supportare diverse lingue nel sistema 1C:Enterprise

3. Non esiste una risposta giusta

6.76 Previsti meccanismi di internazionalizzazione. ..

1. piattaforma tecnologica 1C:Enterprise

2. soluzioni applicative

3. Le risposte 1 e 2 sono corrette

4. non esiste una risposta corretta

6.77 Cos'è un codice di localizzazione?

1. Una stringa composta da un codice lingua e un codice paese che identifica una regione del mondo

2. Codice del prodotto software (indicato nel modulo di registrazione, documentazione dal set di consegna)

3. Opzione formato stringa da convertire

4. La sua risposta corretta

6.78 È vero che in 1C: Enterprise 8 any informazioni testuali può includere simboli di lingue diverse contemporaneamente?

1. Sì, poiché tutti i testi di configurazione e database sono memorizzati nel formatoUNICODE

2. A seconda delle impostazioni specificate durante la creazione base informativa

3. Solo se configurato

6.79 Qual è lo scopo dell'oggetto Configurazione lingua?

1. Per creare un'interfaccia del programma in diverse lingue

2. Creare documenti di testo lingue differenti

3. Non esiste un oggetto di questo tipo in 1C: Enterprise 8

6.80 Come posso cambiare la lingua per visualizzare (modificare) la configurazione?

1. Utilizzando il pulsante di selezione della lingua situato sulla barra di stato a destra del pulsante "NUM".

2. Tramite la voce di menu "Configurazione - Lingua modifica configurazione"

3. In 1 C:Enterprise, questa possibilità non esiste

4. Verpa risponde 1 e 2

6.81 Qual è l'ortografia degli operatori di linguaggio 1C:Enterprise?

1. Solo ortografia russa

3.

6.82 È possibile utilizzare operatori linguistici incorporati nella scrittura russa e inglese in un testo di origine?

1. Solo con impostazioni speciali del configuratore

2. Sì, non richiede la modifica di alcuna impostazione del configuratore

3. No, perché l'opzione della lingua integrata è impostata nelle proprietà di configurazione

6.83 Qual è lo scopo del linguaggio integrato?

1. Per definire l'interfaccia del programma predefinita

2. Descrivere (nella fase di sviluppo della configurazione) gli algoritmi per il funzionamento dell'attività applicata

3. Non esiste una risposta giusta

6.84 Qual è l'ortografia delle funzioni del linguaggio integrato?

1. Solo ortografia russa

2. Solo ortografia inglese

3. Ortografia russa e inglese

4. A seconda delle impostazioni del configuratore

6.85 Cosa significa il parametro L(l) v stringa di formato funzioni di formattazione NumeroScrittura()?

1. Caratteristica " parte frazionaria output in numeri/parole"

2. Numero di cifre decimali

3. Codice di localizzazione

7. Modello tabulare della soluzione applicata

7.1 Quando si impostano le restrizioni di accesso ai dati, è consentito impostare diverse restrizioni (in base al numero di campi):

1. Per il permesso di "Lettura".

2. Per il "Modifica" a destra

3. Per il diritto "Aggiungi".

4. Per il giusto "Elimina"

5. Per tutti i diritti di cui sopra

6. Per tutti i diritti possibili

7.2 Quando si impostano le restrizioni di accesso ai dati, i seguenti valori possono essere utilizzati come restrizioni di accesso ai dati:

1. Solo valori dei parametri di sessione

2. Solo dati da tabelle (query)

3. Valori dei parametri di sessione e dati da tabelle (query)

4. Solo valori con tipi: Number, String, Boolean, Date

7.3 Quale dei metodi precedenti può essere utilizzato in modo che il codice e il nome della ricerca appaiano nella sezione "Campi" del generatore di query?

1. Per prima cosa compilare la sezione "Tabelle", quindi, selezionando gli oggetti necessari da questa sezione, trasferirli nella sezione "Campi" facendo doppio clic con il tasto sinistro del mouse

2. Senza compilare la sezione "Tabelle", selezionare immediatamente gli oggetti necessari dalle tabelle - fonti dati della sezione "Database", trasferendoli nella sezione "Campi" utilizzando Tecnologia di trascinamento& Gocciolare. La sezione "Tabelle" viene compilata automaticamente

3. Compilare prima la sezione "Tabelle", quindi, selezionando gli oggetti necessari da questa sezione, trasferirli nella sezione "Campi" utilizzando i pulsanti del modulo ">" """

4. Le risposte I e 3 sono corrette

5. Le risposte I, 2 e 3 sono corrette

7.4 Per aumentare la velocità di esecuzione delle richieste è necessario:

1. Impostare i parametri per la maggior parte delle tabelle reali

2. Imposta le opzioni per la maggior parte dei tavoli virtuali

3. Invece di impostare i parametri per un vero o tavolo virtuale utilizzare la selezione specificata dal costrutto del linguaggio di query "WHERE".

4. Le risposte I e 2 sono corrette

7.5 Quando si seleziona una tabella di origine nella sezione "Tabelle" di Progettazione query, è possibile specificare un nuovo nome (alias) per essa?

1. Si, puoi

2. Sì, è possibile, ma solo se l'origine dati è una sottoquery

3. Sì, è possibile, ma solo se l'origine dati è una tabella virtuale

4. Le risposte 1 e 2 sono corrette

5. Le risposte 1 e 3 sono corrette

7.6 Una sottoquery può essere utilizzata:

1. Come tabella di origine dati

2. Come operando delle operazioni di confronto "IN" o "NOT IN" durante l'impostazione dei parametri della tabella virtuale

3. Come operando delle operazioni di confronto "IN" o "NOT IN" quando si specifica il costrutto del linguaggio di query "WHERE"

4. Verpa risponde 1, 2 e 3

7.7 Posso utilizzare il generatore di query per ottenere i totali per una gerarchia?

1. Puoi, se specifichi il tipo di totali "Elementi e gerarchia" per il campo di raggruppamento

2. È possibile, se si specifica il tipo di totali "Solo gerarchia" per il campo di raggruppamento

3. Verpa risponde 1 e 2

7.8 Nella scheda "Condizioni" del generatore di query, è possibile formare una riga separata dell'elenco delle condizioni:

1. Facendo doppio clic con il tasto sinistro del mouse sul campo richiesto nell'elenco dei campi disponibili

2. Tramite bonifico campo desiderato all'elenco utilizzando la tecnologia Drag & Drop

3. Premere il pulsante "Aggiungi". Se la condizione è arbitraria, il testo della condizione può essere inserito "manualmente"

4. Dopo aver richiamato il menu contestuale, seleziona la voce "Aggiungi" al suo interno. È possibile utilizzare un'espressione arbitraria

5. Tutte le risposte precedenti sono corrette

7.9 Nella scheda "Collegamenti" del generatore di query è possibile definire:

1. Connessione di tabelle di origine dati e relazioni tra di esse

2. Combinazione di tabelle di origine dati e relazioni tra di esse

3. Collegamenti tra i campi della tabella ottenuta a seguito della query

4. Collegamenti tra i campi della tabella di origine dati e la tabella ottenuta a seguito della query

7.10 Quando si uniscono tabelle di origine dati in Progettazione query, è possibile:

1. Assegnare una connessione senza specificare una condizione di connessione

2. Assegnare una connessione specificando la condizione di connessione e questa condizione può essere solo una

3. Assegna una connessione con un'indicazione della condizione di connessione e questa condizione può essere solo semplice

4. Assegnare il numero richiesto di connessioni indicando importo richiesto condizioni di comunicazione, e queste condizioni possono essere sia semplici che arbitrarie

7.11 La creazione di una connessione di tabelle di origine dati in Progettazione query consente di:

1. Unire solo due tabelle di origine dati

2. Collegamento del numero richiesto di tabelle di origine dati

3. Connessione di solo due tabelle di origine dati e la casella di controllo "Tutte" deve essere selezionata almeno per una delle tabelle

Lo sviluppo di una soluzione applicata nel sistema 1C:Enterprise consiste in due fasi principali: costruzione visiva degli oggetti di configurazione e descrizione del comportamento specifico del sistema utilizzando il linguaggio integrato e il linguaggio di query.

Il linguaggio integrato del sistema 1C:Enterprise ha molte caratteristiche in comune con altri linguaggi di programmazione, ma non è un analogo diretto di nessuno di essi. Le sue caratteristiche più significative:

soft typing (il tipo di una variabile è determinato dal tipo di valore che contiene e può cambiare durante il funzionamento);

Mancanza di descrizione programmatica dei tipi di applicazione (vengono creati quando si aggiungono oggetti di configurazione);

orientamento agli eventi del linguaggio integrato;

· tutti gli operatori hanno sia l'ortografia russa che quella inglese, che possono essere utilizzate contemporaneamente.

Moduli di configurazione

I moduli della soluzione applicata sono destinati a posizionare il testo del programma nella lingua incorporata. Questi moduli si trovano in punti diversi della configurazione e hanno scopi diversi. La maggior parte dei moduli è “legata” a determinati oggetti di configurazione o alla stessa soluzione applicativa.

Ci sono i seguenti tipi moduli software:

· Moduli generali. Una configurazione può contenere qualsiasi numero di moduli, incluso nessuno. I moduli condivisi non vengono richiamati da soli durante il processo di configurazione. Servono solo a collocare in essi i testi delle procedure e delle funzioni richiamabili da altri moduli della soluzione applicata. Pertanto, mancano di una sezione di dichiarazione delle variabili e di una sezione del programma principale. Quello. i moduli comuni contengono solo procedure e funzioni.

· Modulo applicativo. C'è sempre un singolo modulo applicativo in una configurazione. Viene eseguito quando il sistema viene avviato in modalità 1C:Enterprise ed è progettato per elaborare azioni relative alla sessione dell'utente finale. Gli eventi principali che possono essere gestiti nel modulo dell'applicazione sono gli eventi di inizio e di fine dell'applicazione. La sequenza della chiamata è mostrata in riso. 1. Evento Prima di iniziare System si verifica quando il sistema si avvia prima dell'apertura della finestra principale. Gestendo questo evento, lo sviluppatore, ad esempio, ha la possibilità di rifiutare il lancio se le condizioni non sono soddisfatte. Evento All'avvio del sistema si verifica dopo l'apertura della finestra principale. Nel gestore di questo evento, puoi, ad esempio, visualizzare informazioni sui compleanni, ecc.

· Modulo collegamento esterno . In una configurazione è sempre presente un solo modulo di connessione esterno. Viene eseguito quando si accede all'applicazione come server COM (in modalità di connessione esterna). Nella modalità di connessione esterna, non viene avviata un'applicazione 1C: Enterprise a tutti gli effetti, ma una "versione light", in cui non sono disponibili tutte le funzioni che sono in qualche modo correlate all'organizzazione dell'interfaccia utente.

· Moduli oggetto dell'applicazione. Ogni oggetto di configurazione dell'applicazione (ad esempio un documento PKO o una directory), i cui dati possono essere modificati nella modalità 1C: Enterprise, ha il proprio modulo. Oltre a descrivere le variabili e il programma principale, un modulo oggetto può contenere una descrizione di procedure, gestori di eventi associati a un dato oggetto di configurazione. Ci sono due eventi che vengono chiamati per tutti gli oggetti: Prima della registrazione E Durante la registrazione.

· Moduli di forma. Ogni modulo ha il proprio modulo, che definisce il comportamento del modulo e le azioni eseguite da esso, come l'apertura di altri moduli. Gli eventi vengono generati per tutte le forme Prima di aprire, prima di aprire, prima di chiudere E Alla chiusura.

Contesto

Nel sistema 1C:Enterprise, il contesto denota l'ambiente del modulo, ad es. variabili, oggetti, proprietà, metodi ed eventi a sua disposizione. Possiamo distinguere i seguenti tipi di contesti e, di conseguenza, le regole di visibilità per variabili, procedure e funzioni esportate:

· Contesto globale, disponibile in tutti gli altri contesti, si compone delle seguenti parti:

§ proprietà, metodi ed eventi del contesto globale (ad esempio, una proprietà Data di lavoro);

§ enumerazioni di sistema e insiemi di valori di sistema (ad esempio, ReturnCodeDialogue E Simboli).

· Contesto del modulo comune formato dal contesto globale e dal contesto locale del modulo più comune (ovvero procedure e funzioni definite all'interno del modulo comune). Nel contesto di un modulo condiviso, le procedure e le funzioni esportate di altri moduli comuni. Le variabili, le procedure e le funzioni esportate del modulo dell'applicazione non sono disponibili.

· Nel contesto di un modulo applicativo o di un modulo di connessione esterno sono disponibili le procedure esportate e le funzioni dei moduli comuni.

· Nel contesto di un modulo dell'oggetto dell'applicazione avere accesso ai dettagli e parti tabulari oggetto, così come i suoi metodi ed eventi. Qui sono disponibili le variabili esportate, le procedure e le funzioni del modulo applicativo (modulo di connessione esterno) e dei moduli comuni.

· Nel contesto di un modulo modulo sono disponibili attributi del modulo, nonché proprietà, metodi ed eventi del modulo. Se l'attributo principale è assegnato al modulo, le proprietà ei metodi dell'oggetto dell'applicazione utilizzato come attributo principale diventano disponibili nel modulo del modulo.

Schematicamente, la relazione dei contesti è mostrata in riso. 2. SU riso. 3 viene mostrata la possibile interazione tra il modulo modulo journal e il modulo documento.


Procedure e funzioni

Le procedure e le funzioni sono blocchi di programma che possono essere richiamati per nome da un'altra posizione, ad esempio un'altra procedura. Le funzioni differiscono dalle procedure solo per il fatto che hanno un valore di ritorno. Nella versione 8, l'ordine delle procedure e delle funzioni non è importante. Ciò significa che la procedura può trovarsi al di sotto del luogo della sua chiamata.

Le procedure e le funzioni possono avere parametri che specificano quali azioni devono essere eseguite su quali oggetti. I parametri predefiniti della procedura o della funzione vengono passati per riferimento. Ciò significa che la modifica di un parametro formale all'interno di una procedura o di una funzione cambierà il parametro effettivo nel punto in cui viene chiamato. Per garantire che il parametro venga passato per valore, è necessario inserire prima del nome del parametro parola chiave Valore.

Esempio 1:

Calcolo della procedura()

Importo=Prezzo*Quantità;

FineProcedura

Calcolo(); // Chiamata di procedura

Esempio 2:

Perm Glob;

// Descrizione della procedura

Calcolo della procedura (Par1, Pair2, P3) Esportazione

Globo \u003d Globo + Par1 + Par2 + Par3;

FineProcedura

Calcolo(5, 6, 7); // Chiamata di procedura

Esempio 3:

Perm Glob;

// Descrizione della funzione

Calcolo funzione (Par1, Par2, Par3) Esportazione

Lok = Glob + Par1 + Par2 + Par3;

Restituisci Lok;

Funzioni finali

Res = Calcolo(5, 6, 7); // Chiamata di funzione

Tipi di dati

Numero, Stringa, Data, Booleano, Valore non definito, Valore nullo (per valori non specificati nelle tabelle del database)

Tipo. I valori del tipo speciale "Tipo" sono necessari per rappresentare e confrontare i tipi di dati, ad esempio:

Dichiarazione di variabili

Le variabili compaiono nel programma nei seguenti casi:

· dopo la loro dichiarazione mediante l'operatore Variabile.

Rem<Имя_переменной>[Esportare];

Variabile A,B;

dopo il primo posizionamento del nome della variabile sul lato sinistro dell'istruzione di assegnazione.

Esempio:

· quando si definiscono i nomi degli identificatori degli elementi di dialogo modificati;

· nella definizione dei parametri formali delle procedure.

Lancio

Il cast di tipi può essere esplicito o implicito.

Per la riduzione esplicita, ci sono seguenti caratteristiche: Numero, Stringa, Data, Booleano. Il casting di tipo implicito viene eseguito automaticamente dal sistema durante la valutazione delle espressioni.

Esempio: il valore della variabile numerica MonthNumber viene implicitamente convertito in una stringa e aggiunto a un'altra stringa:

A \u003d "Mese" + Numero mese;

Libri di riferimento

Il lavoro con le directory viene eseguito utilizzando i seguenti oggetti:

· Riferimenti Manager. Fornisce l'accesso a tutte le directory di configurazione. Le proprietà di questo oggetto corrispondono ai nomi delle directory e contengono oggetti del tipo DirectoryManager.

· DirectoryManager. Fornisce l'accesso alle operazioni sul dizionario come set di elementi. Attraverso le modalità di questo oggetto è possibile effettuare ricerche, ottenere una selezione, creare nuovi elementi, accedere alle form e ai layout della directory.

· DirectoryLink. Identifica univocamente un elemento (gruppo) della directory e permette di accedervi in ​​modalità "sola lettura". Attraverso le proprietà ei metodi di questo oggetto, puoi leggere i dettagli dell'elemento (gruppo), fare riferimento alle sue parti tabulari. Il valore di questo tipo è memorizzato negli attributi che fanno riferimento agli elementi questo manuale, ad esempio, negli oggetti di scena Dipendente documento Reclutamento viene memorizzato un collegamento a un elemento di directory specifico Dipendenti.

· DirectoryOggetto. Fornisce l'accesso a un elemento scrivibile. Questo oggetto contiene metodi che influenzano l'elemento nel database, come i metodi bruciare E Eliminare.

· DirectorySelection. Fornisce la possibilità di scorrere gli elementi della directory. La selezione può essere diretta o gerarchica.

· DirectoryList. Un oggetto per la gestione dell'elenco di elementi in un campo della tabella. Consente di gestire le colonne, la selezione e l'ordinamento nell'elenco.

Finalmente una grande attività con tonnellate di testo!

Qual è l'oggetto della query di lingua incorporata?

La query viene utilizzata per ottenere informazioni memorizzate nei campi del database sotto forma di una selezione formata secondo regole specificate. Una precisazione importante: nella richiesta lavoriamo con i link. Cioè, è come se l'avessero scattata, scattato una foto della vetrina di un negozio e te l'avessero data tra le mani. Da questa foto puoi scoprire quale assortimento di merci, calcolare quante, ad esempio, le arance sono nell'angolo, ecc. Ma, se prendi un pennarello e disegni un pene di gomma che giace sul bancone della foto, dovresti ricordare che questa azione non farà apparire il pene di gomma in vendita, quindi, devi battere i piedi nel negozio e mettere questo importante oggetto per la casa sul bancone. Nel caso di richieste, dobbiamo ottenere l'oggetto per riferimento.

A cosa serve un sistema di composizione dei dati?

Creare report arbitrari nel sistema 1C: Enterprise e si compone di più parti; In effetti, secondo me, una cosa molto scomoda. Maby, è una questione di abitudine.

Qual è lo scopo di uno schema di composizione dei dati?

Ottenere i dati iniziali per l'impaginazione del report;

Schema di composizione dei dati: una cosa che descrive il testo della richiesta, i set di dati, le relazioni tra di essi, i campi disponibili, le opzioni di recupero dei dati, impostazioni iniziali layout;

A cosa servono le impostazioni di composizione dei dati?

Le impostazioni di composizione dei dati lavorano insieme allo schema di composizione dei dati per formare il layout;

Qual è la differenza tra tavoli reali e virtuali?

Le tabelle reali contengono i dati della tabella che vengono (improvvisamente) effettivamente archiviati nel database;

Virtuale: sono formati dai dati di diverse tabelle di database; Per le tabelle virtuali, puoi impostare una serie di opzioni che determinano quali dati verranno inclusi in queste tabelle virtuali. L'insieme di tali parametri può essere diverso per diverse tabelle virtuali;

In quali parti è composto il testo della richiesta, quali di esse sono obbligatorie?

Descrizione richiesta (obbligatorio) – definisce fonti dati, campi di selezione, raggruppamenti;

Combinazione di query: come verranno combinati i risultati dell'esecuzione di più query;

Ordinamento dei risultati: una condizione per ordinare le righe dei risultati della query;

Auto-organizzazione: la modalità di ordinamento automatico delle righe nel risultato di una query;

Descrizione dei totali - quali totali devono essere calcolati nella query e come raggruppare il risultato;

Quali sono i costrutti di sintassi di base del linguaggio di query?

Scegliere<что>DA<откуда>

ORDINE<признак>

Qual è l'origine dei dati della query?

L'origine dati della query è una tabella (reale o virtuale);

Cosa sono gli alias nell'origine della richiesta?

La possibilità di assegnare un nome arbitrario al campo di selezione. Ad esempio, se non selezioniamo solo, ma usiamo isnull o moltiplichiamo questo campo direttamente nella query, alla fine verrà chiamato dal tipo "field1". E così lo chiameremo subito, come sarà conveniente;

Cosa sono i parametri di ricerca?

Il parametro è indicato dal segno &, serve per trasferire alcuni dati alla richiesta (ad esempio, date per qualche registro);

Quali sono le opzioni del tavolo virtuale?

A seconda del tipo di tabella virtuale, è possibile filtrare i dati utilizzando le opzioni della tabella virtuale. Ad esempio, nei registri di accumulazione, i parametri della tabella virtuale saranno StartPeriod e EndPeriod;

Che è successo unire a sinistra?

Due tavoli. Condizione. Join sinistro: includerà TUTTI i dati della prima tabella e solo quelli che soddisfano la condizione della seconda tabella;

Come utilizzare il costruttore di query?

Facilmente. Apriamo nello schema di composizione dei dati o fai clic con il pulsante destro del mouse: il costruttore di query in qualsiasi procedura;

Come selezionare i dati in un determinato periodo per un report?

Nello schema di composizione dei dati - impostazioni - nella finestra inferiore della tabella - parametri.

Come organizzare i dati in un report?

In Progettazione query, scheda "Ordine", selezionare il campo e il metodo di ordinamento desiderati;

Come utilizzare i dati di più tabelle in un report?

Combinali con una query;

Come utilizzare il raggruppamento nella struttura del report?

Nello schema di composizione dei dati, nella scheda Impostazioni, fai clic con il pulsante destro del mouse su "Report": seleziona un raggruppamento per la visualizzazione delle informazioni sotto forma di report lineare

Come ottenere l'ultimo valore del registro delle informazioni?

Nei parametri della tabella virtuale impostare il periodo e selezionare la tabella virtuale "InformationRegisterName.LastSlice";

Come visualizzare i dati gerarchici in un report?

Schema di composizione dei dati - impostazioni - nuovo raggruppamento - tipo - "gerarchia"

Come gestire l'output dei totali per raggruppamenti e totali?

Sistema di composizione dei dati - impostazioni - nella finestra inferiore "Altre impostazioni" - "Posizione dei totali"; "Posizione dei campi di raggruppamento", "Posizione dei totali in verticale"

Come creare un report contenente un grafico?

Schema di composizione dei dati - impostazioni - rapporto - tasto destro - nuovo grafico

Come utilizzare i parametri nello schema di composizione dei dati?

Per lavorare con le query, viene utilizzato un oggetto del linguaggio integrato Richiesta. Consente di ricevere le informazioni memorizzate nei campi del database sotto forma di una selezione formata secondo regole specificate..

La query riceve le informazioni iniziali da un set di tabelle. Queste tabelle rappresentano i dati delle tabelle di database reali in una forma conveniente per l'analisi. Si possono dividere in due grandi gruppi: vero E virtuale.

Le tabelle reali, a loro volta, possono essere oggetto (riferimento) o non oggetto (non riferimento), fig. 97.

Riso. 97. Interrogare le tabelle

Caratteristica distintiva tabelle reali è che contengono i dati di una qualsiasi tabella reale memorizzata nel database. Ad esempio, la tabella Repertorio.Clienti, corrispondente all'elenco Clienti, o la tabella Registro Accumuli.Rimanenze di Materiali, corrispondente al registro di accumulo Resti di Materiali, è reale.

Le tabelle virtuali sono formate principalmente dai dati di più tabelle di database. Ad esempio, la tabella Registro Accumuli.Rimanenze di Materiali.Rimanenze e Fatturati, formata da più tabelle del registro di accumulo Rimanenze di Materiali, è virtuale.

A volte le tabelle virtuali possono anche essere formate da una tabella reale (ad esempio, la tabella virtuale Prezzi. La fetta dell'ultimo è formata sulla base della tabella del registro delle informazioni sui prezzi). Tuttavia, ciò che tutte le tabelle virtuali hanno in comune è che possono ricevere un numero di parametri che determinano quali dati saranno inclusi in queste tabelle virtuali. L'insieme di tali parametri può essere diverso per diverse tabelle virtuali ed è determinato dai dati memorizzati nelle tabelle del database di origine.

Le tabelle reali sono divise in oggetto (riferimento) e non oggetto (non riferimento).

IN tabelle oggetto (di riferimento). vengono presentate informazioni sui tipi di dati di riferimento (directory, documenti, piani di tipi di caratteristiche, ecc.). E dentro non oggettivo (non referenziale)– tutti gli altri tipi di dati (costanti, registri, ecc.).

Caratteristica distintiva tabelle oggetto (di riferimento).è che includono un campo Link contenente un collegamento a entrata corrente . Inoltre, per tali tabelle è possibile ottenere una rappresentazione personalizzata di un oggetto. Queste tabelle possono essere gerarchiche ei campi di tali tabelle possono contenere tabelle nidificate (sezioni di tabella).

L'algoritmo con cui i dati verranno selezionati dalle tabelle di origine della query è descritto nel testo della query in un linguaggio speciale: linguaggio di interrogazione . Il testo della richiesta si compone di più parti:

una descrizione della richiesta;

Consolidamento delle richieste

ordinamento dei risultati;

· AUTO-ORDINAZIONE;

una descrizione dei risultati.

La parte obbligatoria della richiesta è solo la prima: la descrizione della richiesta. Tutti gli altri sono presenti secondo necessità.

La descrizione della query definisce origini dati, campi di selezione, raggruppamenti, ecc.

L'aggregazione delle query determina la modalità di unione dei risultati di più query.

L'ordinamento dei risultati definisce le condizioni per l'ordinamento delle righe dei risultati della query.

AUTOORDER consente di abilitare l'ordinamento automatico delle righe dei risultati della query.

La descrizione dei totali determina quali totali devono essere calcolati nella query e come viene raggruppato il risultato.

Va notato che quando un linguaggio di query viene utilizzato per descrivere le origini dati in un sistema di composizione dei dati, la sezione di riepilogo del linguaggio di query non viene utilizzata. Ciò è dovuto al fatto che il sistema di composizione dei dati calcola autonomamente i totali in base alle impostazioni effettuate dallo sviluppatore o dall'utente.

Sistema di composizione dei dati progettato per creare report personalizzati nel sistema 1C:Enterprise 8.1 e si compone di diverse parti principali.

Contiene i dati iniziali per il layout del report schema di composizione dei dati sono set di dati e metodi per lavorare con essi(figura 98).

Lo sviluppatore crea uno schema di composizione dei dati in cui descrive il testo della richiesta, i set di dati, le relazioni tra di essi, i campi disponibili, i parametri per ottenere i dati e imposta le impostazioni di configurazione iniziali: struttura del report, layout di progettazione dei dati, ecc.

Ad esempio, un diagramma di layout potrebbe contenere il seguente insieme di dati (Figura 99).

Riso. 98. Schema generale lavorare con il sistema di composizione dei dati

Riso. 99. Un esempio di uno schema di layout (un set di dati e una query che lo utilizza)

Sulla fig. La Figura 99 mostra la finestra di progettazione dello schema di composizione dei dati, che contiene l'origine dati, il testo della query ei campi selezionati dalla query.

Il report del sistema di composizione dei dati che l'utente riceve non è solo una tabella di record che corrispondono alla query. Ha una struttura gerarchica complessa e può essere costituita da vari elementi come raggruppamenti, tabelle e grafici. Allo stesso tempo, l'utente può modificare la struttura del report esistente o addirittura crearne una completamente nuova, impostare la selezione di cui ha bisogno, progettare gli elementi della struttura del report, ottenere una suddivisione per ogni elemento, ecc.

Ad esempio, è possibile impostare la seguente struttura del report (Fig. 100):

Riso. 100. Struttura di un'eventuale relazione

Il report generato potrebbe avere questo aspetto (Fig. 101).

Nella relazione presentata, la tabella sarà composta da voci del registro di accumulazione Fatturati di vendita sui clienti e sui servizi loro forniti. Questi record sono raggruppati dai maestri che hanno completato gli ordini. E nel raggruppamento verrà visualizzato un elenco di master.

In generale, il sistema di composizione dei dati è una raccolta di diversi oggetti. Durante la generazione e l'esecuzione di un rapporto, i dati vengono trasferiti in sequenza da un oggetto del sistema di composizione dei dati a un altro, fino a quando non si ottiene il risultato finale: un documento mostrato all'utente.

L'algoritmo per l'interazione di questi oggetti è il seguente: lo sviluppatore crea uno schema di composizione dei dati e impostazioni predefinite. Nel caso generale, sulla base di uno schema di composizione dei dati, è possibile creare un gran numero di vari rapporti. Le impostazioni di composizione dei dati, create dallo sviluppatore o modificate dall'utente, determinano quale rapporto verrà ricevuto in un caso particolare.

Riso. 101. Rapporto di esempio

In base allo schema di layout e alle impostazioni disponibili, il generatore di layout crea un layout di layout dati. Questa è la fase di preparazione per l'esecuzione del rapporto. Un modello di composizione dei dati è un lavoro già preparato per l'esecuzione da parte del processore di composizione. Il layout del layout contiene le query necessarie, i layout dell'area dei report, ecc.

Il processore di composizione dei dati seleziona i dati dall'infobase in base al layout di composizione, aggrega e formatta questi dati.

Il risultato del layout viene elaborato dal processore di output e, di conseguenza, l'utente riceve il foglio di calcolo risultante.

La sequenza del sistema di layout può essere rappresentata come il seguente diagramma (Fig. 102):

Riso. 102. Schema dell'impianto planimetrico

3.12.1. Realizzazione del report "Registro atti Prestazione di servizi"

Rapporto Registro degli atti Prestazione di servizi visualizzerà un elenco di documenti dei servizi esistenti nel database in ordine di data e numero.

Rapporto. Dagli un nome RegisterDocumentsProvisionServices. Segnalibro Principale fai clic su " Pronto". Nel costruttore dello schema di composizione dei dati, aggiungi Set di dati - Query Costruttore di richieste".

Selezionare la tabella del documento oggetto (riferimento) come origine dati per la query RenderingServizi. Da questa tabella selezionare i seguenti campi (Fig. 103):

Data di; Numero; Azione; Maestro; Cliente.

Riso. 103. Campi selezionati

Successivamente vai al segnalibro Ordine e specificare che il risultato della query deve essere prima ordinato in base al valore del campo data, quindi in base al valore del campo RenderingServices.Link(figura 104).

Riso. 104. Ordine di output dei risultati della query

Fare clic su " OK" e vedere quale query ha generato il costruttore di query.

Vai al segnalibro Impostazioni e aggiungere un nuovo raggruppamento alla struttura del report (Fig. 105).

Riso. 105. Pannello dei comandi della scheda Impostazioni

Nella finestra di selezione del campo di raggruppamento, fare clic su " OK" e sulla scheda Campi selezionati impostare i campi che verranno visualizzati nel report:

Data di; Numero; Azione; Maestro; Cliente (figura 106).

Riso. 106. Personalizzazione della struttura del report

Registro dei documenti prestazione di servizi. Fare clic su " Modulo" e guarda il risultato del rapporto (Fig. 107).

Riso. 107. Rapporto Registro degli atti prestatori di servizi

Rapporto. nominalo Valutazione del servizio. Segnalibro Principale fai clic su " Aprire il diagramma di composizione dei dati". Nella finestra di dialogo Layout Designer che si apre, fare clic su " Pronto".

Nel costruttore dello schema di composizione dei dati, create Set di dati - Query(DataSet1) e fare clic su " Costruttore di richieste".

Nomenclatura e una tavola virtuale del registro di accumulazione Vendite Fatturati. Per evitare ambiguità di nome nella query, rinominare la tabella Nomenclature in Nomenclatura Spr(menu contestuale del tasto destro - Rinomina tabella).

Quindi selezionare dai campi delle tabelle Nomenclatura Spr. Link E VenditeFatturato.FatturatoFatturato(figura 108).

Riso. 108. Campi selezionati

Vai al segnalibro Connessioni e si noti che il costruttore ha già creato una relazione tra le due tabelle selezionate: il valore della modifica nel registro della nomenclatura deve essere uguale al riferimento all'elemento nel libro di riferimento della nomenclatura.

L'unica cosa da fare è reimpostare il flag Tutto al tavolo di registro e impostarlo al tavolo di riferimento Nomenclatura Spr(figura 109).

Mettere la bandiera Tutto per la tabella della directory significherà che tutti gli elementi saranno selezionati dalla directory ea questi elementi verrà assegnato il valore del fatturato fatturato dal registro. Pertanto, a seguito della richiesta, saranno presenti tutti i servizi, e per alcuni di essi verrà indicato il fatturato fatturato. Per quei servizi che non sono stati forniti nel periodo selezionato, non verrà indicato nulla.

Riso. 109. Impostazione collegamenti tabella

Vai al segnalibro Condizioni e impostare le condizioni per selezionare gli elementi dal libro di riferimento sulla nomenclatura (Fig. 110). Quando si impostano le condizioni di selezione, sarà necessario utilizzare i parametri di query. La prima condizione deve essere che l'elemento selezionato non sia un gruppo (per fare ciò passare al file Condizione arbitraria - impostare la bandiera Arbitrario). Poi in campo condizione inserisci il seguente testo:

SprNomenclature.ThisGroup = FALSO

La seconda condizione deve essere che l'articolo selezionato sia un servizio (es condizione semplice) (figura 110).

Riso. 110. Condizioni per la selezione degli elementi

In futuro, prima di eseguire la richiesta, nel parametro Tipo di nomenclatura devi passare il valore enum corrispondente.

Vai al segnalibro Unioni/Alias e specificare che la vista dell'elemento di riferimento avrà un alias Servizio e il campo register avrà un alias Reddito(figura 111).

Riso. 111. Sindacati/Alias

Vai al segnalibro Ordine e specificare che il risultato della query deve essere ordinato in ordine decrescente rispetto al valore del campo Reddito. La creazione della richiesta è terminata, fai clic sul pulsante " OK". Guarda il testo della query generato dal costruttore.

Vai al segnalibro Risorse e fai clic su " >> " in modo che il costruttore selezioni tutte le risorse disponibili su cui calcolare i totali. Nel tuo caso, questa è l'unica risorsa Reddito(figura 112).

Riso. 112. Risorse dello schema di composizione dei dati

Vai al segnalibro Opzioni(figura 113).

Riso. 113. Opzioni di composizione dei dati

In questa scheda, vedrai tre opzioni: Inizio periodo, FinePeriodo E Tipo di nomenclatura. Il primo parametro è l'inizio del periodo di calcolo dei totali, il secondo è la fine del periodo. Di conseguenza, la tabella di origine conterrà solo i fatturati calcolati nel periodo trasferito.

Per parametro Inizio periodo impostare il titolo che verrà mostrato all'utente − data d'inizio.

Qui dovresti sempre ricordare che se passi una data come questi parametri, allora la data contiene anche l'ora al secondo più vicino.

Supponiamo che sia noto in anticipo che l'utente non sarà interessato ai risultati del rapporto nei periodi specificati con una precisione fino a un secondo. In questo caso, dovrebbero essere prese in considerazione due caratteristiche.

Innanzitutto, l'utente deve essere sollevato dalla necessità di specificare l'ora quando inserisce una data. A tale scopo, modificare la dichiarazione di tipo esistente per il parametro Inizio periodo. Fare doppio clic in una cella Tipi disponibili , corrispondente al parametro Inizio periodo, premere il pulsante di selezione " " e nella parte inferiore della finestra di modifica del tipo di dati, impostare Data Composizione nel significato data(figura 114).

Fare clic su " OK".

La seconda caratteristica è che l'ora predefinita nella data è 00:00:00. Pertanto, se l'utente imposta il periodo del rapporto dal 01/10/2009 al 31/10/2009, i totali del registro verranno calcolati dall'inizio della giornata 01/10/2009 00:00:00 all'inizio della giornata 31/10/2009 00:00:00. Pertanto, i dati per il 31° giorno, oltre all'inizio della giornata, non saranno inclusi nel calcolo, il che sorprenderà notevolmente l'utente. Per eliminare questa situazione, aggiungi un altro parametro in cui l'utente inserirà la data di fine. Valore del parametro FinePeriodo verrà calcolato automaticamente in modo da indicare la fine della giornata della data inserita dall'utente. Pertanto, per il parametro FinePeriodo impostare la bandiera Restrizione di disponibilità.

Riso. 114. Modifica della composizione della data

Utilizzando il pulsante della barra dei comandi, aggiungere un nuovo parametro denominato EndDate (Fig. 115).

Riso. 115. Aggiunta del parametro EndDate

Per questo parametro, la piattaforma genererà automaticamente un'intestazione − data di scadenza. Lascialo invariato. Impostare il tipo di valore del parametro − data. In questo caso, come per il parametro Inizio periodo, specificare la composizione della data - data.

Tieni presente che per impostazione predefinita il parametro che hai aggiunto è disponibile per l'utente (la restrizione di accessibilità nell'ultima colonna viene rimossa).

Vai al parametro FinePeriodo. Per questo, il sistema ha impostato il flag di limitazione della disponibilità. Non deselezionarlo, poiché il valore di questo parametro verrà calcolato in base al valore impostato dall'utente per il parametro Data di scadenza.

Per impostare la formula in base alla quale verrà calcolato il valore del parametro FinePeriodo, utilizzare il linguaggio delle espressioni del sistema di composizione dei dati. Contiene la funzione FinePeriodo(), che consente di ottenere la data corrispondente alla fine di un periodo, ad esempio il giorno specificato.

In una cella Espressione impostare il parametro FinePeriodo la seguente espressione:

Come risultato delle azioni di cui sopra, i parametri del layout avranno questo aspetto (Fig. 116):

Riso. 116. Opzioni del sistema di layout

Infine, imposta il parametro Tipo di nomenclatura. Poiché il report deve visualizzare i ricavi ricevuti solo dalla vendita di servizi, il valore del parametro Tipo di nomenclatura l'utente non dovrebbe cambiare. Deve essere impostato direttamente nel layout come . Flag di limitazione dei parametri Tipo di nomenclatura la piattaforma lo ha impostato di default, quindi devi solo specificare il valore enum desiderato SpecieNomenclatura in una cella Senso, corrispondente al parametro Tipo di nomenclatura(figura 117).

Riso. 117. Impostazione del valore del parametro Tipo di nomenclatura

Procedere alla formazione della struttura del report. Segnalibro Impostazioni aggiungi un raggruppamento e ancora una volta non specificare il campo di raggruppamento. Segnalibro Campi selezionati specificare i campi Servizio E Reddito(figura 118).

Quindi vai al segnalibro Altre impostazioni e impostare il titolo del report - Valutazione del servizio(figura 119).

Riso. 119. Impostazione del titolo della relazione

Eseguire 1C:Enterprise in modalità debug.

Seleziona rapporto Valutazione del servizio, ma prima di fare clic su " Modulo", aprire Impostazioni e sul segnalibro Opzioni dati impostare il periodo del report dal 01/03/2004 al 30/04/2004 (Fig. 120). Se le date di creazione dei documenti differiscono da quelle fornite nell'esempio, il periodo del report deve essere impostato in modo diverso.

Riso. 120. Impostazioni rapporto

Fare clic su " OK" e generare un report. Il risultato sarà simile a questo (Fig. 121):

Riso. 121. Risultato dell'esecuzione del verbale

Ora modifica la data di fine in 31/03/2004. I dati relativi al 31 marzo sono inclusi nel report (Fig. 122).

Riso. 122. Il risultato dell'esecuzione del rapporto

3.12.3. Creazione del report "Entrate dei maestri"

Rapporto Entrate dei maestri conterrà informazioni su quali entrate sono state ricevute da Master LLC a causa del lavoro di ciascuno dei master, con dettagli per tutti i giorni nel periodo selezionato e una ripartizione per i clienti serviti in ciascuno dei giorni. Utilizzando questo rapporto come esempio, imparerai come creare raggruppamenti multilivello in una query e come ignorare tutte le date in un periodo selezionato.

Crea un nuovo oggetto di configurazione Rapporto. nominalo RevenueMasters ed eseguire il costruttore dello schema di composizione dei dati principale.

Aggiungere Set di dati - Query(DataSet1) e fare clic su " Costruttore di richieste". Selezionare la tabella virtuale del registro di accumulazione Vendite Fatturati.

Imposta una delle opzioni di questo tavolo virtuale − Periodicità. Per fare questo, vai sul campo tabelle e premere il pulsante "" (Fig. 123).

Riso. 123. Modificare i parametri di una tabella virtuale

Nella finestra dei parametri che si apre, impostare il valore del parametro Periodicità - Giorno(figura 124). Premi il bottone " OK".

Riso. 124. Opzioni tavolo virtuale

Quindi selezionare i seguenti campi dalla tabella:

· Vendite Fatturati Master;

· Fatturato di vendita.Periodo;

· Fatturato di vendita Cliente;

· Fatturato Vendite Fatturato Fatturato (Fig. 125).

Riso. 125. Campi selezionati

Ora vai al segnalibro Unioni/Alias e impostare un alias Reddito per il campo VenditeFatturato.FatturatoFatturato(figura 126).

Riso. 126. Sindacati/Alias

Segnalibro raggruppamento definire che il raggruppamento verrà eseguito per campi Maestro, Periodo E Cliente e valori di campo EntrateFatturato sarà riassunto (Fig. 127).

Riso. 127. Campi di raggruppamento

Segnalibro Ordine specificare che il risultato della query verrà ordinato in ordine crescente del valore del campo Periodo. Fare clic su " OK". Considera il testo della query generato dal costruttore.

Ora passa alla modifica dello schema di composizione dei dati. Segnalibro Risorse fai clic su " >> " e assicurati che il costruttore abbia selezionato l'unica risorsa disponibile - Reddito.

Segnalibro Opzioni seguire gli stessi passaggi della creazione del rapporto precedente.

Per parametro Inizio periodo impostare un titolo data d'inizio. In campo Tipi disponibili impostare la composizione della data - data.

Per parametro FinePeriodo impostare un'espressione:

PeriodoFine(&DataFine, "Giorno")

In campo Limitazione disponibilità imposta il flag di restrizione della disponibilità.

Infine aggiungi un altro parametro - Data di scadenza, impostarne il tipo come data, la composizione della data è data.

Come risultato delle azioni di cui sopra, i parametri di composizione dei dati saranno simili a questo (Fig. 128):

Riso. 128. Opzioni di composizione dei dati

Ora dobbiamo creare la struttura del report. Segnalibro Impostazioni creare in sequenza due raggruppamenti nidificati: primo livello - per campo Maestro, annidato in esso - per campo Periodo. Quindi aggiungere un altro raggruppamento nidificato all'interno del campo Raggruppamento per Periodo, – Record di dettaglio(senza specificare il campo di raggruppamento) (Fig. 129).

Riso. 129. Struttura della relazione

Ora, essendo a livello di rapporto globale, vai alla scheda Campi selezionati e aggiungere campi all'elenco Cliente E Reddito.

Infine, dal livello di report globale, vai alla scheda Altre impostazioni e modificare le seguenti impostazioni. Per parametro valore impostato Separatamente e solo nei risultati; per parametro impostare il valore Inizio e per il parametro intestazione impostare il valore Entrate dei maestri(figura 130).

Riso. 130. Impostazione dell'output dei totali complessivi all'inizio

Eseguire 1C:Enterprise in modalità debug e osservare il risultato del report Masters Revenue per il periodo dal 01/03/2004 al 30/04/2004 (Fig. 131).

Riso. 131. Risultato dell'esecuzione del verbale

Se ricordi, questo rapporto dovrebbe mostrare i dati con i dettagli per tutti i giorni del periodo selezionato. Ora vengono visualizzati solo quei giorni per i quali sono presenti voci diverse da zero nella tabella del registro di accumulazione. Pertanto, ora è necessario modificare le impostazioni del report in modo tale che ogni data del periodo per il quale è stato generato il report rientri nel report.

Per fare ciò, torna alla modalità configuratore e perfeziona la struttura del report. Finora, tutte le impostazioni della struttura effettuate sono state applicate all'intero report nel suo insieme. Ma il sistema di composizione dei dati permette anche di personalizzare individualmente ogni elemento della struttura.

Sarà necessario modificare l'impostazione di raggruppamento Periodo. Per andare alle impostazioni di questo particolare raggruppamento, nel campo della struttura, posiziona il cursore su questo raggruppamento, quindi fai clic su " Periodo" nel pannello comandi (Fig. 132).

Riso. 132. Impostazioni di raggruppamento Periodo

Le impostazioni disponibili per questo raggruppamento verranno visualizzate nella parte inferiore del modulo.

Vai al segnalibro Campi di raggruppamento. Per campo Periodo installare Tipo di componente aggiuntivo - Giorno(figura 133).

Riso. 133. Impostazione del tipo di complemento di periodo

In questo modo, hai indicato che per questo raggruppamento, i record esistenti con un valore di risorsa diverso da zero verranno integrati con i record per ciascuno dei giorni.

Successivamente, è necessario specificare in quale periodo verrà eseguita tale aggiunta. Nei campi sottostanti è possibile inserire le date di inizio e di fine per questo periodo. Ma specificare esplicitamente le date non è adatto, perché l'utente può generare un rapporto per un periodo arbitrario. È necessario che l'aggiunta di date venga eseguita non in un periodo fisso, ma nel periodo che l'utente ha scelto per l'intero report.

Per garantire esattamente questo lavoro del rapporto, entrare nella modalità di modifica del primo campo (ad esempio, facendo doppio clic su di esso) e fare clic sul pulsante "cancella" X". Successivamente, facendo clic sul pulsante " T", potrai selezionare il tipo di dati visualizzati in questo campo. Seleziona Campo di composizione dei dati(figura 134).

Riso. 134. Scelta di un tipo di dati

Fare clic su " OK". Ora fai clic nel campo di immissione sul pulsante di selezione " " e nella finestra di selezione del campo che si apre, seleziona l'opzione Inizio periodo(figura 135). Fare clic su " OK".

Riso. 135. Selezione del campo

Per il secondo campo di input specificare allo stesso modo che dal parametro verrà ricavata la data di fine periodo Data di scadenza(figura 136).

Riso. 136. Impostazioni di raggruppamento Periodo

Eseguire 1C:Enterprise in modalità debug ed eseguire il report Entrate dei maestri per il periodo dal 20 marzo 2004 al 20 aprile 2004 (Fig. 137).

Riso. 137. Risultato dell'esecuzione del verbale

3.12.4. Creazione di un rapporto sull'inventario dei servizi

Rapporto Elenco dei servizi conterrà informazioni su quali servizi ea quale prezzo fornisce LLC "Master". Sul suo esempio, conoscerai la possibilità di ottenere gli ultimi valori dal registro periodico delle informazioni e visualizzare le directory gerarchiche.

Crea un nuovo oggetto di configurazione Rapporto. nominalo Elenco dei servizi ed eseguire Data Composition Schema Designer. Crea un nuovo Set di dati - Query(DataSet1) e chiama il costruttore di query.

Selezionare la tabella di ricerca dell'oggetto (riferimento). Nomenclatura e una tabella virtuale del registro delle informazioni Prezzi.SliceLast. Per eliminare l'ambiguità dei nomi nella query, rinominare la tabella Nomenclature in Nomenclatura Spr.

Richiama la finestra di dialogo per l'inserimento dei parametri della tabella virtuale PrezziSliceLast e indicare che il periodo verrà passato nel parametro Data rapporto(figura 138).

Riso. 138. Opzioni tavolo virtuale

Quindi selezionare i seguenti campi dalle tabelle:

· SprNomenclature.Parent;

· PrezziSliceUltimo.Prezzo (Fig. 139).

Riso. 139. Campi selezionati

Vai al segnalibro Connessioni, abbassa la bandiera Tutto al tavolo di registro e impostarlo al tavolo di riferimento.

Segnalibro Condizioni impostare la condizione per la selezione degli elementi del dizionario Nomenclatura– gli elementi da selezionare devono corrispondere al tipo di elemento passato nel parametro di ricerca Tipo di nomenclatura(figura 140).

Riso. 140. Condizioni per la selezione degli elementi

Segnalibro Unioni/Alias indicare che il campo Genitore avrà uno pseudonimo Gruppo di servizio, e il campo Collegamento - Servizio(figura 141).

Riso. 141. Sindacati/Alias

Vai al segnalibro raggruppamento e indicare che il raggruppamento verrà effettuato dal campo SprNomenclature.Parent. Non è necessario impostare i valori dei campi riassuntivi (Fig. 142).

Fig.142. Campi di raggruppamento

Fare clic su " OK". Guarda il testo della richiesta.

Procedi alla modifica dello schema di composizione dei dati. Segnalibro Risorse premendo il pulsante " >> " selezionare l'unica risorsa disponibile Prezzo.

Segnalibro Opzioni impostare il valore del parametro Tipo di nomenclatura Come Enumerazione.Tipi di nomenclatura.Servizio. Inoltre, rimuovere la restrizione di accessibilità per il parametro Data rapporto e dagli un titolo - Data rapporto. In campo Tipi disponibili impostare la composizione della data - data. Per parametro Periodo, invece, impostare il vincolo di disponibilità (Fig. 143).

Riso. 143. Opzioni dello schema di layout

Procedere alla formazione della struttura del report. Vai al segnalibro Impostazioni e creare un gruppo per campo Gruppo di servizio, specificando il tipo di raggruppamento Gerarchia. All'interno di questo raggruppamento, creare un altro raggruppamento senza specificare un campo di gruppo. Conterrà rapporti dettagliati (Fig. 144).

Riso. 144. Struttura e campi evidenziati del report

Vai al segnalibro Campi selezionati e specificare che i campi Servizio e Prezzo verranno visualizzati nel report (Fig. 145).

Riso. 145. Struttura della relazione

E finalmente sistemato aspetto rapporto segnalibro Altre impostazioni. Poiché il rapporto sarà solo un elenco di servizi forniti, in cui i prezzi per servizi specifici sono di interesse, visualizzare i valori delle risorse Prezzo per ciascuno dei raggruppamenti e per l'intero rapporto nel suo insieme non ha senso.

Per disabilitare la visualizzazione dei totali nel report, impostare il parametro Posizionamento dei totali complessivi in ​​verticale nel significato NO.

Quindi vai alle impostazioni di raggruppamento specifiche - Gruppo di servizio. Per parametro Posizione dei totali questo raggruppamento, specificare il valore NO. Torna alle impostazioni dell'intero rapporto nel suo insieme.

Per parametro Posizione dei campi di raggruppamento inserire un valore Separatamente e solo nei risultati(quindi il rapporto sarà meglio "leggere"). Infine, imposta il titolo del rapporto: Elenco dei servizi.

Esegui 1C:Enterprise in modalità debug e prima di tutto apri il registro periodico Prezzi.

Aggiungi un altro valore ad esso per il servizio Diagnostica: nuovo prezzo servizi al 1° aprile 2004 - 350 (Fig. 146). Questo testerà il rapporto.

Riso. 146. Iscrizioni dell'albo "Prezzi"

Ora esegui il rapporto Elenco dei servizi al 31 marzo 2004 (Fig. 147).

Riso. 147. Risultato dell'esecuzione del verbale

Il tuo rapporto riflette correttamente il prezzo del servizio di diagnostica al 31/03/2004 - 200 rubli.

Eseguire di nuovo il report, ma ora per una data diversa: 01/04/2004 (Fig. 148).

Riso. 148. Risultato dell'esecuzione del verbale

Come puoi vedere, viene mostrato il nuovo prezzo del servizio di diagnostica: 350 rubli.

Rapporto Valutazione del cliente mostrerà qual è il reddito derivante dalla fornitura di servizi a ciascuno dei clienti per l'intero periodo di attività di Master LLC. Nel suo esempio, verrà dimostrata la possibilità di utilizzare un grafico per visualizzare il risultato di una query.

Diagramma è un elemento di controllo destinato al posizionamento in tabelle e forme di diagrammi e grafici di vario tipo del sistema 1C:Enterprise.

Logicamente diagrammaè la raccolta di punti, serie e valori di serie nel punto(figura 149).

Di norma, i momenti o gli oggetti per i quali si ottengono i valori delle caratteristiche vengono utilizzati come punti e le caratteristiche per le quali si è interessati ai valori vengono utilizzate come serie.

Ad esempio, un grafico delle vendite di tipi di articoli per mese sarà composto da punti - mesi, serie - tipi di articoli e valori - fatturato delle vendite.

Il diagramma come oggetto del linguaggio integrato ha tre aree che consentono di controllare il disegno del diagramma: l'area di costruzione, l'area del titolo e l'area della legenda (Fig. 150).

Il grafico può essere inserito nella struttura del report come elemento separato. Quando si crea un rapporto Valutazione del cliente il grafico verrà utilizzato nella struttura delle impostazioni dello schema di composizione dei dati.

Riso. 149. Esempio grafico

Riso. 150. Aree cartografiche

Crea un nuovo oggetto di configurazione nel configuratore Rapporto. nominalo ValutazioneClienti, apri lo schema di layout dei dati principale.

Creare set di dati - interrogazione(DataSet1) e chiama il costruttore di query. Selezionare la tabella del registro di accumulo virtuale Vendite Fatturati e da esso un campo - VenditeFatturato.Cliente.

Quindi aggiungi un nuovo campo (icon Aggiungere nella barra dei comandi sopra l'elenco dei campi) e utilizzando l'espressione builder, definirla come la differenza tra ricavo e costo (Fig. 151).

Riso. 151. Editor di espressioni di campo personalizzato

Di conseguenza, l'elenco dei campi selezionati avrà questo aspetto (Fig. 152):

Riso. 152. Campi selezionati

Segnalibro Unioni/Alias specificare che il campo calcolato avrà un alias Reddito(figura 153).

Riso. 153. Sindacati/Alias

Segnalibro Ordine indicare che le righe dei risultati devono essere ordinate in ordine decrescente rispetto al valore del campo Reddito. Fare clic su " OK" e vedere quale testo ha generato il costruttore della query.

Vai al segnalibro Risorse e aggiungi un campo Reddito alle risorse di layout. Quindi vai al segnalibro Impostazioni per creare la struttura del report.

A differenza di tutti i report precedenti, la cui struttura conteneva raggruppamenti, questa volta aggiungete un diagramma alla struttura del report (Fig. 154).

Riso. 154. Struttura della relazione

Aggiungi il raggruppamento per campo ai punti del grafico Cliente. Lascia invariata la serie di grafici.

Ora vai al segnalibro Campi selezionati e selezionare il campo Reddito per l'output nel report. La struttura del rapporto dovrebbe assumere la seguente forma (Fig. 155):

Riso. 155. Struttura del report e impostazioni del grafico

Segnalibro Altre impostazioni impostare il titolo del report - Valutazione del cliente, e seleziona anche il tipo di grafico - Volumetrico circolare.

Esegui 1C:Enterprise in modalità debug e apri il report Valutazione del cliente(figura 156).

Riso. 156. Grafico del volume a torta nel rapporto

Tieni presente che quando passi con il mouse su un settore del grafico, viene visualizzato un suggerimento.

Apri le impostazioni del rapporto e modifica il tipo di grafico in Misurare. Generare nuovamente il report (Fig. 157).

Riso. 157. Grafico di misurazione nel rapporto

3.12.6. Generazione di un report generico

Utilizzando l'esempio della creazione di un rapporto universale, imparerai come il sistema di composizione dei dati può interagire con una tabella pivot.

Crea un nuovo oggetto di configurazione nel configuratore Rapporto. Dagli un nome universale. Apri il suo schema di composizione dei dati principale e creane uno nuovo set di dati - interrogazione(Set di dati1).

Chiama il costruttore di query e seleziona la tabella virtuale del registro di accumulo Vendite Fatturati. Da questa tabella selezionare tutti i campi (Fig. 158).

Riso. 158. Campi selezionati

Nella scheda Raggruppamento utilizzando " >> " selezionare tutti i campi disponibili per il raggruppamento e aggiungere tutte le risorse a Campi riepilogati (Fig. 159).

Riso. 159. Raggruppamento campi e risorse

Fare clic su " OK" e osserva il testo generato dal costruttore della query.

Completare la creazione dello schema del layout dei dati procedendo come segue nella scheda Progettazione del layout Risorse selezionare tutte le risorse disponibili (fare clic su " >> "). Questo completa il lavoro con lo schema di composizione dei dati, chiudilo e torna alla finestra per la modifica dell'oggetto di configurazione Report universale.

Vai al segnalibro Forme e creare il modulo principale del rapporto facendo clic sul pulsante Visualizza accanto al campo della tabella Modulo rapporto principale. Poiché non esiste ancora un modulo principale, il sistema chiamerà il progettista del modulo. Accetta ciò che il sistema suggerisce di default e premi subito il pulsante " Pronto".

Il modulo principale del rapporto si aprirà sullo schermo. Come puoi vedere, il sistema ha già inserito il campo per te documento foglio di calcolo e lo chiamò Risultato(figura 160).

Riso. 160. Modifica del modulo di segnalazione

Devi inserire una tabella pivot in questo campo. Ma le celle del campo del documento del foglio di calcolo Risultato sono attualmente in Visualizzare solamente. Per inserire una tabella pivot, devi disattivare questa modalità, quindi fai clic sul campo del documento del foglio di calcolo e fallo Tabella -> Visualizza -> Solo visualizzazione. Ora puoi modificare il campo della tabella.

Posiziona il cursore nella cella in alto a sinistra del campo del documento del foglio di calcolo ed esegui Tabella -> Tabelle incorporate -> Inserisci tabella pivot. Il sistema aggiungerà una tabella pivot al campo della tabella e aprirà la finestra dei campi della tabella pivot (Fig. 161).

Riso. 161. Tavolo girevole

Per visualizzare i dati in una tabella pivot, dovrai scrivere diverse righe nel modulo del modulo. Apri il modulo del modulo di report e aggiungi la variabile che ti serve al testo:

Origine variabile della tabella pivot;

Successivamente, crea il gestore dell'evento del modulo di report All'apertura(Nella finestra delle proprietà del modulo Report generico) e aggiungervi il seguente testo:

Procedura OnOpen()

PivotTableSource = NewDataCompositionPivotTableDataSource;

PivotTableSource.SetSchema(DataCompositionSchema);

FormElements.Result.EmbeddedTables.PivotTable1.DataSource =

Origine tabella pivot;

Tabella pivot Source.SetSettings(SettingsComposer.Settings);

FineProcedura

Con questo testo, imposti lo schema di composizione dei dati per la tabella pivot come origine dati e definisci le impostazioni per il generatore di impostazioni per esso.

Esegui 1C:Enterprise in modalità debug e apri il report universale. Sullo schermo compariranno una maschera di report e una finestra per la selezione dei campi della tabella pivot (Fig. 162).

Riso. 162. Rapporto universale

Metti il ​​valore della risorsa EntrateFatturato a Area dati, dimensione Nomenclatura– all'area Righe e alla dimensione Maestro– nell'area Altoparlante. Il report assumerà la seguente forma (Fig. 163):

Riso. 163. Il risultato dell'esecuzione del rapporto

Ora, nella finestra Selezione campo tabella pivot, espandi il gruppo Nomenclatura e aggiungi il valore (Nessuna gerarchia) alle righe (nell'elenco a discesa della finestra "Campi tabella pivot", seleziona Adatta alle linee), e la misura Cliente aggiungi alle colonne (nell'elenco a discesa della finestra "Campi tabella pivot", seleziona Disporre in colonne). Il report cambierà aspetto (Fig. 164).

Riso. 164. Il risultato dell'esecuzione del rapporto

Pertanto, utilizzando i dati dello schema di composizione dei dati, hai fornito all'utente un'opportunità alternativa per generare autonomamente un rapporto sul registro Servizi resi.

3.12.7. Generazione di un rapporto generico 2

Utilizzando l'esempio della creazione di un secondo report universale, imparerai come controllare direttamente le impostazioni del sistema di layout e generare layout basati su opzioni di progettazione standard.

Crea un nuovo oggetto di configurazione Rapporto Con nome Universale2. Apri il suo schema di composizione dei dati principale, creane uno nuovo set di dati - interrogazione(DataSet1) ed eseguire il generatore di query. Seleziona tutti i campi dalla tabella virtuale del registro di accumulo Vendite Fatturati e fai clic su " OK". Nella scheda Risorse progettista dello schema di composizione dei dati, fai clic su " >> " e assicurati che il sistema abbia raccolto tre risorse: Fatturato Fatturato, Fatturato Quantità E Costo Fatturato.

Segnalibro Impostazioni creare un nuovo gruppo Record di dettaglio(senza selezionare il campo di raggruppamento).

Ora aggiunto ai segnalibri Forme finestre di modifica dei rapporti Universale2 utilizzando il costruttore, creare il form principale del report e modificarlo.

Allunga la forma e posiziona due etichette con i nomi al suo interno campi E Ordine e con le intestazioni Campi: E Ordine: rispettivamente (Fig. 165).

Sotto l'iscrizione campi CommandPanelFields. Sotto l'iscrizione Ordine posizionare una barra dei comandi denominata CommandPanelOrder. Sotto i pannelli di comando disporre di conseguenza i campi della tabella con i nomi TableFieldCampi E TabellaCampoOrdine.(figura 166). Nella finestra delle proprietà del pannello dei comandi CommandPanelFields impostare la bandiera Completamento automatico E ActionSource - TableFieldCampo. Nella finestra delle proprietà del pannello dei comandi CommandPanelOrder impostare la bandiera Completamento automatico E ActionSource - TableFieldOrder.

Riso. 165. Modifica del modulo di segnalazione

Riso. 166. Modulo di rapporto Universal2

Ora per il campo della tabella TableFieldCampi impostare l'origine dati come ReportObject.SettingsComposer.Settings.Selection(figura 167).

Riso. 167. Impostare l'origine dati per il campo della tabella

Uguale al campo della tabella TabellaCampoOrdine specificare l'origine dati ReportObject.SettingsComposer.Settings.Order.

Dopo aver eseguito le azioni descritte, hai associato i controlli situati nel modulo con le impostazioni del sistema di layout del report, - Scelta E Ordine. Scelta consente di gestire l'elenco dei campi che verranno inclusi nel risultato del rapporto e Ordine imposta l'ordine di output delle righe dei risultati. I pannelli di comando saranno necessari all'utente per impostare i valori di questi campi. Utilizzo delle proprietà della barra dei comandi Completamento automatico E Fonte di azione, è stata ottenuta la generazione automatica di comandi in base al tipo di dati contenuti in ciascuno dei campi della tabella.

Il sistema 1C:Enterprise 8 dispone di un piccolo set di layout di progettazione già pronti per l'utilizzo da parte del sistema di composizione dei dati. Sono contenuti nell'oggetto. Libreria layoutProgettiLayoutDati.

Metti un'altra iscrizione con il nome Arredamento e titolo Arredamento: e alla sua destra posizionare una casella di selezione con il nome ChoiceFieldDecoration(Fig. 168) senza firma.

Riso. 168. Modifica del modulo di segnalazione

Nelle proprietà del campo di selezione, apri la finestra Righe elenco di selezione e riempirlo con i nomi di layout dalla libreria di layout di progettazione layout dati (vedere Figura 169).

Riso. 169. Compilazione dell'elenco dei valori del campo selezionato

Per fare in modo che la casella di selezione modifichi il layout del sistema di layout applicato, creare un gestore Quando cambia campi di selezione:

ProceduraSelezioneCampoProgettazioneSuModifica(Elemento)

OutputParameters = LinkerSettings.Settings.OutputParameters;

ParameterLayoutLayout = OutputParameters.FindParameterValue(Nuovo

DataCompositionParameter("DesignLayout"));

ParameterDesignLayout.Use = vero;

ParameterDesignLayout.Value = ChoiceFieldDesign;

FineProcedura

Con questo testo per il parametro di composizione dei dati Progettazione del layout si specifica il nome del layout con cui deve essere formattato il report e si imposta il flag per l'utilizzo del layout del layout.

Esegui 1C:Enterprise in modalità debug e apri il report Universale2.

Aggiungi i seguenti campi ai campi selezionati:

· Maestro;

· nomenclatura;

· Entrate Fatturato.

Imposta l'ordinamento:

· Maestro ascendente;

· Nomenclatura.Tipo di nomenclatura in ordine decrescente;

· Nomenclatura in ordine crescente.

Scegli un design, per esempio Verde e fai clic su " Modulo". Il risultato sarà simile a questo (Fig. 170):

Riso. 170. Risultato dell'esecuzione del verbale

Ora cambia le condizioni per la generazione del report. Seleziona i campi Cliente, nomenclatura E EntrateFatturato. L'ordinamento sarà in ordine crescente del valore del campo Cliente e l'opzione di progettazione - Mare. Eseguire il report (Fig. 171).

Riso. 171. Risultato dell'esecuzione del verbale


3.13. Ottimizzazione del documento "Fornitura di servizi"

Supponiamo che la direzione di OOO "Master" abbia preso una decisione definitiva sulla procedura per il calcolo del costo dei materiali utilizzati nel processo di fornitura dei servizi. Vale a dire, il costo attuale del materiale sarà determinato come quoziente del costo totale del saldo di questo materiale e della sua quantità rimanente in magazzino.

Inoltre, gli strumenti 1C:Enterprise 8.1 consentono di controllare la velocità della procedura di registrazione dei documenti tramite l'utilizzo del meccanismo di query.

Quindi, ottimizzazione del documento RenderingServizi, ha due scopi:

Determinazione del costo dei materiali di consumo durante la conduzione di un documento;

Aumentare la velocità della procedura di elaborazione dei documenti.

Elimina nel documento RenderingServizi oggetti di scena della parte tabulare Prezzo, che non serve più. Rimuovere anche la colonna corrispondente dal campo della tabella che si trova nel modulo del documento RenderingServizi.

Successivamente rimuovere completamente il contenuto del gestore eventi in lavorazione nel modulo documento RenderingServizi e creare in esso uno spazio vuoto della procedura. Il testo della richiesta eseguita nella modalità di esecuzione online (ovvero on data odierna e ora) sarà diverso dalla query eseguita nella pubblicazione non in tempo reale (ovvero "backdating"). Pertanto, la formazione del testo della richiesta deve essere inclusa nella condizione If ... Altrimenti ... EndIf:

Richiesta = Nuova Richiesta;

If Mode = Document Posting Mode Operativo Then

Richiesta.Testo =

Altrimenti

Richiesta.Testo =

Finisci se;

Innanzitutto, crea una query che verrà eseguita quando il documento verrà pubblicato online. Il valore della variabile Request.Text verrà generato automaticamente. Per fare ciò, posizionare il cursore prima del punto e virgola, richiamare il menu contestuale premendo il tasto destro del mouse e selezionare la voce Costruttore di richieste. Accetta di creare una nuova richiesta. Sullo schermo verrà visualizzata la finestra di dialogo Generatore di query. Apri il tavolo Elenco nomenclatura parte tabulare del documento RenderingServizi e seleziona i campi da esso:

· nomenclatura;

· Quantità;

· Nomenclatura.Tipo di nomenclatura;

Questi campi saranno necessari per impostare i valori dimensionali dei registri e delle loro risorse. Inoltre, il campo Tipo di nomenclatura bisognerà analizzare quale sia la nomenclatura specificata nel documento: un materiale o un servizio (Fig. 172).

Riso. 172. Campi selezionati

Per specificare i valori delle risorse Prezzo registri Costo dei materiali E Saldi dovrai calcolare il costo attuale dell'articolo come quoziente del costo rimanente di questo materiale e della sua quantità rimanente.

Aggiungere quindi altre due tabelle all'elenco delle tabelle selezionate (Fig. 173).

Registro di Accumulo.Resti di Materiali.Resti.

Riso. 173. Tavole selezionate

Queste tabelle virtuali devono avere le stesse impostazioni. Per prima cosa seleziona il tavolo virtuale ResiduiMaterialiResidui, richiamare il menu contestuale premendo il tasto destro del mouse e selezionare la voce Opzioni tavolo virtuale. I parametri includeranno il momento in cui il resto di questi registri dovrebbe essere ricevuto e la condizione per la ricezione dei dati.

La condizione per l'ottenimento dei dati indica che i saldi devono essere ricevuti solo per quelle posizioni dell'articolo che sono contenute nel documento registrato (prima di eseguire la richiesta, un elenco di tutte le posizioni dell'articolo contenute nel documento registrato deve essere passato al Parametro Document Item List) - fig. 174.

Riso. 174. Opzioni tavolo virtuale

Impostare gli stessi parametri per la seconda tabella virtuale Costo dei materiali. Selezionare quindi i campi Costo rimanente e Quantità rimanente da queste tabelle virtuali (Fig. 175).

Riso. 175. Campi selezionati

Selezionare nuovamente la tabella virtuale del registro di accumulo ResiduiMaterialiResidui e rinominarlo in Materiali rimanenti rimanenti in magazzino(figura 176).

Riso. 176. Tavole selezionate

Per questa tabella virtuale specificare anche il parametro Momento temporale, e nella condizione scrivere che il materiale deve essere nella lista articoli e il magazzino deve essere uguale al magazzino specificato nel documento (Fig. 177).

Riso. 177. Parametri tabella

Ora, da questa tabella virtuale, seleziona il campo QuantityRemainder (Fig. 178).

Riso. 178. Campi selezionati

Questo completa la formazione dell'elenco dei campi selezionati e puoi procedere all'impostazione delle condizioni di collegamento tra le tabelle selezionate. Per fare ciò, vai al segnalibro Connessioni. Ciascuna delle tabelle virtuali deve essere collegata alla tabella del documento in modo tale che per tutti i record della tabella del documento, devono essere selezionati i record esistenti della tabella virtuale e la nomenclatura nella tabella del documento deve essere uguale al materiale da la tavola virtuale (Fig. 179, a-b).

Riso. 179a. Tabelle selezionate

Riso. 179b. Condizioni di relazione tra tabelle

Ora vai al segnalibro Inoltre e impostare la bandiera Per cambiare. Bandiera Per cambiare consente di bloccare in anticipo la lettura dei dati specificati (che possono essere letti da una transazione di un'altra connessione) già durante la lettura, al fine di evitare deadlock durante la scrittura. Questa clausola consente di specificare nella query le tabelle i cui dati letti devono essere modificati.

Perché hai intenzione di scrivere i registri di accumulazione RestiMateriali E Costo dei materiali, indicare le tabelle di questi registri come tabelle da modificare (Fig. 180).

Riso. 180. Specificare le tabelle da modificare

Vai al segnalibro Condizioni e impostare la condizione per selezionare dalla tabella del documento solo le righe del documento corrente (un collegamento ad esso verrà passato al parametro di query Link) - fig. 181. Per fare ciò, fare doppio clic con il pulsante sinistro del mouse sul campo Collegamento.

Riso. 181. Condizione di selezione dalla tabella dei documenti

Vai al segnalibro Unioni/Alias e impostare i seguenti alias di campo: NomenclatureNomenclatureView –> NomenclatureView; QuantitàRimanente1 –> QuantitàInStock.

Fare clic su " OK" e vedere quale testo di query ha generato il costruttore (il valore della variabile Request.Text):

Prestazione di serviziElenco della nomenclatura.Nomenclatura.Tipo di nomenclatura AS Tipo di nomenclatura,

Il costo dei materiali rimane Il costo rimane,

Materiali rimanenti rimanenti in magazzino Quantità rimanente AS Quantità in magazzino

LEFT JOIN Accumulo Registro.CostoMateriali.Rimanenti(&Istante nel tempo, Materiale In entrata (&Elenco articoli documento)) AS Costo MaterialiRimanenti

Materiale in (&elenco nomenclatura documento)) AS ResiduesMaterialsResidues

Servizi di rendering softwareElenco della nomenclatura Nomenclatura =

UNISCITI A SINISTRA

Materiale in entrata (&DocumentItemList) AND Magazzino = &MagazzinoInDocumento)

COME I RESTI DEI MATERIALI

Servizi di rendering softwareElenco della nomenclatura Nomenclatura =

Resti di Materiali Resti nel Magazzino Materiale

PER CAMBIARE

Registro di accumulo Costo dei materiali Saldi,

Registro Accumulo.RestiMateriali.Resti

Il testo della richiesta per il caso di invio non operativo del documento sarà pressoché lo stesso, salvo che mancherà il terzo join sinistro e, di conseguenza, il campo Quantità in magazzino, Perché In questo caso, non è necessario controllare i saldi. Posizionare il cursore prima del punto e virgola situato nella sezione Altrimenti(vedi pagina 135) e incolla il seguente testo della query:

Prestazione di serviziElenco della nomenclatura.Nomenclatura,

Prestazione di serviziElenco della nomenclatura Quantità,

Prestazione di serviziElenco nomenclatura.Nomenclatura.Tipo di nomenclatura AS

Tipo di nomenclatura,

Prestazione di serviziElenco della nomenclatura Importo,

ResiduesMaterialsResidues.QuantityResto,

CostMaterialsRemainder.CostRemainder

Documento.Prestazione di servizi.Elenco della nomenclatura AS Fornitura di serviziElenco della nomenclatura

UNISCITI A SINISTRA

COME COSTO DEI MATERIALI

Servizi di rendering softwareElenco della nomenclatura Nomenclatura =

Costo dei materiali Residui.Materiale

UNISCITI A SINISTRA

Materiale in (&elenco nomenclatura documento))

AS RemainsMaterialsRemains

Servizi di rendering softwareElenco della nomenclatura Nomenclatura =

ResiduesMaterialsResidues.Material

PER CAMBIARE

Registro di Accumulo.Resti di Materiali.Resti,

Registro di Accumulo. Costo dei Materiali. Rimanenze;

Ora aggiungi i parametri della richiesta al testo del gestore (aggiungi solo quei comandi che sono evidenziati nelle righe corrispondenti in grassetto):

Richiesta = Nuova Richiesta;

Query.SetParameter("MagazzinoInDocumento", Magazzino);

If Mode = Document Posting Mode Operativo Then

Richiesta.Testo =

| Registro di accumulo Costo dei materiali Saldi";

Finisci se;

Query.SetParameter("MomentTime", MomentTime());

Query.SetParameter("DocumentNomenclatureList",

ItemList.UnloadColumn("Nomenclatura"));