Այս հոդվածը նկարագրում է, թե ինչպես օգտագործել ստանդարտ միջոցներ՝ արժեքը որպես պարամետր փոխանցելու համար կառավարվող ձև 8.2-ը բացելիս՝ համեմատած այն բանի հետ, թե ինչպես կարելի է նմանատիպ գործողություն իրականացնել սովորական ձևերով:
Ինչպես են պարամետրերը փոխանցվում կանոնավոր ձևերով
Սովորական ձևերով պարամետր փոխանցելու 2 հնարավորություն կար.
1) ավելի քիչ տարածված մեթոդ. «Մանրամասներ» ներդիրի օբյեկտի ձևում ավելացվել են ատրիբուտներ, և անհրաժեշտության դեպքում մուտքը որոշվել է տեսողական միջոցներով
2) ավելի տարածված մեթոդ. արտահանման փոփոխականը հայտարարվել է ձևի մոդուլում և արժեքը մշակվել է «Բացելուց առաջ» մշակման մեջ:
երկու դեպքում էլ ձևի կանչը այսպիսի տեսք ուներ.
Form = Object.GetForm ("SelectionForm",FormOwner, UniquenessKey);
Form.Parameter = ParameterValue;
Form.Open();
Ինչպես են պարամետրերը փոխանցվում կառավարվող ձևերով
Կառավարվող ձևերն այժմ հնարավորություն ունեն անմիջապես փոխանցել պարամետրերը, երբ ձևը ստացվի: Պարամետրերը փոխանցվում են որպես կառուցվածք.
Պարամետրեր = Նոր կառուցվածք ("CurrentValue", LastElement);
SelectionForm = GetForm ("Directory. Nomenclature.SelectionForm", Parameters);
FoundItem = SelectionForm.OpenModal();
Նաև կառավարվող ձևն այժմ ունի «ձևի ընդլայնումներ» (օբյեկտ, տեղեկատու, փաստաթուղթ, զեկույց): Կախված օբյեկտի տեսակից, որոշվում է առկա պարամետրերի կազմը: Օրինակ, եթե գրացուցակի ընտրության ձևում դուք պետք է դիրքավորեք որոշակի տարրի վրա, ապա օգտագործվում է «CurrentValue» պարամետրը: Մեծ առավելությունն այն է, որ ձևն ինքնին չի պահանջում նախապես սահմանված պարամետրերի համար մշակողներ գրել, ինչը նվազեցնում է կոդի քանակը:
Մշակողը նաև հնարավորություն ունի սահմանելու իր սեփական պարամետրերը (կառավարվող ձևի դիզայներում՝ «Պարամետրեր» ներդիրում): Պարամետրերի ծառայության ժամկետը սահմանափակվում է OnCreationOnServer կարգավորիչով, ինչը տրամաբանական է, քանի որ պարամետրերը պահանջվում են միայն ձև ստեղծելու ժամանակ, բայց եթե այս պարամետրը որոշում է ձևի յուրահատկությունը («հիմնական պարամետր» դրոշը դրված է պարամետրերի հատկություններում), այն հասանելի կլինի այլ մշակիչներում:
Հատուկ մանիպուլյացիայի պարամետր փոխանցելու համար հարկավոր է մի փոքր ավելին անել.
1) Սահմանեք պարամետրը վերահսկվող ձևով:
OnCreationOnServer կարգավորիչում սահմանեք այս պարամետրի մշակումը (մատչել անցած պարամետրերին «Պարամետրեր» հատկության միջոցով, որն ունի FormDataStructure տեսակը)
2) Նկարագրեք ձևի ստացումը և նոր պարամետրի արժեքը փոխանցեք GetForm ֆունկցիայի պարամետրերում:
Այսպիսով, ծածկագիրը կունենա հետևյալ տեսքը.
- Այն վայրում, որտեղ դուք ստանում եք ձևաթուղթը
Պարամետրեր = Նոր կառուցվածք ("NewParameter", LastElement);
SelectionForm = GetForm ("Directory. Nomenclature.SelectionForm", Parameters);
Կառավարվող ձևի մոդուլում
&Սերվերի վրա
Ընթացակարգը, երբ ստեղծվում է սերվերում (ձախողում, ստանդարտ մշակում)
If Parameters.Property("NewParameter") Ապա
// ահա պարամետրի մշակման կոդը
վերջԵթե;
Ընթացակարգի ավարտը
Եզրակացություն
Միգուցե այս հոդվածը ինչ-որ մեկին օգտակար լինի, այն կխնայի ժամանակն ու կազատի ձեզ ավելորդ կոդից։ Կառավարվող ձևի պարամետրերի ամբողջական ցանկի մասին ավելի մանրամասն տեղեկությունների համար խորհուրդ է տրվում դիտել «Կառավարվող միջերես\Կառավարվող ձև» օգնությունը:
[Հղումը դիտելու համար պետք է գրանցվել]
Կառավարվող 1C հավելվածում ծրագրային ձևերը բացելը զգալիորեն տարբերվում է սովորական հավելվածում դրանք բացելուց: Եկեք նախ նայենք հին մեթոդին: Այն բաղկացած է ձև ստանալուց և այնուհետև այն նորմալ կամ մոդալ ռեժիմում բացելուց (մոդալ ռեժիմում բացվելիս ձևը արգելափակում է ծրագիրը):
GetForm(). Բաց ()
Սա ձևերի բացման ամենադանդաղ մեթոդն է: Այնուամենայնիվ, այն թույլ է տալիս ծրագրավորել ձևը բացելուց առաջ: Կոդը մշակելու համար անհրաժեշտ է մի փոքր փոխել.
Ձև = GetForm ( «Փաստաթուղթ. Ապրանքների և ծառայությունների ստացում. Փաստաթղթի ձև».)
;
//Այստեղ մենք կատարում ենք գործողություններ ձևի հետ
Ձև. Open();
Պետք է հաշվի առնել, որ ձևը ստանալուց հետո կիրականացվի այլ իրադարձության ընթացակարգ WhenCreatedOnServer.
Դիտարկենք այլ մեթոդներ, որոնք թույլ են տալիս ավելի արագ և հարմար ձևեր բացել կառավարվող 1C հավելվածում: Կախված կոնկրետ իրավիճակից, կարող են օգտագործվել տարբեր մեթոդներ:
Այս դեպքում ամեն ինչ չափազանց պարզ է.
RefLink = Գրացուցակներ: Անվանակարգ. FindByCode ("000000001");
OpenValue (RefLink);
Դրա համար կա գործառույթ EnterValue ().Ֆունկցիան ունի 3 պարամետր.
Ֆունկցիան գործարկելու արդյունքում կբացվի նշված տիպի օբյեկտի լռելյայն ընտրության ձևը։
Փոփոխական արժեք;
Array= նոր զանգված;
Զանգված. Ավելացնել (տեսակ ( «DirectoryLink.Nomenclature»)
)
;
Զանգված. Ավելացնել (տեսակ ( «DirectoryLink. Counterparties»)
)
;
TypeDescription= new TypeDescription(Array) ;
Res = EnterValue(Value, "Hint" , TypeDescription) ;
Նախորդ մեթոդները թույլ էին տալիս բացել միայն օբյեկտների լռելյայն ձևերը (օբյեկտի ձև կամ ընտրության ձև): Եթե Ձեզ անհրաժեշտ է բացել հատուկ ձև, կարող եք օգտագործել գործառույթը OpenForm ().
Այս ֆունկցիան ունի բավականին մի քանի պարամետրեր։ Դիտարկենք դրանցից մի քանիսը.
Եկեք նայենք, թե ինչպես է օգտագործվում գործառույթը OpenForm ()տարբեր իրավիճակներում.
Յուրաքանչյուր ձև ունի մեկ հիմնական հատկանիշ: Ձևի մանրամասների ցանկում այն ընդգծված է թավով և սովորաբար կոչվում է Օբյեկտտեղեկատու գրքերի և փաստաթղթերի տարրերի տեսքով: Այլ առարկաներ կարող են ունենալ այլ անվանում: Գոյություն ունեցող օբյեկտի ձևը բացելու համար անհրաժեշտ է բացվող ձևին պարամետր փոխանցել Բանալիարժեքը՝ որպես օբյեկտի հղում:
&OnClient
Ընթացակարգի հրաման 1 (հրաման)
Պարամետր = նոր կառուցվածք;
Պարամետր. Տեղադրեք("Բանալին" , FindC() );
OpenForm(, պարամետր);
Ընթացակարգի ավարտը
&Սերվերի վրա
FindC();
Վերադարձի դիրեկտորիաներ: Կողմնակիցներ. FindByRequisites («TIN», «745107734623»)
EndFunction
Այստեղ կկատարվի պարզ գործառույթ OpenForm ()առանց որևէ պարամետրի։
&OnClient
Ընթացակարգի հրաման 1 (հրաման)
OpenForm ( «Տեղեկագիր. Կողմնակիցներ. Օբյեկտի ձև»)
;
Ընթացակարգի ավարտը
Դուք պետք է փոխանցեք պարամետր Հիմք, որի արժեքը կլինի հղում լցոնման բազային օբյեկտին։ Սա կսկսի ընթացակարգը ProcessFill().
&OnClient
Ընթացակարգի հրաման 1 (հրաման)
Պարամետր = նոր կառուցվածք;
Պարամետր. Տեղադրեք («Base», LinkToBuyerAccount) ;
OpenForm ( «Փաստաթուղթ. Ապրանքների և ծառայությունների վաճառք. Օբյեկտի ձև», պարամետր);
Ընթացակարգի ավարտը
Այս օրինակը կստեղծի փաստաթուղթ Ապրանքների և ծառայությունների վաճառքև լրացվել գնորդին վճարման համար վճարման հաշիվ-ապրանքագրի հիման վրա, որի հղումը փոխանցվել է:
1C ձևերի ընտրությունը կարող է լինել պարզ կամ բարդ: Պարզ ընտրությունը ներառում է այնպիսի արտահայտություններ, ինչպիսիք են Կազմակերպություն = Horns and Hooves LLC.Համալիր ընտրությունը ներառում է համեմատության այլ տեսակներ, օրինակ. Ցուցակում. Այս հոդվածում մենք կքննարկենք պարզ ընտրության կազմակերպումը, և առանձին հոդված կնվիրվի բարդ ընտրությանը:
Պարզ ընտրություն կազմակերպելու համար անհրաժեշտ է բացվող ձևի բանալիով պարամետր փոխանցել Ընտրություն, արժեքը կլինի կառույց, որի բանալին դինամիկ ցուցակի դաշտի անունն է, իսկ արժեքը՝ փնտրվող տվյալները:
Օրինակ՝ բացենք գրացուցակի ցուցակի ձևը GTD համարներև այնտեղ ընտրություն կատարեք ըստ սեփականատիրոջ՝ գրացուցակի տարրի Անվանակարգ.
&OnClient
Ընթացակարգի հրաման 1 (հրաման)
Պարամետր = նոր կառուցվածք;
Ընտրություն= նոր կառուցվածք;
Ընտրություն. Տեղադրեք («Սեփականատեր», LinkToNomenclature) ;
Պարամետր. Տեղադրեք («Ընտրություն», Ընտրություն) ;
OpenForm ( «Directory.GTD numbers.List form», պարամետր);
Ընթացակարգի ավարտը
Դա անելու համար ձեզ հարկավոր է տեղեկատվական ռեգիստրի մուտքագրման բանալի:
Ձայնագրման բանալի- սրանք բոլոր չափումների և ժամանակաշրջանի արժեքներն են (եթե ռեգիստրը պարբերական է): Այսինքն, ռեկորդային բանալին այն պարամետրերն են, որոնց միջոցով գրառումը կարող է եզակիորեն նույնականացվել:
Բացման ալգորիթմը հետևյալն է.
&OnClient
Ընթացակարգի հրաման 1 (հրաման)
Պարամետր = նոր կառուցվածք;
KeyParameters= նոր կառուցվածք;
Հիմնական պարամետրեր. Տեղադրեք («Անվանակոչ», LinkToNomenclature) ;
Հիմնական պարամետրեր. Տեղադրեք ("PriceType", LinkToPriceType) ;
Հիմնական պարամետրեր. Ներդիր («Ժամանակաշրջան», Ամսաթիվ);
KeyArray = Նոր զանգված;
KeyArray. Ավելացնել (հիմնական պարամետրեր);
EntryKey = Նոր ( «Տեղեկատվական ռեգիստր Գրառման բանալի. Գների անվանակարգ», KeyArray) ;
Պարամետր. Տեղադրեք («Բանալին», Գրառման բանալի) ;
OpenForm ( «Տեղեկատվության գրանցամատյան. նոմենկլատուրայի գներ. գրանցման ձև», պարամետր);
Ընթացակարգի ավարտը
Մենք ունենք վերամշակում այս հիմնական ձևով.
Այս ձևից մենք պետք է բացենք լրացուցիչ ձև, և ձևի դաշտից տեքստը պետք է տեղափոխվի բացված ձև: Լրացուցիչ ձևը հետևյալն է.
Այսպիսով, երբ սեղմում եք «Գործարկել» կոճակը, դաշտում արդեն մուտքագրված տեքստով լրացուցիչ ձև է բացվում.
Դիտարկենք նման խնդրի լուծման տարբերակ։
Պարամետրերը սովորական ձևերի միջև փոխանցելու համար կարող եք կամ օգտագործել ձևի մոդուլի գլոբալ արտահանման փոփոխականը կամ ստեղծել ձևի հատկանիշ: Եկեք դիտարկենք մեր առաջադրանքի երկու մեթոդները:
1. Օգտագործելով ձևի մոդուլի գլոբալ արտահանման փոփոխականը:
«Run» կոճակի մշակման ընթացակարգի հիմնական ձևին ավելացրեք հետևյալ կոդը.
Ընթացակարգի կոճակԿատարել սեղմել(կոճակ)Ձև = GetForm(" Լրացուցիչ ձև" ) ; // «Տեքստը» բացվող ձևի մոդուլի գլոբալ արտահանման փոփոխական էՁև. Տեքստ = FormElements. Տեքստ. Իմաստը; Ձև. Open(); Ընթացակարգի ավարտըՏեքստային փոփոխականն ավելացվել է բացվող ձևի մոդուլին «BeforeOpen» իրադարձությունների մշակման հետ միասին.
Փոփոխական տեքստի արտահանում; // Փոփոխական, որին փոխանցվում է մեկ այլ ձևի արժեքըԸնթացակարգը նախքան բացելը (ձախողում, ստանդարտ մշակում) FormElements: Փոխանցված տեքստ: Արժեք = Տեքստ; Ընթացակարգի ավարտըԽնդիրը լուծված է, և շատ պարզ!
2. Օգտագործելով ձևի մանրամասները:
Երկրորդ մեթոդի համար մենք նույնիսկ կարիք չունենք վերաշարադրելու «Run» և «BeforeOpen» կոճակների մշակիչները: Ընդամենը անհրաժեշտ է բացված ձևին ավելացնել «Text» հատկանիշը տողի տիպով։
Կառավարվող ձևերում պարամետրերի փոխանցումը շատ ավելի հեշտ է: Պայմանական ձևերով նկարագրված մոտեցումը օգտագործվում է շատ դեպքերում:
Օրինակը կարող եք մշակել հոդվածից ներբեռնել հղումից.
Ձևաթղթերի միջև ավտոմատ փոխազդեցությանը աջակցելու համար համակարգը տրամադրում է մի շարք ստանդարտ պարամետրեր, որոնք օգտագործվում են ձևաթղթերը բացելիս կառավարելու համար: Օգտագործելով այս պարամետրերը, համակարգը ձևի դաշտերում իրականացնում է ընտրության ձևերից ընտրությունը, օբյեկտի ձևերի բացումը, ստանդարտ հրամանների գործարկումը և այլն: Այսինքն, դրանք ապահովում են համակարգում ներկառուցված ինտերֆեյսի շահագործման տարբեր սցենարներ: Բայց մշակողը կարող է նաև օգտագործել այս պարամետրերը ներկառուցված լեզվում՝ փոխանցելով դրանք OpenForm() մեթոդը կանչելիս։
Մենք թվարկում ենք համակարգի կողմից տրամադրված պարամետրերը և դրանց նպատակը.
Ցույց տալու համար, թե ինչպես են աշխատում ձևի պարամետրերը, հաշվի առեք մուտքագրման դաշտում տարրի ընտրության իրականացումը: Օրինակի էությունը կլինի ներկառուցված լեզվով ցանկից տարր ընտրելու մեխանիզմի իրականացումը:
Մինչ դուք սկսում եք աշխատել օրինակի հետ, դուք պետք է կազմաձևեք հետևյալ հատկություններով.
Այժմ եկեք այս կոնֆիգուրացիայի մեջ ներդնենք բոլոր այն մեխանիզմները, որոնք պլատֆորմն օգտագործում է ներկառուցված լեզվով ցանկից տարր ընտրելու համար: Դրանով մենք կտեսնենք, թե ինչպես են օգտագործվում ստանդարտ ձևի պարամետրերը. ինչպես է համակարգը օգտագործում դրանք. ինչպես կարող է մշակողը օգտագործել դրանք:
Ավելացնենք լրացուցիչ դրոշակ, որը կվերահսկի ընտրության ձևի փակումը տարր ընտրելուց հետո: Եկեք այս դրոշն անվանենք CloseAfterSelection (տիպ Բուլյան): Եկեք այն ավելացնենք որպես ձևի պարամետր Form՝ Ապրանքների գրացուցակը ընտրելու համար:
Տարրերի ընտրության ձևը բացելու համար դուք պետք է ստեղծեք իրադարձությունների մշակիչ Ընտրության մեկնարկի իրադարձության համար Ընտրված արտադրանքի ձևի տարրի համար՝ Անալոգներ գրացուցակի տարրի տեսքով.
&OnClient
Ընթացակարգը SelectedProductStartSelection (նյութ, ստանդարտ մշակում)
StandardProcessing = False;
SelectionParameters = Նոր կառուցվածք; SelectionParameters.Insert("SelectionMode", True); SelectionParameters.Insert("SelectingGroupsAndElements", UsingGroupsAndElements.Elements); SelectionParameters.Insert("AllowRootSelection", False); SelectionParameters.Insert("CurrentRow", Object.SelectedProduct); SelectionParameters.Insert("CloseAfterSelection", False); OpenForm ("Directory.Products.SelectionForm", SelectionParameters, Elements.SelectedProduct);
Ընթացակարգի ավարտը
Անհրաժեշտ է առանձին անդրադառնալ OpenForm() մեթոդի երրորդ պարամետրին։ Այս պարամետրը որոշում է, թե ով է լինելու ընտրության ձևի սեփականատերը և ով կտեղեկացվի կատարված ընտրության մասին: Այս դեպքում մենք նշել ենք ձևի տարրը որպես ընտրության ձևի սեփականատեր, բայց մենք կարող ենք նաև նշել ինքնին ձևը այս պարամետրով: Այս դեպքում անհրաժեշտ կլինի ներդնել Form Module Selection Processing մշակողը և դրանում որոշել, թե որ ձևի հատկանիշով տեղադրել ընտրված տվյալները:
Տպել (Ctrl+P)
Ձևի պարամետրերը (Ընտրանքներ ներդիր) ծառայում են երկու նպատակի.
● Նկարագրեք տվյալների մի շարք, որոնք կազդեն ձևի բացման վրա (ձևի պարամետրացում): Դա անելու համար անհրաժեշտ է թվարկել բոլոր անհրաժեշտ պարամետրերը և նշել դրանց տեսակները:
● Որոշեք այն պարամետրերը, որոնք կազդեն ձևի եզակիության բանալին: Դա անելու համար դուք պետք է սահմանեք գույքը Հիմնական պարամետրայն պարամետրերը, որոնք պետք է մասնակցեն ձևի եզակիության բանալի ձևավորմանը: Երբ փորձում եք բացել ձևը, համակարգը որոնում է գոյություն ունեցող ձև՝ օգտագործելով ձևի եզակիության ստեղնը: Եթե համակարգում առկա է ստացված բանալիով ձև
եզակիությունը, հենց այս ձևն է վերադառնում. եթե ոչ, ապա ստեղծվում է նոր ձև:
Ձև կանչելիս մշակողի կողմից ստեղծված պարամետրերի արժեքները կարող են նշվել պարամետրերի կառուցվածքում ձևերի համակարգի պարամետրերի հետ միասին (եթե այդպիսիք կան):
Ձևի պարամետրերը կարող են փոխանցվել ձևին դրա ստեղծման պահին: Անցած պարամետրերի վերլուծությունը կարող է իրականացվել միջոցառման ժամանակ WhenCreatingOnServer ()
(Պարամետրերի հավաքածուն օբյեկտի հատկությունն է Կառավարվող ձև):
// Զանգի վայրում:
// Ստեղծեք ձևի պարամետր.
Պարամետրեր = new Structure();
Ընտրանքներ.Ներդիր(«Կարևորություն», PredefinedValue(«Թվարկում. Կարևորություն. Կարևոր»));
// Բացեք ձևը պարամետրերով:
OpenForm («GeneralForm.ViewForm», Պարամետրեր);
…
// Ձևի մոդուլում:
&Սերվերի վրա
Ընթացակարգը WhenCreatingOnServer (ձախողում, ստանդարտ մշակում)
Եթե Պարամետրեր.Կարևորություն = Թվարկումներ.Կարևորություն.Կարևոր o Հետո
…
վերջԵթե;
Ընթացակարգի ավարտը
ՈՒՇԱԴՐՈՒԹՅՈՒՆ! Միջոցառումների կազմակերպիչին զանգահարելուց հետո Երբ CreatedOnServerբոլոր ոչ հիմնական ձևի պարամետրերը հեռացվում են Պարամետրերի հավաքածուից:
Խորհուրդ. Հետագա աշխատանքի համար պահանջվող ձևի ոչ հիմնական պարամետրերը պետք է պահպանվեն ձևի տվյալների մեջ:
Ձևաթղթերի միջև ավտոմատ փոխազդեցությանը աջակցելու համար համակարգը տրամադրում է մի շարք ստանդարտ պարամետրեր, որոնք օգտագործվում են ձևաթղթերը բացելիս կառավարելու համար: Օգտագործելով այս պարամետրերը, համակարգը ձևի դաշտերում իրականացնում է ընտրության ձևերից ընտրությունը, օբյեկտի ձևերի բացումը, ստանդարտ հրամանների գործարկումը և այլն: Այսինքն, դրանք ապահովում են համակարգում ներկառուցված ինտերֆեյսի շահագործման տարբեր սցենարներ:
Բայց մշակողը կարող է նաև օգտագործել այս պարամետրերը ներկառուցված լեզվում՝ փոխանցելով դրանք OpenForm() մեթոդը կանչելիս։
Ստանդարտ ձևի պարամետրերի ցանկը՝ կախված ձևի ընդլայնման տեսակից, կարելի է գտնել բաժիններում Ներկառուցված լեզու - Ինտերֆեյս
(կառավարվող) – Կառավարվող ձև – Ընդլայնվող... ներկառուցվածվկայականներ
Ցույց տալու համար, թե ինչպես են աշխատում ձևի պարամետրերը, հաշվի առեք մուտքագրման դաշտում տարրի ընտրության իրականացումը: Օրինակի էությունը կլինի ներկառուցված լեզվով ցանկից տարր ընտրելու մեխանիզմի իրականացումը:
Մինչ դուք սկսում եք աշխատել օրինակի հետ, դուք պետք է կազմաձևեք հետևյալ հատկություններով.
● կա տեղեկատու Ապրանքներ խմբերի և տարրերի հիերարխիայով;
● կա Analogs գրացուցակ, որի մանրամասներն են SelectedProduct տեսակը DirectoryLink.Products;
● երկու դիրեկտորիաներն էլ ունեն տարրերի ձևեր:
Այժմ եկեք այս կոնֆիգուրացիայի մեջ ներդնենք բոլոր այն մեխանիզմները, որոնք պլատֆորմն օգտագործում է ներկառուցված լեզվով ցանկից տարր ընտրելու համար: Այս դեպքում մենք կտեսնենք.
● ինչպես են օգտագործվում ստանդարտ ձևի պարամետրերը;
● ինչպես է համակարգը օգտագործում դրանք.
● ինչպես կարող է մշակողը օգտագործել դրանք:
Ավելացնենք լրացուցիչ պարամետր, որը կվերահսկի ընտրության ձևի փակումը տարր ընտրելուց հետո։ Եկեք անվանենք այս պարամետրը Փակել Ընտրությունից հետո(Բուլյան տիպ): Եկեք այն ավելացնենք որպես ձևի պարամետր Form՝ տեղեկատու Ապրանքներ ընտրելու համար։
Տարրերի ընտրության ձևը բացելու համար դուք պետք է ստեղծեք իրադարձությունների մշակիչ Start of Selection իրադարձության համար SelectedProduct ձևի տարրի համար՝ Analogues գրացուցակի տարրի տեսքով:
&OnClient
Ընթացակարգը SelectedProductStartSelection (հատ, ստանդարտ մշակում)
Ստանդարտ մշակում= Սխալ;
Ընտրության ընտրանքներ= Նոր կառուցվածք;
Ընտրության Ընտրանքներ. Տեղադրեք(«SelectionMode», True);
Ընտրության Ընտրանքներ. Տեղադրեք(«Խմբերի և տարրերի ընտրություն», Օգտագործելով GroupsAndElements.Elements);
Ընտրության Ընտրանքներ. Տեղադրեք(«AllowRootSelection», False);
Ընտրության Ընտրանքներ. Տեղադրեք(«Ընթացիկ գիծ», Object.SelectedProduct);
Ընտրության Ընտրանքներ. Տեղադրեք(«CloseAfterSelection», False);
OpenForm («Directory.Products.SelectionForm», Ընտրության ընտրանքներ, Items.SelectedItem);
Ընթացակարգի ավարտը
Անհրաժեշտ է առանձին անդրադառնալ OpenForm() մեթոդի երրորդ պարամետրին։ Այս պարամետրը որոշում է, թե ով է լինելու ընտրության ձևի սեփականատերը և ով կտեղեկացվի կատարված ընտրության մասին: Այս դեպքում մենք նշել ենք ձևի տարրը որպես ընտրության ձևի սեփականատեր, բայց մենք կարող ենք նաև նշել ինքնին ձևը այս պարամետրով: Այս դեպքում անհրաժեշտ կլինի իրականացնել կարգավորիչ ProcessingSelectionձևավորել մոդուլը և որոշել դրա մեջ, թե որ ձևի հատկանիշում տեղադրել ընտրված տվյալները:
ՆՇՈՒՄ. Եթե մենք չենք իրականացնում StartSelection իրադարձությունների մշակիչը, ապա դրա գործողությունները կիրականացվեն հենց համակարգի կողմից: Սա ճշմարիտ է բոլոր հետագա մշակողների համար, որոնք օգտագործվում են օրինակում:
Այժմ դուք պետք է մշակեք անցած պարամետրերը ընտրության ձևում: Եկեք դա անենք կարգավորիչում Երբ CreatedOnServer() ընտրության ձևի մոդուլի:
&Սերվերի վրա
Ընթացակարգը WhenCreatingOnServer (ձախողում, ստանդարտ մշակում)
Ստանդարտ մշակում= Սխալ;
Elements.List.SelectingGroupsAndElements = Parameters.SelectingGroupsAndElements;
Elements.List.AllowRootSelection = Պարամետրեր.AllowRootSelection;
Elements.List.CurrentRow = Parameters.CurrentRow;
CloseOnSelection = Options.CloseAfterSelection;
Ընթացակարգի ավարտը
Մեր կողմից դրված ձևի պարամետրերի ֆունկցիոնալությունը ստուգելու համար, օգտագործելով կազմաձևիչը, մենք ընտրության ձևի աղյուսակի համար կսահմանենք List հատկությունը: Ընտրելով խմբեր և տարրերԽմբերի արժեքին (առանց պարամետրի օգտագործման, գրացուցակի տարրերի ընտրությունը հասանելի չի լինի):
ՆՇՈՒՄ. Եթե ապրանքների ցանկը ցուցադրող List աղյուսակում SelectionMode հատկությունը սահմանված չէ True, ապա ապրանքների ընտրությունը հասանելի չի լինի:
Այժմ մենք պետք է ընտրենք ցանկալի տարրի ընտրությունը ընտրության ձևում: Դա անելու համար դուք պետք է սահմանեք կարգավորիչ ձևի աղյուսակի SelectValue իրադարձության համար:
&OnClient
Ընթացակարգը ListValueSelection (տարր, ստանդարտ մշակում, արժեք)
Ստանդարտ մշակում= Սխալ;
NotifyOfSelection (արժեք);
Ընթացակարգի ավարտը
Մեզ մնում է միայն իրականացնել տարրերի ընտրության մշակում հենց մուտքագրման դաշտում: Դա անելու համար դուք պետք է կարգավորեք իրադարձությունը ProcessingSelectionմեր մուտքագրման դաշտը SelectedProduct:
&OnClient
Ընթացակարգը SelectedItemSelectionProcessing(Item, SelectedValue, StandardProcessing)
Ստանդարտ մշակում= Սխալ;
Object.SelectedProduct = SelectedValue;
Ընթացակարգի ավարտը
Մենք ինքնուրույն ներդրեցինք համակարգի մեխանիզմ՝ ձևաթղթի վրա մուտքագրված դաշտում արժեք ընտրելու համար:
ՈՒՇԱԴՐՈՒԹՅՈՒՆ.Այս օրինակը ամբողջական չէ։ Դրա միակ նպատակը ձևի պարամետրերի հետ աշխատելու մեխանիզմների ցուցադրումն է։
Եթե պարամետրեր ստեղծելիս (կարգավորիչ SelectedProductStartSelection()) փոխարինել տողը.
Ընտրության Ընտրանքներ. Տեղադրեք(«CloseAfterSelection», Ճիշտ է);
մեկ տողով.
Ընտրության Ընտրանքներ. Տեղադրեք(«CloseAfterSelection», False) ;
ապա ընտրության ձևն այլևս չի փակվի ընտրությունը կատարելուց հետո: Սա կարող է օգտագործվել, օրինակ, ընտրության ձևը իրականացնելու համար (մի քանի ապրանք ընտրելով՝ առանց ընտրության ձևը փակելու):