1s 8 lista de valori din listă

11.05.2020 Sfat

Foarte des este necesar să se permită utilizatorului să selecteze setările din formular (înainte de a face clic pe butonul „Run all”). Când trebuie să selectați o valoare din mai multe valori predefinite, este adesea folosită o listă verticală de valori 1C pe formular.

Lista drop-down de valori 1C pe formular - adăugați un câmp de selecție la formularul gros de client, specificați numele acestuia. Pentru a împiedica utilizatorul să modifice lista, debifați „Editare text” în proprietățile câmpului de selecție.

Vom adăuga lista de selecție în mod programatic în handlerul de formulare „La deschidere”. Câmpul de selecție are o listă subordonată de valori, FormItems.SelectionFieldName.ChoiceList, și pentru setarea valorii implicite și pentru definirea valorii selectate, FormItems.SelectionFieldName.Value:
Procedura OnOpen()

FormElements.ValueSelection.SelectionList.Clear();
Form Elements.Value Selection.Selection List.Add(0, "Create Document");
Elemente de formular.Selectare valori.Lista de selecție.Adăugați(1, „Editați document”);
Form Elements.Value Selection.Selection List.Add(2, "Delete document");
FormElements.ValueSelection.Value = 0;

Sfârșitul procedurii

Lista derulantă a valorilor 1C pe formular - în client slab Pe formular trebuie să creăm un atribut de formular în care vom stoca rezultatul, de exemplu cu tipul șir. Trageți-l pe formular.
Lista derulantă a valorilor 1C pe formular - Opțiunea 1)

  • Activați butonul de selecție a listei
  • În proprietatea Select List, faceți clic pe „...” și introduceți opțiunile
  • Rezultatul selecției va fi salvat în atributul selectat


Lista derulantă a valorilor 1C pe formular - Opțiunea 2)

  • Activați butonul de selecție a listei
  • Să adăugăm un handler pentru „Începutul selecției din listă”

&OnClient
Procedură SelectedValueStartSelectionFromList(Element, StandardProcessing)

Items.SelectedValue.SelectionList.Add(„Adăugați document”);
Items.SelectedValue.SelectionList.Add(„Editare document”);
Items.SelectedValue.SelectionList.Add("Șterge documentul");

Sfârșitul procedurii

Rezultatul este similar. Necesar dacă lista trebuie să fie completată cu referințe la cărți de referință/documente care nu sunt predefinite.

Lista derulantă a valorilor 1C pe formular - Opțiunea 3)

Această opțiune funcționează în mod similar, dar interfața arată diferit.

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 selectare în câmpul de intrare activat într-o formă gestionabilăî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.

Sintaxă completă (dați clic pentru a extinde)

ListValues

Descriere:

O listă de valori este un obiect care nu este stocat în baza de date, ceea ce vă permite să construiți pentru a rezolva problemele de interfață seturi dinamice valorile și manipulați-le (adăugați, editați, ștergeți elemente, sortați). Poate fi umplut cu valori de orice tip, de ex. Într-o listă, tipurile de valori stocate pot fi diferite. Un exemplu de utilizare a acestui obiect este organizarea selecției unui anumit document dintr-o listă de documente posibile generate folosind un algoritm complex.

Articole de colectie: ValueListElement

Este posibil ca un obiect să ocolească colecția folosind operatorul Pentru fiecare... Din... Ciclu. Parcursul selectează elementele colecției.

Este posibil să accesați un element de colecție folosind operatorul [...]. Indexul elementului este transmis ca argument ( numerotarea de la 0).

Proprietăți:

Metode:

Inserare (Index, Valoare, Reprezentare, Etichetă, Imagine) Inserții element nou la o listă de valori la poziția cu indicele specificat.SelectElement (Titlu, Element) Afișează o fereastră pentru selectarea interactivă a unuia dintre elementele incluse în lista de valori. Element- elementul la care lista de valori ar trebui să fie poziționată inițial în timpul selecției interactive. Dacă valoarea parametrului nu este un element din lista de valori inclus în această listă, poziționarea nu va avea loc.Descărcați Valori()Creează o matrice și copiază în ea valorile elementelor listei de valori.Adaugă (Valoare, Reprezentare, Etichetă, Imagine) Adaugă un nou element la sfârșitul listei de valori.LoadValues(ArrayValues) Încarcă o listă de valori cu valorile din matricea transmisă. În acest caz, toate elementele anterioare ale listei sunt șterse.Completați Note(Marc) Setează un marcaj pentru toate elementele listei de valori.Index(Element) Obține indexul unui element dintr-o listă de valori. Dacă nu este găsit, atunci este returnat -1.Count() Obține numărul de elemente din lista de valori.FindByValue(SearchValue) Caută valoarea unui element dintr-o listă de valori. Dacă niciun element nu stochează o valoare egală cu valoarea de căutare, atunci valoarea este returnată Nedefinit. Găsiți după ID(Identificator) Preluează lista de valori element cu identificator. Dacă elementul nu este găsit, atunci este returnat Nedefinit. MarkItems(Header) Setează sau debifează (interactiv) elementele din lista de valori. Se intoarce Adevărat, dacă butonul „OK” este apăsat în dialog, Minciună- in caz contrar.Clear() Șterge lista de valori, eliminând toate elementele din ea.ShowElementSelection(DescriptionNotificationsOnClosing, Title, Element) Afișează o fereastră pentru selectarea interactivă a unuia dintre elementele incluse în lista de valori.ShowMark Items(Descrierea alertelor de închidere, antet) Proiectat pentru setarea interactivă a stărilor de marcare pentru elementele listei de valori.Get(Index)Preluează valoarea după index. Funcționează similar cu operatorul.Shift (Element, Offset) Mută ​​un element din lista de valori înainte sau înapoi cu un anumit număr de poziții.Copy() Creează o copie a unei liste de valori.SortByValue(Directie) Sortează o listă de valori în ordine crescătoare sau descrescătoare a valorilor stocate de elemente. Vezi exemplul de mai jos.SortByView(Directie) Sortează lista de valori în ordine crescătoare sau descrescătoare în ordinea alfabetică a reprezentărilor elementelor incluse în lista de valori. Vezi exemplul de mai jos.Eliminare (Element) Îndepărtează un element dintr-o listă de valori, unde Element- indexul elementului de șters, sau elementul în sine.

Designeri:

Noua listă de valori
&OnClient Procedura ExecuteCode(Comandă) /// Cum se creează o listă de valori în 1s 8.3, 8.2 List = New ValueList; /// Cum să adăugați un element la lista de valori în 1s 8.3, 8.2 // adăugați parametrii metodei:// - sens // - performanță // - marcaj (obligatoriu) // - imagine (obligatoriu) Listă. Adăugați (1980, // valoarea elementului „Anul nașterii lui Vasya”// performanta ) ; Listă. Adăugați (1985, „Anul nașterii Iuliei”) ; // valorile pot fi tipuri diferite Listă. Adaugă(„Polina” , „Numele copilului” ) ; /// Cum se inserează un element într-o listă de valori în 1s 8.3, 8.2 // se introduce in pozitia nr. 2 (elementele sunt numerotate incepand de la 0) // element cu valoarea 2010 și reprezentare // „Anul în care s-a născut fiica lor comună” Listă. Inserare (2, 2010, „Anul în care s-a născut fiica lor comună”) ; /// Cum să ocoliți elementele listei de valori în 1s 8.3, 8.2 Pentru fiecare element din listă Raport buclă (Element. Reprezentare + ": " + String(Element. Valoare) ); EndCycle ; /// Cum să ștergeți lista de valori în 1s 8.3, 8.2 Listă. Clar() ; Listă. Adaugă ("luni"); Listă. Adaugă ("Marți"); Listă. Adaugă ("Miercuri"); /// Cum să aflați numărul de elemente dintr-o listă de valori, precum și /// obține un element de listă după indexul său în 1s 8.3, 8.2 // numerotarea de la zero Pentru Index = 0 Prin listă. Cantitate() - Raport 1 ciclu(Lista[Index]) ; EndCycle ; /// Cum să găsiți un element de listă după valoarea sa în 1s 8.3, 8.2 ValueTuesday = Listă. FindByValue ("Marți"); /// Cum să aflați indexul unui element dintr-o listă în 1s 8.3, 8.2 Raport(List.Index(ValueTuesday)) ; // 1, deoarece numerotarea începe de la zero /// Cum se sortează o listă după valorile sale în 1s 8.3, 8.2 // a fost: luni, marți, miercuri Listă. SortByValue(SortDirection.Descending) ; // a devenit: miercuri, luni, marţi /// Cum să eliminați un element dintr-o listă de valori în 1s 8.3, 8.2 // elimină primul element // parametru: element de listă // sau indexul elementului// puteți face această listă. Șterge(Lista[ 0 ]) ; // sau așa // List.Delete(0); /// Cum să mutați un element dintr-o listă de valori în 1s 8.3, 8.2 // mută elementul zero înainte cu o poziție // a fost: luni marți Listă. Mutare(0, 1); // a devenit: marți luni /// Cum se face o copie a unei liste în 1s 8 ListCopy = Listă. Copie() ; Culori = NewValueList; Culori. Adăugați ("Roșu"); Culori. Adaugă(„Verde”); Culori. Adaugă(„Albastru”); /// Cum să încărcați valorile listei într-o matrice în 1s 8.3, 8.2 ArrayColors = Culori. UnloadValues() ; /// Cum să încărcați valorile listei dintr-o matrice în 1s 8.3, 8.2 Culori. LoadValues(ArrayColors) ; Sfârșitul procedurii /// Cum se face o selecție fără model a unei valori dintr-o listă /// valorile în 1s 8.3, 8.2&În procedura clientului Cum se face o selecție de valori non-modală (comandă) Culori = Listă de valori nouă; Culori. Adăugați ("Roșu"); Culori. Adaugă(„Verde”); Culori. Adaugă(„Albastru”); // procedura AfterSelectingElement este definită chiar mai jos AlertAfterElementSelection = New DescriptionAlerts( „AfterElementSelection”, ThisObject ) ; Culori. ShowElementSelection( NotificationAfterElementSelection, „Alegeți culoarea preferată”); Sfârșitul procedurii &La procedura client după selectarea elementului (Element, Parametri) Export If Element<>Nedefinit Apoi Raport (Element.Value) ; EndIf ; Sfârșitul procedurii /// Cum se face o marcare fără model a valorilor dintr-o listă /// valorile în 1s 8.3, 8.2&Despre procedura clientului Cum se face o marcare non-modală a valorilor (comandă) Culori = Listă nouă de valori; Culori. Adăugați ("Roșu"); Culori. Adaugă(„Verde”); Culori. Adaugă(„Albastru”); // procedura AfterMarkingElements este definită chiar mai jos AlertAfterMarkingItems = New DescriptionAlerts( „AfterMarkingItems”, ThisObject ) ; Culori. ShowTagItems( AlertAfterTagItems, „Alegeți culorile preferate”); Culori. FillNotes(True) ; Sfârșitul procedurii și la procedura clientului după marcarea elementelor (elemente, parametri) Exportați dacă elemente<>Nedefinit Apoi, pentru fiecare culoare din ciclul elementelor dacă culoare. Mark Then Report(Color.Value) ; EndIf ; EndCycle ; EndIf ; Sfârșitul procedurii /// Cum se face o selecție modală a unei valori dintr-o listă în 1s 8.3, 8.2&În procedura clientului Cum se realizează o selecție de valori Modal (comandă) Culori = Listă de valori nouă; Culori. Adăugați ("Roșu"); Culori. Adaugă(„Verde”); Culori. Adaugă(„Albastru”); SelectColor = Culori. Selectați elementul( „Alegeți culoarea preferată”); Dacă SelectColor<>Nedefinit Apoi Raport (SelectColor.Value) ; EndIf ; Sfârșitul procedurii /// Cum se marchează modal valorile dintr-o listă /// valorile în 1s 8.3, 8.2&Despre procedura clientului Cum se face un marcaj modal de valori (comandă) Culori = Listă nouă de valori; Culori. Adăugați ("Roșu"); Culori. Adaugă(„Verde”); Culori. Adaugă(„Albastru”); Dacă Culori. MarkItems( „Alegeți culorile preferate”) Apoi, pentru fiecare culoare din ciclul de culoare dacă culoare. Mark Then Report(Color.Value) ; EndIf ; EndCycle ; EndIf ; // așa puteți seta toate marcajele simultan // listează la o anumită valoare Culori. FillNotes(True) ; Sfârșitul procedurii /// Descărcați și rulați aceste exemple pe computer