1c selezione del modulo controllato. Come aprire un modulo di elenco con alcune selezioni? Selezione dell'impostazione nel configuratore

Codice 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Accettato";
DirectoryList.Selection.Status.Set();

Per 1C 8.2:
Esistono diversi modi per aprire un modulo di elenco con alcune selezioni preimpostate. Vediamoli in ordine:

1. Il primo metodo prevede che all'apertura del modulo sia possibile impostare il parametro Modulo di selezione e aprire il modulo elenco con questo parametro. Il parametro Selezione rappresenta la struttura. I nomi degli elementi corrispondono ai nomi dei campi con cui viene effettuata la selezione e i valori contengono i valori di selezione. Questa è un'opzione di estensione del modulo gestito con elenco dinamico. Cioè, esiste per i moduli il cui attributo principale è un attributo di tipo Elenco dinamico, ad esempio moduli elenco e moduli di selezione.

All'apertura del modulo, la selezione verrà effettuata in base al campo specificato.
Codice 1C v 8.2 UP // Ad esempio, nell'esempio seguente viene aperta una lista di fatture con selezione tramite il campo Numero pari a 333.
Valore di selezione = Nuova struttura("Numero", "333");
ParametriSelezione = Nuova Struttura("Selezione", ValoreSelezione);

OpenForm("Documento. Ricevuta Fattura. Modulo Elenco", Opzioni di selezione);

// Ad esempio, il seguente esempio apre un elenco di fatture
// con campo selezione da parte del Contraente uguale a “OJSC Horns and Hooves”.
Valore di selezione = Nuova struttura ("Controparte", "Corna e zoccoli OJSC");
ParametriSelezione = Nuova Struttura("Selezione", ValoreSelezione);
OpenForm("Documento. Ricevuta Fattura. Modulo Elenco", Opzioni di selezione);

2. È possibile aprire un modulo elenco senza parametri:
Codice 1C v 8.2 UE OpenForm("Document. Receipt Invoice.List Form");

E poi, nel gestore eventi del modulo per l'elenco delle fatture When CreatedOnServer, scrivi il codice che crea una selezione nell'elenco dinamico, che è l'attributo principale del modulo:
Codice 1C v 8.2 UP &OnServer

Elemento di selezione = List.Selection.Elements.Add(Type("Elemento di selezione DataComposition"));
SelectionElement.LeftValue = NewDataCompositionField("Numero");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Fine della procedura

&Sul server
Procedura al momento della creazione sul server (errore, elaborazione standard)
Elemento di selezione = List.Selection.Elements.Add(Type
("DataCompositionSelectionElement"));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
Fine della procedura

Vantaggi questo metodoè quella vista comparativa per la selezione è possibile impostare non solo Uguale, come nel primo caso, ma anche Di più, Di meno, ecc.

Ma questo metodo presenta anche uno svantaggio molto significativo: con questa selezione il modulo sarà sempre aperto. Da qualunque parte sia stata chiamata. Pertanto, questo modulo non dovrebbe essere designato come quello principale. E se, tuttavia, è quello principale, prima di installare la selezione, è necessario fornire una sorta di analisi da dove si apre questo modulo. Ad esempio, analizzando i parametri del modulo.

3. Infine, la condizione di selezione può essere inserita in una query personalizzata che seleziona i dati per un elenco dinamico. Ad esempio dobbiamo aprire una lista di fatture che contengono la voce evidenziata nell'elenco voci.

Per fare ciò, sotto forma di un elenco di articoli, crea un comando e il pulsante corrispondente Ricevuta fatture.

Compiliamo il gestore di esecuzione per questo comando come segue:
Codice 1C v 8.2 UP &OnClient
Procedura Ricevute Fatture (comando)

