Tvarkomos formos 1s parametrai 8.3. Formos parinktys

Spausdinti (Ctrl+P)

Formos parinktys

1. Bendra informacija

Formos parametrai (skirtukas Parinktys) naudojami dviem tikslais:
● Apibūdinkite duomenų rinkinį, kuris turės įtakos formos atidarymui (formos parametravimas). Norėdami tai padaryti, turite išvardyti visus būtinus parametrus ir nurodyti jų tipus.
● Nustatykite parametrus, kurie turės įtakos formos unikalumo raktui. Norėdami tai padaryti, turite nustatyti nuosavybę Rakto parametras tie parametrai, kurie turėtų dalyvauti formuojant formos unikalumo raktą. Kai bandote atidaryti formą, sistema ieško esamos formos naudodama sugeneruotą formos unikalumo raktą. Jei sistemoje yra forma su gautu raktu
unikalumas, būtent ši forma grįžta; jei ne, sukuriama nauja forma.
Iškviečiant formą, kūrėjo sukurtų parametrų reikšmės gali būti nurodytos parametrų struktūroje kartu su formų sistemos parametrais (jei yra).
Formos parametrai gali būti perduoti formai jos sukūrimo metu. Įvykio metu gali būti atlikta perduotų parametrų analizė WhenCreatingOnServer() (Parametrų rinkinys yra objekto savybė Tvarkoma forma):

