Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 8
  • Kako otvoriti obrazac liste sa nekim odabirom? Kako podesiti odabir u obrascu liste imenika? Otvorite obrazac za odabir u redovnom obliku.

Kako otvoriti obrazac liste sa nekim odabirom? Kako podesiti odabir u obrascu liste imenika? Otvorite obrazac za odabir u redovnom obliku.

Postoji nekoliko načina da otvorite obrazac liste s nekim unaprijed postavljenim odabirom. Pogledajmo ih:

  1. Prvi način je da prilikom otvaranja obrasca možete postaviti parametar obrasca Odabir, i otvorite obrazac liste sa ovim parametrom. Parametar Odabir predstavlja strukturu. Imena elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti
    izbor. Ovo je opcija proširenja obrasca kojim se upravlja dinamičkom listom. Odnosno, postoji za forme čiji je glavni atribut atribut tipa DynamicList, kao što su obrasci liste i obrasci za izbor.

Prilikom otvaranja obrasca, odabir će se vršiti na osnovu navedenog polja. Na primjer, u sljedećem primjeru otvara se lista faktura sa odabirom u polju Counterparty jednakim „OJSC Horns and Hooves“.

Vrijednost odabira = Nova struktura (“Counterparty” , "JSC Horns and Hooves");
Opcije izbora= Nova struktura("Izbor", Vrijednost odabira);
OpenForm (“Dokument. Račun za prijem. Obrazac liste”, Opcije izbora);

2. Možete otvoriti obrazac liste bez parametara:

OpenForm (“Dokument. Račun za prijem. Obrazac liste”);

A zatim, u obrascu liste faktura u rukovaocu događaja Kada je CreatedOnServer napisati kod koji kreira selekciju u dinamičkoj listi, što je glavni atribut forme:

&Na serveru
Procedura Kada je CreatedOnServer(Odbijanje, StandardProcessing)
Element odabira = Lista . Odabir. Elementi. Dodaj (Tip
(“DataCompositionSelectionElement”));
Element odabira .LeftValue = Novo Polje rasporeda podataka("Iznos dokumenta");
Element odabira. Pregled poređenja = Comparison ViewData Layout. Više ;
Element odabira. upotreba = istina;
Element odabira. RightValue = 150000;
Kraj procedure

Prednosti ove metode su to ViewComparison izbor se može podesiti ne samo Jednako, kao u prvom slučaju, i Više, Manje i tako dalje.

Ali ova metoda ima i vrlo značajan nedostatak: s ovim odabirom, obrazac će se uvijek otvoriti. Odakle je bila zvana. Stoga ovaj obrazac ne treba označiti kao glavni. A ako je ipak glavni, onda je prije instaliranja selekcije potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

3. I na kraju, uslov odabira se može staviti u prilagođeni zahtjev, koji bira podatke za dinamičku listu. Na primjer, trebamo otvoriti listu faktura koje sadrže stavku označenu u listi stavki.

Da biste to učinili, u obliku liste stavki kreirajte naredbu i odgovarajuće dugme ConsumablesInvoices

Hajde da ispunimo rukovalac izvršenja za ovu naredbu na sledeći način:

&OnClient
Procedura ConsumablesInvoices(tim)
ListForm = GetForm("Document.Invoice.ListForm");
ListForm. FilterByProduct = Stavke . Lista. CurrentRow ;
ListForm. Open();
Kraj procedure

U ovom rukovaocu primamo obrazac liste faktura i prosljeđujemo ga parametru obrasca Filtriraj po proizvodu vezu na trenutnu stavku u listi stavki i otvorite obrazac sa ovim parametrom.
Zatim ćemo kreirati obrazac liste dokumenata Prodajna faktura i kreirajte atribute obrasca Filtriraj po proizvodu, koji ćemo koristiti kao parametar forme prilikom otvaranja. Sada otvorimo paletu svojstava glavnih atributa obrasca Lista. Postavimo zastavu CustomRequest i u
linija Postavljanje liste hajde da pritisnemo Otvori.

U polju Zahtjev Unesite sljedeći tekst zahtjeva:

ODABIR

