Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • U kontaktu s
  • 1c otvorite obrazac imenika s odabirom. Kako postaviti odabir u obrascu popisa imenika? Možete otvoriti obrazac s popisom bez parametara

1c otvorite obrazac imenika s odabirom. Kako postaviti odabir u obrascu popisa imenika? Možete otvoriti obrazac s popisom bez parametara

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

Za 1C 8.2:
Postoji nekoliko načina za otvaranje obrasca popisa s nekim unaprijed postavljenim odabirom. Pogledajmo ih redom:

1. Prva metoda je da prilikom otvaranja obrasca možete postaviti parametar obrasca za odabir i otvoriti obrazac s popisom s ovim parametrom. Parametar odabira predstavlja strukturu. Nazivi elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti odabira. Ovo je opcija proširenja obrasca za upravljanje dinamičkim popisom. Odnosno, postoji za obrasce čiji je glavni atribut atribut tipa Dinamički popis, na primjer, obrasci popisa i obrasci za odabir.

Prilikom otvaranja obrasca odabir će se vršiti prema navedenom polju.
Kod 1C v 8.2 UP // Na primjer, u sljedećem primjeru otvara se popis faktura s odabirom polja Broj jednakog 333.
Vrijednost odabira = Nova struktura ("Broj", "333");
SelectionParameters = Nova struktura("Selection", SelectionValue);

OpenForm("Dokument. Račun. Popisni obrazac", Mogućnosti odabira);

// Na primjer, sljedeći primjer otvara popis faktura
// s odabirom u polju Izvođač jednak "OJSC Horns and Hooves".
Vrijednost odabira = Nova struktura ("Protustrana strana", "OJSC Horns and Hooves");
SelectionParameters = Nova struktura("Selection", SelectionValue);
OpenForm("Dokument. Račun. Popisni obrazac", Mogućnosti odabira);

2. Možete otvoriti obrazac s popisom bez parametara:
Kod 1C v 8.2 UE OpenForm("Dokument. Primitak. Račun. Obrazac popisa");

Zatim u obradi događaja obrasca za popis faktura When CreatedOnServer upišite kod koji stvara odabir u dinamičkom popisu, što je glavni atribut obrasca:
Kod 1C v 8.2 UP & na poslužitelju

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


SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Iaccessible;
SelectionElement.RightValue = "000000001";
Kraj postupka

&Na poslužitelju
Procedura prilikom kreiranja na poslužitelju (greška, standardna obrada)
Element odabira = List.Selection.Elements.Add(Type
(“Element odabira sastava podataka”));
SelectionElement.LeftValue = NewDataCompositionField("Iznos dokumenta");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.RightValue = 150000;
Kraj postupka

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

Ali ova metoda također ima vrlo značajan nedostatak: ovim odabirom obrazac će se uvijek otvoriti. Odakle god je bila pozvana. Stoga ovaj oblik ne treba označavati kao glavni. A ako je ipak glavni, tada je prije instaliranja odabira potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

3. Konačno, uvjet odabira može se postaviti u prilagođeni upit koji odabire podatke za dinamički popis. Na primjer, trebamo otvoriti popis faktura koje sadrže stavku označenu na popisu stavki.

Da biste to učinili, u obliku popisa artikala kreirajte naredbu i odgovarajući gumb Računi za primitak.

Ispunimo rukovatelj izvršavanjem za ovu naredbu na sljedeći način:
Kod 1C v 8.2 UP &OnClient
Procedura ReceiptFvoices (naredba)

ListForm = GetForm("Dokument.Račun.ListForm");
ListForm.FilterByProduct = Elements.List.CurrentRow;
ListForm.Open();

Kraj postupka

U ovom rukovatelju primamo obrazac za popis faktura i prosljeđujemo vezu na trenutnu stavku u popisu stavki parametru obrasca FilterByProduct i otvaramo obrazac s tim parametrom.

Zatim ćemo izraditi obrazac za popis dokumenata: Primka Račun i kreirati atribut obrasca FilterBy Product koji ćemo koristiti kao parametar obrasca prilikom otvaranja. Sada otvorimo paletu svojstava glavnog atributa obrasca List. Postavite oznaku ArbitraryRequest au liniji List settings kliknite Otvoren.

