1c v parametroch výberu nastavte názov skupiny. Nastavte parametre výberu a priradenia parametrov výberu pre objekty metadát. DescriptionofTypesInventory = NewDescriptionofTypes(Array)

Za účelom otvorte výberový formulár s výberom za 1s 8.2(bežné formy), musíme vykonať nejaké akcie. Najprv to dostaneme. Potom nastavíme výber a otvoríme ho programovo, tu je príklad kódu:

Výber na formulári vo vstupnom poli 1C 8.2 s niekoľkými hodnotami

Vo vyššie uvedenom príklade sme sa pozreli na ako nastaviť výber na výberovom formulári podľa konkrétnej hodnoty. Teraz sa pozrime na situáciu, keď potrebujete nahradiť niekoľko hodnôt, môže to byť napríklad pole alebo uvoľnené z výsledku dotazu. Toto je výber vo vstupnom poli 1c s viacerými významami.

Najprv získame formulár výberu, v parametroch prejdeme „Prvok“ (vlastník), nastavíme príznak režimu výberu. Potom vytvoríme zoznam hodnôt a pole, všimneme si, že ako výber pri nastavovaní typu porovnania v zozname môže byť objekt prítomný iba s typom ListValues. Do poľa pridáme prvky, toto pole potom načítame do Zoznamu hodnôt, ktorý následne nastavíme vo výbere. Nezabudnite tiež povoliť príznak pre používanie tohto výberu a nastaviť typ porovnania.

Nastavenie výberu vo vstupnom poli vo formulári v 1C 8.3, Začiatok udalosti výberu

Teraz uvažujme výber vo vstupnom poli zapnutý v zvládnuteľnej forme v 1C 8.3. Vo formulári nájdeme prvok, ktorý nás zaujíma, v ktorom nastavíme výber, v našom prípade je to pole „Organizácia“. Nájdeme udalosť “Start of Selection”, klikneme na lupu a ocitneme sa v postupe. Vidíme parameter Selection Data, tento parameter je typu ValueList. Aby sme výber obmedzili na potrebné prvky, musíme vyplniť Zoznam hodnôt. Elementy môžeme vyberať len na serveri, preto vytvoríme procedúru s direktívou kompilácie &OnServer. V tomto postupe vyplňte Údaje o výbere.

/
Vývojári /
Kódovacie konvencie

Nastavenie možností výberu a priradenia možností výberu pre objekty metadát

1. Obmedzenia obchodnej logiky, ako napríklad obmedzenia výberu, musia byť spravidla rovnaké pre všetky formuláre, v ktorých sa upravuje konkrétny objekt. Preto sa odporúča nastaviť parametre výberu a prepojenia medzi parametrami výberu vo vlastnostiach objektov metadát – v detailoch adresárov, dokumentov a pod.

2. Môžu však nastať prípady, keď obmedzenia výberu môžu závisieť od konkrétneho prevádzkového scenára. V takýchto prípadoch môžu byť parametre výberu špecifikované lokálne, v špecifickej forme.

Konfigurácia obsahuje napr

  • adresár Zamestnanci, ktorý obsahuje podrobnosti Organizácia A Typ zamestnanca(vyčíslenie s hodnotami Základné/Brigádnik);
  • dokument Príkaz na prijatie, ktorý obsahuje rekvizity Organizácia A zamestnanec; zatiaľ čo pre rekvizity zamestnanec dokument Príkaz na prijatie je špecifikované pripojenie parametra výberu Výber.Organizácia s rekvizitami Organizácia.

Vyžaduje sa implementácia možnosti výberu iba kľúčových zamestnancov v závislosti od hodnoty funkčnej možnosti Vyberte Iba odZáklady zamestnancov. Na to je potrebné

  • vo forme dokumentu Príkaz na prijatie implementovať ďalšie atribúty formulára Typy zamestnancov,
  • potom pre pole formulára zamestnanec možno vytvoriť odkaz na výberový parameter Výber. Typ zamestnanca s detailmi formulára Typy zamestnancov,
  • v tomto prípade podrobnosti formulára Typy zamestnancov vyplnené na základe analýzy funkčnej možnosti.

(Zároveň pripravte rekvizity zamestnanec dokument Príkaz na prijatie odkaz na výberový parameter Výber. Typ zamestnanca neexistuje žiadna možnosť, pretože rekvizity Typ zamestnanca v dokumente Príkaz na prijatie neexistuje.)

Potom nastavte pripojenie pre parameter Výber.Organizácia vo vlastnostiach rekvizity zamestnanec dokument Príkaz na prijatie a pripojenia pre parameter Výber. Typ zamestnanca v poli formulára dokumentu Príkaz na prijatie povedie k tomu, že v režime 1C:Podniky Oba prepojenia parametrov výberu budú fungovať. Pri výbere zamestnanca v objednávkovom formulári teda bude výber v zozname zamestnancov určený tak organizáciou vyplnenou v dokumente, ako aj typom zamestnanca, ktorý bude určený na základe funkčnej možnosti.

Dobrý deň.

Dnes si povieme, ako programovo otvárať výberové formuláre v novom spravovanom rozhraní.

Predtým v " pravidelná aplikácia"Napísali sme takto:

forma = Directory.nomenclature.GetSelectionForm();

vysledokVyber = form.openModalNO();

Medzi týmito operátormi sme mohli meniť vlastnosti formulára, napríklad nastaviť výber. Konkrétnu formu by sme mohli špecifikovať podľa názvu. Dalo by sa to zmeniť vzhľad, prístup k vlastnostiam prvkov formulára podľa ich názvu cez bodku (form.Button1.Visibility = False;)