Račun prijema dokumenta Broj,
Dokument prijema Račun.Datum
OD
Document.ReceiptInvoice AS DocumentReceiptInvoice
GDJE
Račun prijema dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Proizvod, na koji će se poslati link na trenutni red u listi stavki sadržanih u atributu obrasca liste faktura Filtriraj po proizvodu. Da biste to učinili, u obrascu liste obradite događaje WhenOpening Napišimo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:

&OnClient
Procedura otvaranja (Neuspjeh)
Lista. Opcije . SetParameterValue("Proizvod", FilterByProduct);
Kraj procedure

Evo List.Options— ovo je lista parametara zahtjeva dinamičke liste za atribut List. Vrijednost parametra Proizvod je postavljen jednako vrijednosti parametra forme Filtriraj po proizvodu. Kao rezultat, pritiskom na dugme Računi u obliku liste artikala, dobićemo listu samo onih faktura koje sadrže artikl koji je trenutno odabran na listi artikala.

— ovo je lista parametara zahtjeva dinamičke liste za atribut List.

Kako otvoriti obrazac liste sa nekim odabirom?

Postoji nekoliko načina da otvorite obrazac liste s nekim unaprijed postavljenim odabirom. Pogledajmo ih redom:

1. Prvi način je da prilikom otvaranja obrasca možete podesiti parametar obrasca za odabir i otvoriti obrazac liste sa ovim parametrom. Parametar Selection predstavlja strukturu. Imena elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti odabira. Ovo je opcija proširenja obrasca kojim se upravlja dinamičkom listom. Odnosno, postoji za forme čiji je glavni atribut atribut tipa Dynamic List, kao što su obrasci liste i obrasci za izbor.

Prilikom otvaranja obrasca, odabir će se vršiti na osnovu navedenog polja. Na primjer, u sljedećem primjeru otvara se lista faktura sa izborom u polju Broj, jednakom 333.

Vrijednost odabira = Nova struktura("Broj", "333");

SelectionParameters = Nova struktura("Izbor", SelectionValue);

OpenForm("Dokument. Račun prijema. Obrazac liste", Opcije odabira);

2. Možete otvoriti obrazac liste bez parametara:

OpenForm("Document.Invoice.ListForm");

A zatim, u obrascu liste faktura u rukovaocu događaja Kada je CreatedOnServer napisati kod koji kreira selekciju u dinamičkoj listi, što je glavni atribut forme:

&Na serveru

Procedura prilikom kreiranja na serveru (neuspjeh, standardna obrada)

Element odabira = List.Selection.Elements.Add(Type("DataComposition Selection Element"));

SelectionElement.LeftValue = NewDataCompositionField("Broj");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = Tačno;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;

SelectionElement.RightValue = "000000001";

Kraj procedure

Prednosti ove metode su da se tip poređenja za odabir može postaviti ne samo Jednako, kao u prvom slučaju, već i Više, Manje itd.

Ali ova metoda ima i vrlo značajan nedostatak: s ovim odabirom, obrazac će se uvijek otvoriti. Odakle je bila zvana. Stoga ovaj obrazac ne treba označiti kao glavni. A ako je ipak glavni, onda je prije instaliranja selekcije potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

3. Konačno, uslov odabira se može postaviti u prilagođeni upit koji bira podatke za dinamičku listu. Na primjer, trebamo otvoriti listu faktura koje sadrže stavku označenu u listi stavki.

Da biste to učinili, u obliku liste stavki kreirajte naredbu i odgovarajuće dugme Prijemne fakture.

Hajde da ispunimo rukovalac izvršenja za ovu naredbu na sledeći način:

&OnClient

Procedura PriznaniceFakture (komanda)

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

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Kraj procedure

U ovom rukovaocu primamo obrazac za listu faktura i prosljeđujemo vezu na trenutnu stavku u listi stavki parametru obrasca FilterByProduct i otvaramo obrazac sa ovim parametrom.

Zatim ćemo kreirati obrazac liste dokumenata Kupovina faktura i kreirajte atribut obrasca FilterByProduct, koji ćemo koristiti kao parametar obrasca prilikom otvaranja. Sada otvorimo paletu svojstava glavnog atributa obrasca Lista. Postavimo zastavu CustomRequest i u redu Postavljanje liste kliknite Otvori.

