Casa / Guadagni / 1s uv standard scelta del periodo mq. Creiamo un report con una frequenza specificata sul sistema di storage

1s uv standard scelta del periodo mq. Creiamo un report con una frequenza specificata sul sistema di storage

Creiamo un report con un set di dati di query:

SELEZIONA I PRODOTTI NEI MAGAZZINI Rimanenti. Magazzino, Merci nei magazzini Resti. Nomenclatura, Prodotti nei Magazzini Rimanenti. Saldo Quantità DA Registro di Accumulo. Prodotti nei magazzini. Resti(&MyDate,) AS ProductsInWarehousesRemains

Andiamo ora nella scheda parametri e vediamo che il sistema, oltre al nostro parametro &MyDate, ha creato anche il parametro &Period.
Per monitorare visivamente i periodi, creeremo un modulo di report principale e inseriremo un campo tabella con i dati su di esso: Impostazioni Composer.Settings.DataParameters

Salviamo il report e apriamolo nell'azienda. Nel campo della tabella con i parametri viene visualizzato solo il parametro &Periodo:

Di conseguenza, qualsiasi modifica in questo parametro non darà il risultato desiderato.

Perché il parametro &MyDate non è disponibile? Naturalmente, perché nella scheda dei parametri ha una casella selezionata Limitazione della disponibilità.

Deseleziona la casella. Ora vediamo entrambi nei parametri disponibili. Solo durante la generazione del report vedremo che il report reagisce al parametro &Period e non a &MyDate.

In questo esempio, la cosa più semplice da fare è rinominare il parametro &MyDate nella richiesta in &Period e ottenere il risultato desiderato. Ma forse hai una query in cui è già stato utilizzato il parametro &Period, oppure le tue opinioni religiose non ti consentono di utilizzare questo parametro, in ogni caso puoi risolvere il problema in questo modo:

SELEZIONA I PRODOTTI NEI MAGAZZINI Rimanenti. Magazzino, Merci nei magazzini Resti. Nomenclatura, Prodotti nei Magazzini Rimanenti. Saldo Quantità DA Registro di Accumulo. Prodotti nei magazzini. Remains((&MyDate),) AS ProductsInWarehousesRemains

AGGIORNAMENTO dall'utente Boh:

Il problema principale quando si utilizzano parametri “standard” (aggiunti dal sistema) è che quando si utilizzano più tabelle virtuali in un report, se questo parametro è definito, in tutti gli altri casi verrà utilizzato il suo valore invece di quelli “propri”.

Lasciate che vi faccia un esempio:

SELECT EmployeesSP.Employee, WorkersSP.ReasonChangesConditions, WorkersSP.Period, WorkersSPAnotherDate.Period AS Period2, WorkersSPAnotherDate.ReasonChangesStates AS ReasonChangesCondition2 FROM RegisterInformation.EmployeesOrganizations.SliceLast(&Period , Employee = &Employee ) AS Employees JV CONNESSIONE SINISTRA Registro delle informazioni.Dipendenti delle organizzazioni.Parte dell'ultima(&Altradata,) AS DipendentiSPUn'altradata BY DipendentiSP.Dipendente = DipendentiSPUn'altradata.Dipendente

Nella seconda sottoquery, il valore del parametro PERIOD "standard" verrà utilizzato come parametro della data della sezione, anziché il valore OtherDate.

Questo "problema tecnico" verrà osservato anche se la seconda sottoquery viene inviata al secondo set di dati e collegata tramite ACS. Anche l'opzione che utilizza nella seconda richiesta un'espressione come “ADDATE(&Period, MONTH, -1)” non funzionerà, il mese non verrà sottratto. Ma rinominare il parametro "Periodo" nella richiesta, ad esempio, in "FirstDate" risolve questo problema.

A proposito, esattamente lo stesso problema si osserva con le tabelle virtuali di accumulazione e i registri contabili, utilizzati per ottenere, ad esempio, il fatturato. Lì il sistema aggiunge i parametri “Inizio periodo” e “Fine periodo”.
Quindi nel caso di richieste di complessità anche leggermente maggiore è opportuno disattivare la disponibilità e l'utilizzo dei “periodi standard”.