Teraz máme spravované rozhranie a tu je všetko inak. Problém je v rozdelení kódu na serverovú a klientsku časť. K objektom a ich metadátam môžeme pristupovať iba na serveri a formuláre musíme otvárať na klientovi.

Tak poďme na to.

1. Najjednoduchší prípad je, keď nepotrebujeme spravovať výber (nastaviť výbery, odovzdať parametre do otvoreného výberového formulára).

Keďže formuláre je možné otvárať iba na klientovi, bude to časť kódu na strane klienta. Použijeme funkciu EnterValue(<Значение>, <Подсказка>, <Тип>) . Z jej popisu je vlastne všetko jasné. Vracia príznak, či užívateľ vykonal výber; v prvom parametri prejdeme kontajner, do ktorého sa vráti hodnota výberu, v druhom text, ktorý sa zobrazí v nadpise výberového okna, v treťom poli typy.

Tu je príklad použitia:

Variable SelectTMC;

Typy polí = Nové pole;

DescriptionofTypesTMC = NewDescriptionofTypes(Array);

Ak EnterValue(Vyberte inventár, "Vyberte položku", Popis typov zásob) Potom

//Spracovanie vybranej hodnoty

koniec Ak;

Dodám, že ak našej premennej kontajnera pred jej výberom priradíme akúkoľvek hodnotu, bude to predvolená hodnota. V tomto prípade nemusíte vytvárať pole typov; typ sa prevezme z hodnoty v kontajneri.

2. Niekedy pred výberom hodnoty musíme nastaviť niektoré výbery a parametre výberu. Napríklad musíme vybrať dohodu protistrany. Prvý spôsob nám otvorí všetky dokumenty, ale musíme vybrať podľa vlastníka.

Existujú dva spôsoby otvárania formulárov: OpenForm A OpenFormModal. V prvom spôsobe otvoríme formulár a kus kódu, z ktorého sme formulár otvorili, bude pokračovať v vykonávaní bez prijatia výsledku výberu. Výsledok výberu, v závislosti od spôsobu volania, bude umiestnený buď do vstupného poľa, alebo prijatý v preddefinovanej procedúre "Spracovanie výberu".

V našom prípade musíme zvolenú hodnotu dostať do určitej premennej a pokračovať v spracovaní s prihliadnutím na zvolenú hodnotu, bez toho, aby sme preniesli kontrolu na iné procedúry. Preto nám to bude vyhovovať OpenFormModal.

Okamžite urobím rezerváciu, že toto je zlý spôsob pre webové rozhranie, pretože... Modálne okná sa otvárajú v novom okne prehliadača, ktoré je zvyčajne zablokované. Ale ak používateľovi vopred vysvetlíte, čo je čo, potom si myslím, že sa s týmto problémom vyrovná))

Pozrime sa teda na popis postupu, má 4 parametre. V prvom uvádzame riadok s úplnou cestou k formuláru "Adresár. Zmluvy dodávateľov. Formulár výberu". V druhom uvádzame parametre výberu, viac o nich nižšie. V treťom - vlastník, ide o formulár alebo výberové pole, ktoré dostane výsledok výberu, nevypĺňame. Štvrtý parameter sa v našom prípade tiež nepoužíva.

Pre jednoduchý výber teda poslúži nasledujúci riadok:

&OnClient

Postup Príkaz1 (Príkaz)

res = OpenFormModal("Adresár. Zmluvy dodávateľov. Výberový formulár");

Koniec procedúry

Toto je však úplná analógia metódy č. 1 a uvidíme formulár na výber všetkých zmlúv bez výberu vlastníka. Tie. Dá sa to urobiť len vtedy, ak chceme zadať názov výberového formulára.

Na nastavenie výberu nám pomôže druhý parameter.

Druhý parameter je typu "Štruktúra". Ako prvky štruktúry môžete zadať parametre formulára pridané na karte „parametre“ formulára výberu. Ich spracovanie by malo byť popísané v postupe Keď CreatedOnServer v module výberového formulára. Nie je to pre nás dobré, pretože... Potrebujem upraviť konfiguráciu. Výberovú štruktúru môžete prejsť aj pomocou tlačidla „výber“ v štruktúre parametrov. Potom sa všetky polia zo štruktúry výberu použijú pri výbere zoznamu prvkov a nebudú k dispozícii používateľovi ani na prezeranie, ani na zmenu.

V mojom príklade som nakreslil výberové pole v spracovaní, ktoré odkazuje na atribút formulára spracovania "protistrana" s typom údajov " DirectoryLink.Protistrany". a napísal nasledujúci kus kódu:

&OnClient

Postup Príkaz1 (Príkaz)

Výbery = Nová štruktúra("Vlastník", Protistrana);

SelectionParameters = New Structure("Selection", Selection);

res = OpenFormModal("Adresár. Zmluvy dodávateľov. Formulár výberu", Parametre výberu);

Koniec procedúry

To zvyčajne stačí na vyriešenie väčšiny problémov a nevyžaduje si žiadny zásah do konfigurácie. Vo výberovom formulári v procedúre „When CreatedOnServer“ sa však váš výber môže stratiť. Preto si pred použitím tejto metódy prečítajte tento postup vo výberovom formulári, ktorý otvoríte. Kriví vývojári si tam môžu ľahko nastaviť svoj výber „v predvolenom nastavení“, pričom zabudnú skontrolovať, či je výber odovzdaný v parametroch otvárania.

To je na dnes všetko, ďakujem za pozornosť.




Hore