Come configurare smartphone e PC. Portale informativo
  • casa
  • Windows 8
  • Come aprire un modulo di elenco con alcune selezioni? Come impostare la selezione nel modulo dell'elenco delle directory? Apri il modulo di selezione nel modulo normale.

Come aprire un modulo di elenco con alcune selezioni? Come impostare la selezione nel modulo dell'elenco delle directory? Apri il modulo di selezione nel modulo normale.

Esistono diversi modi per aprire un modulo di elenco con alcune selezioni preimpostate. Diamo un'occhiata a loro:

  1. Primo modoè che quando si apre un modulo è possibile impostare un parametro del modulo Selezione e aprire il modulo di elenco con questo parametro. Parametro Selezione rappresenta una struttura. I nomi degli elementi corrispondono ai nomi dei campi con cui viene effettuata la selezione e i valori contengono i valori
    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 Controparte uguale a "OJSC Horns and Hooves".

Valore di selezione = Nuova struttura (“Controparte” , "Corna e zoccoli JSC");
Opzioni di selezione= Nuova struttura("Selezione", ValoreSelezione);
OpenForm (“Documento. Ricevuta Fattura. Modulo Elenco”, Opzioni di selezione);

2. È possibile aprire un modulo elenco senza parametri:

OpenForm (“Documento. Ricevuta Fattura. Modulo Elenco”);

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 Quando creato sul server(Rifiuto , Elaborazione standard)
Elemento di selezione = Elenco. Selezione. Elementi. Aggiungi (Digita
("DataCompositionSelectionElement"));
Elemento di selezione .LeftValue = Nuovo Campo layout dati("Importo Documento");
Elemento di selezione. Vista comparativa = Layout dati vista confronto. Di più ;
Elemento di selezione. utilizzo = vero;
Elemento di selezione. ValoreDestra = 150000;
Fine della procedura

I vantaggi di questo metodo sono questi VisualizzaConfronto la selezione può essere impostata non solo Equivale, come nel primo caso, e Di più, Meno e così via.

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 richiesta 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 ConsumabiliFatture

Compiliamo il gestore di esecuzione per questo comando come segue:

&SuClient
Procedura ConsumabiliFatture(Squadra )
ListForm = GetForm("Document.Invoice.ListForm");
ListForm. FilterByProduct = Articoli . Elenco . RigaCorrente;
ListForm. Aprire();
Fine della procedura

In questo gestore riceviamo il form dell'elenco delle fatture e lo passiamo al parametro form Filtra per prodotto collegarsi all'elemento corrente nell'elenco degli elementi e aprire il modulo con questo parametro.
Quindi creeremo un modulo di elenco dei documenti Fattura di vendita e creare gli attributi del modulo Filtra per prodotto, che utilizzeremo come parametro del modulo all'apertura. Ora apriamo la palette delle proprietà degli attributi principali del modulo Elenco. Mettiamo la bandiera Richiesta personalizzata e dentro
linea Configurazione dell'elenco premiamo Aprire.

Nel campo Richiesta Inseriamo il seguente testo di 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 Prodotto, al quale verrà inviato il collegamento alla riga corrente dell'elenco delle voci contenute nell'attributo del modulo elenco fatture Filtra per prodotto. Per fare ciò, nel gestore eventi del modulo elenco All'apertura Scriviamo il codice per impostare il valore del parametro Richiesta prodotto:

&SuClient
Procedura di apertura (fallimento)
Elenco . Opzioni . Imposta valore parametro("Prodotto", Filtra perProdotto);
Fine della procedura

Qui Elenco.Opzioni— questo è un elenco di parametri di richiesta di elenco dinamico per l'attributo Elenco. Valore del parametro Prodottoè impostato uguale al valore del parametro del modulo Filtra per prodotto. Di conseguenza, con un clic di un pulsante Fatture sotto forma di elenco di articoli riceveremo un elenco delle sole fatture che contengono l'articolo attualmente selezionato nell'elenco di articoli.

— questo è un elenco di parametri di richiesta di elenco dinamico per l'attributo Elenco.

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.

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 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, 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.

Informazioni prese dal sito

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 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, 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.

Questo codice ti consente di aprire un elenco di documenti con una selezione specifica; puoi anche aprire un elenco di elementi di directory con la selezione desiderata

Codice 1C v 8.2 UP Form = OpenForm("Document. Invoice.Form.ListForm"); //Apri il modulo
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Aggiungi la selezione
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Come confronteremo
SelectOwner.Use = True; // Imposta la casella di controllo per l'utilizzo di NewDataCompositionField("Nomenclature")
SelectionOwner.LeftValue = NewDataCompositionField("Account"); //Quali dettagli utilizzeremo per effettuare la selezione?
SelectionOwner.RightValue = Object.Account; // E il significato stesso della selezione

In modo da aprire un modulo di elenco con una selezione predefinita utilizzare i seguenti metodi:

Primo modoè che quando si apre un modulo, è 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. Esiste cioè per i moduli il cui attributo principale è un attributo del tipo DynamicList, ad esempio i moduli elenco e i moduli di selezione.

Ad esempio, nell'esempio seguente, viene aperto un elenco di fatture con la selezione del campo Numero, pari a 333.

Valore selezione codice 1C v 8.2 UE = Nuova struttura ("Numero", "333");
ParametriSelezione = Nuova Struttura("Selezione", ValoreSelezione);
OpenForm("Documento. Ricevuta Fattura. Modulo Elenco", Opzioni di selezione);

Secondo modo

È 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
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 su Uguale, come nel primo caso, ma anche su Più, 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.

Terza via

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)
SelectionParameters = Nuova struttura ("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Documento. Ricevuta Fattura. Modulo Elenco", Opzioni di selezione);
Fine della procedura

In questo gestore apriamo il modulo per l'elenco delle fatture, passando un collegamento all'elemento corrente nell'elenco degli articoli al parametro del modulo FilterByProduct.

Quindi creeremo un modulo per l'elenco dei documenti: Receipt Invoice e creeremo un parametro del modulo FilterBy Product, che utilizzeremo per aprire un modulo con la selezione richiesta.

Ora apriamo la palette delle proprietà dell'attributo principale del modulo Elenco. Imposta il flag Query personalizzata e nella riga Impostazioni elenco fai clic su Apri.

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 When CreatedOnServer, scriveremo il codice per impostare il valore del parametro di richiesta del prodotto:

Codice 1C v 8.2 UP &OnClient
Procedura di apertura (fallimento)
List.Parameters.SetParameterValue("Prodotto", Parametri.FilterByProduct);
Fine della procedura

Qui List.Parameters è 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.

I migliori articoli sull'argomento