Buona giornata, cari lettori del sito blog! Nell'ultimo articolo abbiamo appreso perché questi ruoli sono necessari. E oggi, nel secondo di questa serie di articoli, vedremo impostando un ruolo con la proprietà “Periodo”. e prendere in considerazione anche esempi di ricoprimento di questi ruoli. Il resto viene calcolato utilizzando il campo con il ruolo “Periodo”. Proprio come in campo con il ruolo “Dimensione”, di cui parleremo un'altra volta. Allora, cominciamo!

Creiamo un nuovo report:

  1. Nel Configuratore selezionare la voce di menu “File” - “Nuovo” - “Report esterno”.
  2. Fare clic sul pulsante “Apri diagramma di composizione dei dati”. Nella finestra di dialogo che si apre, fare clic sul pulsante "Fine".
  3. Creiamo ora un che acceda alla tabella virtuale “Registri di Accumulo”.
  4. Fare clic con il tasto destro sul nodo "Set di dati" e selezionare la riga "Aggiungi set di dati - Query".
  5. Ora fai clic sul pulsante “Creatore di query”. Selezioniamo il registro di accumulo “GoodsInWarehousesRemainsAndTurnover” (configurazione USP).
  6. Apriamo la finestra di dialogo "Parametri tabella virtuale" e indichiamo che verrà utilizzata la frequenza "Auto", ovvero sarà possibile specificare più periodi.

Ora configuriamo i campi di output. Lascia che questi siano i seguenti campi: “Registrar”, “PeriodMonth”, “Nomenclatura”, “Qualità” e informazioni sui saldi. L'aggiunta di un campo si effettua facendo doppio clic con il tasto sinistro del mouse sul campo desiderato oppure utilizzando il pulsante “>”. Dopo aver aggiunto i campi, fare clic sul pulsante "OK".

Tieni presente che per alcuni campi viene configurato automaticamente un ruolo con la proprietà “Periodo”.

Diamo un'occhiata a cosa esiste impostazioni del ruolo per la proprietà "Periodo".. Innanzitutto viene indicato il numero di serie del periodo. La numerazione deve essere continua, partendo da uno, dal periodo più basso al più alto, cioè prima ci sarà, ad esempio, il numero di riga, poi “Registratore”, poi il secondo, giorno, settimana, mese, trimestre, anno.

Pertanto, i campi che compaiono nella nostra richiesta dovrebbero essere numerati. Tieni presente che sono presenti due campi periodo: "Registrar" e "PeriodMonth". Il campo inferiore è "Registrar", gli viene assegnato uno, e il campo alto è "PeriodMonth", gli viene assegnato due. Vedremo questo in modo più dettagliato nel prossimo articolo.

Impostiamo il nostro report:

  1. Andiamo alla scheda "Risorse" e definiamo le risorse del nostro report.
  2. Fare clic sul pulsante “>>” per selezionare tutti i campi per le risorse.
  3. Ora andiamo alla scheda “Impostazioni” e creiamo un’impostazione sotto forma di elenco.
  4. Fare clic sul pulsante "Progettista impostazioni composizione dati" (il pulsante a forma di bacchetta magica).
  5. Tipo di rapporto: "Elenco". Fare clic sul pulsante "Avanti".
  6. Configuriamo i campi di output cliccando sul pulsante ">>". Organizziamoli così: “PeriodoMese”, “Nomenclatura”, “Qualità”, “Registrar”.
  7. Fare clic sul pulsante "Avanti" e impostare il raggruppamento. Imposteremo il raggruppamento nel seguente ordine: “PeriodoMese”, “Nomenclatura”, “Qualità”. Il raggruppamento “Registrar” verrà visualizzato sotto forma di record dettagliati.
  8. Fare clic sul pulsante "OK".

Apriamo il nostro resoconto. Se eseguiamo questo rapporto, vedremo alcune funzionalità quando riceviamo i saldi. Se osservi attentamente il risultato del report, noterai immediatamente diversi errori. In particolare, per qualche motivo, proprio all'inizio del periodo di attività dell'azienda, c'è un saldo iniziale.

E questo errore è legato alla funzionalità di ricezione dei saldi dal registrar. Affinché questi saldi vengano visualizzati correttamente, è necessario aggiungere un altro campo ai campi di output della richiesta: il campo "PeriodSecond". Per aggiungere il campo “PeriodSecond”, aprire il report nel Configuratore e cliccare sul pulsante “Apri schema di composizione dati”. Ora fai clic sul pulsante “Query Builder” e aggiungi “PeriodSecond”. In questo caso, il campo “Registrar” rimarrà il primo campo del periodo, “PeriodSecond” sarà il secondo e “PeriodMonth” sarà il terzo.

