Come configurare smartphone e PC. Portale informativo
  • casa
  • In contatto con
  • Impostazione di un elenco dinamico 1c 8.3. Elaborazione e formattazione di dati di elenchi dinamici

Impostazione di un elenco dinamico 1c 8.3. Elaborazione e formattazione di dati di elenchi dinamici

Finalmente, il sogno di ogni "sette uomini" si è avverato. Quante volte gli utenti del programma 7.7 hanno chiesto di effettuare una normale selezione della nomenclatura. In modo che tu possa vedere i saldi, i prezzi e impostare i filtri. Ho dovuto escogitare vari trucchi, inclusa la scrittura di componenti esterni. Gli elenchi dinamici sono apparsi in 1C 8.2. Propongo di considerare di cosa si tratta e cosa possono darci in 1C 8.3.

Prendiamo una certa configurazione di prova 1C: "Enterprise Accounting 3.0" come base. Non faremo una selezione ora, basta aggiungere un altro modulo di selezione nel libro di riferimento della nomenclatura e renderlo temporaneamente quello principale:

Una volta creato, il sistema aggiungerà un campo tabella del tipo "Elenco dinamico" al modulo per impostazione predefinita.

Andiamo alle sue proprietà e vediamo cosa c'è.

Prima di tutto, siamo interessati alla casella di controllo "Richiesta personalizzata". Ci darà tutti i vantaggi di una lista dinamica. Potremo scrivere la nostra richiesta, con parametri. Seleziona la casella e fai clic sul collegamento "Apri":

Si aprirà una finestra con un codice già pronto per. Finora, tutti i campi del libro di riferimento "Nomenclatura" sono semplicemente elencati lì.

Ottieni gratuitamente 267 tutorial video 1C:

Come puoi vedere, è presente un pulsante di chiamata "" e una casella di controllo che consente di modificare dinamicamente il contenuto dell'elenco. Cioè, quando un altro utente cambia qualcosa nella directory, anche questo cambierà nel nostro elenco. Inoltre, c'è una scheda "Impostazioni", ma la toccheremo in seguito.

Query personalizzata nell'elenco dinamico

Per prima cosa, creiamo la richiesta di cui abbiamo bisogno con saldi e prezzi. Come quello:

Scheda Impostazioni

E ora il più delizioso! Vai alla scheda "Impostazioni". E vediamo subito che nella prima scheda possiamo effettuare qualsiasi selezione per qualsiasi campo nella richiesta:

Impostazione programmatica dei parametri di interrogazione in una lista dinamica 1C 8.3

Non dimenticare che abbiamo due parametri nella richiesta: "Periodo" e "Tipo di prezzo". Dobbiamo passarli alla richiesta, altrimenti si verificherà un errore.

Scriviamo questi parametri nei parametri del modulo e aggiungiamo le seguenti righe nel modulo del modulo:

& AtServer Procedura OnCreateAtServer (Failure, StandardProcessing) Elenco. Parametri. SetValueParameter ("Periodo", Parametri. Data); Elenco. Parametri. SetValueParameter ("PriceType", Parametri .PriceType); EndProcedures Home Note da Attraverso lo specchio

21/04/2014 Ottenere dati da un elenco dinamico

Implementato nella versione 8.3.6.1977.

Abbiamo implementato la capacità di recuperare facilmente e comodamente i dati visualizzati utilizzando un elenco dinamico.

Potresti aver bisogno di dati di elenchi dinamici per stamparli in un formato "specifico" non standard. O per eseguire determinate azioni con loro. Ad esempio, puoi inviare una lettera a tutti gli appaltatori che hai selezionato nell'elenco per qualche motivo.

Inoltre, ci sono una serie di attività in cui l'utente, oltre all'elenco di elementi, desidera anche visualizzare i dati di riepilogo associati a questo elenco. Ad esempio, dopo aver selezionato le merci di un determinato gruppo di prodotti e di un determinato fornitore, desidera immediatamente vedere il numero totale di tali merci nel database.

Un elenco dinamico di per sé non può fornirti queste informazioni. Lo scopo di un elenco dinamico è fornire una visualizzazione rapida di grandi quantità di dati. Pertanto, legge i dati nelle porzioni necessarie per la visualizzazione su uno o due schermi. E "non sa nulla", ad esempio, della quantità totale di dati che deve leggere.

In generale, per ottenere le informazioni aggiuntive desiderate dall'utente, è necessario interrogare il database. Esattamente lo stesso di quello utilizzato nell'elenco dinamico.

In precedenza, potevi farlo. Ma non è stato sempre facile. Infatti, oltre al testo della query originale, su cui lavora l'elenco dinamico, era necessario conoscere tutte le selezioni, gli ordinamenti e gli altri parametri che l'utente imposta in modo interattivo nella tabella di visualizzazione dei dati.

Ora questo compito è facile da risolvere. La tabella dell'elenco dinamico ha due nuovi metodi:

  • Ottieni ExecutableDataCompositionSchema ();
  • Ottieni ExecutableDataCompositionSettings ().

Pertanto, ottieni lo schema di composizione dei dati stesso e, soprattutto, tutte le sue impostazioni, grazie alle quali l'utente vede l'elenco esattamente così. Devi solo collegare in modo programmatico il layout e inviarlo a una raccolta di valori (per l'elaborazione programmatica) o un foglio di calcolo (per la visualizzazione):

Di conseguenza, riceverai una struttura (o report) contenente colonne e righe che vengono restituite alla tabella dell'elenco dinamico.

Un punto importante è che lo schema e le impostazioni che si ottengono dalla tabella dell'elenco dinamico tengono conto, tra le altre cose, della visibilità delle colonne e della ricerca applicata. Poiché le impostazioni sono ottenute separatamente, è possibile modificare la composizione dei campi per i propri scopi e ottenere, ad esempio, tutte le colonne dell'elenco e non solo quelle visibili all'utente.

C'è un altro momento piacevole durante l'output su un foglio di calcolo. In generale, l'aspetto del report corrisponderà all'aspetto della tabella dell'elenco dinamico quando vengono ricevuti lo schema e le impostazioni. Compreso il design condizionale del tavolo. Saranno necessarie alcune azioni aggiuntive solo se si desidera trasferire la struttura condizionale del modulo nel report.

Oltre ai tipi di dati primitivi che possono essere trovati in qualsiasi linguaggio di programmazione, ci sono tipi univoci in 1C. Ognuno di essi ha le proprie proprietà, metodi, funzioni, scopo e sfumature di utilizzo nel sistema. Uno di questi tipi è un elenco dinamico, che facilita notevolmente molte attività dell'applicazione. Ecco perché gli sviluppatori devono conoscere ed essere in grado di gestire questo strumento versatile.

Possibilità di liste dinamiche in 1C

Lo scopo di questo tipo è visualizzare le informazioni da qualsiasi tabella del database, indipendentemente dal tipo. Il meccanismo è stato creato sulla base di ACS e ha capacità simili. Ma questo non significa che dovrai sicuramente scrivere una richiesta nella lingua 1C, anche se questa opportunità c'è e devi usarla. Puoi semplicemente specificare la tabella, le informazioni a cui sei interessato e 1C formerà in modo indipendente la query più semplice.

Per vedere come si forma l'elenco dinamico e quali dati mostra, è necessario aprire i moduli gestiti, dove si trova, nel configuratore: nell'elenco degli attributi tramite il menu contestuale, aprirne le proprietà e prestare attenzione al " Articolo "Richiesta personalizzata". Se la casella di controllo è assente, il parametro "Tabella principale" riflette la tabella del database da cui vengono presi i dati. In caso contrario, l'elenco dinamico riflette i dati di una query arbitraria, che può essere visualizzata aprendo la preferenza dell'elenco.

Un uso molto più comune dello schema di query ad hoc è che fornisce un ottimo modo per combinare e visualizzare un'ampia varietà di dati. Nella maggior parte dei casi, questo meccanismo viene utilizzato per visualizzare i saldi delle scorte, i prezzi degli articoli, le entrate, le uscite o gli acquisti. Dovrebbe essere usato con cautela, poiché le prestazioni potrebbero diminuire con query complesse.

Un'altra utile proprietà di un elenco dinamico si apre quando si fa clic sulla didascalia "Personalizza elenco". Questo menu consente di rendere le informazioni più accessibili e comprensibili agli utenti finali anche quando si utilizza un insieme standard di campi. Indipendentemente dal fatto che la richiesta sia arbitraria o meno, vedrai la scheda "Impostazioni", dove puoi specificare:

  • Selezione di una lista dinamica;
  • Raggruppamenti;
  • Ordinamento;
  • Registrazione.

L'uso dei parametri rende gli elenchi dinamici abbastanza versatili e flessibili. Puoi anche associarli a dettagli su un modulo gestito e i dati cambieranno in base ai parametri selezionati dall'utente. L'uso di questi meccanismi può essere compreso e apprezzato considerando esempi di problemi del mondo reale.

A titolo di esempio, consideriamo il compito di riflettere i saldi di magazzino su una forma controllata. Nella pratica, tali ordini sono abbastanza comuni in varie configurazioni e un elenco dinamico è l'ideale come strumento. Per questa attività, dovremo utilizzare una query arbitraria, i parametri dell'elenco dinamico e le sue impostazioni.

Per maggiore chiarezza, creiamo un'elaborazione esterna separata e inseriamo su di essa un elenco dinamico. Per implementare il nostro piano, la tabella con la nomenclatura sarà piccola, quindi dobbiamo consentire una query arbitraria. In esso descriveremo il collegamento sinistro della directory con l'elenco della nomenclatura e il registro dei saldi e imposteremo la directory come tabella principale. Tale schema consentirà agli utenti, lavorando con un elenco dinamico, di aggiungere o modificare un elemento.



Scegli una nomenclatura.

Poiché la nostra richiesta utilizzava il parametro "CurrentDate", è necessario impostarne il valore prima di utilizzare l'elaborazione. Per fare ciò, nel modulo modulo della procedura "OnCreateAtServer", gli assegniamo la funzione "CurrentSessionDate" tramite un comando standard. È inoltre necessario visualizzare l'elenco dinamico sul modulo di controllo e modificare l'ordine dei campi per maggiore chiarezza. Trascina l'attributo "Nomenclature Remains" sugli elementi del modulo (parte in alto a sinistra) e modifica l'ordine dei campi nella tabella del modulo con le frecce blu.

& AtServer Procedura OnCreateAtServer (Failure, StandardProcessing) RemainingNomenclature.Parameters.SetParameterValue ("CurrentDate", CurrentSessionDate ()) EndProcedure


Già in questa fase, possiamo aprire la nostra elaborazione esterna in 1C e vedere che l'elenco dinamico funziona. Possiamo guardare gli avanzi, creare un elemento e un gruppo, cercare. Spesso ai clienti viene chiesto di aggiungere la possibilità di scegliere la data in cui vedranno i saldi. Nel caso di un modulo con un elenco dinamico, questo è fornito da un campo aggiuntivo e dall'impostazione dei parametri con il suo aiuto.

Aggiungi l'attributo "DateLeft" del tipo "Date" e trasferiscilo negli elementi del modulo. Nel campo eventi creare un evento "OnChange" e scrivere il codice per impostare il parametro "CurrentDate" utilizzato in una query dinamica. Affinché quando l'utente apre il form, capisca subito in quale data vede gli avanzi, apporteremo piccole modifiche alla procedura "OnCreationOnServer".



& AtServer Procedura OnCreateAtServer (Annulla, StandardProcessing) RemainingDate = CurrentSessionDate (); RemainingNomenclature.Parameters.SetValueParameter ("CurrentDate", Remaining Date); EndProcedure e procedura OnClient RemainingDateOnChange (Element) Nomenclatura Remains.Parameters.SetParameterValue ("CurrentDate", Data rimanente); Fine della procedura

Di conseguenza, il nostro modulo Elenco dinamico può visualizzare i saldi per qualsiasi data.

Abbiamo coperto solo una piccola parte delle capacità di questo toolkit, ma questo è già sufficiente per comprendere la comodità di un tipo come un elenco dinamico. Un meccanismo simile viene utilizzato per una varietà di attività, ma si trova più spesso nelle configurazioni tipiche nei moduli gestiti:

  1. Selezione;
  2. Elenchi.

Per ottenere un elenco dinamico e la relativa richiesta nei tipici moduli gestiti, lo sviluppatore deve aprire il modulo richiesto nel configuratore. Nella sezione dei requisiti, trova un attributo con il tipo di dati "DynamicList" (il più delle volte è evidenziato in grassetto). Le sue proprietà contengono il testo della richiesta, i filtri e altre impostazioni.

Nel processo di finalizzazione delle configurazioni, ogni programmatore 1C si trova di fronte a liste dinamiche.
Un elenco dinamico è un oggetto di interfaccia utilizzato per visualizzare vari elenchi di oggetti di database o dati non di oggetto — record di registrazione.
Ad esempio, un elenco dinamico viene utilizzato per visualizzare un elenco di elementi:

Per dimostrare le capacità di un elenco dinamico, creiamo un'elaborazione esterna, aggiungiamo un modulo principale. Aggiungiamo al form un nuovo attributo del tipo "Elenco dinamico". Andiamo alle sue proprietà e vediamo cosa c'è.
Siamo interessati alla proprietà "Richiesta Arbitraria". L'abilitazione ci mostrerà tutte le capacità di un elenco dinamico. Saremo in grado di scrivere una richiesta utilizzando quasi tutte le capacità del linguaggio di query 1C: Enterprise. Seleziona la casella e fai clic sul collegamento "Apri":

Per impostazione predefinita, il nostro elenco visualizzerà un elenco di articoli con il saldo totale per tutti i magazzini. Per implementare un tale elenco, aggiungi la seguente query:


Come tabella principale, selezioneremo "Riferimento. Nomenclatura", questo ci consentirà di lavorare con un elenco dinamico, come con un elenco di elementi: aggiungi, modifica, contrassegna per l'eliminazione di elementi di riferimento. Inoltre, l'impostazione della tabella principale rende disponibile la possibilità di leggere i dati in modo dinamico: ciò significa che la selezione verrà effettuata in porzioni, secondo necessità.
Successivamente, è necessario creare elementi del modulo per il nostro elenco:

Se proviamo ad avviare la nostra elaborazione in questo modulo, otteniamo un errore:


Per eliminarlo, è necessario impostare un valore per il parametro "Periodo". A tale scopo, è possibile utilizzare il metodo "SetParameterValue" della raccolta "Parameters" dell'elenco dinamico. Il metodo accetta due parametri:
... "Parametro" - Tipo: Stringa; parametro DataComposition. Il nome del parametro o del parametro di composizione dei dati di cui si desidera impostare il valore;
... "Valore" - Tipo: Arbitrario. Il valore da impostare.
Può essere chiamato nel gestore OnCreateAtServer del modulo:

Hai una domanda, hai bisogno dell'aiuto di un consulente?


Forniremo all'utente la possibilità di modificare il periodo di ricezione dei saldi. Per fare ciò, aggiungi un oggetto di scena e un elemento del modulo "Data" associato:


Nel gestore "OnChange" dell'elemento del modulo "Date", chiamare il metodo "SetParameterValue", passando come valore il valore della variabile associata. Cambiamo allo stesso modo la procedura "OnCreateAtServer" del form. Poiché il metodo è disponibile sul client, non è richiesta alcuna chiamata al server:


Ora, quando la data cambia, gli avanzi verranno aggiornati automaticamente:




Si supponga che gli utenti desiderino visualizzare i saldi correnti o le entrate previste. Consideriamo una delle opzioni di implementazione. Aggiungiamo una forma booleana props e uno switch associato:


Quando si modifica il valore dello switch, cambieremo il testo della richiesta. Per fare ciò, utilizzeremo il gestore di eventi "OnChange" dell'elemento del modulo "DisplayQuantityOnIncoming". È necessario modificare la proprietà "RequestText" dell'elenco dinamico a seconda del valore dell'attributo. Poiché questa proprietà non è disponibile sul client, è necessaria una procedura di chiamata al server:


Il risultato delle modifiche apportate:



Articoli correlati principali