// Skambučio vietoje.
// Sukurkite formos parametrą.
Parametrai = new Structure();
Parinktys.Įterpti(„Svarba“, Iš anksto nustatytaValue(„Išvardyti.Svarbumas.Svarbu“);
// Atidarykite formą su parametrais.
OpenForm („GeneralForm.ViewForm“, Parameters);

// Formos modulyje.
&Serveryje
Procedūra Kai sukuriama serveryje (gedimas, standartinis apdorojimas)
Jeigu Parametrai.Svarba = Sąrašai.Svarba.Svarbu o Tada

endIf;
Procedūros pabaiga

DĖMESIO! Paskambinus įvykių vedėjui Kai CreatedOnServer visi neraktiniai formos parametrai pašalinami iš parametrų rinkinio.
Patarimas. Reikalingi ne pagrindiniai formos parametrai tolesnis darbas, turite jį išsaugoti formos duomenyse.

2. Standartinės formos parametrai

Siekdama palaikyti automatinę formų sąveiką, sistema pateikia keletą standartinių parametrų, kurie naudojami formoms valdyti jas atidarius. Naudodama šiuos parametrus, sistema formų laukuose realizuoja pasirinkimą iš pasirinkimo formų, objektų formų atidarymą, standartinių komandų veikimą ir kt. Tai yra, pateikia įvairius sistemoje įmontuotus sąsajos veikimo scenarijus.
Tačiau kūrėjas taip pat gali naudoti šiuos parametrus įtaisytoje kalboje, perduodamas juos iškviesdamas OpenForm() metodą.
Standartinių formos parametrų sąrašą, priklausomai nuo formos plėtinio tipo, rasite skyriuose Integruota kalba – sąsaja
(tvarkoma) – Tvarkoma forma – Išplečiama... įtaisyta sertifikatus

3. Darbo su formos parametrais pavyzdys

Norėdami parodyti, kaip veikia formos parametrai, apsvarstykite galimybę pasirinkti elementą įvesties lauke. Pavyzdžio esmė bus elemento pasirinkimo iš sąrašo mechanizmo įgyvendinimas integruotoje kalboje.
Kai pradėsite dirbti su pavyzdžiu, turite turėti konfigūraciją su šiomis savybėmis:
● yra katalogas Produktai su grupių ir elementų hierarchija;
● yra katalogas Analogai su informacija SelectedProduct type DirectoryLink.Produktai;
● abu katalogai turi elementų formas.
Dabar šioje konfigūracijoje įdiegkime visus mechanizmus, kuriuos platforma naudoja elementui iš sąrašo pasirinkti integruota kalba. Šiuo atveju pamatysime:
● kaip naudojami standartinės formos parametrai;
● kaip pati sistema juos naudoja;
● kaip kūrėjas gali juos naudoti.
Pridėkime papildomą parametrą, kuris kontroliuos pasirinkimo formos uždarymą pasirinkus elementą. Pavadinkime šį parametrą UždarytiAfterSelection(Bulio tipas). Pridėkime jį kaip formos parametrą Forma katalogui Produktai pasirinkti.
Norėdami atidaryti elementų pasirinkimo formą, turite sukurti elemento SelectedProduct įvykio Pasirinkimo pradžios įvykio tvarkyklę katalogo elemento Analogues forma.

&OnClient
Procedūra SelectedProductStartSelection (prekė, standartinis apdorojimas)
Standartinis apdorojimas= Netiesa;
Pasirinkimo parinktys= Nauja struktūra ;
Pasirinkimas Parinktys.Įterpti(„Pasirinkimo režimas“, tiesa);
Pasirinkimas Parinktys.Įterpti(„Grupių ir elementų pasirinkimas“, Naudojant GroupsAndElements.Elements);
Pasirinkimas Parinktys.Įterpti(„AllowRootSelection“, klaidinga);
Pasirinkimas Parinktys.Įterpti(„Dabartinė linija“, Objektas.Pasirinktas produktas);
Pasirinkimas Parinktys.Įterpti(„CloseAfterSelection“, klaidinga);
OpenForm ("Katalogas.Produktai.Pasirinkimo forma", Pasirinkimo parinktys, Prekės.Pasirinktas elementas);
Procedūros pabaiga
Atskirai reikia pasilikti ties trečiuoju OpenForm() metodo parametru. Šis parametras nustato, kas bus atrankos formos savininkas ir kam bus pranešta apie atliktą pasirinkimą. Šiuo atveju kaip pasirinkimo formos savininką nurodėme patį formos elementą, tačiau šiuo parametru galime nurodyti ir pačią formą. Tokiu atveju reikės įdiegti tvarkyklę Apdorojimo pasirinkimas formos modulį ir jame nuspręsti, į kurį formos atributą patalpinti pasirinktus duomenis.
PASTABA. Jeigu neįdiegsime StartSelection įvykių tvarkyklės, tai jos veiksmus atliks pati sistema. Tai pasakytina apie visas kitas pavyzdyje naudojamas tvarkykles.
Dabar pasirinkimo formoje turite apdoroti pateiktus parametrus. Padarykime tai tvarkyklėje Kai CreatedOnServer() atrankos formos modulio.

&Serveryje
Procedūra Kai sukuriama serveryje (gedimas, standartinis apdorojimas)
Standartinis apdorojimas= Netiesa;
Elements.List.SelectingGroupsAndElements = Parameters.SelectingGroupsAndElements;
Elements.List.AllowRootSelection = Parameters.AllowRootSelection;
Elements.List.CurrentRow = Parameters.CurrentRow;
CloseOnSelection = Options.CloseAfterSelection;
Procedūros pabaiga
Norėdami patikrinti mūsų nustatytų formos parametrų funkcionalumą, naudodamiesi konfigūratoriumi, pasirinkimo formos lentelei nustatysime savybę List Grupių ir elementų pasirinkimasį Grupių reikšmę (nenaudojant parametro nebus galima pasirinkti katalogo elementų).
PASTABA. Jei sąrašo lentelėje, kurioje rodomas produktų sąrašas, ypatybė SelectionMode nėra nustatyta į True, tada produktų pasirinkimas nebus pasiekiamas.
Dabar turime tvarkyti norimo elemento pasirinkimą pasirinkimo formoje. Norėdami tai padaryti, turite apibrėžti formos lentelės įvykio SelectValue tvarkyklę.

&OnClient
Procedūra Sąrašo vertės pasirinkimas (elementas, standartinis apdorojimas, vertė)
Standartinis apdorojimas= Netiesa;
NotifyOfSelection (vertė);
Procedūros pabaiga
Viskas, ką turime padaryti, tai pačiame įvesties lauke įdiegti elementų pasirinkimo apdorojimą. Norėdami tai padaryti, turite tvarkyti įvykį Apdorojimo pasirinkimas mūsų įvesties lauką SelectedProduct.

&OnClient
Procedūra SelectedItemSelectionProcessing(elementas, SelectedValue, StandardProcessing)
Standartinis apdorojimas= Netiesa;
Object.SelectedProduct = SelectedValue;
Procedūros pabaiga
Nepriklausomai įdiegėme sistemos mechanizmą, skirtą reikšmės pasirinkimui formos įvesties lauke.
DĖMESIO! Šis pavyzdys nėra baigtas. Vienintelis jo tikslas – parodyti darbo su formos parametrais mechanizmus.
Jei kurdami parametrus (tvarkytojas SelectedProductStartSelection()) pakeiskite eilutę:

Pasirinkimas Parinktys.Įterpti(„CloseAfterSelection“, tiesa);
eilutėje:
Pasirinkimas Parinktys.Įterpti(„CloseAfterSelection“, klaidinga) ;
tada pasirinkimo forma nebebus uždaroma po pasirinkimo. Tai gali būti naudojama, pavyzdžiui, atrankos formai įgyvendinti (pasirenkant kelis produktus neuždarius atrankos formos).

Siekdama palaikyti automatinę formų sąveiką, sistema pateikia keletą standartinių parametrų, kurie naudojami formoms valdyti jas atidarius. Naudodama šiuos parametrus, sistema formų laukuose realizuoja pasirinkimą iš pasirinkimo formų, objektų formų atidarymą, standartinių komandų veikimą ir kt. Tai yra, pateikia įvairius sistemoje įmontuotus sąsajos veikimo scenarijus. Tačiau kūrėjas taip pat gali naudoti šiuos parametrus įtaisytoje kalboje, perduodamas juos iškviesdamas OpenForm() metodą.

Išvardijame sistemos pateiktus parametrus ir jų paskirtį:

  • Pasirinkimo režimas– forma atsidaro pasirinkimo režimu. Pateikta plėtinio kontroliuojama forma dinaminis sąrašas.
  • Dabartinė eilė– eilutė, kuri bus aktyvuota sąraše atidarius. Perduodama reikšmė, identifikuojanti eilutę. Teikia dinaminio sąrašo valdomos formos plėtinį.
  • Grupių ir elementų pasirinkimas– šis parametras nustato pagrindinio formos atributo lentelės ypatybę Grupių ir elementų pasirinkimas. Teikia dinaminio sąrašo valdomos formos plėtinį.
  • AllowSelectRoot– apibrėžia galimybę pasirinkti šaknį formoje su dinaminiu sąrašu, kuris rodomas kaip medis. Teikia valdomos formos plėtinį, skirtą dinaminiam sąrašui, rodomam kaip medis.
  • Pasirinkimas– atranka nustatyta m dinaminis sąrašas. Atstovauja struktūrai. Elementų pavadinimai atitinka laukų, pagal kuriuos atliekamas pasirinkimas, pavadinimus, o reikšmėse yra pasirinkimo reikšmės. Teikia dinaminio sąrašo valdomos formos plėtinį.
  • Raktas– reikšmė, identifikuojanti formoje redaguojamą objektą. Jei reikšmės trūksta arba ji neteisinga, naudojant likusius parametrus sukuriamas naujas objektas. Teikia objektų formų plėtiniai ir informacijos registro įrašų tvarkyklė.
  • Kopijuoti vertę– reikšmė, identifikuojanti objektą, kuris bus naudojamas kopijavimui kuriant naują objektą. Teikia objektų formų plėtiniai ir informacijos registro įrašų tvarkyklė.
  • Užpildykite vertes– naujo objekto duomenų užpildymo reikšmės. Atstovauja struktūrai. Elementų pavadinimai atitinka detalių pavadinimus, o reikšmėse yra duomenys, kurie bus naudojami norint užpildyti nurodytus duomenis. Teikia objektų formų plėtiniai ir informacijos registro įrašų tvarkyklė.
  • Bazė– reikšmė, identifikuojanti objektą, kuris bus naudojamas kaip pagrindas kuriant naują objektą įvesties pagrindu. Teikia objekto formos plėtinius.
  • Ši grupė– apibrėžia naujo objekto tipą: grupė arba elementas. Teikia objekto formos plėtinius.

Darbo su formos parametrais pavyzdys

Norėdami parodyti, kaip veikia formos parametrai, apsvarstykite galimybę pasirinkti elementą įvesties lauke. Pavyzdžio esmė bus elemento pasirinkimo iš sąrašo mechanizmo įgyvendinimas integruotoje kalboje.

Kai pradėsite dirbti su pavyzdžiu, turite turėti konfigūraciją su šiomis savybėmis:

  • Pagrindinis paleidimo režimas – Valdoma programa;
  • yra katalogas Produktai su grupių ir elementų hierarchija;
  • yra katalogas Analogues su atributu SelectedProduct tipo DirectoryLink.Products;
  • abu katalogai turi valdomų elementų formas.

Dabar šioje konfigūracijoje įdiegkime visus mechanizmus, kuriuos platforma naudoja elementui iš sąrašo pasirinkti integruota kalba. Tai darydami pamatysime, kaip naudojami standartiniai formos parametrai; kaip pati sistema juos naudoja; kaip kūrėjas gali juos naudoti.

Pridėkime papildomą vėliavėlę, kuri kontroliuos pasirinkimo formos uždarymą pasirinkus elementą. Pavadinkime šią vėliavėlę CloseAfterSelection (tipas Būlis). Pridėkime jį kaip formos parametrą Forma, skirta produktų katalogui pasirinkti.

Norėdami atidaryti elementų pasirinkimo formą, turite sukurti Pasirinkto produkto formos elemento įvykio Pasirinkimo pradžios įvykio tvarkyklę katalogo elemento Analogues forma:

&OnClient

Procedūra PasirinktaProdukto pradžios pasirinkimas (prekė, standartinis apdorojimas)

Standartinis apdorojimas = False;

Pasirinkimo parametrai = Nauja Struktūra; SelectionParameters.Insert("SelectionMode", True); SelectionParameters.Insert("SelectingGroupsAndElements", UsingGroupsAndElements.Elements); SelectionParameters.Insert("AllowRootSelection", False); SelectionParameters.Insert("CurrentRow", Object.SelectedProduct); SelectionParameters.Insert("CloseAfterSelection", False); OpenForm("Katalogas.Produktai.PasirinkimoForma",AtrankosParameters,Elements.SelectedProduct);

Procedūros pabaiga

Atskirai reikia pasilikti ties trečiuoju OpenForm() metodo parametru. Šis parametras nustato, kas bus atrankos formos savininkas ir kam bus pranešta apie atliktą pasirinkimą. Šiuo atveju kaip pasirinkimo formos savininką nurodėme patį formos elementą, tačiau šiuo parametru galime nurodyti ir pačią formą. Tokiu atveju reikės įdiegti Form Module Selection Processing tvarkyklę ir joje nuspręsti, kuriame formos atribute dėti pasirinktus duomenis.

Apdorojame šią pagrindinę formą:

Iš šios formos turime atidaryti kokią nors papildomą formą, o tekstas iš formos lauko turi būti perkeltas į atidarytą formą. Papildoma forma yra tokia:

Taigi, spustelėjus mygtuką „Vykdyti“, atsidaro papildoma forma su lauke jau įvestu tekstu:

Panagrinėkime, kaip išspręsti tokią problemą.

Sprendimas

Norėdami perkelti parametrus tarp įprastų formų, galite naudoti visuotinį formos modulio eksporto kintamąjį arba sukurti formos atributą. Apsvarstykime abu mūsų užduoties metodus.

1. Naudojant formos modulio visuotinį eksporto kintamąjį.

Prie pagrindinės mygtuko tvarkyklės „Vykdyti“ formos formos pridėkite šią informaciją: programos kodas:

Procedūra ButtonExecutePress(Button)Form = GetForm(" Papildoma forma" ) ; // "Tekstas" yra atidaromo formos modulio pasaulinis eksporto kintamasis Forma. Tekstas = FormElements. Tekstas. Reikšmė; Forma. Atviras(); Procedūros pabaiga

Teksto kintamasis buvo įtrauktas į atidaromos formos modulį kartu su įvykių tvarkykle „BeforeOpen“:

Kintamojo teksto eksportas ; // Kintamasis, kuriam perduodama reikšmė iš kitos formos Procedūra prieš atidarant (gedimas, standartinis apdorojimas) formos elementai. Perduotas tekstas. Reikšmė = tekstas; Procedūros pabaiga

Problema išspręsta ir gana paprasta!

2. Formos detalių naudojimas.

Naudojant antrąjį metodą, mums net nereikia perrašyti mygtukų „Vykdyti“ ir „Prieš atidarant“ tvarkyklių. Tereikia į atidarytą formą įtraukti atributą „Tekstas“ su eilutės tipu.

išvadas

Valdomose formose parametrus perduoti daug lengviau. Įprastose formose aprašytas metodas naudojamas daugeliu atvejų.

Galite apdoroti pavyzdį iš straipsnio parsisiųsti iš nuorodos.

Šiame straipsnyje aprašoma, kaip naudoti standartines priemones norint perduoti reikšmę kaip parametrą atidarant valdomą formą 8.2, palyginti su tuo, kaip panašią operaciją būtų galima įgyvendinti įprastose formose.

Kaip parametrai perduodami įprastomis formomis

Įprastose formose buvo 2 galimybės perduoti parametrą:
1) rečiau paplitęs metodas: objekto formoje skirtuke „Išsami informacija“ buvo pridėti atributai, o prireikus prieiga buvo nustatyta vaizdinėmis priemonėmis
2) labiau paplitęs metodas: eksportavimo kintamasis buvo deklaruotas formos modulyje, o reikšmė apdorota tvarkyklėje „Prieš atidarant“

