1c selecție controlată a formularului. Cum se deschide un formular de listă cu o anumită selecție? Selectarea setărilor în configurator

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

Avantaje aceasta metoda este acea vizualizare de comparație 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țăFacturi(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 Primire facturi sub forma unei liste de articole, vom primi o listă doar a acelor facturi care conțin articolele evidențiate în acest momentîn lista de nomenclatură.

Informatii preluate de pe site

Selecția pe formulare gestionate în 1C 8.3

Articolul va discuta opțiunile de instalare a selecției în formularele gestionate 1C 8.3. Selecția pentru o listă dinamică poate fi setată static sau dinamic, în interfața cu utilizatorul sau configurator. Vom lua în considerare toate opțiunile de selecție de mai jos.

  • Selectarea setărilor în configurator

Setarea selecției în modul utilizator

O listă dinamică, spre deosebire de un tabel sau arbore de valori, este o soluție mai potrivită pentru implementarea formularelor care conțin orice liste, deoarece Lista dinamică oferă cea mai largă gamă de instrumente pentru lucrul cu selecția, gruparea câmpurilor și sortarea. Această selecție poate fi setată atunci când lucrați în modul utilizator sau configurator, principiul este același.

Pentru a configura selecția în modul întreprindere, trebuie să apelați comanda „Personalizați lista”.

Se va deschide o fereastră.


Fila „selecție” prezintă o listă de câmpuri care se află în lista curentă. Selectați câmpurile din listă după care vom filtra. Acest lucru se poate face făcând dublu clic sau folosind drag and drop.


Setăm tipul și valoarea comparației, facem clic pe „Finalizare editare”, selecția este setată.


Când configurați selecția în modul întreprindere, așa-numitele câmpuri de selecție rapidă sunt create automat în formularul de listă.


Pentru ca platforma 1C să creeze automat câmpuri de selecție rapidă, atunci când dezvoltați un formular în configurator, trebuie să specificați un grup de setări de utilizator.


Această selecție va fi salvată numai pentru utilizatorul curent, ceea ce permite personalizarea flexibilă a listei dinamice. Totuși, dacă sarcina este de a face o selecție fixă ​​pentru o listă specifică pentru toți utilizatorii sistemului, o putem rezolva doar prin configurator.

Selectarea setărilor în configurator

Lucrând în configurator, putem seta două tipuri de selecție dinamică a listei – fixă ​​și dinamică. Selecția fixă ​​poate fi configurată o dată, dinamică sau programatică poate fi setată în funcție de orice date din sistem.

Principiul setării unei selecții fixe în configurator nu este diferit de setarea acesteia în modul utilizator descris mai sus. Pentru a seta selecția, trebuie să deschidem setările listei dinamice.


Se va deschide o fereastră.


Selecția este setată în același mod ca în modul utilizator.

Opțiunea „Include în setările utilizatorului” determină dacă selecția setată în configurator va fi disponibilă în modul utilizator prin elementul de meniu „Personalizare listă”.


Selectare dinamică (software).

Adesea este nevoie să setăm selecția în mod programatic, de exemplu, când deschidem un formular de selecție, când trebuie să deschidem un formular controlat cu selecție. Un parametru este transmis formularului și selecția este setată pe baza acestui parametru. Un exemplu comun în acest sens este selectarea elementelor de director de către proprietar.

Metode

Dacă configurația în curs de dezvoltare conține subsistemul BSP „Funcționalitate de bază”, selecția software din lista dinamică poate fi instalată folosind metoda standard:

GeneralPurposeClientServer.SetDynamicListSelectionElement()

Semnătura acestei metode:

DynamicList Type: DynamicList – Lista în care doriți să setați selecția.

Numele domeniului Type: String – Câmpul prin care doriți să setați selecția.

RightValue Tip: Arbitrar – Valoare de selecție (Opțional. Valoare implicită: Nedefinit. Notă: Dacă treceți Nedefinit, valoarea nu va fi modificată).

ViewComparison Tip: DataComposition Tip de comparație – Condiție de selecție.

Performanţă Tip: String – Reprezentarea unui element de compoziție de date (Opțional. Valoare implicită: Nedefinită. Dacă este specificat, este tipărit doar indicatorul de utilizare cu reprezentarea specificată (nu este tipărită nicio valoare). Trebuie să fie transmis un șir gol pentru a șterge, astfel încât valoarea să fie imprimată din nou.)

Utilizare Tip: Boolean – Semnal pentru a utiliza această selecție (Opțional. Implicit: nedefinit).

Modul de afișare Tip: ItemDisplayModeDataCompositionSettings – Cum este afișată această selecție pentru utilizator. Valori posibile:

  • Modul de afișare a elementelor Setări de aspect de date. Acces rapid – În grup setari rapide deasupra listei.
  • Element Display ModeData Layout Settings Normal – În setările listei (în submeniul Mai multe).
  • ElementDisplayModeDataCompositionSettings.Inaccessible – Împiedică utilizatorul să modifice această selecție.

IdentifierUserSettings Tip: șir – identificator unic pentru această selecție (Folosit pentru a comunica cu setările utilizatorului).

Pentru a elimina o valoare de selecție, trebuie să utilizați metoda standard:

General PurposeClientServer. RemoveGroupElementsSelectionDynamicList()

Semnătura acestei metode:

DynamicList Tip: DynamicList – atribut de formular pentru care doriți să setați selecția.

Numele domeniului Tip: String – numele câmpului de aspect (nu este utilizat pentru grupuri).

Performanţă Tip: String – Reprezentarea unui câmp de aspect.

Dacă nu există BSP în sistem, selecția poate fi setată independent folosind obiectul DataComposition Field.

Element de selecție = List.Selection.Elements.Add(Type("DataComposition Selection Element"); Selection Element.LeftValue = NewDataCompositionField("Nume"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selecție Element.DisplayMode = ElementDisplayModeDataCompositionSettings.QuickAccess; // Element de selecție opțional. RightValue = "Ivanov";

Această selecție va selecta rânduri în care valoarea „Nume complet” = „Ivanov”.

Pentru a utiliza logic „ȘI”, „SAU”, „NU” este destinat tipului de date DataCompositionSelectionElementGroup

Selection Group = List.Selection.Elements.Add(Type("Grup de elemente de selecție de compoziție de date")); SelectionGroup.GroupType = DataCompositionSelectionElementGroupType.GroupOR; Selection Element = Selection Group. Elements. Add(Type("Data Composition Selection Element"); Selection Element.LeftValue = NewDataCompositionField("Nume"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; Selection Element.RightValue = "Ivanov"; Selection Element = Selection Group. Elements. Add(Type("Data Composition Selection Element"); Selection Element.LeftValue = NewDataCompositionField("Nume"); Selection Element.Comparison Type = DataComposition Comparison Type.Equal; SelectionElement.RightValue = "Petrov";

Această selecție va selecta rânduri în care valoarea „Nume complet” = „Ivanov” sau „Petrov”.

Selectarea într-o listă dinamică se poate face și prin modificarea textului solicitării listei dinamice. Această opțiune funcționează atunci când lista dinamică este realizată printr-o „cerere personalizată”.


Pentru a face acest lucru, adăugați condiția „UNDE ESTE ADEVĂRAT” la textul interogării...


După cum puteți vedea, această abordare este mai compactă în ceea ce privește scrierea codului. Cum conditii mai dificile dorim să stabilim selecția în partea tabulară, cu atât mai greoaie va fi opțiunea de utilizare a selecției prin Elementul de selecție al compoziției datelor. Cu toate acestea, exemplul cu modificarea textului solicitării are dezavantajele sale - această implementare nu este rezistentă la modificările de cod. De exemplu, ați făcut o astfel de implementare și ați uitat, dar dacă pe viitor doriți să modificați textul solicitării adăugând un operator după UNDE (COMANDĂ, GRUP), trebuie să vă amintiți că codul programului conține:

List.QueryText = List.QueryText + " Și DirectoryUsers.Full Name V(""Ivanov"",""Petrov"")";

Dacă acest lucru nu este luat în considerare, va apărea o eroare, dar pentru a evita acest lucru, o puteți schimba cu o altă implementare. Adăugăm următoarea condiție la textul cererii:

WHERE (NU &SelectionInstalled SAU DirectoryUsers.Name IN (&PermittedName))

List.Parameters.SetParameterValue("SelectionSet", Nume complet.Cantitate() > 0); List.Parameters.SetParameterValue(„Nume complet permis”, Nume complet);

Aici numele complet este o matrice.

După cum puteți vedea, 2 linii de cod față de 10. Ce metodă să alegeți depinde de sarcina specifică a aplicației.

Pentru a deschideți formularul de selecție cu selecție în 1s 8.2(forme obișnuite), trebuie să realizăm unele acțiuni. O vom primi mai întâi. După aceea, vom seta selecția și o vom deschide programatic, iată un exemplu de cod:

Selectare pe formular în câmpul de intrare 1C 8.2 cu mai multe valori

În exemplul de mai sus ne-am uitat cum să setați selecția pe formularul de selecție după o valoare specifică. Acum să ne uităm la o situație în care trebuie să înlocuiți mai multe valori, aceasta ar putea fi, de exemplu, o matrice sau descărcată dintr-un rezultat de interogare. Aceasta este o selecție în câmpul de intrare 1c cu sensuri multiple.

În primul rând, obținem formularul de selecție, trecem „Element” (proprietar) în parametri, setăm indicatorul modului de selecție. Apoi creăm o listă de valori și o matrice, observăm că, ca selecție, la setarea tipului de comparație în listă, un obiect poate fi prezent doar cu tipul ListValues. Adăugăm elemente la matrice, apoi încărcăm această matrice în Lista de valori, pe care o setăm ulterior în selecție. De asemenea, nu uitați să activați marcajul pentru utilizarea acestei selecții și să setați tipul de comparație.

Setarea selecției în câmpul de introducere din formular în 1C 8.3, Evenimentul Începutul selecției

Acum să luăm în considerare selecție în câmpul de introducere pe un formular gestionat în 1C 8.3. Să găsim pe formular elementul care ne interesează, în care vom seta selecția, în cazul nostru acesta este câmpul „Organizare”. Găsim evenimentul „Start of Selection”, facem clic pe lupă și ne regăsim în procedură. Vedem parametrul Selection Data; acest parametru este de tip ValueList. Pentru a limita selecția la elementele necesare, trebuie să completăm Lista de valori. Putem selecta elemente doar pe server, așa că creăm o procedură cu directiva de compilare &OnServer. În această procedură, completați Datele de selecție.

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țăFacturi(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.

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țăFacturi(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.




Top