ListForm = GetForm("Document.Invoice.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Fine della procedura

In questo gestore riceviamo il modulo per l'elenco delle fatture e passiamo il collegamento all'elemento corrente nell'elenco degli articoli al parametro del modulo FilterByProduct e apriamo il modulo con questo parametro.

Quindi creeremo un modulo per l'elenco dei documenti: Receipt Invoice e creeremo un attributo del modulo FilterBy Product, che utilizzeremo come parametro del modulo all'apertura. Ora apriamo la palette delle proprietà dell'attributo principale del modulo Elenco. Imposta il flag ArbitraryRequest e nella riga Impostazioni elenco fare clic su Aprire.

Nel campo Richiesta, inserisci il seguente testo della richiesta:
Codice 1C v 8.2 SU SELEZIONE
Numero fattura ricevuta documento,
Data fattura ricevuta documento
DA
Document.ReceiptInvoice AS DocumentReceiptInvoice
DOVE
Ricevuta documento Fattura.Prodotti.Prodotto = &Prodotto

Nella richiesta utilizziamo il parametro Articolo, che riceverà un collegamento alla riga corrente nell'elenco degli articoli, contenuta nel parametro del modulo Elenco fatture FilterBy Item. Per fare ciò, nel gestore eventi del modulo elenco OnOpen, scriveremo il codice per impostare il valore del parametro di richiesta Prodotto:
Codice 1C v 8.2 SU
&SuClient
Procedura di apertura (fallimento)

List.Parameters.SetParameterValue("Prodotto", FilterByProduct);

Fine della procedura

Qui Elenco.Opzioniè un elenco di parametri di richiesta di elenco dinamico per l'attributo List. Il valore del parametro Product è impostato uguale al valore del parametro del modulo FilterByProduct.

Di conseguenza, cliccando sul pulsante Ricevi fatture sotto forma di elenco di voci, riceveremo l'elenco delle sole fatture che contengono le voci evidenziate in questo momento nell'elenco della nomenclatura.

Informazioni prese dal sito

Selezione sulla modulistica gestita in 1C 8.3

L'articolo discuterà le opzioni per l'installazione della selezione nei moduli gestiti 1C 8.3. La selezione per un elenco dinamico può essere impostata in modo statico o dinamico, in interfaccia utente o configuratore. Considereremo tutte le opzioni di selezione di seguito.

  • Selezione dell'impostazione nel configuratore

Selezione dell'impostazione in modalità utente

Un elenco dinamico, al contrario di una tabella o di un albero di valori, è una soluzione più adatta per implementare moduli contenenti elenchi, perché L'elenco dinamico fornisce la più ampia gamma di strumenti per lavorare con la selezione, il raggruppamento dei campi e l'ordinamento. Questa selezione può essere impostata quando si lavora in modalità utente o configuratore, il principio è lo stesso.

Per impostare la selezione in modalità Enterprise, è necessario chiamare il comando "Personalizza elenco".

Si aprirà una finestra.


La scheda "selezione" presenta un elenco di campi presenti nell'elenco corrente. Seleziona i campi dell'elenco in base ai quali filtreremo. Questo può essere fatto facendo doppio clic o utilizzando il trascinamento della selezione.


Impostiamo il tipo di confronto e il valore, facciamo clic su “Termina modifica”, la selezione è impostata.


Quando si imposta la selezione in modalità Enterprise, nel modulo elenco vengono creati automaticamente i cosiddetti campi di selezione rapida.


Affinché la piattaforma 1C crei automaticamente campi di selezione rapida, quando si sviluppa un modulo nel configuratore, è necessario specificare un gruppo di impostazioni utente.


Questa selezione verrà salvata solo per l'utente corrente, il che consente la personalizzazione flessibile dell'elenco dinamico. Tuttavia, se il compito è effettuare una selezione fissa per un elenco specifico per tutti gli utenti del sistema, possiamo risolverlo solo tramite il configuratore.

Selezione dell'impostazione nel configuratore

Lavorando nel configuratore, possiamo impostare due tipi di selezione dell'elenco dinamico: fisso e dinamico. La selezione fissa può essere configurata una volta, mentre è possibile impostare dinamica o programmatica in base ai dati presenti nel sistema.

Il principio di impostare una selezione fissa nel configuratore non è diverso dall'impostarla nella modalità utente sopra descritta. Per impostare la selezione, dobbiamo aprire le impostazioni dell'elenco dinamico.


Si aprirà una finestra.


La selezione viene impostata come nella modalità utente.

L'opzione “Includi nelle impostazioni utente” determina se la selezione impostata nel configuratore sarà disponibile in modalità utente attraverso la voce di menu “Personalizza elenco”.


Selezione dinamica (software).

Spesso è necessario impostare la selezione a livello di codice, ad esempio quando si apre un modulo di selezione, quando dobbiamo aprire un modulo controllato con selezione. Un parametro viene passato al modulo e la selezione viene impostata in base a questo parametro. Un esempio comune di ciò è la selezione degli elementi della directory in base al proprietario.

Metodi

Se la configurazione in fase di sviluppo contiene il sottosistema BSP “Funzionalità Base”, la selezione del software nella lista dinamica può essere installata utilizzando il metodo standard:

GeneralPurposeClientServer.SetDynamicListSelectionElement()

Firma di questo metodo:

Elenco dinamico Tipo: DynamicList – L'elenco in cui si desidera impostare la selezione.

NomeCampo Tipo: String: il campo in base al quale si desidera impostare la selezione.

GiustoValore Tipo: Arbitrario – Valore di selezione (Facoltativo. Valore predefinito: Non definito. Nota: Se si passa Non definito, il valore non verrà modificato).

VisualizzaConfronto Tipo: tipo di confronto composizione dati – condizione di selezione.

Prestazione Tipo: String – Rappresentazione di un elemento di composizione dati (Facoltativo. Valore predefinito: Non definito. Se specificato, viene stampato solo il flag di utilizzo con la rappresentazione specificata (non viene stampato alcun valore). È necessario passare una stringa vuota per cancellare in modo che il valore venga stampato nuovamente.)

Utilizzo Tipo: Booleano – Flag per utilizzare questa selezione (Facoltativo. Impostazione predefinita: non definito).

Modalità display Tipo: ItemDisplayModeDataCompositionSettings – Come questa selezione viene visualizzata all'utente. Valori possibili:

  • Modalità visualizzazione elementoImpostazioni layout dati.Accesso rapido – Nel gruppo impostazioni rapide sopra l'elenco.
  • Modalità visualizzazione elementoImpostazioni layout dati Normale: nelle impostazioni dell'elenco (nel sottomenu Altro).
  • ElementDisplayModeDataCompositionSettings.Inaccessible: impedisce all'utente di modificare questa selezione.

Impostazioni utente identificatore Tipo: String: identificatore univoco per questa selezione (Utilizzato per comunicare con le impostazioni utente).

Per rimuovere un valore di selezione, è necessario utilizzare il metodo standard:

Scopo genericoClientServer. RimuoviElementiGruppoSelezioneListaDinamica()

Firma di questo metodo:

Elenco dinamico Tipo: DynamicList – attributo del modulo per il quale si desidera impostare la selezione.

NomeCampo Tipo: String – nome del campo del layout (non utilizzato per i gruppi).

Prestazione Tipo: String – Rappresentazione di un campo di layout.

Se nel sistema non è presente alcun BSP, la selezione può essere impostata in modo indipendente utilizzando l'oggetto Campo DataComposition.

Elemento di selezione = List.Selection.Elements.Add(Type("Elemento di selezione DataComposition")); Selezione Element.LeftValue = NewDataCompositionField("Nome"); Elemento di selezione.Tipo di confronto = Tipo di confronto composizione dati.Uguale; Selezione Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // Elemento di selezione opzionale RightValue = "Ivanov";

Questa selezione selezionerà le righe in cui il valore “Nome completo” = “Ivanov”.

Per utilizzare "AND", "OR", "NOT" logici è previsto il tipo di dati DataCompositionSelectionElementGroup

Gruppo di selezione = List.Selection.Elements.Add(Type("Gruppo di elementi di selezione della composizione dati")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; Elemento di selezione = Gruppo di selezione.Elementi.Add(Type("Elemento di selezione della composizione dei dati")); Selezione Element.LeftValue = NewDataCompositionField("Nome"); Elemento di selezione.Tipo di confronto = Tipo di confronto composizione dati.Uguale; Selezione Element.RightValue = "Ivanov"; Elemento di selezione = Gruppo di selezione.Elementi.Add(Type("Elemento di selezione della composizione dei dati")); Selezione Element.LeftValue = NewDataCompositionField("Nome"); Elemento di selezione.Tipo di confronto = Tipo di confronto composizione dati.Uguale; SelectionElement.RightValue = "Petrov";

Questa selezione selezionerà le righe in cui il valore “Nome completo” = “Ivanov” o “Petrov”.

La selezione in un elenco dinamico può essere effettuata anche modificando il testo della richiesta di elenco dinamico. Questa opzione funziona quando l'elenco dinamico viene realizzato tramite una "richiesta personalizzata".


Per fare ciò, aggiungi la condizione “WHERE IS THE TRUE” al testo della query...


Come puoi vedere, questo approccio è più compatto in termini di scrittura del codice. Come condizioni più difficili vogliamo stabilire la selezione nella parte tabellare, tanto più macchinosa risulterà l'opzione di utilizzare la selezione tramite l'Elemento di selezione della composizione dei dati. Tuttavia, l'esempio con la modifica del testo della richiesta ha i suoi svantaggi: questa implementazione non è resistente alle modifiche del codice. Ad esempio, hai effettuato un'implementazione del genere e te ne sei dimenticato, ma se in futuro desideri modificare il testo della richiesta aggiungendo qualche operatore dopo WHERE (ORDER, GRUPPO), devi ricordare che il codice del programma contiene:

List.QueryText = List.QueryText + " E DirectoryUsers.Nome completo V(""Ivanov"",""Petrov"")";

Se questo non viene preso in considerazione, si verificherà un errore, ma per evitarlo è possibile modificarlo con un'implementazione diversa. Aggiungiamo la seguente condizione al testo della richiesta:

DOVE (NON &SelectionInstalled O DirectoryUsers.Name IN (&PertchedName))

List.Parameters.SetParameterValue("SelectionSet", Nome completo.Quantity() > 0); List.Parameters.SetParameterValue("Nome completo consentito", Nome completo);

Qui il nome completo è un array.

Come puoi vedere, 2 righe di codice anziché 10. Il metodo da scegliere dipende dall'attività specifica dell'applicazione.

In modo da aprire il modulo di selezione con la selezione in 1s 8.2(forme regolari), dobbiamo eseguire alcune azioni. Lo prenderemo prima. Successivamente, imposteremo la selezione e la apriremo a livello di codice, ecco un esempio di codice:

Selezione sul modulo nel campo di input 1C 8.2 con più valori

Nell'esempio sopra abbiamo guardato come impostare la selezione nel modulo di selezione per valore specifico. Consideriamo ora una situazione in cui è necessario sostituire diversi valori, ad esempio un array o un risultato scaricato da una query. Questa è una selezione nel campo di input 1c con molteplici significati.

Innanzitutto, otteniamo il modulo di selezione, passiamo "Elemento" (proprietario) nei parametri, impostiamo il flag della modalità di selezione. Creiamo quindi una lista di valori ed un array, notiamo che come selezione quando si imposta il tipo di confronto nella lista può essere presente solo un oggetto con il tipo ElencoValori. Aggiungiamo elementi all'array, quindi carichiamo questo array nell'Elenco dei valori, che successivamente impostiamo nella selezione. Inoltre, non dimenticare di abilitare il flag per utilizzare questa selezione e impostare il tipo di confronto.

Impostazione della selezione nel campo di input del modulo in 1C 8.3, Evento Inizio Selezione

Ora consideriamo selezione nel campo di input su un modulo gestito in 1C 8.3. Troviamo nel form l'elemento che ci interessa, nel quale imposteremo la selezione, nel nostro caso si tratta del campo “Organizzazione”. Troviamo l'evento “Inizio Selezione”, clicchiamo sulla lente di ingrandimento e ci ritroviamo nella procedura. Vediamo il parametro Selection Data; questo parametro è del tipo ValueList. Per limitare la selezione agli elementi necessari è necessario compilare la Lista Valori. Possiamo selezionare elementi solo sul server, quindi creiamo una procedura con la direttiva di compilazione &OnServer. In questa procedura, compilare i dati di selezione.

Codice 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Accettato";
DirectoryList.Selection.Status.Set();

Per 1C 8.2:
Esistono diversi modi per aprire un modulo di elenco con alcune selezioni preimpostate. Vediamoli in ordine:

1. Il primo metodo prevede che all'apertura del modulo sia possibile impostare il parametro Modulo di selezione e aprire il modulo elenco con questo parametro. Il parametro Selezione rappresenta la struttura. I nomi degli elementi corrispondono ai nomi dei campi con cui viene effettuata la selezione e i valori contengono i valori di selezione. Questa è un'opzione di estensione del modulo gestito con elenco dinamico. Cioè, esiste per i moduli il cui attributo principale è un attributo di tipo Elenco dinamico, ad esempio moduli elenco e moduli di selezione.

All'apertura del modulo, la selezione verrà effettuata in base al campo specificato.
Codice 1C v 8.2 UP // Ad esempio, nell'esempio seguente viene aperta una lista di fatture con selezione tramite il campo Numero pari a 333.
Valore di selezione = Nuova struttura("Numero", "333");
ParametriSelezione = Nuova Struttura("Selezione", ValoreSelezione);

OpenForm("Documento. Ricevuta Fattura. Modulo Elenco", Opzioni di selezione);

// Ad esempio, il seguente esempio apre un elenco di fatture
// con campo selezione da parte del Contraente uguale a “OJSC Horns and Hooves”.
Valore di selezione = Nuova struttura ("Controparte", "Corna e zoccoli OJSC");
ParametriSelezione = Nuova Struttura("Selezione", ValoreSelezione);
OpenForm("Documento. Ricevuta Fattura. Modulo Elenco", Opzioni di selezione);

2. È possibile aprire un modulo elenco senza parametri:
Codice 1C v 8.2 UE OpenForm("Document. Receipt Invoice.List Form");

E poi, nel gestore eventi del modulo per l'elenco delle fatture When CreatedOnServer, scrivi il codice che crea una selezione nell'elenco dinamico, che è l'attributo principale del modulo:
Codice 1C v 8.2 UP &OnServer

Elemento di selezione = List.Selection.Elements.Add(Type("Elemento di selezione DataComposition"));
SelectionElement.LeftValue = NewDataCompositionField("Numero");


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Fine della procedura

&Sul server
Procedura al momento della creazione sul server (errore, elaborazione standard)
Elemento di selezione = List.Selection.Elements.Add(Type
("DataCompositionSelectionElement"));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
Fine della procedura

I vantaggi di questo metodo sono la visualizzazione comparativa per la selezione è possibile impostare non solo Uguale, come nel primo caso, ma anche Di più, Di meno, ecc.

Ma questo metodo presenta anche uno svantaggio molto significativo: con questa selezione il modulo sarà sempre aperto. Da qualunque parte sia stata chiamata. Pertanto, questo modulo non dovrebbe essere designato come quello principale. E se, tuttavia, è quello principale, prima di installare la selezione, è necessario fornire una sorta di analisi da dove si apre questo modulo. Ad esempio, analizzando i parametri del modulo.

3. Infine, la condizione di selezione può essere inserita in una query personalizzata che seleziona i dati per un elenco dinamico. Ad esempio dobbiamo aprire una lista di fatture che contengono la voce evidenziata nell'elenco voci.

Per fare ciò, sotto forma di un elenco di articoli, crea un comando e il pulsante corrispondente Ricevuta fatture.

Compiliamo il gestore di esecuzione per questo comando come segue:
Codice 1C v 8.2 UP &OnClient
Procedura RicevimentoFatture(comando)

ListForm = GetForm("Document.Invoice.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Fine della procedura

In questo gestore riceviamo il modulo per l'elenco delle fatture e passiamo il collegamento all'elemento corrente nell'elenco degli articoli al parametro del modulo FilterByProduct e apriamo il modulo con questo parametro.

Quindi creeremo un modulo per l'elenco dei documenti: Receipt Invoice e creeremo un attributo del modulo FilterBy Product, che utilizzeremo come parametro del modulo all'apertura. Ora apriamo la palette delle proprietà dell'attributo principale del modulo Elenco. Imposta il flag ArbitraryRequest e nella riga Impostazioni elenco fare clic su Aprire.

Nel campo Richiesta, inserisci il seguente testo della richiesta:
Codice 1C v 8.2 SU SELEZIONE
Numero fattura ricevuta documento,
Data fattura ricevuta documento
DA
Document.ReceiptInvoice AS DocumentReceiptInvoice
DOVE
Ricevuta documento Fattura.Prodotti.Prodotto = &Prodotto

Nella richiesta utilizziamo il parametro Articolo, che riceverà un collegamento alla riga corrente nell'elenco degli articoli, contenuta nel parametro del modulo Elenco fatture FilterBy Item. Per fare ciò, nel gestore eventi del modulo elenco OnOpen, scriveremo il codice per impostare il valore del parametro di richiesta Prodotto:
Codice 1C v 8.2 SU
&SuClient
Procedura di apertura (fallimento)

List.Parameters.SetParameterValue("Prodotto", FilterByProduct);

Fine della procedura

Qui Elenco.Opzioniè un elenco di parametri di richiesta di elenco dinamico per l'attributo List. Il valore del parametro Product è impostato uguale al valore del parametro del modulo FilterByProduct.

Di conseguenza, facendo clic sul pulsante Ricevi fatture nel modulo dell'elenco degli articoli, riceveremo un elenco delle sole fatture che contengono l'articolo attualmente selezionato nell'elenco degli articoli.

Come aprire un modulo di elenco con alcune selezioni?

Esistono diversi modi per aprire un modulo di elenco con alcune selezioni preimpostate. Vediamoli in ordine:

1. Il primo metodo prevede che all'apertura del modulo sia possibile impostare il parametro Modulo di selezione e aprire il modulo elenco con questo parametro. Il parametro Selezione rappresenta la struttura. I nomi degli elementi corrispondono ai nomi dei campi con cui viene effettuata la selezione e i valori contengono i valori di selezione. Questa è un'opzione di estensione del modulo gestito con elenco dinamico. Cioè esiste per i form il cui attributo principale è l'attributo type Elenco dinamico, quali moduli di elenco e moduli di selezione.

All'apertura del modulo, la selezione verrà effettuata in base al campo specificato. Ad esempio, nell'esempio seguente, viene aperto un elenco di fatture con la selezione del campo Numero, pari a 333.

Valore di selezione = Nuova struttura("Numero", "333");

ParametriSelezione = Nuova Struttura("Selezione", ValoreSelezione);

OpenForm("Documento. Ricevuta Fattura. Modulo Elenco", Opzioni di selezione);

2. È possibile aprire un modulo elenco senza parametri:

OpenForm("Document.Invoice.ListForm");

E poi, nel gestore eventi del modulo elenco fatture Quando creato sul server scrivi il codice che crea una selezione in un elenco dinamico, che è l'attributo principale del modulo:

&Sul server

Procedura al momento della creazione sul server (errore, elaborazione standard)

Elemento di selezione = List.Selection.Elements.Add(Type("Elemento di selezione DataComposition"));

SelectionElement.LeftValue = NewDataCompositionField("Numero");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;

SelectionElement.RightValue = "000000001";

Fine della procedura

Il vantaggio di questo metodo è che il Tipo di confronto per la selezione può essere impostato non solo Uguale, come nel primo caso, ma anche Di più, Di meno, ecc.

Ma questo metodo presenta anche uno svantaggio molto significativo: con questa selezione il modulo sarà sempre aperto. Da qualunque parte sia stata chiamata. Pertanto, questo modulo non dovrebbe essere designato come quello principale. E se, tuttavia, è quello principale, prima di installare la selezione, è necessario fornire una sorta di analisi da dove si apre questo modulo. Ad esempio, analizzando i parametri del modulo.

3. Infine, la condizione di selezione può essere inserita in una query personalizzata che seleziona i dati per un elenco dinamico. Ad esempio dobbiamo aprire una lista di fatture che contengono la voce evidenziata nell'elenco voci.

Per fare ciò, sotto forma di un elenco di elementi, crea un comando e un pulsante corrispondente Ricevute fatture.

Compiliamo il gestore di esecuzione per questo comando come segue:

&SuClient

Procedura Ricevute Fatture (comando)

ListForm = GetForm("Document.Invoice.ListForm");

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Fine della procedura

In questo gestore riceviamo il modulo per l'elenco delle fatture e passiamo il collegamento all'elemento corrente nell'elenco degli articoli al parametro del modulo FilterByProduct e apriamo il modulo con questo parametro.

Quindi creeremo un modulo di elenco dei documenti Fattura d'acquisto e creare l'attributo del modulo FilterByProduct, che utilizzeremo come parametro del modulo all'apertura. Ora apriamo la palette delle proprietà dell'attributo principale del modulo Elenco. Mettiamo la bandiera Richiesta personalizzata e nella linea Configurazione dell'elenco fare clic su Apri.

Nel campo Richiesta, inserisci il seguente testo della richiesta:

SCEGLIERE

Numero fattura ricevuta documento,

Data fattura ricevuta documento

DA

Document.ReceiptInvoice AS DocumentReceiptInvoice

DOVE

Ricevuta documento Fattura.Prodotti.Prodotto = &Prodotto

Nella richiesta utilizziamo il parametro Articolo, che riceverà un collegamento alla riga corrente nell'elenco degli articoli, contenuta nel parametro del modulo Elenco fatture FilterBy Item. Per fare ciò, nel gestore eventi del modulo elenco OnOpen, scriveremo il codice per impostare il valore del parametro di richiesta Prodotto:

&SuClient

Procedura di apertura (fallimento)

List.Parameters.SetParameterValue("Prodotto", FilterByProduct);

Fine della procedura

Qui Elenco.Opzioniè un elenco di parametri di richiesta di elenco dinamico per l'attributo List. Il valore del parametro Product è impostato uguale al valore del parametro del modulo FilterByProduct.

Di conseguenza, con un clic di un pulsante Ricevute fatture sotto forma di elenco di articoli riceveremo un elenco delle sole fatture che contengono l'articolo attualmente selezionato nell'elenco di articoli.

Un esempio demo per la terza opzione si trova nella directory 1CITS/EXE/FAQ/OpenFormWithSelection.dt. L'esempio è stato eseguito sulla versione della piattaforma 8.2.9.356.




Superiore