A cosa serve un secondo? Il sistema di composizione dei dati calcola i saldi mediante calcolo e per determinare in modo inequivocabile la posizione del registratore sull'asse del tempo non è sufficiente il collegamento al registratore stesso, è necessario anche un secondo, cioè la data di questo registratore, e poi il sistema di layout sarà in grado di ottenere tramite calcolo il corretto equilibrio. Se specifichiamo l'ordine corretto dei campi e generiamo nuovamente il report, otterremo:

Ora non c'è più alcun equilibrio per l'avvio delle attività con la nomenclatura Plinth. Poi per il periodo successivo coincide con il consuntivo, cioè vediamo un risultato veramente corretto. È possibile scaricare un rapporto di esempio dal collegamento sottostante. Ti è piaciuto l'articolo? Cosa si può cambiare, cosa si può aggiungere? Sentiti libero di condividerlo nei commenti!

Alla fine dell'articolo voglio consigliartene uno gratuito di Anatoly Sotnikov. Questo è un corso tenuto da un programmatore esperto. Ti mostrerà separatamente come creare report nel sistema di controllo degli accessi. Devi solo ascoltare attentamente e ricordare! Riceverai le risposte alle seguenti domande:
  • Come creare un semplice rapporto di elenco?
  • A cosa servono le colonne Campo, Percorso e Titolo nella scheda "Campi"?
  • Quali sono le limitazioni per i campi del layout?
  • Come configurare correttamente i ruoli?
  • Quali sono i ruoli dei campi del layout?
  • Dove posso trovare la scheda di composizione dei dati in una query?
  • Come configurare i parametri nel sistema di controllo degli accessi?
  • Diventa ancora più interessante...
Forse non dovresti provare a navigare in Internet da solo alla ricerca delle informazioni necessarie? Inoltre, tutto è pronto per l'uso. Inizia e basta! Tutti i dettagli su cosa c'è nelle video lezioni gratuite

Ecco una delle lezioni sull'aggiunta ai segnalibri della composizione dei dati in una query:



Quando si creano report su un sistema di controllo accessi, spesso è necessario visualizzare una selezione del periodo sul modulo del report, in modo da non dover inserire le date manualmente, ma selezionarle da un elenco di periodi standard, come ad esempio: "Anno" , “Mese”, “Settimana”, ecc. Per i parametri del tipo Data, è possibile specificare solo "L'inizio di quest'anno, mese, ecc.", ma non viene fornita la "Fine".

Il fatto è che tra i tipi di dati è disponibile solo il tipo "Data di inizio standard", ma voglio anche il tipo "Data di fine standard".

C'è un modo per aggirare questo problema.

  1. Creiamo un nuovo parametro, chiamiamolo “Periodo”
  2. Imposta questo parametro sul tipo “Periodo standard”
  3. Nel campo “Espressione” dei parametri “Inizio Periodo” e “Fine Periodo”, utilizzati nella richiesta, impostare le espressioni “ &Periodo.DataInizio" e " &Data di fine periodo” rispettivamente.

Ma c'è una leggera sottigliezza. Se utilizziamo tabelle virtuali nella query, molto probabilmente il report smetterà di funzionare e verrà visualizzato un messaggio di errore del tipo "Errore nell'elaborazione della vista, tipo non corrispondente, numero di parametro...".

Per evitare ciò, è necessario rimuovere tutti i parametri della tabella virtuale.

E aggiungili alle tabelle nella scheda "Composizione dei dati".

Affinché i parametri vengano visualizzati nelle impostazioni del report rapido, abilitiamo il flag corrispondente per i parametri del report.

Ora la selezione del periodo nel modulo del rapporto appare così.

Alcune funzionalità di impostazione del periodo nel sistema di controllo degli accessi.

La maggior parte dei report sviluppati utilizzando un sistema di composizione dei dati (DCS) richiede all'utente di inserire il periodo per il quale verrà creato il report.

Di norma, in ACS, l'immissione del periodo è organizzata tramite parametri, utilizzando la seguente costruzione, vedere Questo metodo di immissione del periodo è considerato "classico", è descritto in un articolo su ITS e altra letteratura dedicata allo sviluppo in 1C, quindi prendiamolo come base. Consideriamo come esempio una semplice richiesta che riceve tutti i documenti Vendite di beni e servizi per un determinato periodo, vedi

Quando si utilizza questo report, l'utente imposta il periodo tramite i parametri, vedi Tutto sembra essere corretto..., MA c'è un piccolo problema:

Il fatto è che la stragrande maggioranza degli utenti “capisce” il punto in modo diverso da come lo “capisce” 1C, esempi:

Dal punto di vista dell'utente, il periodo non è specificato, ovvero ILLIMITATO, ovvero TUTTI i documenti senza limiti di data devono essere inclusi nel rapporto.

"Dal punto di vista" del sistema 1C, il periodo-parametro è impostato e ... entrambi i suoi limiti sono pari a 01.01.0001 e nel rapporto verranno inclusi solo i documenti con una data vuota, il che in pratica significa non verrà incluso un singolo documento.

Dal punto di vista dell'utente, il rapporto dovrebbe includere tutti i documenti a partire dalla data 28/01/2010.

"Dal punto di vista" di 1C, il periodo dal 28/01/2010 al 01/01/0001 causerà un'eccezione.

Ovviamente puoi provare a spiegare all'utente perché il report non mostra i documenti che si aspetta di vedere e come viene presentato il periodo dal "punto di vista" di 1C, ma questo è un compito ingrato, ed è è anche sbagliato. Un buon programma dovrebbe innanzitutto essere user-friendly, perché il programma esiste per l'utente, e non viceversa, quindi dovrai “insegnare” a 1C a capire il periodo come lo capisce l'utente, ovvero:

1). Inizio periodo e Fine periodo non sono specificati -> tutti i documenti.

2). Viene specificato solo l'Inizio del Periodo -> tutti i documenti che iniziano dall'Inizio del Periodo

3). Inoltre, controlleremo che Fine del periodo >= Inizio del periodo e, se ciò non è vero, assumeremo che la Fine del periodo non sia specificata, ad es. 2).

In base a quanto sopra, l'espressione per il parametro Data di fine è:

QUANDO &Period.EndDate=DATETIME(1,1,1)

POI DATAORA(3999,12,31)

QUANDO &Data di fine periodo<&Период.ДатаНачала

POI DATAORA(3999,12,31) DATAORA(3999,12,31,23,59,59)

Data &Fine periodo

La forma finale del nostro progetto di selezione del periodo è mostrata in

Nota: questo meccanismo per l'impostazione dei parametri è destinato alle piattaforme precedenti 1C 8.1 e 8.2 (e alle configurazioni in esecuzione sotto il loro controllo); le versioni precedenti della piattaforma 1C hanno meccanismi integrati per il controllo dei parametri vuoti e non è necessario ricorrere al meccanismo descritto in questo articolo, inoltre, su alcune versioni della piattaforma 1C sono possibili errori e operazioni errate.

Quindi, cominciamo.

Per semplicità, comprendendo l'esempio, ci baseremo su un semplice registro di accumulo circolante.

Nel mio caso si tratta del registro di accumulo "Contabilità lavori in corso".

Ad esempio, indicheremo i suoi parametri in modo rigido (non attraverso l'imposizione morbida dei parametri sul sistema di controllo degli accessi):

Tieni presente che la frequenza del tavolo virtuale è “Record”.

Ma, come notato sopra, abbiamo bisogno del periodo in termini di periodicità, quindi propongo di calcolare il campo “Periodo” nel modo seguente (non molto carino, ma non ho visto opzioni migliori):

Come si può vedere dallo screenshot, alla richiesta viene passato un parametro che l'utente specifica nel modulo: Il valore dell'enumerazione "Frequenza" - questa enumerazione si trova in quasi tutte le soluzioni standard.

Indicheremo i tipi disponibili nella scheda "Parametri":

Con questa impostazione formattiamo il nostro ciclo in modo che tutto sia bello e gradevole alla vista)

Ecco i formati stessi:

Mese: DF="MMMM aaaa "y.""

Giorno: DF = gg.MM.aaaa

Settimana: DF = ""Settimana da "gg.MM.aaaa"

Quarto: DF = "a "quarto" aaaa "y.""

Anno: DF = "aaaa "y.""

Decennio: DF = ""Decennio con "gg.MM.aaaa"

Semestre: DF = ""Semestre dal" gg.MM.aaaa"

È tutto. Il risultato è un'immagine meravigliosa: