Software přidávání a změna prvků řízených forem. Přepínače, normální aplikace, formy formy 1c Switch Management Switch

1. Vstupní pole
2. vlajka
3. Přepínač

Vstupní pole

Vstupní pole je zpravidla spojeno s pohonem objektu a odráží jeho data. To je možná jeden z nejběžnějších prvků, má několik způsobů, jak si vybrat hodnotu:

Vyberte ze seznamu (Master BabySick)

Vyberte z jiného formuláře (vyberte tlačítko)

Ovládací tlačítka

Provádění výše uvedených příkladů nevyžaduje významný úsilí developera. Například pro režim seznamu musíte vyplnit seznam položek podle hodnot, vyberte z jiného formuláře, stačí jednoduše propojit ovládací prvek s daty adresáře. Ale pro ovládací tlačítka budete muset psát více kódu, na manipulaci s stiskem pro každé tlačítko, i když nebude skvělé:

Postup složky PVS (prvek, směr, standardní zpracování)
// vyberte data pro vstupní pole
// v tomto případě, příručka nomenklatury
Požadavek \u003d nový požadavek;
Request.text \u003d.
"VYBRAT
| Nomenklatura. Odkaz jako komodita
| Je
| Adresář. Nameerenclature jako nomenklatura
| Seřadit podle
| Nomenklatura. Kód ";
Tznomenclature \u003d dotaz. Fill (). Vyložení ();

// hledáme aktuální referenční položku uvedenou ve vstupním poli
Telement \u003d tznomenclature. Inite (prvek. Vztah);

Pokud TechElement \u003d nejistý
// Pokud jste položku nenajdete, pak nastavte číslo indexu
// mimo tabulku hodnot, protože První prvek v
// Tabulka hodnot má index 0
Tekindex \u003d -1;
v opačném případě
// Pokud je prvek zjištěn, že získá svůj index
Tekindex \u003d tznomenclature. Index (telebrus);
Skončil;

// vypočítat nový index v závislosti na klepnutí na tlačítko
// mínus před směru proměnné je v pořádku
// stisknutí horní šipky ukázal prvek stojící výše
// tedy s menším indexem
Nindex \u003d tekindex směr;

// Získejte počet položek v adresáři
// odečíst jednotku, protože Všechny sbírky v 8.1 začínají 0
Množství \u003d tznenenclature. Číslo () - 1;

Pokud nindex< 0 Или НовИндекс > Themelements pak.
// Pokud se index změní mimo tabulku hodnot
// tj. jeho počet většího největšího indexu nebo méně než 0
// nezměnit hodnotu a nahlásit to uživateli.
Zpráva ("Dosáhli jste limitu adresářů");
v opačném případě
// Přiřadit novou hodnotu "Product" - Toto je název tabulky sloupců hodnot
Prvek. POPIS \u003d tznomklature. Nalijte (nindex).
Skončil;

Extrudrtves

Vlajka

Ve většině programů slouží zaškrtávací políčko pro zobrazení dvou stavů: nainstalován, odstraněn. Zaškrtávací políčko 1C má tři stavy, ve třetím stavu se zobrazí zaškrtávací políčko - jako nainstalovaný a ve stejnou dobu stínování. Tři státy jsou k dispozici pouze v případě, že informace vlajky jsou číslo, a státy mají následující hodnoty:

Přepínač

Switch se používá k výběru jedné hodnoty velké číslo (Nejlépe ne více než pět), hodnoty nelze kombinovat, například vhodné pro výběr lidské podlahy. Dalším příkladem: Předpokládejme, že firma dává jednu z 3 slev na zboží, zatímco slevy nejsou shrnuty:

V tomto případě může být snadnost použití přepínačů, že každý z nich může mít určitou hodnotu, která je nastavena v vlastnost "Volitelná hodnota". A pak "5% sleva" může ukládat 5 nebo 0,05.

Při použití přepínačů je důležité zapamatovat si tři věci:

      První přepínač by měl být vlastnost "První příkaz" (v tomto příkladu je to 5% slevový přepínač).

      Přepínače související s významem jedné skupiny musí při nastavování objednávky na řádek jít v řadě, bez přerušení s jinými prvky formuláře. Obchodování je nastaveno z nabídky "Formulář -\u003e Nastavení" pro tento příklad to vypadá takto:

  1. Typ zvolené hodnoty je nastaven na přepínači s vlastností "První vlastnost".

Přepínače (jsou to Radiobutttons) v 1C 7.7 jsou implementovány velmi zvláštní. Za prvé, měli byste zvážit skutečnost, že vždy tvoří skupinu (v jediném přepínači není žádný bod). V 1C Explicitní komunikace mezi prvky skupiny není. První prvek se odlišuje ve skupině, pro kterou je identifikátor indikován (může to být numerické rekvizity objektu metadat). Příznivka jiných přepínačů Skupina se stanoví vynecháním.

Když otevřete formulář, musí být hodnota přepínače inicializována, protože V opačném případě nebude zahrnut žádný z prvků skupiny, která není správná.

Ve standardní konfiguraci 1C je inicializace přepínačů implementována následovně: Podnik (kopírování) Postup // Inicializace jiných peněžních údajů \u003d 1; Extrudresses // Enterprise. Zdá se, že je to dost jednoduché, ale pokud se domníváte, že v první řadě ve skupině přepínačů je obvykle nejvyhledávanější, by mohla inicializovat a na obráběcích strojích plošiny.

Podle mého názoru je hlavní nevýhodou spínače, že na výstupu dostaneme neosobní numerickou hodnotu, na rozdíl od přenosu. Bohužel, v 1C 7.7 není typický způsob, jak reprezentovat výčet spínačů. Existuje však alternativa k tomu - použití předdefinovaných proměnných (podobné konstanty v jiných programovacích jazycích).

Zvažte příklad použití hodnoty spínače: Pokud měna \u003d 2, pak Mecksaw \u003d účet ("50.11"); Jinak, Meckars \u003d vypořádání účtu ("50.1"); Skončil; Chcete-li pochopit tento kód, musíte jít do formuláře a určit, že "měna" rekvizity je identifikátorem prvního prvku ve skupině "Cash Comm". Skupina se skládá z 2 prvků: "Rubl (CT 50.1)" a "měna (CT 50.11)". Teprve poté, co je jasné, že v rozporu s obvyklou logikou, "Měna \u003d 2" je znakem sady měnových boxů a "měny \u003d 1 nebo 0" - rubl.

Je možné zjednodušit pochopení kódu pomocí definice proměnných modulu formuláře se jmény a hodnotami odpovídajícími polohách přepínače. Pro tento příklad by to bylo proměnné: Změna přípravku KTYCHKASSA_RUP, KTIKAASSA_VALO;

V inicializační jednotce modulu určujeme jejich hodnoty: Ktikaassa_rup \u003d 1; Ktikaassa_valo \u003d 2;

Výsledkem je, že zdrojový kód je převeden na mysl: Je-li měna \u003d ktihiffs_valutny pak counter \u003d účet ("50.11"); Invalita měna \u003d ktihiqassa_rup, pak metr \u003d účet ("50.1"); Jinak varování ("není zadáno typ pokladny."); Skončil;

Závěrem se chci poznamenat, že podle mého názoru dává vytváření skupin přepínačů smysl pouze v případě, že ve skupině není více než 4 (maximálně 5%) prvků. V opačném případě má smysl použít pole se seznamem, protože Na formuláři bude trvat výrazně méně místa.

Přidáme skupinu rámec do formuláře a umístíte přepínače pomocí formuláře Položka menu -\u003e Vložte ovládací prvek ... a v okně, které se otevře, vyberte přepínače:

Na pravé straně okna přidejte hodnotu přepínače tolik, kolik potřebujeme, vložte zaškrtnutí na "Akcie - první ve skupině", takže tento přepínač je vybrán automaticky.

