Počítače Okna Internet

1c nastavená hodnota výběrového seznamu

Úplná syntaxe (kliknutím rozbalíte)

Seznam hodnot

Popis:

Seznam hodnot je objekt, který se neukládá do databáze, což vám umožňuje vytvářet dynamické sady hodnot pro řešení problémů s rozhraním a manipulovat s nimi (přidávat, upravovat, mazat prvky, třídit). Může být naplněn hodnotami libovolného typu, tzn. typy uložených hodnot ve stejném seznamu se mohou lišit. Jedním z příkladů použití tohoto objektu může být organizace výběru konkrétního dokumentu ze seznamu možných dokumentů generovaného složitým algoritmem.

Sbírkové předměty: ItemListValues

Pro objekt je k dispozici procházení kolekce pomocí operátoru Pro každého... Od... Cyklus... Procházení vybere prvky kolekce.

Na prvek kolekce je možné odkazovat pomocí operátoru [...]. Index prvku je předán jako argument ( číslování od 0).

Vlastnosti:

Metody:

Vložit (Index, Hodnota, Zobrazit, Označení, Obrázek) Vloží nový předmět do seznamu hodnot na pozici se zadaným indexem.SelectElement (Title, Element) Vyvolá okno pro interaktivní výběr jednoho z prvků obsažených v seznamu hodnot. Živel- prvek, ke kterému by měl být seznam hodnot zpočátku umístěn během interaktivního výběru. Pokud hodnota parametru není prvkem seznamu hodnot obsažených v tomto seznamu, k umístění nedojde.Uvolnit hodnoty() Vytvoří pole a zkopíruje do něj hodnoty prvků seznamu hodnot.Přidat (hodnota, pohled, značka, obrázek) Přidá novou položku na konec seznamu hodnot.LoadValues(ArrayValues) Načte seznam hodnot s hodnotami z předaného pole. V tomto případě budou odstraněny všechny předchozí prvky seznamu.Vyplnit(Příznak) Označí všechny položky v seznamu hodnot.Index (Item) Získá index položky v seznamu hodnot. Pokud není nalezen, vrátí se -1.Count () Vrátí počet prvků v seznamu hodnot.FindByValue(LookupValue) Vyhledá hodnotu položky v seznamu hodnot. Pokud žádný prvek neukládá hodnotu rovnou požadované hodnotě, je vrácena hodnota Nedefinováno. FindBy ID(ID) Získá seznam hodnot položky podle ID. Pokud prvek není nalezen, vrátí se Nedefinováno. Zkontrolujte položky(Title) Označí nebo odškrtne (interaktivně) seznam položek hodnot. Návraty Skutečný pokud je v dialogovém okně stisknuto tlačítko "OK", Lhát- v opačném případě.Vymazat () Vymaže seznam hodnot odstraněním všech položek z něj.ShowSelectItem(DescriptionClose Alerts, Title, Element) Vyvolá okno pro interaktivní výběr jednoho z prvků obsažených v seznamu hodnot.ShowTelementsLabel(DescriptionClose Alerts, Title) Je určen pro interaktivní nastavení stavů označení pro prvky seznamu hodnot.Get (Index) Získá hodnotu na indexu. Funguje stejně jako operátor.Shift (Element, Offset) Posune prvek seznamu hodnot vpřed nebo vzad o zadaný počet pozic.Kopírovat () Vytvoří kopii seznamu hodnot.Seřadit podle hodnoty(Směr) Seřadí seznam hodnot vzestupně nebo sestupně podle hodnot uložených prvky. Viz příklad níže.Seřadit podle zobrazení(Směr) Seřadí seznam hodnot ve vzestupném nebo sestupném abecedním pořadí podle zastoupení položek v seznamu hodnot. Viz příklad níže.Odebrat (položka) Odebere položku ze seznamu hodnot, kde Živel- index prvku, který má být odstraněn, nebo prvek samotný.

Konstruktéři:

Nový seznam hodnot
& OnClient Procedure ExecuteCode (příkaz) /// Jak vytvořit seznam hodnot v 1c 8.3, 8.2 Seznam = Nový seznam hodnot; /// Jak přidat položku do seznamu hodnot v 1c 8.3, 8.2 // přidat parametry metody:// - význam // - výkon // - značka (volitelné) // - obrázek (volitelné) Seznam. Přidat (1980, // hodnota prvku "Vasya rok narození"// výkon); Seznam. Přidat (1985, "Yuliin rok narození") ; // hodnoty mohou být odlišné typy Seznam. Přidat ("Polina", "Jméno dítěte"); /// Jak vložit prvek do seznamu hodnot v 1s 8.3, 8.2 // vložte na pozici # 2 (prvky jsou číslovány od 0) // prvek s hodnotou 2010 a zobrazení // "Rok narození jejich společné dcery" Seznam. Vložit (2, 2010, „Rok narození jejich společné dcery“) ; /// Jak obejít prvky seznamu hodnot v 1c 8.3, 8.2 Pro každý prvek ze seznamu sestava cyklu (reprezentace prvku + ":" + řetězec (hodnota prvku)); Konec cyklu; /// Jak vymazat seznam hodnot v 1s 8.3, 8.2 Seznam. Průhledná (); Seznam. Přidat ("pondělí"); Seznam. Přidat ("úterý"); Seznam. Přidat ("středa"); /// Jak zjistit také počet prvků seznamu hodnot /// získá prvek seznamu podle jeho indexu v 1s 8.3, 8.2 // číslování od nuly Pro Index = 0 Podle seznamu. Množství () - 1 Zpráva o cyklu (Seznam [Index]); Konec cyklu; /// Jak najít položku seznamu podle její hodnoty v 1c 8.3, 8.2 ValueTuesday = Seznam. FindByValue ("úterý"); /// Jak zjistit index prvku v seznamu v 1s 8.3, 8.2 Zpráva (List. Index (Významné úterý)); // 1, protože číslování je od nuly /// Jak seřadit seznam podle jeho hodnot v 1c 8.3, 8.2 // bylo: pondělí, úterý, středa Seznam. Seřadit podle hodnoty (Směr řazení. Sestupně); // nyní: středa, pondělí, úterý /// Jak odstranit prvek ze seznamu hodnot v 1c 8.3, 8.2 // odstranění první položky // parametr: položka seznamu // nebo index prvku// můžete udělat tento seznam. Smazat (Seznam [0]); // nebo tak // Seznam. Smazat (0); /// Jak posunout prvek seznamu hodnot v 1s 8.3, 8.2 // posun nulového prvku o jednu pozici dopředu // bylo: pondělí úterý Seznam. Shift (0, 1); // stalo se: úterý pondělí /// Jak vytvořit kopii seznamu za 1s 8 Kopie seznamu = seznam. Kopírovat (); Barvy = nový seznam hodnot; Barvy. Přidat ("Červená"); Barvy. Přidat ("Zelená"); Barvy. Přidat ("Modrá"); /// Jak uvolnit hodnoty seznamu do pole v 1c 8.3, 8.2 Pole barev = barvy. UnloadValues ​​​​(); /// Jak načíst hodnoty seznamu z pole v 1c 8.3, 8.2 Barvy. LoadValues ​​​​(ArrayColors); Konec procedury /// Jak provést nemodální výběr hodnoty ze seznamu /// hodnoty v 1s 8,3, 8,2& Postup OnClient How toMakeNonmodalValueSelection (Command) Colors = NewList ofValues; Barvy. Přidat ("Červená"); Barvy. Přidat ("Zelená"); Barvy. Přidat ("Modrá"); // postup AfterSelectionElement je definován níže AlertAfterItemSelection = Nový popis upozornění ( "Po výběru položky", ThisObject); Barvy. ShowItemSelect (AlertAfterItemSelection, "Vyberte si svou oblíbenou barvu"); EndProcedure & OnClient Procedure AfterElementSelection (položka, parametry) Export If Item<>Undefined Then Report (Element. Value); EndIf; Konec procedury /// Jak nemodálně označit hodnoty ze seznamu /// hodnoty v 1s 8,3, 8,2& Postup OnClient Jak vytvořit nemodální hodnotyClicker (příkaz) barvy = NewList; Barvy. Přidat ("Červená"); Barvy. Přidat ("Zelená"); Barvy. Přidat ("Modrá"); // postup AfterSelectElements je definován níže AlertAfterElementsClicker = Nový popis upozornění ( "AfterCelementElements", ThisObject); Barvy. ShowElementClick "Vyberte si své oblíbené barvy"); Barvy. FillRemarks (pravda); EndProcedure & OnClient Postup po kontrole položek (položky, parametry) Export If položek<>Nedefinováno Pak pro každou barvu Z prvků Smyčka Pokud Barva. Zaškrtnout a poté nahlásit (hodnota barvy); EndIf; Konec cyklu; EndIf; Konec procedury /// Jak provést modální výběr hodnoty ze seznamu v 1c 8.3, 8.2& Postup OnClient How toModalValueSelection (Command) Barvy = Nový seznam hodnot; Barvy. Přidat ("Červená"); Barvy. Přidat ("Zelená"); Barvy. Přidat ("Modrá"); SelectColor = Barvy. Vybrat předmět ( "Vyberte si svou oblíbenou barvu"); Pokud VybColor<>Undefined Then Report (SelectColor. Value); EndIf; Konec procedury /// Jak vytvořit modální značku hodnot ze seznamu /// hodnoty v 1s 8,3, 8,2& OnClient Postup Jak vytvořitModalValuesList (příkaz) Barvy = NewList ofValues; Barvy. Přidat ("Červená"); Barvy. Přidat ("Zelená"); Barvy. Přidat ("Modrá"); Pokud Barvy. Zkontrolujte položky ( "Vyberte si své oblíbené barvy") Potom pro každou barvu z barevné smyčky, pokud barva. Zaškrtnout a poté nahlásit (hodnota barvy); EndIf; Konec cyklu; EndIf; // ale takto můžete nastavit všechny značky najednou // seznam na konkrétní hodnotu Barvy. FillRemarks (pravda); Konec procedury /// Stáhněte a spusťte tyto příklady na svém počítači

Na otevřít výběrový formulář s výběrem v 1s 8.2(běžné formy), musíme provést nějaké akce. Dostaneme to jako první. Poté nastavíme výběr a otevřeme jej programově, zde je příklad kódu:

Výběr na formuláři ve vstupním poli 1C 8.2 s několika hodnotami

Ve výše uvedeném příkladu jsme se podívali na jak nastavit výběr na výběrovém formuláři za konkrétní hodnotu. Nyní uvažujme situaci, kdy potřebujete dosadit několik hodnot, může to být například jak pole, tak vyložení z výsledku dotazu. Toto je výběr ve vstupním poli 1c s více významy.

Pro začátek dostaneme formulář výběru, v parametrech předáme "Prvek" (vlastník), nastavíme příznak režimu výběru. Poté vytvoříme seznam hodnot a pole, všimněte si, že jako výběr, když je v seznamu nastaven typ srovnání, může být objekt přítomen pouze s typem Seznam hodnot... Do pole přidáme prvky, toto pole pak načteme do Seznamu hodnot, který následně nastavíme ve výběru. Nezapomeňte také povolit příznak pro použití tohoto výběru a nastavit Porovnávací pohled.

Nastavení výběru ve vstupním poli na formuláři v 1C 8.3, událost StartSelection

Nyní zvažte výběr ve vstupním poli na řízeném formuláři v 1C 8.3... Najdeme ve formuláři prvek, který nás zajímá, ve kterém nastavíme výběr, v našem případě je to pole "Organizace". Najdeme událost „Select Start“, klikneme na lupu a ocitneme se v postupu. Vidíme parametr ChoiceData, tento parametr je typu ValuesList. Abychom výběr omezili na požadované prvky, musíme vyplnit Seznam hodnot. Prvky můžeme vybírat pouze na serveru, proto vytvoříme proceduru s direktivou kompilace & OnServer. V tomto postupu vyplníme Údaje o výběru.

Velmi často je potřeba na formuláři umožnit uživateli vybrat nastavení na formuláři (před stisknutím tlačítka "Spustit vše"). Když potřebujete vybrat jednu hodnotu z několika předdefinovaných, často se používá rozevírací seznam hodnot 1C ve formuláři.

Rozbalovací seznam hodnot 1C ve formuláři - přidejte pole výběru do tlustého formuláře klienta, zadejte jeho název. Chcete-li uživateli zabránit ve změně seznamu - zrušte zaškrtnutí políčka "Upravit text" ve vlastnostech pole výběru.

Samotný výběrový seznam bude přidán programově v obslužné rutině formuláře "OnOpening". Pole select má podřízený seznam valuesFormElements.ChoiceFieldName.ChoiceList a pro nastavení výchozí hodnoty a pro definování vybrané hodnotyFormElements.ChoiceFieldName.Value:
Otevřená procedura ()

FormElements.ValueSelection.ChoiceList.Clear ();
Form Elements.ValueSelection.ChoiceList.Add (0, "Nový dokument");
Form Elements.ValueSelection.ChoiceList.Add (1, "Změnit dokument");
Form Elements.ValueSelection.ChoiceList.Add (2, "Smazat dokument");
Form Elements.SelectValues.Value = 0;

Konec procedury

Rozbalovací seznam hodnot 1C na formuláři - v tenkém klientovi na formuláři je třeba vytvořit atribut formuláře, do kterého uložíme výsledek, například s typem řetězce. Přetáhněte jej na tvar.
Rozbalovací seznam hodnot 1C ve formuláři - Možnost 1)

  • Zapněte tlačítko pro výběr seznamu
  • Ve Vlastnost "Picklist" klikněte na "..." a zadejte možnosti
  • Výsledek výběru se uloží do vybraného atributu


Rozbalovací seznam hodnot 1C ve formuláři - Možnost 2)

  • Zapněte tlačítko pro výběr seznamu
  • Přidejte obslužnou rutinu "StartSelectionFromList".

& OnClient
Postup SelectedValueStartSelectFromList (položka, standardní zpracování)

Elements.SelectedValue.ChoiceList.Add ("Přidat dokument");
Elements.SelectedValue.ChoiceList.Add ("Upravit dokument");
Elements.SelectedValue.ChoiceList.Add ("Smazat dokument");

Konec procedury

Výsledek je podobný. Povinné, pokud má být seznam naplněn odkazy na adresáře / dokumenty, které nejsou předdefinovány.

Rozbalovací seznam hodnot 1C ve formuláři - Možnost 3)

Tato možnost funguje podobným způsobem, ale rozhraní vypadá jinak.