Come configurare smartphone e PC. Portale informativo
  • casa
  • Ferro
  • 1c 8.3 parametri opzionali della richiesta di lista dinamica. Impostazioni elenco dinamico

1c 8.3 parametri opzionali della richiesta di lista dinamica. Impostazioni elenco dinamico

Home Appunti da Attraverso lo specchio

21/04/2014 Ottenere dati da una lista dinamica

Implementato nella versione 8.3.6.1977.

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

Potrebbero essere necessari i dati dell'elenco dinamico 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 degli elementi, vuole vedere anche 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, vuole immediatamente vedere il numero totale di tali merci nel database.

Un elenco dinamico da solo non può fornire queste informazioni. Lo scopo di un elenco dinamico è fornire una rapida visualizzazione 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 come 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 impostava 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 a livello di codice il layout e inviarlo a una raccolta di valori (per l'elaborazione programmatica) o a un foglio di calcolo (per la visualizzazione):

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

L'importante è che lo schema e le impostazioni che si ottengono dalla tabella elenco dinamico tengano conto, tra l'altro, della visibilità delle colonne e della ricerca applicata. Poiché le impostazioni si ottengono 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 della tabella. Saranno necessarie alcune azioni aggiuntive solo se si desidera trasferire la progettazione condizionale del modulo nel report.

servizi webè uno dei meccanismi di piattaforma utilizzati per l'integrazione con altri sistemi informativi. È uno strumento di supporto per l'architettura orientata ai servizi (SOA), un'architettura orientata ai servizi che è lo standard moderno per l'integrazione di applicazioni e sistemi informativi.

Un vantaggio significativo dell'architettura orientata ai servizi è che consente di sviluppare l'infrastruttura dell'impresa in modo uniforme, senza distruggere le soluzioni esistenti. Il suo utilizzo consente di ridurre al minimo i costi integrando sistemi eterogenei e legacy nel moderno panorama aziendale. Consente l'implementazione di componenti software debolmente accoppiati al fine di massimizzarne la riutilizzabilità.

L'architettura orientata ai servizi è sviluppata in modo intensivo e supportata da grandi fornitori. È costruito sulla base di servizi autonomi o controllati dall'esterno. Il modo migliore per implementarli è attraverso i servizi web. Sono indipendenti dalla piattaforma, autonomi e universalmente supportati.

Una soluzione applicata 1C: Enterprise 8 può essere sia un fornitore di servizi Web sia un consumatore di servizi Web pubblicati da altri fornitori.

I sistemi che utilizzano piattaforme hardware e software arbitrarie possono fungere da consumatori. La tecnologia dei servizi Web è indipendente dalla piattaforma.


Implementazione tecnica dei servizi web

Se la soluzione applicativa è un provider di servizi Web, sia nella modalità di funzionamento file che client-server, l'interazione tra la soluzione applicativa e gli utenti del servizio Web viene eseguita tramite il server Web, utilizzando l'estensione del server Web modulo.

In questo caso, quando il consumatore accede al servizio web della soluzione applicativa, viene eseguito il modulo del servizio web. Questo modulo è contenuto nella configurazione e contiene le procedure che vengono eseguite quando si richiamano determinate operazioni del servizio web.

Nel caso di una modalità di funzionamento client-server, questo modulo verrà eseguito nel cluster. Nel caso della versione file di lavoro - nel modulo di estensione del server web.

Se la soluzione applicativa è un consumatore di un fornitore di servizi Web di terze parti, in questo caso avviene l'interazione tra la soluzione applicativa e il fornitore di servizi Web

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 sue proprietà, metodi, funzioni, scopo e sfumature di utilizzo nel sistema. Uno di questi tipi è un elenco dinamico, che facilita notevolmente molte attività applicative. 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 informazioni da qualsiasi tabella di 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 di cui sei interessato e 1C formerà indipendentemente la query più semplice.

Per vedere come è formato 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, aprire le sue 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. Molto spesso, questo meccanismo viene utilizzato per visualizzare saldi di magazzino, prezzi degli articoli, ricevute, uscite o acquisti. Dovrebbe essere usato con cautela, poiché le prestazioni possono diminuire con query complesse.

Un'altra proprietà utile 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 un elenco dinamico;
  • raggruppamenti;
  • Ordinamento;
  • Registrazione.

L'utilizzo dei parametri rende gli elenchi dinamici sufficientemente versatili e flessibili. Puoi anche associarli ai 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.

Ad esempio, consideriamo il compito di riflettere i saldi di inventario su una forma controllata. In pratica, tali ordini sono abbastanza comuni in varie configurazioni e un elenco dinamico è l'ideale come strumento. Per questo compito, dovremo utilizzare una query arbitraria, i parametri dell'elenco dinamico e le sue impostazioni.

Per maggiore chiarezza, creiamo un'elaborazione esterna separata e posizioniamo 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 la connessione sinistra 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.



NomenklaturaPerechen.Naimenovanie AS SELECT Nome, TovaryNaSkladahOstatki.Sklad come magazzini, TovaryNaSkladahOstatki.KolichestvoOstatok AS KolichestvoOstatok Spravochnik.Nomenklatura di composto COME SINISTRA NomenklaturaPerechen RegistrNakopleniya.TovaryNaSkladah.Ostatki (& TekuhtsayaData,) COME IN TovaryNaSkladahOstatki NomenklaturaPerechen.Ssylka = TovaryNaSkladahOstatki.Nomenklatura DOVE

Poiché la nostra richiesta ha utilizzato il parametro "CurrentDate", è necessario impostarne il valore prima di utilizzare l'elaborazione. Per fare ciò, nel modulo del modulo nella procedura "OnCreateAtServer", gli assegniamo la funzione "CurrentSessionDate" tramite un comando standard. È inoltre necessario visualizzare l'elenco dinamico nel modulo di controllo e modificare l'ordine dei campi per maggiore chiarezza. Trascina l'attributo "Resti di nomenclatura" negli elementi del modulo (parte superiore sinistra) e modifica l'ordine dei campi nella tabella sul 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. In modo che quando l'utente apre il modulo, capisca immediatamente 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) Nomenclature Remains.Parameters.SetParameterValue ("CurrentDate", Remaining Date); 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 sua 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.

Finalmente, il sogno di ogni "sette-uomo" si è avverato. Quante volte gli utenti del programma 7.7 hanno chiesto di effettuare una selezione normale della nomenclatura. In modo che tu possa vedere i saldi, i prezzi e impostare i filtri. Ho dovuto trovare vari trucchi, inclusa la scrittura di componenti esterni. Le liste dinamiche sono apparse in 1C 8.2. Propongo di considerare cos'è e cosa possono darci in 1C 8.3.

Prendiamo come base una certa configurazione di test 1C: "Enterprise Accounting 3.0". Non effettueremo una selezione ora, aggiungeremo solo un altro modulo di selezione nel libro di riferimento della nomenclatura e renderlo temporaneamente il principale:

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

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. Saremo in grado di scrivere la nostra richiesta, con parametri. Seleziona la casella e fai clic sul link "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, c'è 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 più avanti.

Query personalizzata nell'elenco dinamico

Innanzitutto, 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 eventuali selezioni per qualsiasi campo della richiesta:

Impostazione programmatica dei parametri di query in un elenco dinamico 1C 8.3

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

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

& AtServer Procedura OnCreateAtServer (Elenco errori, elaborazione standard). Parametri. SetValueParameter ("Periodo", Parametri. Data); Elenco. Parametri. SetValueParameter ("PriceType", Parametri .PriceType); Fine della procedura

Principali articoli correlati