U polje Zahtjev unesite sljedeći tekst zahtjeva:

ODABIR

Račun prijema dokumenta Broj,

Dokument prijema Račun.Datum

OD

Document.ReceiptInvoice AS DocumentReceiptInvoice

GDJE

Račun prijema dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Stavka, koji će dobiti vezu na trenutni red na listi artikala, sadržan u parametru obrasca liste faktura FilterBy Artikl. Da bismo to učinili, u obrascu za obradu događaja OnOpen napisat ćemo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:

&OnClient

Procedura otvaranja (Neuspjeh)

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

Kraj procedure

Evo List.Options je lista parametara zahtjeva dinamičke liste za atribut List. Vrijednost parametra Product postavljena je jednaka vrijednosti parametra obrasca FilterByProduct.

Kao rezultat, pritiskom na dugme Prijemne fakture u obliku liste artikala, dobićemo listu samo onih faktura koje sadrže artikl koji je trenutno odabran na listi artikala.

Demo primjer za 3. opciju nalazi se u direktoriju 1CITS/EXE/FAQ/OpenFormWithSelection.dt. Primjer je izveden na verziji platforme 8.2.9.356.

Code 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Prihvaćen";
DirectoryList.Selection.Status.Set();

Za 1C 8.2:
Postoji nekoliko načina da otvorite obrazac liste s nekim unaprijed postavljenim odabirom. Pogledajmo ih redom:

1. Prvi način je da prilikom otvaranja obrasca možete podesiti parametar obrasca za odabir i otvoriti obrazac liste sa ovim parametrom. Parametar Selection predstavlja strukturu. Imena elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti odabira. Ovo je opcija proširenja obrasca kojim se upravlja dinamičkom listom. Odnosno, postoji za obrasce čiji je glavni atribut atribut tipa dinamičke liste, na primjer, obrasci liste i obrasci za odabir.

Prilikom otvaranja obrasca, odabir će se vršiti na osnovu navedenog polja.
Šifra 1C v 8.2 UP // Na primjer, u sljedećem primjeru otvara se lista faktura sa odabirom polja Broj jednako 333.
Vrijednost odabira = Nova struktura("Broj", "333");
SelectionParameters = Nova struktura("Izbor", SelectionValue);

OpenForm("Dokument. Račun prijema. Obrazac liste", Opcije odabira);

// Na primjer, sljedeći primjer otvara listu faktura
// sa izborom polja Izvođača jednakim “OJSC Horns and Hoofes”.
Vrijednost odabira = Nova struktura("Counterparty", "OJSC Horns and Hooves");
SelectionParameters = Nova struktura("Izbor", SelectionValue);
OpenForm("Dokument. Račun prijema. Obrazac liste", Opcije odabira);

2. Možete otvoriti obrazac liste bez parametara:
Code 1C v 8.2 UE OpenForm("Dokument. Račun za prijem. Obrazac liste");

A zatim, u rukovaocu događaja obrasca za listu faktura Kada je CreatedOnServer, napišite kod koji kreira selekciju u dinamičkoj listi, što je glavni atribut obrasca:
Kod 1C v 8.2 UP &OnServer

Element odabira = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Broj");

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Kraj procedure

&Na serveru
Procedura prilikom kreiranja na serveru (neuspjeh, standardna obrada)
Element odabira = Lista.Izbor.Elementi.Dodaj(Tip
(“DataCompositionSelectionElement”));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = Tačno;
SelectionElement.RightValue = 150000;
Kraj procedure

Prednosti ove metode su u pogledu poređenja za odabir možete postaviti ne samo Jednako, kao u prvom slučaju, već i Više, Manje itd.

Ali ova metoda ima i vrlo značajan nedostatak: s ovim odabirom, obrazac će se uvijek otvoriti. Odakle je bila zvana. Stoga ovaj obrazac ne treba označiti kao glavni. A ako je ipak glavni, onda je prije instaliranja selekcije potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

3. Konačno, uslov odabira se može postaviti u prilagođeni upit koji bira podatke za dinamičku listu. Na primjer, trebamo otvoriti listu faktura koje sadrže stavku označenu u listi stavki.

Da biste to učinili, u obliku liste stavki kreirajte komandu i odgovarajuće dugme Prijem faktura.

Hajde da ispunimo rukovalac izvršenja za ovu naredbu na sledeći način:
Kod 1C v 8.2 UP &OnClient
Procedura PriznaniceFakture (komanda)

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

Kraj procedure

U ovom rukovaocu primamo obrazac za listu faktura i prosljeđujemo vezu na trenutnu stavku u listi stavki parametru obrasca FilterByProduct i otvaramo obrazac sa ovim parametrom.

Zatim ćemo kreirati obrazac za listu dokumenata: Račun za prijem i kreirati atribut obrasca FilterBy Product, koji ćemo koristiti kao parametar obrasca prilikom otvaranja. Sada otvorimo paletu svojstava glavnog atributa obrasca Lista. Postavite oznaku ArbitraryRequest i u redu Postavke liste kliknite Otvori.

U polje Zahtjev unesite sljedeći tekst zahtjeva:
Šifra 1C v 8.2 UP SELECT
Račun prijema dokumenta Broj,
Dokument prijema Račun.Datum
OD
Document.ReceiptInvoice AS DocumentReceiptInvoice
GDJE
Račun prijema dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Stavka, koji će dobiti vezu na trenutni red na listi artikala, sadržan u parametru obrasca liste faktura FilterBy Artikl. Da bismo to učinili, u obrascu za obradu događaja OnOpen napisat ćemo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:
Kod 1C v 8.2 UP
&OnClient
Procedura otvaranja (Neuspjeh)

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

Kraj procedure

Evo List.Options je lista parametara zahtjeva dinamičke liste za atribut List. Vrijednost parametra Product postavljena je jednaka vrijednosti parametra obrasca FilterByProduct.

Kao rezultat toga, klikom na dugme Primi fakture u obrascu liste artikala, dobićemo listu samo onih faktura koje sadrže artikal koji je trenutno izabran na listi artikala.

Informacije preuzete sa stranice

Code 1C v 8.x DirectoryList.Selection.Reset();
DirectoryList.Selection.status.ComparisonType=ComparisonType.Contains;
DirectoryList.Selection.Status.Value="Prihvaćen";
DirectoryList.Selection.Status.Set();

Za 1C 8.2:
Postoji nekoliko načina da otvorite obrazac liste s nekim unaprijed postavljenim odabirom. Pogledajmo ih redom:

1. Prvi način je da prilikom otvaranja obrasca možete podesiti parametar obrasca za odabir i otvoriti obrazac liste sa ovim parametrom. Parametar Selection predstavlja strukturu. Imena elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti odabira. Ovo je opcija proširenja obrasca kojim se upravlja dinamičkom listom. Odnosno, postoji za obrasce čiji je glavni atribut atribut tipa dinamičke liste, na primjer, obrasci liste i obrasci za odabir.

Prilikom otvaranja obrasca, odabir će se vršiti na osnovu navedenog polja.
Šifra 1C v 8.2 UP // Na primjer, u sljedećem primjeru otvara se lista faktura sa odabirom polja Broj jednako 333.
Vrijednost odabira = Nova struktura("Broj", "333");
SelectionParameters = Nova struktura("Izbor", SelectionValue);

OpenForm("Dokument. Račun prijema. Obrazac liste", Opcije odabira);

// Na primjer, sljedeći primjer otvara listu faktura
// sa izborom polja Izvođača jednakim “OJSC Horns and Hoofes”.
Vrijednost odabira = Nova struktura("Counterparty", "OJSC Horns and Hooves");
SelectionParameters = Nova struktura("Izbor", SelectionValue);
OpenForm("Dokument. Račun prijema. Obrazac liste", Opcije odabira);

2. Možete otvoriti obrazac liste bez parametara:
Code 1C v 8.2 UE OpenForm("Dokument. Račun za prijem. Obrazac liste");

A zatim, u rukovaocu događaja obrasca za listu faktura Kada je CreatedOnServer, napišite kod koji kreira selekciju u dinamičkoj listi, što je glavni atribut obrasca:
Kod 1C v 8.2 UP &OnServer

Element odabira = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Broj");


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Kraj procedure

&Na serveru
Procedura prilikom kreiranja na serveru (neuspjeh, standardna obrada)
Element odabira = Lista.Izbor.Elementi.Dodaj(Tip
(“DataCompositionSelectionElement”));
SelectionElement.LeftValue = NewDataCompositionField("DocumentAmount");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = Tačno;
SelectionElement.RightValue = 150000;
Kraj procedure

Prednosti ove metode su u pogledu poređenja za odabir možete postaviti ne samo Jednako, kao u prvom slučaju, već i Više, Manje itd.

Ali ova metoda ima i vrlo značajan nedostatak: s ovim odabirom, obrazac će se uvijek otvoriti. Odakle je bila zvana. Stoga ovaj obrazac ne treba označiti kao glavni. A ako je ipak glavni, onda je prije instaliranja selekcije potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

3. Konačno, uslov odabira se može postaviti u prilagođeni upit koji bira podatke za dinamičku listu. Na primjer, trebamo otvoriti listu faktura koje sadrže stavku označenu u listi stavki.

Da biste to učinili, u obliku liste stavki kreirajte komandu i odgovarajuće dugme Prijem faktura.

Hajde da ispunimo rukovalac izvršenja za ovu naredbu na sledeći način:
Kod 1C v 8.2 UP &OnClient
Procedura PriznaniceFakture (komanda)

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

Kraj procedure

U ovom rukovaocu primamo obrazac za listu faktura i prosljeđujemo vezu na trenutnu stavku u listi stavki parametru obrasca FilterByProduct i otvaramo obrazac sa ovim parametrom.

Zatim ćemo kreirati obrazac za listu dokumenata: Račun za prijem i kreirati atribut obrasca FilterBy Product, koji ćemo koristiti kao parametar obrasca prilikom otvaranja. Sada otvorimo paletu svojstava glavnog atributa obrasca Lista. Postavite oznaku ArbitraryRequest i u redu Postavke liste kliknite Otvori.

U polje Zahtjev unesite sljedeći tekst zahtjeva:
Šifra 1C v 8.2 UP SELECT
Račun prijema dokumenta Broj,
Dokument prijema Račun.Datum
OD
Document.ReceiptInvoice AS DocumentReceiptInvoice
GDJE
Račun prijema dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Stavka, koji će dobiti vezu na trenutni red na listi artikala, sadržan u parametru obrasca liste faktura FilterBy Artikl. Da bismo to učinili, u obrascu za obradu događaja OnOpen napisat ćemo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:
Kod 1C v 8.2 UP
&OnClient
Procedura otvaranja (Neuspjeh)

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

Kraj procedure

Evo List.Options je lista parametara zahtjeva dinamičke liste za atribut List. Vrijednost parametra Product postavljena je jednaka vrijednosti parametra obrasca FilterByProduct.

Kao rezultat toga, klikom na dugme Primi fakture u obrascu liste artikala, dobićemo listu samo onih faktura koje sadrže artikal koji je trenutno izabran na listi artikala.

Ovaj kod vam omogućava da otvorite listu dokumenata sa određenim izborom; takođe možete otvoriti listu elemenata direktorijuma sa željenim izborom

Code 1C v 8.2 UP Form = OpenForm("Dokument. Faktura.Form.ListForm"); //Otvori obrazac
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Dodaj odabir
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Kako ćemo porediti
SelectOwner.Use = Tačno; // Postavite potvrdni okvir za korištenje NewDataCompositionField("Nomenclature")
SelectionOwner.LeftValue = NewDataCompositionField("Račun"); //Koje detalje ćemo koristiti za odabir?
SelectionOwner.RightValue = Object.Account; // I samo značenje selekcije

Da bi otvorite obrazac liste sa unapred definisanim izborom koristite sljedeće metode:

Prvi način je da kada otvorite obrazac, možete postaviti parametar obrasca za odabir i otvoriti obrazac liste sa ovim parametrom.