Po přidání přepínačů vyberte typ dat pro první hodnotu "akcií", v našem případě přiřadit hodnotu "Tipple":

A Samotná hodnota přepínače je zadána do datových dat -\u003e Vybrané hodnoty. Pro propagaci je to 0, dluhopisy - 1, poznámky - 2 a páry - 3. Ale před zavedením těchto dat je nutné zkontrolovat pořadí.

Pokud přepínače nejsou v pořádku, pak se přepínání nebude provedeno, to znamená, že nebudeme moci vybrat hodnotu vazby. Chcete-li tuto funkci povolit, musíte vybrat menu tvaru -\u003e Nastavení objednávky objednávky a všechny přepínače jsou v pořádku.

Zkontrolujte hodnotu vybraných přepínačů po opravě objednávky.

Zůstane pouze v události "Promotion". Napište kód programu:

Pokud tipple \u003d 0

Neoperativně \u003d 1

Etform.ElementForms. Účet. Solonki.nd. Dostupnost \u003d 1; // Pouze pro dluhopisy umožňují nkd

InoperativeIPC \u003d 2 pak

Etform. Elektromemforma. Přístup. Solonk.nd. Dostupnost \u003d 0;

Necescessibepsb \u003d 3 pak

Etform. Elektromemforma. Přístup. Solonk.nd. Dostupnost \u003d 0;

Skončil;

Nyní, při výběru přepínače "Bond" je možné upravit hodnotu sloupce NKD.

Četl jsem mnoho fór a nikde neviděl srozumitelný popis práce s "spínačem". Tak jsem se rozhodl psát sám sebe.

Podle mého názoru je nejčastějším výskytem nesprávným zobrazením "přepínače". Když umístíte několik "přepínačů", například 3, na formuláři, pak mnozí se domnívají, že v logice programu jsou 3 různé objekty, které se navzájem ovlivňují. Ale ve skutečnosti program vnímá všechny 3 "přepínače" jako jeden objekt. A volba jednoho z nich mění stav tohoto objektu. Zvážit příklad.

1. Vytvořte tři přepínače formuláře. Pro pohodlí nebudeme měnit jména.
2. Zvýrazněte "Switch1". Ve svém vlastnictví v sekci "Základní" zkontrolujte první ve skupině. "Typ hodnoty" Vyberte číslo. (Dále zvažte, proč přesně číslo). Délka může být dodána se stejnou jednotkou, ale to neposkytuje konkrétní funkčnost.
3. Vyberte "Switch2" ve sloupci "Volitelná hodnota", kterou dáme 1.
4. Vyberte "Switch3" ve sloupci "Volitelná hodnota", kterou budeme dávat 2.
V podstatě 3 a 4. akcemi jste nainstalovali vlajku, která se změní při výběru odpovídajícího "přepínače". V "Switch1" na výchozí "zvolenou hodnotu" je nula.
5. Zkontrolujte, zda jsou přepínače v pořadí "obejít" v pořadí. (například: 13,14,15) (obr. 1). Existuje neoddělitelný příkaz spínačem přepínačem. Zahrnuje obvod obvodu (polohy jsou číslovány 13, 15, 20) (obr. 2) v tomto případě přepínače nebudou pracovat v sobě. Nebude používat k odstranění použití objednávky z formuláře.

Jak nastavit postup bypassu podrobnosti. Být ve formuláři, v menu "Dialog", musíte odstranit nabídku "Automatický postup bypass". Poté můžete buď použít "Dialog" -\u003e "Nastavení objednávky objednávky" nebo "Dialog" -\u003e "Bypass Order". Nejvhodnější, zdá se mi druhým způsobem. V této metodě se každé detaily zobrazí obrázek s podrobnostmi. Můžete kliknout pouze na myši v číslech, výběr rekvizit v pořadí, které potřebujete.

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

6. Zvýrazňujeme "Switch1" a napište postup, který potřebujete.
Například:

EF \u003d ElementForms; Pokud se přepínač1 \u003d 0 pak EF.The provádí. Schedule \u003d "nedokončený"; Inspektofikovaný spínač1 \u003d 1 pak EF. Vodivost. Známky \u003d "částečně placené"; Inspecifikovaný spínač1 \u003d 2 pak EF. Provádění. Platba. Přístup \u003d "zaplaceno"; Skončil;

7. Klikněte na F7. Klikněte na F5. Vidíme vše, co dobře pracujeme. A velký šéf nám dává prémii.

Vysvětlení koda

Proč je tam "spínač1" všude? Vzhledem k tomu, že již bylo řečeno, program vnímá všechny tři prvky jako jeden, a protože "Switch1" je první ve skupině, pak jeho program a vnímá jako celý prvek, pokud vložíte hlavní ve skupině "Switch2", Ověření pokyny musí být provedeno "Switch2".
No, odkud "0", "1", "2"? Tyto hodnoty, které přijímají objekt při přepínání "přepínačů", stanovujeme je v odstavci 3 a 4.

Doslov:

Tento kód je uveden jako příklad práce s přepínači. Podle mého názoru tak jasněji a srozumitelnější. Ale stojí za zmínku, že v "Typosal" si můžete vybrat najednou, co je potřeba - předem určená hodnota adresáře, přenosu, například nebo hodnota řetězce. To je v určeném příkladu, bylo možné okamžitě přiřadit přepínačům jako hodnoty ne 0.1.2, ale okamžitě "nezaplacené", "částečně zaplaceno", zaplaceno ". A pak bude kód snížen v jednom řádku:

Elementy. Provádění. Platba. Popis \u003d spínač1;

Výsledek práce bude stejný.

//////////////////////////////////////////////////////////////////////////////////////////

Přepínače v řízených formách (UV) byly intuitivnější.

Při vytváření přepínače musíte si pamatovat binární rekvizity, prvek formuláře.
Nejdříve potřebujete, vytvářet formuláře. Zadejte příkaz rekvizity, takové hodnoty obdrží váš přepínač. Vybral jsem typ řetězce. Zde máte dvě možnosti: Pokud jste vytvořili rekvizity objektu, bude hodnota přijatá přepínačem uložena v databázi, pokud jednoduše přidáte do seznamu podrobností formuláře, pak výsledek přijatý přepínačem nebude uložen .

Dále přetáhněte potřeby, které potřebujete v elementárech. Při vytváření prvku formuláře bude položka v zobrazení vlastností "mít typ" vstupního pole ". Vyberte ze seznamu "Switch". V důsledku toho budete mít podobu přibližně následujícího typu:


Vyplňte titulek tvaru prvku, barvy, písma, umístění a další krásnou chuť.
Ve vlastnostech prvku formuláře je předmět. "Seznam výběru" - v něm spusťte hodnoty, které váš přepínač obdrží při výběru jedné nebo jiné položky. V mém příkladu jsem přidal řádky s hodnotami "Write", "Zrušení vědy", "chování".

Poté je přepínač připraven k práci.

V závislosti na tom, zda je spínač propagací objektu nebo podrobnosti formuláře pro získání hodnot uložených v něm, používáte následující kód:

Přepínač ElectronFormelertForms // Použít přímo, pokud to rekvizí forma objektu. Transmissivight // Odvolání prostřednictvím položky objektu. Na vaše detaily.

1C je vytvořen systém automaticky při použití aplikované řešení. Jsou základem prezentace (zobrazení) informací v systému "1C: Enterprise".

Forma 1C struktura

Formulář B je logický popis složení formy. Prvky popisují, jak bude formulář vypadat. Umístění prvků formuláře se provádí automaticky při zobrazení.

