1s 8 popis vrijednosti s popisa

11.05.2020 Savjet

Vrlo često je potrebno dopustiti korisniku odabir postavki na obrascu (prije klika na gumb “Pokreni sve”). Kada trebate odabrati jednu vrijednost iz nekoliko unaprijed definiranih, često se koristi padajući popis 1C vrijednosti na obrascu.

Padajući popis 1C vrijednosti na obrascu - dodajte polje za odabir debelom obrascu klijenta, navedite njegovo ime. Kako biste spriječili korisnika da mijenja popis, poništite opciju "Uređivanje teksta" u svojstvima polja za odabir.

Dodat ćemo sam popis odabira programski u obradi obrasca "Pri otvaranju". Polje odabira ima podređeni popis vrijednosti, FormItems.SelectionFieldName.ChoiceList, i za postavljanje zadane vrijednosti, te za definiranje odabrane vrijednosti, FormItems.SelectionFieldName.Value:
Procedura OnOpen()

FormElements.ValueSelection.SelectionList.Clear();
Elementi obrasca.Odabir vrijednosti.Popis odabira.Dodaj(0, "Stvori dokument");
Elementi obrasca.Odabir vrijednosti.Popis odabira.Dodaj(1, "Uredi dokument");
Elementi obrasca.Odabir vrijednosti.Popis odabira.Dodaj(2, "Izbriši dokument");
FormElements.ValueSelection.Value = 0;

Kraj postupka

Padajući popis 1C vrijednosti na obrascu - u tanak klijent Na obrascu trebamo kreirati atribut forme u koji ćemo pohraniti rezultat, npr. s tipom string. Povucite ga na obrazac.
Padajući popis 1C vrijednosti na obrascu - Opcija 1)

  • Omogućite gumb za odabir popisa
  • U svojstvu Select List kliknite "..." i unesite opcije
  • Rezultat odabira bit će spremljen u odabrani atribut


Padajući popis 1C vrijednosti na obrascu - opcija 2)

  • Omogućite gumb za odabir popisa
  • Dodajmo rukovatelj za “Početak odabira s popisa”

&NaKlijentu
Procedura SelectedValueStartSelectionFromList(Element, StandardProcessing)

Items.SelectedValue.SelectionList.Add("Dodaj dokument");
Items.SelectedValue.SelectionList.Add("Uredi dokument");
Items.SelectedValue.SelectionList.Add("Izbriši dokument");

Kraj postupka

Rezultat je sličan. Obavezno ako se popis treba popuniti referencama na referentne knjige/dokumente koji nisu unaprijed definirani.

Padajući popis 1C vrijednosti na obrascu - opcija 3)

Ova opcija radi slično, ali sučelje izgleda drugačije.

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. Dodamo elemente nizu, zatim učitamo taj niz u Listu vrijednosti koju naknadno postavimo u izbor. 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 u upravljivom obliku 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.

Puna sintaksa (kliknite za proširenje)

ListValues

Opis:

Popis vrijednosti je objekt koji nije pohranjen u bazi podataka, što vam omogućuje izgradnju za rješavanje problema sa sučeljem dinamički skupovi vrijednosti i manipulirati njima (dodavati, uređivati, brisati elemente, sortirati). Može se ispuniti vrijednostima bilo koje vrste, tj. Na jednom popisu vrste pohranjenih vrijednosti mogu biti različite. Jedan primjer korištenja ovog objekta je organiziranje odabira određenog dokumenta s popisa mogućih dokumenata generiranih pomoću složenog algoritma.

Stavke zbirke: ValueListElement

Moguće je da objekt zaobiđe kolekciju pomoću operatora Za svaki... Od... Ciklus. Traversal odabire elemente zbirke.

Moguće je pristupiti elementu zbirke koristeći [...] operator. Indeks elementa prosljeđuje se kao argument ( numeracija od 0).

Svojstva:

Metode:

Umetni (indeks, vrijednost, prikaz, oznaka, slika) Umetci novi element na popis vrijednosti na poziciji s navedenim indeksom.SelectElement (Naslov, Element) Poziva prozor za interaktivni odabir jednog od elemenata uključenih u popis vrijednosti. Element- element na koji se inicijalno treba pozicionirati popis vrijednosti tijekom interaktivnog odabira. Ako vrijednost parametra nije element popisa vrijednosti uključen u ovaj popis, pozicioniranje se neće dogoditi.UnloadValues() Stvara niz i kopira vrijednosti elemenata popisa vrijednosti u njega.Add(Value, Representation, Label, Image)Dodaje novi element na kraj popisa vrijednosti.LoadValues(ArrayValues) Učitava popis vrijednosti s vrijednostima iz proslijeđenog niza. U tom slučaju se brišu svi prethodni elementi popisa.Ispunite Bilješke(Označi) Postavlja oznaku za sve elemente popisa vrijednosti.Indeks(Element) Dobiva indeks elementa na popisu vrijednosti. Ako nije pronađeno, vraća se -1.Count() Dobiva broj elemenata na popisu vrijednosti.FindByValue(SearchValue) Traži vrijednost elementa na popisu vrijednosti. Ako niti jedan element ne pohranjuje vrijednost jednaku traženoj vrijednosti, vrijednost se vraća Nedefiniran. Traži po ID-u(Identifikator) Dohvaća element popisa vrijednosti po identifikatoru. Ako element nije pronađen, onda se vraća Nedefiniran. MarkItems(Zaglavlje) Postavlja ili poništava (interaktivno) stavke na popisu vrijednosti. Povratak Pravi, ako se u dijaloškom okviru pritisne gumb "OK", Laž- inače.Clear() Briše popis vrijednosti, uklanjajući sve elemente s njega.ShowElementSelection(DescriptionNotificationsOnClosing, Title, Element) Poziva prozor za interaktivni odabir jednog od elemenata uključenih u popis vrijednosti.ShowMark stavke(Opis upozorenja za zatvaranje, zaglavlje) Dizajnirano za interaktivno postavljanje stanja oznaka za elemente popisa vrijednosti.Get(Index)Dohvaća vrijednost prema indeksu. Radi slično kao operater.Shift (Element, Offset) Pomiče element s popisa vrijednosti unaprijed ili unatrag za određeni broj pozicija.Copy() Stvara kopiju popisa vrijednosti.Poredaj po vrijednosti(Smjer) Razvrstava popis vrijednosti uzlaznim ili silaznim redoslijedom vrijednosti pohranjenih od strane elemenata. Pogledajte primjer u nastavku.SortByView(Smjer) Razvrstava popis vrijednosti uzlaznim ili silaznim redoslijedom abecednim redoslijedom prikaza elemenata uključenih u popis vrijednosti. Pogledajte primjer u nastavku.Ukloni (element) Uklanja element s popisa vrijednosti, gdje Element- indeks elementa koji se briše ili samog elementa.

Dizajneri:

