1s 8 popis vrijednosti s popisa
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:
Dizajneri:
&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 |