Zobrazená část formuláře (viditelná pro uživatele) je popsána jako strom, včetně prvků formuláře (viz obr. Níže uvedené pole "):

  • skupiny včetně jiných prvků
  • vstupní pole
  • zaškrtávací políčka
  • přepínače,
  • knoflíky
  • tabulky, které zahrnují sloupce prvků atd.

"Formulář 1c" prvky "

[Kolaps]

Skupina prvků formulářů může vypadat jako

  1. panel s rámem,
  2. panel se stránkami (záložky),
  3. vlastně stránku,
  4. příkazový panel.

Veškerá formalita formuláře je popsána ve formuláři:

  • podrobnosti (data, se kterou forma funguje);
  • příkazy (provedená akce).

Nastavení vzhledu řízeného formuláře

Nastavení externího typu uživatelského uživatele

Nastavení externí pohled Spravovaná forma může být provedena na úrovni uživatele. Pro tuto funkci v akcích formuláře existuje "Still" příkaz - "Změnit formulář" (řízení pouze těmito prvky formuláře, které jsou definovány během fáze vývoje nebo podle standardního formuláře Autogeneračních pravidel).

"Více" - "Změnit tvar"

Tým "více" - "Změnit tvar":

Po kliknutí na tlačítko "Změnit tvar" zobrazuje okno Nastavení formuláře 1C:

[Kolaps]

Kromě toho, v uživatelském režimu je možné:


  • změňte pořadí formulářů, přenést je z jednoho sloupce do jiného (pokud je plocha uspořádána ve dvou sloupcích), ale nemůžete změnit počet sloupců na ploše;
  • zobrazení informací ve formě jednotlivých oken (při volání navigačního příkazu musíte držet klávesu Shift).

Pokud jsou použity oddíly, poté při volání příkazu v navigačním podokně, seznam odpovídá, je zobrazen v pracovním prostoru, nahrazení předchozího obsahu pracovního prostoru.

Nastavení vzhledu zařízení spravovaného vývojářem

Vývojář může ovlivnit umístění prvků. různá instalace. To může určit pořadí prvků, označují jejich šířku a výšku a také:

  • příkazy samotného tvaru;
  • globální příkazy používané v celé konfiguraci;
  • parametrizované příkazy, které otevře jiné formuláře, s přihlédnutím ke konkrétním údajům aktuálního formuláře.

Obrázek (změna ve formě 1C vývojář)

[Kolaps]

Při vývoji formuláře 1C je nutné:

  1. v editoru formuláře patří nezbytné podrobnosti a příkazy ve formuláři;
  2. vytvořit formulář zobrazující je, určit pořadí prvků, zadejte šířku a výšku (v případě potřeby);
  3. kompletní prvky ve skupinách (v případě potřeby).
  1. Použijte nastavení pro přehrávání rolí v prvcích formuláře (zobrazení a úpravy softwaru Podrobnosti o softwaru, viditelnost uživatelských polí pole tvaru pole, používání příkazů pro role) v případě velkého počtu rolí v konfiguraci (z několika desítek). Namísto toho postupujte podle následujících přístupů:
    • se silnými rozdíly ve vzhledu a funkčnosti formuláře v závislosti na dostupnosti určitých rolí od uživatele - rozvíjet jednotlivé formyspecializovaný pro konkrétní sadu uživatelských práv;
    • s menšími rozdíly - proveďte validaci práv v kódu. Mělo by to být na paměti, že správa softwaru Viditelnost může snížit rychlost tvorby formy, která by měla být zohledněna při výběru mezi navrhovanými přístupy.
  2. Použijte nastavení pro přehrávání rolí v rozhraní Configuration Command, příkazového rozhraní hlavní části, stejně jako pracovní prostor základní stránka. Místo toho použijte nastavení práv na oddíly příkazového rozhraní a objekty zahrnuté příkazové rozhraní nebo do pracovního prostoru. To vám umožní zvýšit předvídatelnost chování. spravované rozhraní Pro uživatele, stejně jako zjednodušení vyšetřování chyb.

Pro více informací o práci s formami v kurzu "Práce s formuláři v" 1C: Enterprise 8.3 ", http://www.1c.ru/partners/training/uc1/course.jsp?id\u003d161.