1c ֆունկցիոնալ ընտրանքների օրինակ: Բաշխված տեղեկատվական համակարգերի կառուցում, որոնում, սովորական առաջադրանքներ, ֆունկցիոնալ տարբերակներ: Ֆունկցիոնալ ընտրանքների պարամետրի հատկություններ

1c ֆունկցիոնալ ընտրանքների օրինակ: Բաշխված տեղեկատվական համակարգերի կառուցում, որոնում, սովորական առաջադրանքներ, ֆունկցիոնալ տարբերակներ: Ֆունկցիոնալ ընտրանքների պարամետրի հատկություններ

1C:Enterprise 8.2 պլատֆորմի թողարկմամբ նոր օբյեկտ հայտնվեց կոնֆիգուրացիայի ծառում. «Ֆունկցիոնալ ընտրանքներ». Այն ակտիվորեն օգտագործվում է բոլոր ստանդարտ կոնֆիգուրացիաներում՝ հիմնված կառավարվող ձևերի վրա և ծառայում է ինտերֆեյսում առանձին մանրամասների և օբյեկտների ցուցադրման գործընթացը պարզեցնելու համար: Օրինակ, ձեր կոնֆիգուրացիայի մեջ կա արտաքին վեբ ծառայությունների հետ փոխանակման մոդուլ: Այս մոդուլը օգտագործում է մի շարք մանրամասներ փաստաթղթերում, գրանցամատյաններում և ենթահամակարգերի առանձին բաղադրիչներում: Մոդուլը ընտրովի է և անհրաժեշտ չէ յուրաքանչյուր ընկերության համար: Տրամաբանական է, որ քանի որ ոչ բոլորին է պետք մոդուլը, ուրեմն միշտ չէ, որ անհրաժեշտ է ցուցադրել դրա հետ կապված բոլոր տարրերը/դաշտերը։

Պլատֆորմի հին տարբերակներում նման խնդիրների լուծումը պահանջում էր լրացուցիչ կոդ գրել, որը պետք է կանչվեր բոլոր կախյալ տարածքներում։ Օրինակ, եթե մեզ անհրաժեշտ էր թաքցնել ձևի որոշակի մանրամասներ (կախված պարամետրի արժեքից), ապա ձևը բացելիս անհրաժեշտ էր զանգահարել համապատասխան կոդը: Սա այնքան էլ հարմար չէր, և շատ դեպքերում մշակողները հրաժարվեցին նման բաներից։

Լավ է, եթե ձեզ միայն անհրաժեշտ է թաքցնել դաշտերը փաստաթղթերի տեսքով, բայց մենք կարող ենք ունենալ նաև գրանցման ձևեր, որոնց հետ հնարավոր է նաև օգտատիրոջ փոխազդեցություն: Էկրանի կառավարման ունիվերսալ գործառույթ գրելը բավականին դժվար է և կպահանջի լրացուցիչ ժամանակ, որը երբեք բավարար չէ:

Ֆունկցիոնալ ընտրանքները նախատեսված են լուծելու այս և շատ այլ դժվարություններ՝ կապված ինտերֆեյսի տարրերի/օգտագործողի միջերեսում առկա օբյեկտների կազմի ցուցադրման հետ: Այս գրառման մեջ ես չեմ դիտարկի ֆունկցիոնալ ընտրանքների հիմնական նպատակի օգտագործման օրինակները, այլ ուշադրություն կդարձնեմ դրանց օգտագործման ոչ ստանդարտ ձևով: Այն կարող է ծանոթ լինել շատ առաջադեմ ծրագրավորողների, բայց ես այս մեթոդին եկել եմ բոլորովին պատահական: Ավելի ճիշտ, այն ոգեշնչված էր JavaScript-ում ծրագրավորման պրակտիկայից։

Գործ թիվ 1. ֆունկցիոնալ տարբերակ՝ որպես փաթաթող այլ առարկաների վրա

Ֆունկցիոնալ ընտրանքների առաջին ոչ ստանդարտ առանձնահատկությունը փաթաթաներ ստեղծելու ունակությունն է: Դիտարկենք ամենապարզ օրինակը՝ հաստատունները: Օրինակ, դուք ավելացնում եք նոր հաստատուն կոնֆիգուրացիայի մեջ, որն ունի մեծ թվով օգտվողի դերեր: Որպեսզի օգտատերերը մուտք գործեն հաստատունի արժեքը, դուք պետք է համապատասխան դերերի համար սահմանեք ընթերցման իրավունքներ: Եթե ​​իրավունքները սահմանված չեն, ապա օգտվողները չեն կարողանա ստանալ դրա արժեքը: Եթե ​​կան շատ դերեր, և դրանք ժառանգված չեն բազային դերից, ապա ստիպված կլինեք ժամանակ ծախսել համապատասխան վանդակները ստուգելու համար:

Ֆունկցիոնալ տարբերակը կարող է ավելի նրբագեղ լուծել այս խնդիրը: Գաղափարը հետևյալն է՝ ստեղծել հաստատուն (օրինակ՝ ): Մենք դրա նկատմամբ իրավունքներ չենք վերապահում։ Ստեղծեք համանուն ֆունկցիոնալ տարբերակ և նշեք այն սեփականության մեջ «Պահեստավորում»ցույց տալ հաստատուն «Տվյալների պահպանման հնարավորություն». Դրոշն էլ դրեցինք «Արտոնյալ վերաբերմունք՝ ստանալուց հետո»..

Դա այն է, այժմ կոդի ցանկացած կետում, որտեղ դուք պետք է հղում կատարեք հաստատունին, մենք գրում ենք այսպես.

Քանի որ մենք ընտրանքը դրել ենք արտոնյալ ռեժիմի վրա, մենք կարիք չունենք հաստատունի համար լրացուցիչ իրավունքներ նշել: Իհարկե, կարիք չկա կիրառել այս տեխնիկան բոլոր պատկերացնելի և աներևակայելի իրավիճակներում: Հիշեք, որ իրավունքների ճիշտ բաշխումը մտքի խաղաղության գրավականն է: Օգտագործեք հնարքը միայն իսկապես անհրաժեշտ դեպքերում։