U polje Zahtjev unesite sljedeći tekst zahtjeva:
Šifra 1C v 8.2 UP SELECT
Dokument Prijemna faktura Broj,
Dokument Prijemna faktura. Datum
IZ
Document.ReceiptInvoice KAO DocumentReceiptInvoice
GDJE
Račun za primitak dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Item, koji će dobiti poveznicu na trenutni redak u popisu artikala, koji se nalazi u parametru obrasca popisa faktura FilterBy Item. Da bismo to učinili, u rukovatelju događajima obrasca liste OnOpen napisat ćemo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:
Kod 1C v 8.2 UP
&NaKlijentu
Postupak otvaranja (neuspjeh)

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

Kraj postupka

Ovdje Popis.Opcije je popis parametara zahtjeva za dinamički popis za atribut List. Vrijednost parametra Product postavljena je jednako vrijednosti parametra obrasca FilterByProduct.

Kao rezultat toga, klikom na gumb Potvrde računa u obrascu popisa artikala dobit ćemo popis samo onih računa koji sadrže artikl koji je trenutno odabran u popisu artikala.

Kako otvoriti obrazac popisa s nekim odabirom?

Postoji nekoliko načina za otvaranje obrasca popisa s nekim unaprijed postavljenim odabirom. Pogledajmo ih redom:

1. Prva metoda je da prilikom otvaranja obrasca možete postaviti parametar obrasca za odabir i otvoriti obrazac s popisom s ovim parametrom. Parametar odabira predstavlja strukturu. Nazivi elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti odabira. Ovo je opcija proširenja obrasca za upravljanje dinamičkim popisom. Odnosno, postoji za forme čiji je glavni atribut type atribut Dinamički popis, kao što su obrasci popisa i obrasci odabira.

Prilikom otvaranja obrasca odabir će se vršiti prema navedenom polju. Na primjer, u sljedećem primjeru otvara se popis faktura odabirom polja Broj, jednakog 333.

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

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

OpenForm("Dokument. Račun. Popisni obrazac", Mogućnosti odabira);

2. Možete otvoriti obrazac s popisom bez parametara:

OpenForm("Dokument.Račun.Obrazac popisa");

Zatim, u rukovatelju događajima obrasca popisa faktura Kada se kreira na poslužitelju napisati kod koji stvara odabir u dinamičnoj listi, što je glavni atribut forme:

&Na poslužitelju

Procedura prilikom kreiranja na poslužitelju (greška, standardna obrada)

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

SelectionElement.LeftValue = NewDataCompositionField("Broj");

SelectionElement.ComparisonView = DataCompositionComparisonView.More;

SelectionElement.Use = True;

SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Iaccessible;

SelectionElement.RightValue = "000000001";

Kraj postupka

Prednosti ove metode su u tome što se Vrsta usporedbe za odabir može postaviti ne samo Jednako, kao u prvom slučaju, već i Više, Manje itd.

Ali ova metoda također ima vrlo značajan nedostatak: ovim odabirom obrazac će se uvijek otvoriti. Odakle god je bila pozvana. Stoga ovaj oblik ne treba označavati kao glavni. A ako je ipak glavni, tada je prije instaliranja odabira potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

3. Konačno, uvjet odabira može se postaviti u prilagođeni upit koji odabire podatke za dinamički popis. Na primjer, trebamo otvoriti popis faktura koje sadrže stavku označenu na popisu stavki.

Da biste to učinili, u obliku popisa stavki kreirajte naredbu i odgovarajući gumb Prijemni računi.

Ispunimo rukovatelj izvršavanjem za ovu naredbu na sljedeći način:

&NaKlijentu

Procedura Primici Računi (naredba)

ListForm = GetForm("Dokument.Račun.ListForm");

ListForm.FilterByProduct = Elements.List.CurrentRow;

ListForm.Open();

Kraj postupka

U ovom rukovatelju primamo obrazac za popis faktura i prosljeđujemo vezu na trenutnu stavku u popisu stavki parametru obrasca FilterByProduct i otvaramo obrazac s tim parametrom.

Zatim ćemo izraditi obrazac popisa dokumenata Račun za kupnju i izraditi atribut obrasca FilterByProduct koji ćemo koristiti kao parametar obrasca prilikom otvaranja. Sada otvorimo paletu svojstava glavnog atributa obrasca List. Postavimo zastavu CustomRequest i u liniji Postavljanje popisa kliknite Otvori.

U polje Zahtjev unesite sljedeći tekst zahtjeva:

BIRAJTE

Dokument Prijemna faktura Broj,

Dokument Prijemna faktura. Datum

IZ

Document.ReceiptInvoice KAO DocumentReceiptInvoice

GDJE

Račun za primitak dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Item, koji će dobiti poveznicu na trenutni redak u popisu artikala, koji se nalazi u parametru obrasca popisa faktura FilterBy Item. Da bismo to učinili, u rukovatelju događajima obrasca liste OnOpen napisat ćemo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:

&NaKlijentu

Postupak otvaranja (neuspjeh)

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

Kraj postupka

Ovdje Popis.Opcije je popis parametara zahtjeva za dinamički popis za atribut List. Vrijednost parametra Product postavljena je jednako vrijednosti parametra obrasca FilterByProduct.

Kao rezultat, pritiskom na gumb Prijemni računi u obliku popisa artikala dobit ćemo popis samo onih računa koji sadrže artikl koji je trenutno odabran u popisu 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.

Ovaj kod vam omogućuje da otvorite popis dokumenata s određenim odabirom; također možete otvoriti popis elemenata imenika sa željenim odabirom

Kod 1C v 8.2 UP Obrazac = OpenForm("Dokument. Račun.Obrazac.Obrazac Popisa"); //Otvori obrazac
SelectionOwner =Form.List.Selection.Elements.Add(Type("DataCompositionSelectionElement")); //Dodaj odabir
SelectionOwner.ComparisonView = DataCompositionComparisonView.Equals; //Kako ćemo usporediti
SelectOwner.Use = True; // Postavite potvrdni okvir za korištenje NewDataCompositionField("Nomenklatura")
SelectionOwner.LeftValue = NewDataCompositionField("Račun"); //Koje ćemo detalje koristiti za odabir?
SelectionOwner.RightValue = Object.Account; // I sam smisao selekcije

Da bi otvorite obrazac popisa s unaprijed definiranim odabirom koristite sljedeće metode:

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

Parametar odabira predstavlja strukturu. Nazivi elemenata odgovaraju nazivima polja po kojima se vrši odabir, a vrijednosti sadrže vrijednosti odabira. Ovo je opcija proširenja obrasca za upravljanje dinamičkim popisom. Odnosno, postoji za obrasce čiji je glavni atribut atribut tipa DynamicList, na primjer, obrasci popisa i obrasci odabira.

Na primjer, u sljedećem primjeru otvara se popis faktura odabirom polja Broj, jednakog 333.

Kod 1C v 8.2 Vrijednost odabira UE = Nova struktura ("Broj", "333");
SelectionParameters = Nova struktura("Selection", SelectionValue);
OpenForm("Dokument. Račun. Popisni obrazac", Mogućnosti odabira);

Drugi način

Možete otvoriti obrazac s popisom bez parametara:

Kod 1C v 8.2 UE OpenForm("Dokument. Primitak. Račun. Obrazac popisa");

Zatim u obradi događaja obrasca za popis faktura When CreatedOnServer upišite kod koji stvara odabir u dinamičkom popisu, što je glavni atribut obrasca:

Kod 1C v 8.2 UP & na poslužitelju
Procedura prilikom kreiranja na poslužitelju (greška, standardna obrada)
Element odabira = List.Selection.Elements.Add(Type("Element odabira sastava podataka"));
SelectionElement.LeftValue = NewDataCompositionField("Broj");
SelectionElement.ComparisonView = DataCompositionComparisonView.More;
SelectionElement.Use = True;
SelectionElement.DisplayMode = ElementDisplayModeDataCompositionSettings.Iaccessible;
SelectionElement.RightValue = "000000001";
Kraj postupka

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

Ali ova metoda također ima vrlo značajan nedostatak: ovim odabirom obrazac će se uvijek otvoriti. Odakle god je bila pozvana. Stoga ovaj oblik ne treba označavati kao glavni. A ako je, ipak, glavni, tada je prije instaliranja odabira potrebno dati neku vrstu analize odakle se ovaj obrazac otvara. Na primjer, analiziranje parametara obrasca.

Treći način

Konačno, uvjet odabira može se postaviti u prilagođeni upit koji odabire podatke za dinamički popis.

Na primjer, trebamo otvoriti popis faktura koje sadrže stavku označenu na popisu stavki.

Da biste to učinili, u obliku popisa artikala kreirajte naredbu i odgovarajući gumb Računi za primitak.

Ispunimo rukovatelj izvršavanjem za ovu naredbu na sljedeći način:

Kod 1C v 8.2 UP &OnClient
Procedura ReceiptFvoices (naredba)
SelectionParameters = New Structure("FilterByProduct", Elements.List.CurrentRow);
OpenForm("Dokument. Račun. Popisni obrazac", Mogućnosti odabira);
Kraj postupka

U ovom rukovatelju otvaramo obrazac za popis faktura, prosljeđujući vezu na trenutnu stavku na popisu stavki parametru obrasca FilterByProduct.

Zatim ćemo izraditi obrazac za popis dokumenata: Račun za primitak i kreirati parametar obrasca FilterBy Product, pomoću kojeg ćemo otvoriti obrazac sa traženim odabirom.

Sada otvorimo paletu svojstava glavnog atributa obrasca List. Postavite oznaku Custom Query i u retku List Settings kliknite Open.

U polje Zahtjev unesite sljedeći tekst zahtjeva:

Šifra 1C v 8.2 UP SELECT
Dokument Prijemna faktura Broj,
Dokument Prijemna faktura. Datum
IZ
Document.ReceiptInvoice KAO DocumentReceiptInvoice
GDJE
Račun za primitak dokumenta.Proizvodi.Proizvod = &Proizvod

U zahtjevu koristimo parametar Item, koji će dobiti poveznicu na trenutni redak u popisu artikala, koji se nalazi u parametru obrasca popisa faktura FilterBy Item.

Da bismo to učinili, u rukovatelju događajima obrasca popisa When CreatedOnServer, napisat ćemo kod za postavljanje vrijednosti parametra zahtjeva za proizvod:

Kod 1C v 8.2 UP &OnClient
Postupak otvaranja (neuspjeh)
List.Parameters.SetParameterValue("Proizvod", Parameters.FilterByProduct);
Kraj postupka

Ovdje je List.Parameters popis parametara zahtjeva za dinamički popis za atribut List. Vrijednost parametra Product postavljena je jednako vrijednosti parametra obrasca FilterByProduct.

Kao rezultat toga, klikom na gumb Potvrde računa u obrascu popisa artikala dobit ćemo popis samo onih računa koji sadrže artikl koji je trenutno odabran u popisu artikala.

Da bi otvoriti obrazac za odabir s odabirom u 1s 8.2(regularni oblici), moramo izvršiti neke radnje. Dobit ćemo ga prvi. Nakon toga ćemo postaviti odabir i otvoriti ga programski, evo primjera koda:

Odabir na obrascu u polju za unos 1C 8.2 s nekoliko vrijednosti

U gornjem primjeru koji smo pogledali kako postaviti izbor na obrascu za odabir po specifičnoj vrijednosti. Sada pogledajmo situaciju u kojoj trebate zamijeniti nekoliko vrijednosti, to može biti, na primjer, niz ili neučitano iz rezultata upita. Ovo je odabir u polju za unos 1c s više značenja.

Prvo dobivamo obrazac za odabir, prosljeđujemo "Element" (vlasnik) u parametrima, postavljamo oznaku načina odabira. Zatim stvaramo popis vrijednosti i niz, napominjemo da kao odabir prilikom postavljanja vrste usporedbe na popisu, objekt može biti prisutan samo s tipom ListValues. U niz dodajemo elemente, zatim taj niz učitavamo u Listu vrijednosti koju naknadno postavljamo u odabiru. Također, ne zaboravite omogućiti oznaku za korištenje ovog odabira i postaviti vrstu usporedbe.

Postavljanje odabira u polje za unos na obrascu u 1C 8.3, događaj Početak odabira

Sada razmotrimo odabir u polju za unos na upravljanom obrascu u 1C 8.3. Pronađimo na obrascu element koji nas zanima, u kojem ćemo postaviti odabir, u našem slučaju to je polje "Organizacija". Pronalazimo događaj “Start of Selection”, kliknemo na povećalo i nalazimo se u proceduri. Vidimo parametar Selection Data; ovaj parametar je tipa ValueList. Kako bismo ograničili odabir na potrebne elemente, moramo ispuniti Listu vrijednosti. Elemente možemo odabrati samo na poslužitelju, tako da stvaramo proceduru s &OnServer direktivom kompilacije. U ovom postupku ispunite podatke o odabiru.

Najbolji članci na temu