abiem atvejais formos iškvietimas atrodė maždaug taip:

Forma = Object.GetForm("Pasirinkimo forma",Formos savininkas, UniquenessKey);
Form.Parameter = ParameterValue;
Form.Open();

Kaip parametrai perduodami valdomose formose

Dabar valdomos formos turi galimybę iš karto perduoti parametrus, kai forma gaunama. Parametrai perduodami kaip struktūra:

Parametrai = New Structure("Dabartinė vertė", LastElement);
SelectionForm = GetForm("Katalogas. Nomenklatūra.Pasirinkimo forma", Parametrai);
FoundItem = SelectionForm.OpenModal();

Be to, valdoma forma dabar turi „formos plėtinius“ (objektą, žinyną, dokumentą, ataskaitą). Atsižvelgiant į objekto tipą, nustatoma turimų parametrų sudėtis. Pavyzdžiui, jei katalogo pasirinkimo formoje reikia pozicionuoti konkretų elementą, tada naudojamas parametras „CurrentValue“. Didelis privalumas yra tas, kad pačiai formai nereikia iš anksto nustatytų parametrų rašymo tvarkyklių, o tai sumažina kodo kiekį.

Kūrėjas taip pat turi galimybę apibrėžti savo parametrus (valdomos formos dizainerio skirtuke „Parametrai“). Parametrų gyvavimo laiką riboja OnCreationOnServer tvarkytuvas, o tai logiška, nes parametrai reikalingi tik kuriant formą, tačiau jei šis parametras nulems formos unikalumą (parametrų ypatybėse nustatyta vėliavėlė „rakto parametras“), jis bus pasiekiamas kitose tvarkyklėse.