Գործ թիվ 2. Աբստրակցիայի լրացուցիչ մակարդակ

Ես չգիտեմ, թե ինչպես անվանել այս մեթոդը ավելի ճիշտ, բայց իմ մտքում դա հնչում է հենց այդպես: Եկեք նայենք նախորդ օրինակին: Մենք դեռ ունենք նույն մշտական ​​«Տվյալները պահպանելու ունակությունը»: Մենք աշխատում ենք դրա հետ՝ օգտագործելով փաթաթան համանուն ֆունկցիոնալ տարբերակը:

Հիմա պատկերացրեք, որ մենք ուզում էինք ազատվել հաստատունից և անցնել գրացուցակի օգտագործմանը: Նման խնդրի լուծման տիպիկ սցենարը (եթե մենք օգտագործում ենք միայն հաստատուն) կլինի գլոբալ որոնման գործիքի գործարկումը՝ հաստատուն մուտքը հայտնաբերելու համար: Հիշեցնեմ, որ եթե մենք որպես փաթաթան չենք օգտագործում ֆունկցիոնալ տարբերակ, ապա հաստատունին պետք է վերաբերվել այսպես.

Constants.Ability toSaveData.Get();

Մենք գտնում ենք բոլոր զանգերը և դրանք փոխարինում նոր պահեստային օբյեկտի ուղով: Համաձայնեք, սա բավականին անհարմար է։ Եթե ​​մենք օգտագործել ենք նախորդ դեպքը (օգտագործելով ֆունկցիոնալ տարբերակ որպես փաթաթում), ապա «տեղափոխելու» համար անհրաժեշտ է միայն անցնել ֆունկցիոնալ տարբերակի հատկություններին և փոխել հատկությունը։ «Պահեստավորում». Օրինակ, նշեք այնտեղ «տեղեկատու»կամ «Տեղեկատվության գրանցամատյան».. Համաշխարհային որոնմամբ խաղեր չեն պահանջվում: Ֆունկցիոնալ տարբերակի միջոցով հաստատունի արժեքին մուտք գործելու կոդը կմնա նույնը.

GetFunctionalOption ("DataSavingAbility");

Նպատակը

Ֆունկցիոնալ ընտրանքները ծրագրավորողին թույլ են տալիս նկարագրել կազմաձևման հնարավորությունները, որոնք կարող են արագ միացնել կամ անջատվել իրականացման փուլում և/կամ համակարգի շահագործման ընթացքում: Օրինակ, արտադրանքի լրացուցիչ հատկությունների հետ աշխատելու ունակությունը կարելի է բաժանել առանձին ֆունկցիոնալ տարբերակի: Այնուհետև, եթե անջատեք այս հնարավորությունը, բոլոր հարակից (արտադրանքի լրացուցիչ հատկություններով) գործառույթները «կվերանան» կազմաձևման միջերեսում:

Համակարգն ի վիճակի է ավտոմատ կերպով հաշվի առնել կատարված կարգավորումների վիճակը՝ թաքցնել անջատված գործառույթները՝ հավելվածի միջերեսը դարձնելով ավելի պարզ և հասկանալի օգտագործողի համար:

Մշակման ընթացքում առաջանում են իրավիճակներ, երբ ֆունկցիոնալ տարբերակի արժեքը պետք է կախված լինի որոշակի պարամետրերից, օրինակ, ոչ բոլոր կազմակերպություններն են վարում արժութային հաշվառում: Նման կախվածություն իրականացնելու համար օգտագործեք «Functional Options Parameters» - ֆունկցիոնալ ընտրանքները պարամետրացնող օբյեկտ: Ինչի՞ վրա են ազդում ֆունկցիոնալ ընտրանքները:

Ֆունկցիոնալ ընտրանքները կարող են ազդեցություն ունենալ.

  • օգտատիրոջ միջերեսին – երբ անջատում եք որևէ ֆունկցիոնալ տարբերակ, համակարգը թաքցնում է դրա հետ կապված բոլոր տարրերը օգտատիրոջ միջերեսում: Հետևյալ ինտերֆեյսի տարրերը ազդում են.
    • գլոբալ հրամանի ինտերֆեյս;
    • ձևեր;
    • հաշվետվություններ, որոնք իրականացվում են տվյալների կազմման համակարգի միջոցով:
  • ներկառուցված լեզվով գրված ալգորիթմներ - հնարավոր է ծրագրային կերպով ստանալ (և սահմանել) ֆունկցիոնալ ընտրանքների արժեքները և օգտագործել դրանք տարբեր պայմաններում, օրինակ՝ նվազեցնելու հաշվարկների քանակը:

Համաշխարհային հրամանի ինտերֆեյս

Ֆունկցիոնալ ընտրանքների ազդեցությունը գլոբալ հրամանի ինտերֆեյսի վրա այն է, որ համակարգը թաքցնում է անհասանելի ընտրանքների հետ կապված բոլոր օբյեկտների հրամանները: Օրինակ, եթե «Գնումներ» ֆունկցիոնալ տարբերակի արժեքը False է, ապա «Գնումներ» բաժինը բացելու, «Ապրանքների ստացման փաստաթուղթ» ստեղծելու, «Ապրանքների ստացման» ցանկը բացելու և այլնի հրամանները կթաքցվեն:

Իր հերթին, Գնման տարբերակը կարող է հաշվի առնել ֆունկցիոնալ օպցիոնի պարամետրի արժեքը, օրինակ՝ Կազմակերպություն: Փոխելով այս պարամետրի արժեքը՝ օգտագործելով ներկառուցված լեզվական մեթոդները, կարող եք փոխել ֆունկցիոնալ տարբերակի վիճակը և, հետևաբար, ինտերֆեյսի տարրի տեսանելիությունը:

Ձև

Կառավարվող ձևով ֆունկցիոնալ ընտրանքները կարող են ազդել ձևի ատրիբուտների, հրամանների և (որպես արդյունք) դրանց հետ կապված ձևի տարրերի վրա:

Կառավարվող ձևի դաշտերի և աղյուսակների տեսանելիությունը կախված է ձևի մանրամասների տեսանելիությունից, իսկ կոճակների տեսանելիությունը՝ հրամանների տեսանելիությունից։

Տվյալների կազմման համակարգ

Տվյալների կազմման համակարգը հիմնականում օգտագործվում է հաշվետվություններ ստեղծելու համար: Ֆունկցիոնալ ընտրանքները ազդում են հաշվետվության մեջ ցուցադրվող տվյալների կազմի և օգտագործողին հասանելի հաշվետվության կարգավորումների կազմի վրա: Օրինակ, եթե «Արժութային հաշվառում» գործառույթն անջատված է, ապա «Ապրանքների ստացման փաստաթղթերի ռեեստրը» ցուցադրող հաշվետվությունը չի ունենա Արժույթի և Արժույթի գումարի սյունակները, իսկ պարամետրերը չեն ունենա ընտրելու, խմբավորելու, տեսակավորելու հնարավորություն և այլն: Արժույթի դաշտը:

Հաշվետվության դաշտերի առկայության վրա գործառնական ընտրանքների ազդեցության մասին լրացուցիչ տեղեկությունների համար տե՛ս «Կառավարվող հաշվետվություններ» գլխի «Ֆունկցիոնալ ընտրանքներ և դաշտերը հաշվետվության մեջ դիտելու թույլտվություն» բաժինը:

Աշխատանքի ընդհանուր սխեման

Ֆունկցիոնալ ընտրանքների մեխանիզմը ներառում է երկու տեսակի մետատվյալների օբյեկտներ՝ Functional Option և Functional Options Parameter:

Ֆունկցիոնալ տարբերակը մետատվյալների օբյեկտ է, որն ուղղակիորեն ազդում է հավելվածի ինտերֆեյսի կազմի վրա: Օգտագործելով այս տեսակի օբյեկտները, դուք կարող եք թաքցնել տարրեր, որոնք կապված են անհասանելի ֆունկցիոնալության հետ: Օրինակ, Արժույթի հաշվառման տարբերակը կարող է հեռացնել Արժույթի գրացուցակը, Արժույթի դաշտը փաստաթղթերից և Արժույթի գումարի սյունակը հաշվետվություններից: Ֆունկցիոնալ տարբերակի արժեքի աղբյուրը մետատվյալների օբյեկտն է, որն ընտրված է որպես Storage հատկություն, օրինակ, սա կարող է լինել հաստատուն:

Եթե ​​ֆունկցիոնալ տարբերակի արժեքը պահվում է գրացուցակի հատկանիշում կամ տեղեկատվական ռեգիստրի ռեսուրսում, անհրաժեշտ է լրացուցիչ տեղեկատվություն, որը հստակ ցույց է տալիս, թե ինչպես ընտրել տարբերակի արժեքը: Այդ նպատակով տրամադրվում է առանձին մետատվյալների օբյեկտ՝ Functional Options Parameter:

Կարելի է ասել, որ ֆունկցիոնալ տարբերակների պարամետրերը ֆունկցիոնալ տարբերակների արժեքային տարածության կոորդինատային առանցքներն են։ Ավելին, ֆունկցիոնալ տարբերակի մեկ պարամետրը կարող է որոշել «իր» կոորդինատային առանցքի արժեքը միաժամանակ բազմաթիվ ֆունկցիոնալ տարբերակների համար:

Դիտարկենք օրինակ. ասենք քանակական հաշվառումը կախված է կազմակերպության ներսում գտնվող միավորից: Մեր տեղեկատվական բազայում դուք կարող եք գրառումներ կատարել տարբեր կազմակերպությունների անունից:

Ֆունկցիոնալ ընտրանքների արժեքները պահելու համար մենք կստեղծենք տեղեկատվական ռեգիստր, որտեղ չափերը (կոորդինատային առանցքները) կլինեն.

  • Կազմակերպում (համապատասխան տեսակի);
  • Բաժանում (համապատասխան տեսակի).

Տեղեկատվական ռեգիստրի ռեսուրսը կլինի քանակական հաշվառման ֆունկցիոնալ տարբերակի արժեքը:

Այնուհետև ընդհանուր կազմաձևման կառուցվածքը կունենա հետևյալ տեսքը.

  • Տեղեկատվության գրանցամատյան Քանակական հաշվառում.
    • Չափերի կազմակերպում,
    • Չափերի բաժին,
    • Բուլյան տիպի քանակական հաշվապահական ռեսուրս:
  • Ֆունկցիոնալ ընտրանքների պարամետր Կազմակերպություն: Օգտագործման հատկությունը ցույց է տալիս Տեղեկատվական ռեգիստրի կազմակերպման չափումը Quantitative Accounting:
  • ֆունկցիոնալ ընտրանքների պարամետր բաժին. Օգտագործման հատկությունը ցույց է տալիս Քանակական հաշվառման տեղեկատվության ռեգիստրի բաժանման չափը:
  • QuantitativeAccounting ֆունկցիոնալ տարբերակը՝ Storage հատկությունը, մատնանշում է QuantitativeAccounting տեղեկատվական ռեգիստրի QuantitativeAccounting ռեսուրսը:

Արդյունքում, քանակական հաշվառման պահպանման անհրաժեշտությունը որոշելու համար մենք պետք է յուրաքանչյուր կոնկրետ դեպքում նշենք ֆունկցիոնալ տարբերակների պարամետրերի արժեքները (Կազմակերպություն և բաժին) և ստանանք ֆունկցիոնալ տարբերակի արժեքը:

Փոխազդեցություն այլ օբյեկտների հետ

Ֆունկցիոնալ ընտրանքները կարող են վերագրվել հետևյալ կազմաձևման օբյեկտներին.

  • Ենթահամակարգեր,
  • Ընդհանուր հրամաններ
  • հաստատուններ,
  • Ընտրության չափանիշներ,
  • տեղեկատու,
  • փաստաթուղթ,
  • Ամսագիր,
  • Հաշվային աղյուսակ,
  • բնութագրերի տեսակների պլան,
  • Հաշվարկների տեսակների պլան,
  • Բիզնես գործընթաց,
  • Առաջադրանք,
  • Փոխանակման պլաններ,
  • Հաշվետվություն,
  • Բուժում,
  • կուտակային ռեգիստր,
  • Տեղեկատվության գրանցամատյան
  • Հաշվապահական գրանցամատյան,
  • Հաշվարկային ռեգիստր,
  • Թիմ,
  • Մետատվյալների օբյեկտի մանրամասները,
  • աղյուսակային մաս,
  • Աղյուսակային մասի մանրամասները,
  • Հաշվապահական նշան
  • Subconto հաշվապահական հատկանիշ,
  • Հասցեավորման մանրամասները
  • Չափումների գրանցում,
  • Գրանցեք ռեսուրսը:

Ֆունկցիոնալ տարբերակները կարող են ազդել նաև ձևի տարրերի տեսանելիության վրա:

Ստեղծագործություն

Ֆունկցիոնալ տարբերակի ստեղծում

Ֆունկցիոնալ տարբերակ ստեղծելու համար անհրաժեշտ է ստեղծել կոնֆիգուրացիայի օբյեկտ Functional Option: Դա կարելի է անել «Կոնֆիգուրատոր» ռեժիմում սովորական եղանակով, այսինքն՝ կազմաձևման պատուհանում ընտրել «Ընդհանուր», ապա «Ֆունկցիոնալ ընտրանքներ» և ավելացնել նոր օբյեկտ:

Սա կստեղծի «Functional Option» կոնֆիգուրացիայի օբյեկտ, որը կարող է օգտագործվել այլ մետատվյալների օբյեկտներին ֆունկցիոնալ ընտրանքներ հատկացնելու համար:

Բացի անունից, օբյեկտն ունի պահանջվող հատկություն՝ Storage: Խմբագրում դուք կարող եք ընտրել դրա համար նախատեսված օբյեկտներից մեկը, որը կլինի օպցիոնի արժեքի աղբյուրը։ Առկա օբյեկտների ցանկը ներառում է.

  • հաստատուններ,
  • գրացուցակի մանրամասները,
  • տեղեկատվական ռեգիստրի ռեսուրսներ.

Ընտրանքի արժեքի աղբյուրի տեսակի վրա սահմանափակում չկա, բայց միայն այն ֆունկցիոնալ տարբերակները, որոնք իրենց արժեքները պահում են բուլյան տիպի ատրիբուտներում, հարմար են ինտերֆեյսի կառավարման համար: Այլ տեսակների հետ ֆունկցիոնալ ընտրանքների արժեքները հասանելի են միայն ներկառուցված լեզվով վերլուծելու համար:

Ֆունկցիոնալ ընտրանքների պարամետրի ստեղծում

Ֆունկցիոնալ ընտրանքի պարամետր ստեղծելու համար դուք պետք է ստեղծեք նույն անունով կոնֆիգուրացիայի օբյեկտ: Դա կարելի է անել Ընդհանուր մասնաճյուղում, Ֆունկցիոնալ ընտրանքների կարգավորումներ կետում:

Բացի անունից, պարամետրն ունի պահանջվող Usage հատկություն: Այն սահմանում է օբյեկտների մի շարք, որոնց արժեքները կորոշեն, թե ինչպես պետք է ընտրվի ֆունկցիոնալ տարբերակի արժեքը: Հասանելի օբյեկտների ցանկը ներառում է տեղեկատուներ և տեղեկատվական ռեգիստրի չափերը: Այս ցանկի ֆունկցիոնալ ընտրանքների յուրաքանչյուր պարամետրի համար կարող եք ընտրել մեկ գրացուցակ (գրացուցակների ամբողջ ցանկից) և յուրաքանչյուր տեղեկատվական ռեգիստրի մեկ չափ:

Օգտագործումը

Օբյեկտներին մետատվյալների վերագրում

Մետատվյալների օբյեկտը (օրինակ՝ գրացուցակը) կարող է վերագրվել մեկ կամ մի քանի ֆունկցիոնալ տարբերակների: Դա անելու համար օգտագործեք «Functional options» հատկությունը, որը պարունակում է կոնֆիգուրացիայի մեջ ստեղծված ֆունկցիոնալ ընտրանքների հղումներ: Հասանելի ընտրանքների ցանկը սահմանափակվում է միայն այն տարբերակներով, որոնց Storage հատկությանը վերագրված է օբյեկտ, որի արժեքի տեսակը Բուլյան է:

Մանրամասների և հրամանների ձևավորման հանձնարարություն

Ձևին պատկանող օբյեկտները (Մանրամասներ և հրամաններ) կարող են օգտագործվել նաև ֆունկցիոնալ ընտրանքների մեխանիզմում։

Դա կարելի է անել ձևաթղթի խմբագրիչում՝ սահմանելով «Functional options» հատկությունը պահանջվող օբյեկտի համար:

Ֆունկցիոնալ ընտրանքների վիճակը կազդի ձևի օբյեկտների ցուցադրման վրա այնպես, ինչպես մետատվյալների օբյեկտների դեպքում: Օրինակ, հրամանի դեպքում, որն անջատված է ֆունկցիայի ընտրանքով, բոլոր հարակից կոճակները կհեռացվեն:

Եթե ​​ոչ մի ֆունկցիոնալ տարբերակ վերագրված չէ ձևի հատկանիշին կամ հրամանին, ապա ձևի հատկանիշը կամ հրամանը համարվում է միշտ տեսանելի: Հակառակ դեպքում, ձևի հատկանիշը կամ հրամանը տեսանելի է համարվում, եթե նրան հատկացված ֆունկցիոնալ տարբերակներից գոնե մեկը միացված է:

Օգտագործեք տվյալների հասանելիության սահմանափակման մեխանիզմում

Տվյալների հասանելիության սահմանափակման մեխանիզմի համաձայն, Ֆունկցիոնալ ընտրանքները կարող են օգտագործվել նույն կերպ, ինչ Session Options-ը: Թույլատրվում է օգտագործել միայն պարամետրերից անկախ տարբերակներ, այսինքն՝ նրանք, որոնք կապված են հաստատունների հետ:

Ֆունկցիոնալ տարբերակի արժեքի որոշում

Ֆունկցիոնալ տարբերակի արժեքը որոշվում է այն օբյեկտով, որը նշված է Storage հատկությունում: Հաստատունի դեպքում օգտագործվում է դրա արժեքը: Գրացուցակի հատկանիշի կամ տեղեկատվական ռեգիստրի ռեսուրսի հետ կապված տարբերակի համար այս օբյեկտներում պահվող արժեքները: Ֆունկցիոնալ տարբերակի արժեքը պահպանող կոնկրետ օբյեկտ գտնելու համար անհրաժեշտ է լրացուցիչ տեղեկատվություն՝ ֆունկցիոնալ ընտրանքների պարամետրերի արժեքների մի շարք:

Եթե ​​տարբերակը պահվում է գրացուցակի հատկանիշում, պարամետրը պետք է պարունակի հղում դեպի որոշակի գրացուցակի տարր: Եթե ​​տարբերակը պահվում է մանրամասն ռեգիստրի ռեսուրսում, ապա պետք է նշվեն ռեգիստրի բոլոր չափերի արժեքները: Այս դեպքում յուրաքանչյուր չափում պետք է բնութագրվի իր պարամետրով:

Ներկառուցված լեզվի մեթոդները թույլ են տալիս ստանալ տարբերակի արժեքը՝ կախված փոխանցված պարամետրերից և հրամանի ինտերֆեյսի կամ հատուկ ձևի համար սահմանված պարամետրերից (ավելի մանրամասն տե՛ս «Աշխատանք ֆունկցիոնալ ընտրանքների հետ ներկառուցված» բաժինը: լեզվով» այս գլխի):

Եթե ​​ֆունկցիոնալ տարբերակը կապված է պարբերական տեղեկատվական ռեգիստրի ռեսուրսի հետ, ապա համակարգը օգտագործում է վերջինիս հատվածը՝ օպցիոնի արժեքը ստանալու համար: Եթե ​​ցանկանում եք ստանալ օպցիոնի արժեքը մեկ այլ ամսաթվի համար, ապա պետք է նշեք արժեք գործառնական ընտրանքների պարամետրի համար Period (Period), որն ունի Ամսաթվի տեսակ, որը կօգտագործվի որպես հատված ստանալու ամսաթիվ: Այս պարամետրը մետատվյալներում ստեղծվելու կարիք չունի: Այն տրամադրվում է ավտոմատ կերպով համակարգի կողմից:

Ֆունկցիոնալ ընտրանքների պարամետրի արժեքների կառավարում

Պարամետրերի արժեքները սահմանվում են ներկառուցված լեզվական մեթոդներով: Այս դեպքում հնարավոր է սահմանազատել պարամետրերի արժեքների շրջանակը: Պարամետրերը կարող են սահմանվել հրամանի միջերեսում և որոշակի ձևի օրինակում:

Ներկառուցված լեզվով ֆունկցիոնալ ընտրանքների հետ աշխատելը

Ֆունկցիոնալ ընտրանքների հետ աշխատելու մեթոդները կարելի է բաժանել երկու մասի.

  • օպցիոնի արժեքը ստանալու մեթոդներ,
  • ֆունկցիոնալ ընտրանքների պարամետրերի հետ աշխատելու մեթոդներ.

Աշխատեք ֆունկցիոնալ ընտրանքների արժեքների հետ

Գլոբալ համատեքստի մեթոդները՝ GetFunctionalOption() և GetFunctionalInterfaceOption() վերադարձնում են ֆունկցիոնալ տարբերակի արժեքը։ Նրանց միջև տարբերությունն այն է, որ առաջին մեթոդը թույլ է տալիս նշել մի շարք պարամետրեր ֆունկցիոնալ ընտրանքների համար, իսկ երկրորդ մեթոդը վերադարձնում է ֆունկցիոնալ տարբերակի արժեքը՝ հիմնվելով հրամանի ինտերֆեյսի համար սահմանված պարամետրերի վրա:

Կառավարվող ձևն ունի իր մեթոդը, որը վերադարձնում է տարբերակի արժեքը ձևի մեջ նշված պարամետրերի համար՝ GetFormFunctionalOption():

Աշխատեք ֆունկցիոնալ ընտրանքների պարամետրերի հետ

Ֆունկցիոնալ ընտրանքների պարամետրերի հետ աշխատելու մեթոդները թույլ են տալիս ստանալ և սահմանել ֆունկցիոնալ ընտրանքների պարամետրերի արժեքները հրամանի ինտերֆեյսի կամ հատուկ ձևի համար: Ֆունկցիոնալ ընտրանքի պարամետրերի արժեքները սահմանելու համար դուք պետք է կանչեք համապատասխան գործառույթը (SetInterfaceFunctionalOptionParameters() կամ SetFormFunctionalOptionParameters())՝ որպես պարամետր փոխանցելով այն կառուցվածքը, որի բանալին համապատասխանում է ֆունկցիոնալ տարբերակի պարամետրերից մեկի անվանը, և որի արժեքը համապատասխանում է պարամետրի արժեքին: Վերոնշյալ մեթոդները կանչելը ավտոմատ կերպով կթարմացնի ինտերֆեյսի համապատասխան մասը:

Պարամետրերը պետք չէ միանգամից նշել, դուք կարող եք ընտրել որոշակի պարամետրի կամ պարամետրերի հավաքածուի արժեքը: Բայց մեկ զանգով արժեքների խմբային կարգավորումն է ավելի արդյունավետ:

Պարամետրերի արժեքներ ստանալու համար անհրաժեշտ է կանչել համապատասխան ֆունկցիան (GetInterfaceFunctionalOptionParameters() կամ GetFormFunctionalOptionParameters()), որը կվերադարձնի սահմանված պարամետրերը կառուցվածքի տեսքով, որտեղ պարամետրի անունը կլինի բանալին։

Ֆունկցիոնալ ընտրանքների մեխանիզմզարգացման գործիքներից մեկն է։ Այն թույլ է տալիս կոնֆիգուրացիայի մեջ սահմանել այն ֆունկցիոնալությունը, որը կարող է օգտագործվել կամ չօգտագործվել իրականացման ընթացքում՝ կախված որոշակի կազմակերպության կարիքներից:

Մեխանիզմի շահագործումը հիմնված է երկու կոնֆիգուրացիայի օբյեկտների վրա.

  • Ֆունկցիոնալ տարբերակ
    Կազմաձևման օբյեկտները և դրանց մանրամասները կարող են կապված լինել կիրառական լուծման մեջ ավելացված ֆունկցիոնալ ընտրանքների հետ: Օրինակ՝ ֆունկցիոնալ տարբերակով Պահեստի հաշվառումկարող եք կապել հենարանները Բաժնետոմսերփաստաթուղթ Ապրանքների ստացում. Այնուհետև, եթե միացնեք այս ֆունկցիոնալ տարբերակը 1C:Enterprise ռեժիմում, դաշտը Բաժնետոմսերկցուցադրվի բոլոր փաստաթղթերի ձևերով: Եթե ​​անջատեք այն - դաշտ Բաժնետոմսերչի ցուցադրվի: Կարդալ ավելին...
  • Ֆունկցիոնալ տարբերակի պարամետր
    Ֆունկցիոնալ տարբերակները կարող են օգտագործվել պարամետրերով: Օրինակ, այնպես, որ կոնկրետ ձևի տեսքը կարող է կախված լինել ձևի մեջ ընտրված պարամետրի արժեքից: Օրինակ՝ ֆունկցիայի տարբերակի պարամետրով Արժութային հաշվառումՄիգուցե Կազմակերպություն. Այնուհետեւ, կախված նրանից, թե որ կազմակերպությունն է ընտրված ձեւում, դաշտը Փոխադարձ հաշվարկների արժույթըկթաքցվի կամ կցուցադրվի: Կարդալ ավելին...

Օբյեկտ 1c «Ֆունկցիոնալ ընտրանքներ» - նախատեսված են կիրառական լուծման ֆունկցիոնալությունը ընդգծելու համար, որը հնարավոր է միացնել (անջատել) իրականացման ընթացքում՝ առանց ինքն իրեն փոխելու (Ենթահամակարգերի հետ միասին նրանք կազմում են 1C բարակ հաճախորդի ինտերֆեյսը): Դրանք ֆունկցիոնալ ընտրանքների մեխանիզմի մի մասն են:

Ֆունկցիոնալ ընտրանքների մեխանիզմ ներառում է երկու մետատվյալների օբյեկտ.

  1. Ֆունկցիոնալ տարբերակ;
  2. Ֆունկցիոնալ ընտրանքների պարամետրեր:

Ավելի մանրամասն

Ֆունկցիոնալ տարբերակներկայացնում է մետատվյալների օբյեկտ, որը կարող է ուղղակիորեն ազդել հավելվածի միջերեսի կազմի վրա (եթե ֆունկցիոնալ տարբերակը պահում է իր արժեքը բուլյան հատկանիշում): Օգտագործելով այս տեսակի օբյեկտները, դուք կարող եք թաքցնել տարրեր, որոնք կապված են անհասանելի ֆունկցիոնալության հետ: Օրինակ, Արժույթի հաշվառման տարբերակը կարող է թաքցնել Արժույթները, Արժույթը դաշտից և Արժույթի գումարի սյունակը հաշվետվություններից:

Ֆունկցիոնալ տարբերակի արժեքի աղբյուրը մետատվյալների օբյեկտն է, որն ընտրված է որպես Storage հատկություն, օրինակ, այն կարող է լինել:

Եթե ​​ֆունկցիոնալ տարբերակի արժեքը պահվում է գրացուցակի հատկանիշում կամ ռեսուրսում, անհրաժեշտ է լրացուցիչ տեղեկատվություն, որը հստակ ցույց է տալիս, թե ինչպես ընտրել տարբերակի արժեքը: Այդ նպատակով տրամադրվում է առանձին մետատվյալների օբյեկտ. Ֆունկցիոնալ ընտրանքների պարամետրեր.

Կարելի է ասել, որ ֆունկցիոնալ տարբերակների պարամետրերը ֆունկցիոնալ տարբերակների արժեքային տարածության կոորդինատային առանցքներն են։ Ավելին, ֆունկցիոնալ տարբերակների մեկ պարամետրը կարող է որոշել «իր» կոորդինատային առանցքի արժեքը միաժամանակ բազմաթիվ ֆունկցիոնալ տարբերակների համար:

[փլուզում]

Ֆունկցիոնալ ընտրանքները կարող են ազդեցություն ունենալ.

  1. օգտատիրոջ միջերեսին՝
    • համաշխարհային ;
    • մանրամասներ (ներառյալ ձևի մանրամասների սյունակները, ինչպիսիք են Արժեքների աղյուսակկամ ValueTree);
    • ձևավորել հրամաններ;
  2. տվյալների կազմման համակարգի միջոցով իրականացված հաշվետվությունների վերաբերյալ.
  3. ներկառուցված լեզվով գրված ալգորիթմներին - հնարավոր է ներկառուցված լեզվից ստանալ ֆունկցիոնալ ընտրանքների արժեքները և օգտագործել դրանք տարբեր պայմաններում, օրինակ՝ նվազեցնելու հաշվարկների քանակը (տես, օրինակ. )

ՈՒՇԱԴՐՈՒԹՅՈՒՆ.Եթե ​​հաճախորդի հավելվածն աշխատում է ինֆոբազայի ֆայլային տարբերակով վեբ սերվերի միջոցով, ապա ֆունկցիոնալ տարբերակը փոխելով օգտատիրոջ միջերեսը կփոխվի միայն վեբ սերվերը վերագործարկելուց հետո (հաճախորդի հավելվածի վերագործարկումը չի փոխի օգտատիրոջ միջերեսը):

Ֆունկցիոնալ ընտրանքների հատկությունները 1C

  • Պահպանումը դաշտ է, որտեղ պետք է ընտրել Բուլյան տիպի օբյեկտ: Որպես կանոն, օգտագործվում են հաստատուններ:
  • ստանալիս - դրոշը պատասխանատու է արտոնյալ ռեժիմում ֆունկցիոնալ տարբերակի արժեքը ստանալու ունակության համար:
  • Կազմը - օբյեկտների և օբյեկտների մանրամասների ցանկ, որոնց տեսանելիությունը միացված/անջատվում է, երբ ֆունկցիոնալ տարբերակը միացված/անջատված է (կվերահսկվի կառավարվող ձևի միջոցով):

Օրինակ, կախված կոնկրետ իրականացման պայմաններից, հնարավոր է անջատել ապրանքների հաշվառումը ըստ պահեստի, որպեսզի ապրանքների ստացման փաստաթղթերը գրանցելիս Պահեստ դաշտը չցուցադրվի փաստաթղթի ձևում:

1C ֆունկցիոնալ ընտրանքների օգտագործման առանձնահատկությունները.

  1. Ֆունկցիոնալ ընտրանքները կարող են ունենալ ցանկացած տեսակի արժեքներ (պարտադիր չէ, որ բուլյան):
  2. Ֆունկցիայի տարբերակ օգտագործելու համար նոր հաստատուն ավելացնելիս համոզվեք, որ այն ներառեք համապատասխան ենթահամակարգում և դրան թույլտվություններ տրամադրեք:
  3. Ֆունկցիոնալ ընտրանքների հետ աշխատելը հասանելի է ներկառուցված լեզվից, որի շնորհիվ մշակողը կարող է ստեղծել իր սեփական ալգորիթմները ֆունկցիոնալ ընտրանքների արժեքների համար:
  4. Հրամանի միջերեսի հրամանը կբացառվի հրամանի միջերեսից, եթե ֆունկցիոնալ տարբերակը անջատված է.
    • հատկանիշ, որը հրամանի պարամետր է.
    • հրամանի պարամետրի տեսակը (եթե հրամանի պարամետրի տեսակը բարդ է, ապա հրամանը անհասանելի է դառնում, երբ բոլոր պարամետրերի տեսակներն անջատված են):

ՈՒՇԱԴՐՈՒԹՅՈՒՆ.Ֆունկցիոնալ ընտրանքները և դրանց պարամետրերը չեն ազդում տվյալների բազայի կազմի վրա. բոլոր աղյուսակներն ու դաշտերը առկա են տվյալների բազայում՝ անկախ ֆունկցիոնալ տարբերակների վիճակից:

Ֆունկցիոնալ ընտրանքների ազդեցությունը ձևի մանրամասների և հրամանների վրա.

  1. կառավարվող ձևի տեսակը<Вид>Օբյեկտ ( DirectoryObject, DocumentObject և այլն) կանջատվի, եթե համապատասխան օբյեկտն անջատված է ֆունկցիոնալ տարբերակով: Վերլուծվում են միայն այն ֆունկցիոնալ տարբերակները, որոնք չունեն պարամետրեր:
  2. Կառավարվող ձևի տիպի հիմնական հատկանիշները Դինամիկ ցուցակկանջատվի, եթե ֆունկցիոնալ տարբերակը անջատի կազմաձևման օբյեկտը, որը նշված է որպես դինամիկ ցուցակի հիմնական աղյուսակ: Վերլուծվում են միայն այն ֆունկցիոնալ տարբերակները, որոնք չունեն պարամետրեր:
  3. Հղման տեսակի ձևի հատկանիշն անջատված է, եթե այս տեսակը ձևավորող կազմաձևման օբյեկտն անջատված է ֆունկցիոնալ տարբերակով: Կոմպոզիտային տիպի ձևի հատկանիշն անջատված է, եթե ֆունկցիոնալ ընտրանքները անջատում են բոլոր բաղադրիչ տեսակները:
  4. Ձևերի աղյուսակը կանջատվի, եթե այն ցուցադրի ձևի հատկանիշի տվյալները, որոնք անջատված են ֆունկցիոնալ տարբերակով:
  5. Տիպի ընտրության երկխոսության երկխոսության մեջ տիպեր չկան (օրինակ՝ բարդ տիպի ատրիբուտների հետ կապված մուտքային դաշտերի համար), եթե այս տիպերը կազմող կազմաձևման օբյեկտներն անջատված են ֆունկցիոնալ տարբերակով: Ֆունկցիոնալ ընտրանքների կողմից անջատված տեսակների մասին տեղեկությունները պահվում են հաճախորդի կողմից և ջնջվում 20 րոպե հետո կամ մեթոդական զանգի ընթացքում: UpdateInterface ().

ՈՒՇԱԴՐՈՒԹՅՈՒՆ.Ի տարբերություն հրամանի ինտերֆեյսի, ֆունկցիոնալ ընտրանքների պարամետրերի արժեքները սահմանվում են միայն ձևի որոշակի օրինակի համար:

Ֆունկցիոնալ ընտրանքների պարամետրի ստեղծում

Ֆունկցիոնալ տարբերակի պարամետրը ստեղծվում է «Ֆունկցիոնալ ընտրանքի պարամետրեր» 1C կազմաձևման օբյեկտի միջոցով:

[փլուզում]

Դա կարելի է անել կազմաձևման պատուհանում՝ ավելացնելով նոր օբյեկտ:

Ֆունկցիոնալ ընտրանքների պարամետրի հատկությունները.

  • Օգտագործում - սահմանում է օբյեկտների մի շարք, որոնց արժեքները կորոշեն, թե ինչպես պետք է ընտրվի ֆունկցիոնալ տարբերակի արժեքը: Հասանելի օբյեկտների ցանկը ներառում է տեղեկատուներ և տեղեկատվական ռեգիստրի չափերը: Այս ցանկի ֆունկցիոնալ ընտրանքների յուրաքանչյուր պարամետրի համար կարող եք ընտրել մեկ գրացուցակ (գրացուցակների ամբողջ ցանկից) և յուրաքանչյուր տեղեկատվական ռեգիստրի մեկ չափ:

ՈՒՇԱԴՐՈՒԹՅՈՒՆ.Դուք չեք կարող օգտագործել նույն մետատվյալների օբյեկտը մի քանի գործառույթի ընտրանքների պարամետրերում:

Ֆունկցիոնալ ընտրանքներ– սա 1C:Enterprise 8.2 հարթակի նոր հնարավորություններից մեկն է: Դրանց օգտագործման իմաստն այն է, որ դրանք թույլ են տալիս հարմարեցնել օգտատիրոջ միջերեսը ֆունկցիոնալ ընտրանքների պարամետրերին համապատասխան և ձևաթղթերում սահմանել մանրամասների տեսանելիությունը: Բացի այդ, մշակողը հնարավորություն ունի ներդնել ծրագրային կոդը, որի կատարումը կախված է ֆունկցիոնալ տարբերակի վիճակից։

Եկեք ստեղծենք ֆունկցիոնալ տարբերակ, որը թույլ է տալիս միացնել կամ անջատել աշխատավարձի հաշվարկները կոնֆիգուրացիայի մեջ: Նրա օգնությամբ մենք կարող ենք արագ թաքցնել ինտերֆեյսի այն հատվածները, որոնք վերաբերում են հաշվարկային խնդիրների լուծմանը։ Գործառույթի տարբերակն ինքնին չի պահում որևէ արժեք, որը թույլ է տալիս այն միացնել կամ անջատել: Սովորաբար, հաստատունն օգտագործվում է ֆունկցիոնալ տարբերակի վիճակը պահելու համար, չնայած այն կարող է նաև կապված լինել մեկ այլ օբյեկտի հետ, օրինակ՝ օբյեկտի հատկանիշի հետ:

Եկեք ստեղծենք նոր հաստատուն և կոչենք այն Աշխատավարձի հաշվառում, տիպ - Բուլյան. Ներառենք հաստատունը ենթահամակարգում Վարչությունև մշտական ​​ձևով, որպեսզի կարողանանք խմբագրել այն: Բացի այդ, հաստատունների տեսքով մենք կսահմանենք AfterWrite կարգավորիչը հետևյալ կերպ.

&Client Procedure AfterRecord(RecordParameters) UpdateInterface(); Ընթացակարգի ավարտը

Հրամանի օգտագործման իմաստը UpdateInterface ()ֆունկցիոնալ տարբերակի հետ կապված հաստատունի փոփոխությունն ուժի մեջ մտնելուց հետո ինտերֆեյսի թարմացումն ու վերագծումն է: Հակառակ դեպքում, դուք ստիպված կլինեք վերագործարկել կոնֆիգուրացիան, որպեսզի փոփոխություններն ուժի մեջ մտնեն:

Եկեք ստեղծենք նոր ֆունկցիոնալ տարբերակ և կոչենք այն Աշխատավարձի հաշվառում, էջանիշի վրա Հիմնական, պարամետրում ՊահպանումՆշենք հենց նոր ստեղծված հաստատունը, Նկ. 7.23. Ենթահամակարգում ներառենք ֆունկցիոնալ տարբերակ Վարչություն.


Բրինձ. 7.23.

Այժմ եկեք գնանք ֆունկցիոնալ ընտրանքի կարգավորումների պատուհանի ներդիր Բաղադրյալև ընտրեք այն ամենը (նկ. 7.24), որը վերաբերում է աշխատավարձի հաշվարկին: Եթե ​​որևէ օբյեկտ, օրինակ՝ դիրեկտորիաներ, պատկանում են կոնֆիգուրացիայի տարբեր մասերին, մենք դրանք չենք նշի, հակառակ դեպքում, երբ ֆունկցիոնալ տարբերակն անջատված է, դրանք «կվերանան» ինտերֆեյսից։


Բրինձ. 7.24.

Ենթահամակարգի ընտրություն Աշխատավարձի պատրաստումայս դեպքում չի հանգեցնում ենթահամակարգում ընդգրկված բոլոր օբյեկտների ավտոմատ ընտրության: Ընտրելիս մենք նկատի ունենք միայն հրամանի ինտերֆեյսի մի հատված թաքցնելը կամ ցուցադրելը Աշխատավարձի պատրաստում.

Համակարգն օգտագործողի ռեժիմում գործարկելով՝ մենք կարող ենք միացնել կամ անջատել օբյեկտների տեսանելիությունը, որոնք կապված են մեր կազմաձևման աշխատավարձի ենթահամակարգի հետ՝ պարզապես դնելով կամ հեռացնելով հաստատունի դրոշը: Աշխատավարձի հաշվառում.

Ավելի դժվար օգտագործման դեպքըֆունկցիոնալ ընտրանքները բաղկացած են առանձին ձևի տարրերի տեսանելիության կարգավորումից, եթե ֆունկցիոնալ տարբերակի արժեքը պահվում է օբյեկտի հատկանիշում:

Եկեք փոփոխություններ կատարենք կոնֆիգուրացիայի մեջ, մասնավորապես, գրացուցակում Անհատներավելացնել տրամաբանական տիպի հատկանիշ Ունի անձնակազմի սպասարկման փորձև տեղադրել այն գրացուցակի տարրի ձևի վրա:

դիտումներ