Parametar Selection predstavlja strukturu. Imena elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti odabira. Ovo je opcija proširenja obrasca kojim se upravlja dinamičkom listom. Odnosno, postoji za obrasce čiji je glavni atribut atribut tipa DynamicList, na primjer, obrasci liste i obrasci za odabir.

Na primjer, u sljedećem primjeru otvara se lista faktura sa izborom u polju Broj, jednakom 333.

Kod 1C v 8.2 Vrijednost odabira UE = Nova struktura("Broj", "333");
SelectionParameters = Nova struktura("Izbor", SelectionValue);
OpenForm("Dokument. Račun prijema. Obrazac liste", Opcije odabira);

Drugi način

Možete otvoriti obrazac liste bez parametara:

Code 1C v 8.2 UE OpenForm("Dokument. Račun za prijem. Obrazac liste");

A zatim, u rukovaocu događaja obrasca za listu faktura Kada je CreatedOnServer, napišite kod koji kreira selekciju u dinamičkoj listi, što je glavni atribut obrasca:

Kod 1C v 8.2 UP &OnServer
Procedura prilikom kreiranja na serveru (neuspjeh, standardna obrada)
Element odabira = List.Selection.Elements.Add(Type("DataComposition Selection Element"));
SelectionElement.LeftValue = NewDataCompositionField("Broj");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = Tačno;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Inaccessible;
SelectionElement.RightValue = "000000001";
Kraj procedure

Prednosti ove metode su što se tip poređenja za odabir može postaviti ne samo na Jednako, kao u prvom slučaju, već i na Više, Manje itd.

Ali ova metoda ima i vrlo značajan nedostatak: s ovim odabirom, obrazac će se uvijek otvoriti. Odakle je bila zvana. Stoga ovaj obrazac ne treba označiti kao glavni. A ako je ipak glavni, onda je prije instaliranja selekcije potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

Treći način

Konačno, uslov odabira se može postaviti u prilagođeni upit koji odabire podatke za dinamičku listu.

Na primjer, trebamo otvoriti listu faktura koje sadrže stavku označenu u listi stavki.

Da biste to učinili, u obliku liste stavki kreirajte komandu i odgovarajuće dugme Prijem faktura.

Hajde da ispunimo rukovalac izvršenja za ovu naredbu na sledeći način:

Kod 1C v 8.2 UP &OnClient
Procedura PriznaniceFakture (komanda)
SelectionParameters = Nova struktura("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Dokument. Račun prijema. Obrazac liste", Opcije odabira);
Kraj procedure

U ovom rukovatelju otvaramo obrazac za listu faktura, prosljeđujući vezu na trenutnu stavku na listi stavki do parametra obrasca FilterByProduct.

Zatim ćemo kreirati obrazac za listu dokumenata: Račun za prijem i kreirati parametar obrasca FilterBy Product, koji ćemo koristiti za otvaranje obrasca sa traženim odabirom.

Sada otvorimo paletu svojstava glavnog atributa obrasca Lista. Postavite oznaku prilagođenog upita i u redu Postavke liste kliknite Otvori.

U polje Zahtjev unesite sljedeći tekst zahtjeva:

Šifra 1C v 8.2 UP SELECT
Račun prijema dokumenta Broj,
Dokument prijema Račun.Datum
OD
Document.ReceiptInvoice AS DocumentReceiptInvoice
GDJE
Račun prijema dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Stavka, koji će dobiti vezu na trenutni red na listi artikala, sadržan u parametru obrasca liste faktura FilterBy Artikl.

Da biste to učinili, u obrascu liste obradivač događaja Kada CreatedOnServer, napisaćemo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:

Kod 1C v 8.2 UP &OnClient
Procedura otvaranja (Neuspjeh)
List.Parameters.SetParameterValue("Proizvod", Parameters.FilterByProduct);
Kraj procedure

Ovdje List.Parameters je lista parametara zahtjeva dinamičke liste za atribut List. Vrijednost parametra Product postavljena je jednaka vrijednosti parametra obrasca FilterByProduct.

Kao rezultat toga, klikom na dugme Primi fakture u obrascu liste artikala, dobićemo listu samo onih faktura koje sadrže artikal koji je trenutno izabran na listi artikala.

Najbolji članci na ovu temu