Novi popis vrijednosti
&OnClient procedura ExecuteCode(Command) /// Kako stvoriti popis vrijednosti u 1s 8.3, 8.2 Popis = Nova lista vrijednosti; /// Kako dodati element na popis vrijednosti u 1s 8.3, 8.2 // dodaj parametre metode:// - značenje // - izvođenje // - oznaka (obavezno) // - slika (obavezno) Popis. Dodaj (1980, // vrijednost elementa "Godina Vasjinog rođenja"// izvođenje ) ; Popis. Dodaj(1985, "Godina Julijinog rođenja") ; // vrijednosti mogu biti različiti tipovi Popis. Dodaj("Polina" , "Ime djeteta" ) ; /// Kako umetnuti element u popis vrijednosti u 1s 8.3, 8.2 // umetnuti na poziciju br. 2 (elementi su numerirani počevši od 0) // element s vrijednošću 2010 i reprezentacijom // "Godina rođenja njihove zajedničke kćeri" Popis. Umetni (2, 2010., "Godina kada je rođena njihova zajednička kći") ; /// Kako zaobići elemente popisa vrijednosti u 1s 8.3, 8.2 Za svaki element iz popisa Loop Report( Element. Representation + ": " + String(Element. Value) ) ; Kraj ciklusa ; /// Kako očistiti popis vrijednosti u 1s 8.3, 8.2 Popis. Čisto() ; Popis. Dodaj("ponedjeljak"); Popis. Dodaj("utorak"); Popis. Dodaj("srijeda" ); /// Kako saznati broj elemenata popisa vrijednosti, kao i /// dobiti element popisa po njegovom indeksu u 1s 8.3, 8.2 // numeriranje od nule Za indeks = 0 prema popisu. Količina() - Izvješće 1 ciklusa(Lista[Indeks]) ; Kraj ciklusa ; /// Kako pronaći element popisa prema njegovoj vrijednosti u 1s 8.3, 8.2 ValueTuesday = Popis. FindByValue("utorak"); /// Kako saznati indeks elementa na listi u 1s 8.3, 8.2 Izvješće(List.Index(ValueTuesday)) ; // 1, jer numeriranje počinje od nule /// Kako sortirati popis prema njegovim vrijednostima u 1s 8.3, 8.2 // bio je: ponedjeljak, utorak, srijeda Popis. Sortiraj poVrijednosti(Smjer sortiranja. Silazno) ; // postalo: srijeda, ponedjeljak, utorak /// Kako ukloniti element s popisa vrijednosti u 1s 8.3, 8.2 // ukloniti prvi element // parametar: element liste // ili indeks elementa// možete napraviti ovaj popis. Obriši(Popis[ 0 ]) ; // ili tako // List.Delete(0); /// Kako pomaknuti element popisa vrijednosti u 1s 8.3, 8.2 // pomaknite nulti element jednu poziciju naprijed // bio je: ponedjeljak utorak Popis. Premjesti(0, 1); // postalo: utorak ponedjeljak /// Kako napraviti kopiju popisa u 1s 8 ListCopy = Popis. Kopiraj() ; Boje = NewValueList; Boje. Dodaj("Crveno" ); Boje. Dodaj("Zeleno" ); Boje. Dodaj("Plavo" ); /// Kako učitati vrijednosti popisa u polje u 1s 8.3, 8.2 ArrayColors = Boje. UčitajVrijednosti() ; /// Kako učitati vrijednosti popisa iz polja u 1s 8.3, 8.2 Boje. Učitaj vrijednosti(Boje niza) ; Kraj postupka /// Kako napraviti nemodalni odabir vrijednosti s popisa /// vrijednosti u 1s 8.3, 8.2&Na klijentovom postupku Kako napraviti odabir nemodalne vrijednosti (naredba) Boje = Nova lista vrijednosti; Boje. Dodaj("Crveno" ); Boje. Dodaj("Zeleno" ); Boje. Dodaj("Plavo" ); // procedura AfterSelectingElement definirana je ispod AlertAfterElementSelection = New DescriptionAlerts( "Nakon odabira elementa", OvajObjekt ); Boje. ShowElementSelection( NotificationAfterElementSelection, "Odaberi svoju omiljenu boju") ; Kraj procedure &na klijentskoj proceduri nakon odabira elementa (element, parametri) Izvoz ako elementa<>Undefined Then Report(Element.Value) ; Završi ako ; Kraj postupka /// Kako napraviti bezmodno označavanje vrijednosti s popisa /// vrijednosti u 1s 8.3, 8.2&Na klijentovom postupku Kako napraviti nemodalno označavanje vrijednosti (naredba) Boje = Novi popis vrijednosti; Boje. Dodaj("Crveno" ); Boje. Dodaj("Zeleno" ); Boje. Dodaj("Plavo" ); // procedura AfterMarkingElements definirana je ispod AlertAfterMarkingItems = New DescriptionAlerts( "Nakon označavanja stavki", OvajObjekt ); Boje. ShowTagItems( AlertAfterTagItems, "Odaberi svoje omiljene boje") ; Boje. FillNotes(True) ; Kraj procedure &na klijentskoj proceduri nakon označavanja elemenata (elemenata, parametara) Izvezi ako elemente<>Undefined Zatim za svaku boju iz Elements Cycle If Color. Označi zatim prijavi(Boja.Vrijednost) ; Završi ako ; Kraj ciklusa ; Završi ako ; Kraj postupka /// Kako napraviti modalni odabir vrijednosti s popisa u 1s 8.3, 8.2&Na klijentovom postupku Kako napraviti ModalValueSelection(Command) Colors = New ValueList; Boje. Dodaj("Crveno" ); Boje. Dodaj("Zeleno" ); Boje. Dodaj("Plavo" ); SelectColor = Boje. Odaberite stavku ( "Odaberi svoju omiljenu boju") ; Ako SelectColor<>Undefined Then Report(SelectColor.Value) ; Završi ako ; Kraj postupka /// Kako modalno označiti vrijednosti s popisa /// vrijednosti u 1s 8.3, 8.2&Na klijentovom postupku Kako napraviti modalnu oznaku vrijednosti (naredba) Boje = Novi popis vrijednosti; Boje. Dodaj("Crveno" ); Boje. Dodaj("Zeleno" ); Boje. Dodaj("Plavo" ); Ako Boje. MarkItems( "Odaberi svoje omiljene boje") Zatim za svaku boju iz ciklusa boja Ako je boja. Označi zatim prijavi(Boja.Vrijednost) ; Završi ako ; Kraj ciklusa ; Završi ako ; // ovako možete postaviti sve oznake odjednom // popis na određenu vrijednost Boje. FillNotes(True) ; Kraj postupka /// Preuzmite i pokrenite ove primjere na svom računalu