Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Windows 8
  • Cum se deschide un formular de listă cu o anumită selecție? Cum să setați selecția în formularul de listă de directoare? Deschideți formularul de selecție în formularul obișnuit.

Cum se deschide un formular de listă cu o anumită selecție? Cum să setați selecția în formularul de listă de directoare? Deschideți formularul de selecție în formularul obișnuit.

Există mai multe moduri de a deschide un formular de listă cu o selecție prestabilită. Să ne uităm la ele:

  1. Prima cale este că atunci când deschideți un formular puteți seta un parametru de formular Selecţieși deschideți formularul de listă cu acest parametru. Parametru Selecţie reprezintă o structură. Numele elementelor corespund denumirilor câmpurilor prin care se face selecția, iar valorile conțin valorile
    selecţie. Aceasta este o opțiune de extensie a formularelor gestionate de listă dinamică. Adică există pentru formularele al căror atribut principal este atributul tip DynamicList, cum ar fi formularele de listă și formularele de selecție.

La deschiderea formularului, selecția se va face pe baza câmpului specificat. De exemplu, în exemplul următor, o listă de facturi este deschisă cu selecția de către câmpul contraparte egal cu „OJSC Horns and Hooves”.

Valoarea selecției = Structură nouă („Contraparte” , „JSC coarne și copite”);
Opțiuni de selecție= Structură nouă ("Selectie", SelectionValue);
OpenForm („Document. Factură de primire. Formular de listă”, Opțiuni de selecție);

2. Puteți deschide un formular de listă fără parametri:

OpenForm („Document. Factură de primire. Formular de listă”);

Și apoi, în gestionarea de evenimente a formularului de listă de facturi Când CreatedOnServer scrie codul care creează o selecție într-o listă dinamică, care este atributul principal al formularului:

&Pe server
Procedură Când CreatedOnServer(Refuz , Procesare standard)
Element de selecție = Listă . Selecţie. Elemente. Adăugați (Type
(„DataCompositionSelectionElement”);
Element de selecție .LeftValue = Nou Câmp pentru aspectul datelor("DocumentAmount");
Element de selecție. Vizualizare comparativă = Comparație ViewData Layout. Mai mult ;
Element de selecție. utilizare = adevărat;
Element de selecție. RightValue = 150000;
Sfârșitul procedurii

Avantajele acestei metode sunt că ViewComparison selecția poate fi setată nu numai Egal, ca în primul caz, și Mai mult, Mai puținși așa mai departe.

Dar această metodă are și un dezavantaj foarte semnificativ: cu această selecție, formularul se va deschide întotdeauna. Oriunde a fost chemată. Prin urmare, acest formular nu ar trebui să fie desemnat ca principal. Și dacă, totuși, este principalul, atunci înainte de a instala selecția, este necesar să se furnizeze un fel de analiză a de unde se deschide acest formular. De exemplu, analiza parametrilor formularului.

3. Și în sfârșit, condiția de selecție poate fi plasată într-o cerere personalizată, care selectează datele pentru o listă dinamică. De exemplu, trebuie să deschidem o listă de facturi care conțin articolul evidențiat în lista de articole.

Pentru a face acest lucru, sub forma unei liste de articole, creați o comandă și un buton corespunzător ConsumabileFacturi

Să completăm handlerul de execuție pentru această comandă după cum urmează:

&OnClient
Procedură ConsumabileFacturi(Echipa)
ListForm = GetForm ("Document.Factură.ListForm");
ListForm. FilterByProduct = Articole . Lista . CurrentRow ;
ListForm. Deschis();
Sfârșitul procedurii

În acest handler primim forma listei de facturi și o trecem la parametrul formular Filtrați după produs link la articolul curent din lista de articole și deschideți formularul cu acest parametru.
Apoi vom crea un formular de listă de documente Factură de vânzareși creați atributele formularului Filtrați după produs, pe care îl vom folosi ca parametru de formular când îl deschidem. Acum să deschidem paleta de proprietăți a atributelor principale ale formularului Listă. Să punem steagul CustomRequest si in
linia Configurarea listei hai sa apasam Deschis.

În câmp Cerere Să introducem următorul text de solicitare:

ALEGE

Document Chitanță Factură. Număr,
Document Primire Factură.Data
DIN
Document.ReceiptInvoice AS DocumentReceiptInvoice
UNDE
Chitanța documentului Invoice.Products.Product = &Produs

În cerere folosim parametrul Produs, la care se va trimite link-ul către linia curentă din lista articolelor cuprinse în atributul formularului de listă de facturi Filtrați după produs. Pentru a face acest lucru, în gestionarea de evenimente din formularul de listă La Deschidere Să scriem codul pentru a seta valoarea parametrului Solicitare produs:

&OnClient
Procedura de deschidere (Eșec)
Lista . Opțiuni . SetParameterValue("Produs", FilterByProduct);
Sfârșitul procedurii

Aici Listă.Opțiuni— aceasta este o listă de parametri dinamici de solicitare a listei pentru atributul Listă. Valoarea parametrului Produs este setat egal cu valoarea parametrului formular Filtrați după produs. Ca rezultat, la un clic pe un buton Facturi sub forma unei liste de articole, vom primi o listă doar a acelor facturi care conțin articolul selectat în prezent în lista de articole.

— aceasta este o listă de parametri dinamici de solicitare a listei pentru atributul Listă.

Cum se deschide un formular de listă cu o anumită selecție?

Există mai multe moduri de a deschide un formular de listă cu o selecție prestabilită. Să le privim în ordine:

1. Prima metodă este că la deschiderea formularului, puteți seta parametrul Formular de selecție și deschideți formularul de listă cu acest parametru. Parametrul de selecție reprezintă structura. Numele elementelor corespund denumirilor câmpurilor prin care se face selecția, iar valorile conțin valorile selecției. Aceasta este o opțiune de extensie a formularelor gestionate de listă dinamică. Adică există pentru formularele al căror atribut principal este atributul tip Lista dinamică, cum ar fi formularele de listă și formularele de selecție.

La deschiderea formularului, selecția se va face pe baza câmpului specificat. De exemplu, în exemplul următor, o listă de facturi este deschisă cu selecție după câmpul Număr, egal cu 333.

Valoare de selecție = Structură nouă ("Număr", "333");

SelectionParameters = New Structure("Selectie", SelectionValue);

OpenForm("Document. Factură de chitanță. Formular de listă", Opțiuni de selecție);

2. Puteți deschide un formular de listă fără parametri:

OpenForm(„Document.Factură.ListForm”);

Și apoi, în gestionarea de evenimente a formularului de listă de facturi Când CreatedOnServer scrie codul care creează o selecție într-o listă dinamică, care este atributul principal al formularului:

&Pe server

Procedură când este creat pe server (Eșec, Procesare standard)

Element de selecție = List.Selection.Elements.Add(Type("DataComposition Selection Element");

SelectionElement.LeftValue = NewDataCompositionField(„Număr”);

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = Adevărat;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;

SelectionElement.RightValue = "000000001";

Sfârșitul procedurii

Avantajele acestei metode sunt că Tipul de comparație pentru selecție poate fi setat nu numai Egal, ca în primul caz, ci și Mai mult, Mai puțin etc.

Dar această metodă are și un dezavantaj foarte semnificativ: cu această selecție, formularul se va deschide întotdeauna. Oriunde a fost chemată. Prin urmare, acest formular nu ar trebui să fie desemnat ca principal. Și dacă, totuși, este principalul, atunci înainte de a instala selecția, este necesar să se furnizeze un fel de analiză a de unde se deschide acest formular. De exemplu, analiza parametrilor formularului.

3. În cele din urmă, condiția de selecție poate fi plasată într-o interogare personalizată care selectează date pentru o listă dinamică. De exemplu, trebuie să deschidem o listă de facturi care conțin articolul evidențiat în lista de articole.

Pentru a face acest lucru, sub forma unei liste de articole, creați o comandă și un buton corespunzător Facturi de chitanță.

Să completăm handlerul de execuție pentru această comandă după cum urmează:

&OnClient

Procedura ChitanțeFacturi (comandă)

ListForm = GetForm ("Document.Factură.ListForm");

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Sfârșitul procedurii

În acest handler, primim formularul pentru lista de facturi și trecem linkul către articolul curent din lista de articole la parametrul de formular FilterByProduct și deschidem formularul cu acest parametru.

Apoi vom crea un formular de listă de documente Chitantași creați atributul de formular FilterByProduct, pe care îl vom folosi ca parametru de formular când îl deschidem. Acum să deschidem paleta de proprietăți a atributului principal al formularului Listă. Să punem steagul CustomRequest iar în linie Configurarea listei faceți clic pe Deschidere.

În câmpul Solicitare, introduceți următorul text de solicitare:

ALEGE

Document Chitanță Factură. Număr,

Document Primire Factură.Data

DIN

Document.ReceiptInvoice AS DocumentReceiptInvoice

UNDE

Chitanța documentului Invoice.Products.Product = &Produs

În cerere, folosim parametrul Item, care va primi un link către linia curentă din lista de articole, conținută în parametrul de formular FilterBy Item invoice list. Pentru a face acest lucru, în gestionarea de evenimente a formularului de listă OnOpen, vom scrie cod pentru a seta valoarea parametrului de solicitare a produsului:

&OnClient

Procedura de deschidere (Eșec)

List.Parameters.SetParameterValue(„Produs”, FilterByProduct);

Sfârșitul procedurii

Aici Listă.Opțiuni este o listă de parametri dinamici de solicitare a listei pentru atributul Listă. Valoarea parametrului Product este setată egală cu valoarea parametrului formular FilterByProduct.

Ca rezultat, la un clic pe un buton Facturi de chitanță sub forma unei liste de articole, vom primi o listă doar a acelor facturi care conțin articolul selectat în prezent în lista de articole.

Un exemplu demonstrativ pentru a treia opțiune se află în directorul 1CITS/EXE/FAQ/OpenFormWithSelection.dt. Exemplul a fost realizat pe platforma versiunea 8.2.9.356.

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

Pentru 1C 8.2:
Există mai multe moduri de a deschide un formular de listă cu o selecție prestabilită. Să le privim în ordine:

1. Prima metodă este că la deschiderea formularului, puteți seta parametrul Formular de selecție și puteți deschide formularul de listă cu acest parametru. Parametrul de selecție reprezintă structura. Numele elementelor corespund denumirilor câmpurilor prin care se face selecția, iar valorile conțin valorile selecției. Aceasta este o opțiune de extensie a formularelor gestionate de listă dinamică. Adică, există pentru formularele al căror atribut principal este un atribut de tip Listă dinamică, de exemplu, formulare de listă și formulare de selecție.

La deschiderea formularului, selecția se va face pe baza câmpului specificat.
Cod 1C v 8.2 UP // De exemplu, în exemplul următor, o listă de facturi este deschisă cu selectare prin câmpul Număr egal cu 333.
Valoare de selecție = Structură nouă ("Număr", "333");
SelectionParameters = New Structure("Selectie", SelectionValue);

OpenForm("Document. Factură de chitanță. Formular de listă", Opțiuni de selecție);

// De exemplu, următorul exemplu deschide o listă de facturi
// cu selecție de către câmpul Antreprenor egal cu „OJSC Horns and Hooves”.
Valoare de selecție = Structură nouă(„Contraparte”, „OJSC Coarne și Copite”);
SelectionParameters = New Structure("Selectie", SelectionValue);
OpenForm("Document. Factură de chitanță. Formular de listă", Opțiuni de selecție);

2. Puteți deschide un formular de listă fără parametri:
Cod 1C v 8.2 UE OpenForm(„Document. Factură de primire. Formular de listă”);

Și apoi, în handlerul de evenimente al formularului pentru lista de facturi When CreatedOnServer, scrieți codul care creează o selecție în lista dinamică, care este atributul principal al formularului:
Cod 1C v 8.2 UP &OnServer

Element de selecție = List.Selection.Elements.Add(Type("DataComposition Selection Element");
SelectionElement.LeftValue = NewDataCompositionField(„Număr”);

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Sfârșitul procedurii

&Pe server
Procedură când este creat pe server (Eșec, Procesare standard)
Element de selecție = List.Selection.Elements.Add(Type
(„DataCompositionSelectionElement”);
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = Adevărat;
SelectionElement.RightValue = 150000;
Sfârșitul procedurii

Avantajele acestei metode sunt vizualizarea comparativă pentru selecție, puteți seta nu numai Egal, ca în primul caz, ci și Mai mult, Mai puțin etc.

Dar această metodă are și un dezavantaj foarte semnificativ: cu această selecție, formularul se va deschide întotdeauna. Oriunde a fost chemată. Prin urmare, acest formular nu ar trebui să fie desemnat ca principal. Și dacă, totuși, este principalul, atunci înainte de a instala selecția, este necesar să se furnizeze un fel de analiză a de unde se deschide acest formular. De exemplu, analiza parametrilor formularului.

3. În cele din urmă, condiția de selecție poate fi plasată într-o interogare personalizată care selectează date pentru o listă dinamică. De exemplu, trebuie să deschidem o listă de facturi care conțin articolul evidențiat în lista de articole.

Pentru a face acest lucru, sub forma unei liste de articole, creați o comandă și butonul corespunzător Chitanță facturi.

Să completăm handlerul de execuție pentru această comandă după cum urmează:
Cod 1C v 8.2 UP &OnClient
Procedura ChitanțeFacturi (comandă)

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

Sfârșitul procedurii

În acest handler, primim formularul pentru lista de facturi și trecem linkul către articolul curent din lista de articole la parametrul de formular FilterByProduct și deschidem formularul cu acest parametru.

Apoi vom crea un formular pentru lista de documente: Chitanță Factură și vom crea un atribut de formular FilterBy Product, pe care îl vom folosi ca parametru al formularului la deschiderea acestuia. Acum să deschidem paleta de proprietăți a atributului principal al formularului Listă. Setați indicatorul ArbitraryRequest iar în linia Setări Listă faceți clic Deschis.

În câmpul Solicitare, introduceți următorul text de solicitare:
Cod 1C v 8.2 UP SELECT
Document Chitanță Factură. Număr,
Document Primire Factură.Data
DIN
Document.ReceiptInvoice AS DocumentReceiptInvoice
UNDE
Chitanța documentului Invoice.Products.Product = &Produs

În cerere, folosim parametrul Item, care va primi un link către linia curentă din lista de articole, conținută în parametrul de formular FilterBy Item invoice list. Pentru a face acest lucru, în gestionarea de evenimente a formularului de listă OnOpen, vom scrie cod pentru a seta valoarea parametrului de solicitare a produsului:
Cod 1C v 8.2 UP
&OnClient
Procedura de deschidere (Eșec)

List.Parameters.SetParameterValue(„Produs”, FilterByProduct);

Sfârșitul procedurii

Aici Listă.Opțiuni este o listă de parametri dinamici de solicitare a listei pentru atributul Listă. Valoarea parametrului Product este setată egală cu valoarea parametrului formular FilterByProduct.

Ca urmare, făcând clic pe butonul Chitanță facturi din formularul de listă de articole, vom primi o listă numai a acelor facturi care conțin articolul selectat în prezent în lista de articole.

Informatii preluate de pe site

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

Pentru 1C 8.2:
Există mai multe moduri de a deschide un formular de listă cu o selecție prestabilită. Să le privim în ordine:

1. Prima metodă este că la deschiderea formularului, puteți seta parametrul Formular de selecție și puteți deschide formularul de listă cu acest parametru. Parametrul de selecție reprezintă structura. Numele elementelor corespund denumirilor câmpurilor prin care se face selecția, iar valorile conțin valorile selecției. Aceasta este o opțiune de extensie a formularelor gestionate de listă dinamică. Adică, există pentru formularele al căror atribut principal este un atribut de tip Listă dinamică, de exemplu, formulare de listă și formulare de selecție.

La deschiderea formularului, selecția se va face pe baza câmpului specificat.
Cod 1C v 8.2 UP // De exemplu, în exemplul următor, o listă de facturi este deschisă cu selectare prin câmpul Număr egal cu 333.
Valoare de selecție = Structură nouă ("Număr", "333");
SelectionParameters = New Structure("Selectie", SelectionValue);

OpenForm("Document. Factură de chitanță. Formular de listă", Opțiuni de selecție);

// De exemplu, următorul exemplu deschide o listă de facturi
// cu selecție de către câmpul Antreprenor egal cu „OJSC Horns and Hooves”.
Valoare de selecție = Structură nouă(„Contraparte”, „OJSC Coarne și Copite”);
SelectionParameters = New Structure("Selectie", SelectionValue);
OpenForm("Document. Factură de chitanță. Formular de listă", Opțiuni de selecție);

2. Puteți deschide un formular de listă fără parametri:
Cod 1C v 8.2 UE OpenForm(„Document. Factură de primire. Formular de listă”);

Și apoi, în handlerul de evenimente al formularului pentru lista de facturi When CreatedOnServer, scrieți codul care creează o selecție în lista dinamică, care este atributul principal al formularului:
Cod 1C v 8.2 UP &OnServer

Element de selecție = List.Selection.Elements.Add(Type("DataComposition Selection Element");
SelectionElement.LeftValue = NewDataCompositionField(„Număr”);


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Sfârșitul procedurii

&Pe server
Procedură când este creat pe server (Eșec, Procesare standard)
Element de selecție = List.Selection.Elements.Add(Type
(„DataCompositionSelectionElement”);
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = Adevărat;
SelectionElement.RightValue = 150000;
Sfârșitul procedurii

Avantajele acestei metode sunt vizualizarea comparativă pentru selecție, puteți seta nu numai Egal, ca în primul caz, ci și Mai mult, Mai puțin etc.

Dar această metodă are și un dezavantaj foarte semnificativ: cu această selecție, formularul se va deschide întotdeauna. Oriunde a fost chemată. Prin urmare, acest formular nu ar trebui să fie desemnat ca principal. Și dacă, totuși, este principalul, atunci înainte de a instala selecția, este necesar să se furnizeze un fel de analiză a de unde se deschide acest formular. De exemplu, analiza parametrilor formularului.

3. În cele din urmă, condiția de selecție poate fi plasată într-o interogare personalizată care selectează date pentru o listă dinamică. De exemplu, trebuie să deschidem o listă de facturi care conțin articolul evidențiat în lista de articole.

Pentru a face acest lucru, sub forma unei liste de articole, creați o comandă și butonul corespunzător Chitanță facturi.

Să completăm handlerul de execuție pentru această comandă după cum urmează:
Cod 1C v 8.2 UP &OnClient
Procedura ChitanțeFacturi (comandă)

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

Sfârșitul procedurii

În acest handler, primim formularul pentru lista de facturi și trecem linkul către articolul curent din lista de articole la parametrul de formular FilterByProduct și deschidem formularul cu acest parametru.

Apoi vom crea un formular pentru lista de documente: Chitanță Factură și vom crea un atribut de formular FilterBy Product, pe care îl vom folosi ca parametru al formularului la deschiderea acestuia. Acum să deschidem paleta de proprietăți a atributului principal al formularului Listă. Setați indicatorul ArbitraryRequest iar în linia Setări Listă faceți clic Deschis.

În câmpul Solicitare, introduceți următorul text de solicitare:
Cod 1C v 8.2 UP SELECT
Document Chitanță Factură. Număr,
Document Primire Factură.Data
DIN
Document.ReceiptInvoice AS DocumentReceiptInvoice
UNDE
Chitanța documentului Invoice.Products.Product = &Produs

În cerere, folosim parametrul Item, care va primi un link către linia curentă din lista de articole, conținută în parametrul de formular FilterBy Item invoice list. Pentru a face acest lucru, în gestionarea de evenimente a formularului de listă OnOpen, vom scrie cod pentru a seta valoarea parametrului de solicitare a produsului:
Cod 1C v 8.2 UP
&OnClient
Procedura de deschidere (Eșec)

List.Parameters.SetParameterValue(„Produs”, FilterByProduct);

Sfârșitul procedurii

Aici Listă.Opțiuni este o listă de parametri dinamici de solicitare a listei pentru atributul Listă. Valoarea parametrului Product este setată egală cu valoarea parametrului formular FilterByProduct.

Ca urmare, făcând clic pe butonul Chitanță facturi din formularul de listă de articole, vom primi o listă numai a acelor facturi care conțin articolul selectat în prezent în lista de articole.

Acest cod vă permite să deschideți o listă de documente cu o selecție specificată; puteți deschide și o listă de elemente de director cu selecția dorită

Cod 1C v 8.2 UP Form = OpenForm(„Document. Invoice.Form.ListForm”); //Deschideți formularul
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Adăugați selecția
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Cum ne vom compara
SelectOwner.Use = True; // Setați caseta de selectare pentru utilizarea NewDataCompositionField ("Nomenclatură")
SelectionOwner.LeftValue = NewDataCompositionField(„Cont”); //Ce detalii vom folosi pentru a face selecția?
SelectionOwner.RightValue = Object.Account; // Și însuși sensul selecției

Pentru a deschideți un formular de listă cu o selecție predefinită utilizați următoarele metode:

Prima cale este că atunci când deschideți un formular, puteți seta parametrul Formular de selecție și puteți deschide formularul de listă cu acest parametru.

Parametrul de selecție reprezintă structura. Numele elementelor corespund denumirilor câmpurilor prin care se face selecția, iar valorile conțin valorile selecției. Aceasta este o opțiune de extensie a formularelor gestionate de listă dinamică. Adică, există pentru formularele al căror atribut principal este un atribut de tip DynamicList, de exemplu, formulare de listă și formulare de selecție.

De exemplu, în exemplul următor, o listă de facturi este deschisă cu selecție după câmpul Număr, egal cu 333.

Cod 1C v 8.2 Valoare de selecție UE = Structură nouă ("Număr", "333");
SelectionParameters = New Structure("Selectie", SelectionValue);
OpenForm("Document. Factură de chitanță. Formular de listă", Opțiuni de selecție);

A doua cale

Puteți deschide un formular de listă fără parametri:

Cod 1C v 8.2 UE OpenForm(„Document. Factură de primire. Formular de listă”);

Și apoi, în handlerul de evenimente al formularului pentru lista de facturi When CreatedOnServer, scrieți codul care creează o selecție în lista dinamică, care este atributul principal al formularului:

Cod 1C v 8.2 UP &OnServer
Procedură când este creat pe server (Eșec, Procesare standard)
Element de selecție = List.Selection.Elements.Add(Type("DataComposition Selection Element");
SelectionElement.LeftValue = NewDataCompositionField(„Număr”);
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = Adevărat;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Sfârșitul procedurii

Avantajele acestei metode sunt că Tipul de comparație pentru selecție poate fi setat nu numai la Egal, ca în primul caz, ci și la Mai mult, Mai puțin etc.

Dar această metodă are și un dezavantaj foarte semnificativ: cu această selecție, formularul se va deschide întotdeauna. Oriunde a fost chemată. Prin urmare, acest formular nu ar trebui să fie desemnat ca principal. Și dacă, totuși, este principalul, atunci înainte de a instala selecția este necesar să oferiți un fel de analiză a de unde se deschide acest formular. De exemplu, analiza parametrilor formularului.

A treia cale

În cele din urmă, condiția de selecție poate fi plasată într-o interogare personalizată care selectează date pentru o listă dinamică.

De exemplu, trebuie să deschidem o listă de facturi care conțin articolul evidențiat în lista de articole.

Pentru a face acest lucru, sub forma unei liste de articole, creați o comandă și butonul corespunzător Chitanță facturi.

Să completăm handlerul de execuție pentru această comandă după cum urmează:

Cod 1C v 8.2 UP &OnClient
Procedura ChitanțeFacturi (comandă)
SelectionParameters = New Structure("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Document. Factură de chitanță. Formular de listă", Opțiuni de selecție);
Sfârșitul procedurii

În acest handler, deschidem formularul pentru lista de facturi, pasând un link către articolul curent din lista de articole la parametrul de formular FilterByProduct.

Apoi vom crea un formular pentru lista de documente: Chitanță Factură și vom crea un parametru de formular FilterBy Product, pe care îl vom folosi pentru a deschide un formular cu selecția necesară.

Acum să deschidem paleta de proprietăți a atributului principal al formularului Listă. Setați indicatorul de interogare personalizată și, în linia Setări listă, faceți clic pe Deschidere.

În câmpul Solicitare, introduceți următorul text de solicitare:

Cod 1C v 8.2 UP SELECT
Document Chitanță Factură. Număr,
Document Primire Factură.Data
DIN
Document.ReceiptInvoice AS DocumentReceiptInvoice
UNDE
Chitanța documentului Invoice.Products.Product = &Produs

În cerere, folosim parametrul Item, care va primi un link către linia curentă din lista de articole, conținută în parametrul de formular FilterBy Item invoice list.

Pentru a face acest lucru, în gestionarea de evenimente din formularul de listă, când CreatedOnServer, vom scrie cod pentru a seta valoarea parametrului de solicitare a produsului:

Cod 1C v 8.2 UP &OnClient
Procedura de deschidere (Eșec)
List.Parameters.SetParameterValue("Produs", Parameters.FilterByProduct);
Sfârșitul procedurii

Aici List.Parameters este o listă de parametri dinamici de solicitare a listei pentru atributul List. Valoarea parametrului Product este setată egală cu valoarea parametrului formular FilterByProduct.

Ca urmare, făcând clic pe butonul Chitanță facturi din formularul de listă de articole, vom primi o listă numai a acelor facturi care conțin articolul selectat în prezent în lista de articole.

Cele mai bune articole pe această temă