Norėdami perduoti konkretų manipuliavimo parametrą, turite atlikti šiek tiek daugiau:

1) Apibrėžkite parametrą kontroliuojama forma.
„OnCreationOnServer“ tvarkyklėje apibrėžkite šio parametro apdorojimą (prieiga prie perduotų parametrų per ypatybę „Parameters“, kurios tipas yra „FormDataStructure“)
2) Apibūdinkite formos gavimą ir perkelkite naujo parametro reikšmę GetForm funkcijos parametruose.
Taigi kodas atrodys taip:
- Toje vietoje, kur gaunate formą

Parametrai = New Structure("Naujas parametras", LastElement);
SelectionForm = GetForm("Katalogas. Nomenklatūra.Pasirinkimo forma", Parametrai);

Valdomos formos modulyje

&Serveryje
Procedūra, kai sukuriama serveryje (gedimas, standartinis apdorojimas)
Jei Parameters.Property("NewParameter") Tada
// čia yra parametrų apdorojimo kodas
endIf;
Procedūros pabaiga

Išvada

Galbūt šis straipsnis bus kam nors naudingas, sutaupysite laiko ir sutaupysite nereikalingo kodo. Daugiau Detali informacija O visas sąrašas Dėl valdomų formų parametrų rekomenduojama pažiūrėti žinyną „Valdoma sąsaja\Tvarkoma forma“.

[norėdami pamatyti nuorodą, turite užsiregistruoti]

Dalintis