O gastrointestinálních onemocněních

V následujících situacích 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 jak nastavit výběr ve výběrovém formuláři podle konkrétní hodnoty. Nyní se podíváme na situaci, kdy potřebujete nahradit několik hodnot, může to být například pole nebo uvolněné z výsledku dotazu. Toto je výběr ve vstupním poli 1c s více významy.

Nejprve získáme 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šimneme si, že jako výběr při nastavování typu porovnání v seznamu může být objekt přítomen pouze s typem ListValues. 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 typ porovnání.

Nastavení výběru ve vstupním poli na formuláři v 1C 8.3, Událost Začátek výběru

Nyní uvažujme výběr ve vstupním poli na spravované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 “Start výběru”, klikneme na lupu a ocitneme se v postupu. Vidíme parametr Data výběru, tento parametr je typu ValueList. Abychom výběr omezili na potřebné 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 vyplňte Údaje o výběru.

/
Vývojáři /
Kódovací konvence

Nastavení možností výběru a přidružení možností výběru pro objekty metadat

1. Omezení obchodní logiky, jako jsou omezení výběru, musí být zpravidla stejné pro všechny formuláře, ve kterých je určitý objekt upravován. Proto se doporučuje nastavit parametry výběru a vazby mezi parametry výběru ve vlastnostech objektů metadat - v detailech adresářů, dokumentů atp.

2. Mohou však nastat případy, kdy omezení výběru mohou záviset na konkrétním provozním scénáři. V takových případech mohou být parametry výběru specifikovány lokálně, ve specifickém formuláři.

Například konfigurace obsahuje

  • adresář Zaměstnanci, který obsahuje podrobnosti Organizace A Typ zaměstnance(výčet s hodnotami Základní/Pracovník na zkrácený úvazek);
  • dokument Objednávka na přijetí, který obsahuje rekvizity Organizace A Zaměstnanec; zároveň za rekvizity Zaměstnanec dokument Objednávka na přijetí připojení parametru výběru je specifikováno Výběr. Organizace s rekvizitami Organizace.

Vyžaduje se implementace možnosti výběru pouze klíčových zaměstnanců v závislosti na hodnotě funkční varianty VybertePouzeOdZákladyZaměstnanci. K tomu je to nutné

  • ve formě dokumentu Objednávka na přijetí implementovat další atributy formuláře Typy zaměstnanců,
  • pak pro pole formuláře Zaměstnanec lze vytvořit odkaz na výběrový parametr Výběr. Typ zaměstnance s detaily formuláře Typy zaměstnanců,
  • v tomto případě podrobnosti formuláře Typy zaměstnanců vyplněno na základě analýzy funkční varianty.

(Zároveň připravte rekvizity Zaměstnanec dokument Objednávka na přijetí odkaz pro výběr parametru Výběr. Typ zaměstnance není žádná možnost, protože rekvizity Typ zaměstnance v dokumentu Objednávka na přijetí neexistuje.)

Poté nastavte připojení pro parametr Výběr. Organizace ve vlastnostech rekvizit Zaměstnanec dokument Objednávka na přijetí a připojení pro parametr Výběr. Typ zaměstnance v poli formuláře dokumentu Objednávka na přijetí povede k tomu, že v režimu 1C:Podniky Oba odkazy parametrů výběru budou fungovat. Při výběru zaměstnance v objednávkovém formuláři tedy bude výběr v seznamu zaměstnanců určen jak organizací vyplněnou v dokumentu, tak typem zaměstnance, který bude určen na základě funkční volby.

Dobré odpoledne.

Dnes si povíme, jak programově otevřít výběrové formuláře v novém spravovaném rozhraní.

Dříve jsme v „běžné aplikaci“ psali takto:

form = Directory.nomenclature.GetSelectionForm();

resultSelection = form.openModalNO();

Mezi těmito operátory jsme mohli měnit vlastnosti formuláře, například nastavit výběr. Konkrétní formu bychom mohli specifikovat jménem. Mohli změnit jeho vzhled přístupem k vlastnostem prvků ve formuláři podle jejich názvu přes tečku (form.Button1.Visibility = False;)

Nyní máme spravované rozhraní a vše je zde jinak. Problém je v rozdělení kódu na serverovou a klientskou část. K objektům a jejich metadatům můžeme přistupovat pouze na serveru a formuláře musíme otevírat na klientovi.

Pojďme tedy začít.

1. Nejjednodušší je případ, kdy nepotřebujeme spravovat výběr (nastavovat výběry, předávat parametry do otevřeného výběrového formuláře).

Protože formuláře lze otevřít pouze na klientovi, bude se jednat o část kódu na straně klienta. Použijeme funkci EnterValue(<Значение>, <Подсказка>, <Тип>) . Z jejího popisu je vlastně vše jasné. Vrací příznak, zda uživatel provedl výběr v prvním parametru předáme kontejner, do kterého bude vrácena hodnota výběru, ve druhém text, který se zobrazí v nadpisu okna výběru, ve třetím poli; typy.

Zde je příklad použití:

Variable SelectTMC;

ArrayTypes = Nové pole;

DescriptionofTypesTMC = NewDescriptionofTypes(Array);

Pokud EnterValue(Vyberte inventář, "Vyberte položku", Popis typů inventáře) Pak

//Zpracování vybrané hodnoty

endIf;

Dodám, že pokud naší proměnné kontejneru před jejím výběrem přiřadíme jakoukoli hodnotu, bude to výchozí hodnota. V tomto případě nemusíte vytvářet pole typů; typ bude převzat z hodnoty ležící v kontejneru.

2. Někdy před výběrem hodnoty potřebujeme nastavit některé výběry a parametry výběru. Potřebujeme například vybrat smlouvu protistrany. První metoda nám otevře všechny dokumenty, ale musíme vybrat podle vlastníka.

Existují dva způsoby otevírání formulářů: OpenForm A OpenFormModal. V první metodě otevřeme formulář a kus kódu, ze kterého jsme formulář otevřeli, bude pokračovat v provádění bez obdržení výsledku výběru. Výsledek výběru bude v závislosti na způsobu volání umístěn buď do vstupního pole, nebo přijat v předdefinované proceduře "Zpracování výběru".

V našem případě potřebujeme vybranou hodnotu dostat do určité proměnné a pokračovat ve zpracování s přihlédnutím k vybrané hodnotě, aniž bychom přenesli řízení na jiné procedury. Proto nám to bude vyhovovat OpenFormModal.

Okamžitě udělám rezervaci, že to je špatná cesta pro webové rozhraní, protože... Modální okna se otevírají v novém okně prohlížeče, které je obvykle blokováno. Ale pokud uživateli předem vysvětlíte, co je co, pak si myslím, že se s tímto problémem vyrovná))

Pojďme se tedy podívat na popis postupu, ten má 4 parametry. V prvním označíme řádek s úplnou cestou k formuláři "Adresář. Smlouvy dodavatelů. Formulář výběru". Ve druhém uvádíme parametry výběru, více o nich níže. Ve třetím - vlastník, to je formulář nebo výběrové pole, které obdrží výsledek výběru, nevyplňujeme. Čtvrtý parametr se v našem případě také nepoužívá.

Pro jednoduchý výběr tedy poslouží následující řádek:

&OnClient

Postup Příkaz1 (Příkaz)

res = OpenFormModal("Adresář. Smlouvy dodavatelů. Výběrový formulář");

EndProcedure

Toto je ale úplná obdoba metody č. 1 a uvidíme formulář pro výběr všech smluv bez výběru vlastníkem. Tito. To lze provést pouze v případě, že chceme zadat název výběrového formuláře.

K nastavení výběru nám pomůže druhý parametr.

Druhý parametr je typu "Struktura". Jako prvky struktury můžete zadat parametry formuláře přidané na kartě „parametry“ formuláře výběru. Jejich zpracování by mělo být popsáno v postupu Když CreatedOnServer v modulu výběrového formuláře. To pro nás není dobré, protože... Potřebuji upravit konfiguraci. Výběrovou strukturu můžete také předat pomocí tlačítka „výběr“ ve struktuře parametrů. Poté budou všechna pole z výběrové struktury použita při výběru seznamu prvků a nebudou uživateli k dispozici ani pro prohlížení, ani pro změnu.

V mém příkladu jsem ve zpracování nakreslil výběrové pole, které odkazuje na atribut formuláře zpracování "protistrana" s datovým typem" DirectoryLink.Protistrany". a napsal následující část kódu:

&OnClient

Postup Příkaz1 (Příkaz)

Výběry = Nová struktura("Vlastník", Protistrana);

SelectionParameters = Nová struktura("Výběr", Výběr);

res = OpenFormModal("Adresář. Smlouvy dodavatelů. Formulář výběru", Parametry výběru);

EndProcedure

To obvykle stačí k vyřešení většiny problémů a nevyžaduje žádný zásah do konfigurace. Ve formuláři pro výběr v proceduře „When CreatedOnServer“ však může být váš výběr ztracen. Proto před použitím této metody zkontrolujte tento postup ve formuláři výběru, který otevřete. Pokřivení vývojáři tam mohou svůj výběr snadno nastavit „ve výchozím nastavení“, přičemž zapomenou zkontrolovat, zda je výběr předán v parametrech otevírání.

To je pro dnešek vše, děkuji za pozornost.



Pokud si všimnete chyby, vyberte část textu a stiskněte Ctrl+Enter
PODÍL: