Տվյալների կազմման համակարգի արտահայտչական լեզվի գործառույթները. SKD-ում ռեսուրսների օգտագործումը, օգտագործելով արտաքին աղյուսակային հաշվետվություն ստեղծելու օրինակը: Հաշվեք գումարը SKD 1-ների հորիզոնական խմբավորմամբ

Գոյություն ունի «Կանգառներ երթուղու երկայնքով» տեղեկատվական ռեգիստր, որը պահպանում է տեղեկատվություն սկզբից մինչև վերջնակետ հեռավորության մասին:

Բրինձ. 1. Տեղեկատվական ռեգիստր «Կանգառներ երթուղու երկայնքով».

Պահանջվում է մշակել մուտքի կառավարման համակարգի վերաբերյալ հաշվետվություն, որը ցույց կտա երթուղու երկայնքով ցանկացած երկու կանգառների միջև հեռավորությունը:

Լուծում

Ցանկացած կազմաձևում, որն աջակցում է կառավարվող ձևերին, մենք կստեղծենք «Կանգառներ երթուղու երկայնքով» տեղեկատվության ոչ պարբերական ռեգիստր: Դրան ավելացնենք Route և Stop չափերը՝ համապատասխանաբար 4 և 50 երկարությամբ լարային տիպով, ինչպես նաև 10,2 երկարությամբ թվային տիպով Distance ռեսուրս։ Պահպանենք փոփոխությունները նոր կոնֆիգուրացիայի մեջ։ Արտաքին հաշվետվություն ստեղծելու համար Մենյու-->Ֆայլ-->Նոր ընտրեք «Արտաքին հաշվետվություն», սահմանեք դրա անունը և բացեք տվյալների դասավորության դիագրամը.

Բրինձ. 2. Մուտքի վերահսկման համակարգի արտաքին հաշվետվության ստեղծում

Բացվող պատուհանում կտտացրեք «Ավելացնել տվյալների հավաքածու» կոճակը և ընտրեք «Ավելացնել տվյալների հավաքածու - հարցում» տողը.

Բրինձ. 3. Տվյալների հավաքածուի ավելացում՝ հարցում

Եկեք նոր հարցում ստեղծենք։ Խնդիրը լուծելու համար հարցման մեջ մեզ անհրաժեշտ կլինի «Կանգառներ երթուղու երկայնքով» տեղեկատվական ռեգիստրը, և քանի որ հաշվետվությունը պետք է հստակ ցույց տա ցանկացած երկու կանգառների միջև հեռավորությունը, մենք կստեղծենք հարցում X և Y առանցքների երկայնքով աղյուսակային ներկայացման համար: , օգտագործելով ռեգիստրի աղյուսակի ամբողջական արտաքին միացումը ինքն իրեն.

Բրինձ. 5. Մուտքի վերահսկման համակարգերի ռեսուրսների ճշգրտում

Եկեք հիմա գնանք «Կարգավորումներ» ներդիր և սեղմեք «Բացել կարգավորումների դիզայներ» կոճակը, ընտրեք հաշվետվության տեսակը Աղյուսակ.

Բրինձ. 7. Հաշվետվության դաշտերի ընտրություն

Նկ.8. Խմբավորման դաշտերի ընտրություն

Բրինձ. 9. Տեսակավորման դաշտերի ընտրություն

Մնում է այս կարգավորումները ստեղծելու համար օգտագործել «Օգտվողի պարամետրերի տարրերի հատկությունները» կոճակը, ինչպես նաև «Այլ կարգավորումներ» ներդիրում՝ նշելու, թե ինչպես են տեղակայվելու ռեսուրսները և մերժել ընդհանուր գումարները (դրանք այստեղ անհրաժեշտ չեն).

Բրինձ. 10 Օգտագործողի և այլ կարգավորումներ:

Զեկույցը պատրաստ է։ Այժմ կոնֆիգուրացիայից անցնենք Ձեռնարկություն և լրացնենք տեղեկատվական ռեգիստրը (եթե այն արդեն լրացված չէ).

Բրինձ. 11. Տեղեկատվական գրանցամատյանի լրացում

Եվ վերջապես, Menu-->File-ից մենք զանգում ենք մեր զեկույցը այն վայրից, որտեղ այն պահել ենք կոնֆիգուրատորում, սեղմում ենք «Ստեղծել» կոճակը և տեսնում խնդրի լուծումը.

Բրինձ. 12. Հաշվետվություն «Կանգառների միջև հեռավորությունը».

Հրապարակումն ինձ դրդեց հոդված գրել

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


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

Համապատասխանաբար, այժմ անհրաժեշտ է հաշվարկել վերը նշված խմբավորումների («Պահեստներ», «Պահեստների տեսակները») և ընդհանուր ընդհանուր գումարները:
Դա անելու համար օգտագործեք գործառույթը CalculateExpressionWithGroupArray:
ԳՆԱՀԱՏԵԼ EXPRESSION WITHGROUPARRAY-ով (EVALEXPRESSIONWITHGROUPARRAY)
Շարահյուսություն:
EvaluateExpressionWithGroupArray(,)
Նկարագրություն:
Ֆունկցիան վերադարձնում է զանգված, որի յուրաքանչյուր տարր պարունակում է նշված դաշտով խմբավորման համար արտահայտության գնահատման արդյունքը։
Դասավորության կոմպոզիտորը, երբ ստեղծում է դասավորություն, ֆունկցիայի պարամետրերը փոխակերպում է տվյալների կազմի դասավորության դաշտերի: Օրինակ, Account դաշտը կվերածվի DataSet.Account-ի:
Layout builder-ը, երբ ստեղծում է արտահայտություններ հատուկ դաշտի ելքի համար, որի արտահայտությունը պարունակում է միայն CalculateArrayWithGroupArray() ֆունկցիան, ստեղծում է ելքային արտահայտությունը, որպեսզի ելքային տեղեկատվությունը դասավորվի: Օրինակ՝ հատուկ դաշտի համար՝ արտահայտությամբ.

CalculateExpressionWithGroupArray ("Amount(AmountTurnover)", "Counterparty")
Դասավորության ստեղծողը արդյունքի համար կստեղծի հետևյալ արտահայտությունը.

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

Ընտրանքներ:

Տեսակը՝ լարային: Գնահատվող արտահայտությունը. Տող, օրինակ, Amount (AmountTurnover):

Տեսակը՝ լարային: Խմբավորման դաշտերի արտահայտություններ – խմբավորման դաշտերի արտահայտություններ՝ բաժանված ստորակետերով: Օրինակ՝ Կապալառու, Կողմ։

Տեսակը՝ լարային: Արտահայտություն, որը նկարագրում է ընտրությունը, որը կիրառվում է մանրամասն գրառումների վրա: Արտահայտությունը չի աջակցում ագրեգատային ֆունկցիաների օգտագործմանը: Օրինակ, DeletionFlag = False:

Տեսակը՝ լարային: Արտահայտություն, որը նկարագրում է խմբային գրառումների վրա կիրառված ընտրությունը: Օրինակ՝ Amount(AmountTurnover) > &Parameter1:
Օրինակ:

Maximum(CalculateExpressionWithGroupArray("Amount(AmountTurnover)", "Counterparty"));

Ֆունկցիայի շարահյուսության մանրամասն նկարագրությունը կարելի է գտնել http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582 կայքում:
Այժմ հաշվարկի համար մենք կրկնօրինակում ենք «Պատվեր» դաշտը՝ տարբեր արժեքներով «Հաշվի՛ր ըստ...», օգտագործելով հետևյալ արտահայտությունները, նշենք, որ յուրաքանչյուր բարձր մակարդակում օգտագործվում են խմբավորումներից ցածր մակարդակների արժեքները։ .

Արդյունքում մենք ստանում ենք հետևյալ շինարարությունը.

Տվյալների կազմի մեջ կազմելով ընդհանուր գումարներտեսքը մի փոքր այլ է, քան հարցումներում: Եկեք սահմանենք «Հարցման» տվյալների հավաքածուն տվյալների կազմման համակարգում:

Հարցման մեջ մենք չենք կազմաձևում ընդհանուր գումարները, այլ գնում ենք տվյալների կազմի «Պաշարներ» ներդիր: Տվյալների կազմի սխեմայի մակարդակում մենք որոշել ռեսուրսները. Սրանք այն դաշտերն են, որոնք պետք է հաշվել խմբավորման մակարդակով: Սեղմեք «>>» կոճակը, և համակարգն ինքը կփոխանցի բոլոր թվային դաշտերը և կսահմանի դրանք որպես ռեսուրսներ:

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

Եկեք ստեղծենք տվյալների կազմի ստանդարտ կարգավորում:
Կտտացրեք «Բացել պարամետրերի դիզայներ» կոճակը:

Ընտրենք հաշվետվության տեսակը՝ ցանկը։ Սեղմեք «Հաջորդ» կոճակը:

Եկեք ընտրենք բոլոր դաշտերը և կոնտրագենտի դաշտը տեղափոխենք վերևի դիրք: Սեղմեք «Հաջորդ» կոճակը:

Եկեք ընտրենք բոլոր դաշտերը և կոնտրագենտի դաշտը տեղափոխենք վերևի դիրք: Սեղմեք «OK» կոճակը:

Արդյունքը հետևյալ կարգավորումն է.

Ինչպես տեսնում եք, հաշվետվության տարբերակ ստեղծելիս ռեսուրսները ընդգծվում են կանաչ պատկերակով, որպեսզի դրանք արագորեն տարբերվեն այլ դաշտերից:

Եթե ​​մենք բացենք մեր զեկույցը 1C:Enterprise ռեժիմով և գեներացնենք այն, կտեսնենք, որ վերջնական տվյալները ստեղծվում են խմբավորման մակարդակում։ Արդյունքներն ըստ ապրանքների և ըստ կոնտրագենտների:

1C տվյալների կազմի սխեմայում ռեսուրսների կարգավորում

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

Այստեղ «Արտահայտություն» դաշտում կարող ենք գրել մեր սեփական արտահայտությունը։

«Expression» դաշտում մենք կարող ենք մուտք գործել նաև ընդհանուր մոդուլների գործառույթներ:

Բացի այդ, «Հաշվարկել ըստ...» դաշտում կարող եք նշել, թե որ խմբավորումներով պետք է հաշվարկվի ռեսուրսը: Եթե ​​«Հաշվարկել ըստ...» դաշտը լրացված չէ, ապա ռեսուրսի վերջնական արժեքը կհաշվարկվի բոլոր խմբավորման մակարդակներում, որոնք սահմանված են հաշվետվության տարբերակի կարգավորումներում: Մեր դեպքում անհրաժեշտ է լրացնել «Քանակ» ռեսուրսի «Հաշվարկել ըստ...» դաշտը, քանի որ մենք կարող ենք ապրանքներ վաճառել տարբեր չափման միավորներով։ Օրինակ՝ յուղը լիտրով, իսկ անիվները՝ կտորներով։ Չէ՞ որ անտրամաբանական կլինի գումարել այդ ապրանքների քանակները։ Հետևաբար, մենք պետք է թողնենք քանակի գումարումը ապրանքի մակարդակում, իսկ կոնտրագենտի մակարդակում
Եկեք հանենք գումարումը.

Եթե ​​մենք ստեղծենք հաշվետվություն, կտեսնենք, որ քանակական գումարները հաշվարկվում են միայն ըստ հոդվածների, իսկ կապալառուների քանակական գումարները դատարկ են:

1C տվյալների կազմի սխեմայում ռեսուրսները նկարագրելու հնարավորությունները

եկեք դիտարկենք ռեսուրսների նկարագրության հետ կապված մի շարք ոչ ակնհայտ հատկանիշներ.

  • Յուրաքանչյուր ռեսուրս կարող է մի քանի անգամ սահմանել. Բայց սա միայն իմաստ ունի, եթե
    ռեսուրսը կհաշվարկվի ըստ տարբեր մակարդակներումխմբեր. Օրինակ, եթե քանակը, մի դեպքում
    ամփոփվում է ապրանքի համար, իսկ կոնտրագենտների համար մենք ստանում ենք նվազագույն արժեքը:

Եթե ​​մենք ստեղծենք հաշվետվություն, ապա կտեսնենք, որ «Deriya» կոնտրագենտի համար նվազագույն գնումը «Ինքնակոսպվող թուղթ» ապրանքատեսականու հինգ միավոր է:

  • «Արտահայտություն» դաշտում, բացի բանաձև գրելուց, կարող եք օգտագործել տվյալների կազմի հատուկ գործառույթ, որը կոչվում է «Հաշվարկել». Այս ֆունկցիան թույլ է տալիս հաշվարկել որոշ վերջնական արժեք՝ օգտագործելով որոշակի բանաձև։ Օրինակ, յուրաքանչյուր կոնտրագենտի համար անհրաժեշտ է իմանալ բնական միավորներով գնումների տոկոսը ընդհանուր ծավալի նկատմամբ: Բայց ինչպե՞ս ստանալ գնումների ընդհանուր ծավալն ըստ քանակի։ Դա անելու համար օգտագործեք «Calculate» ֆունկցիան և «Expression» դաշտում գրեք հետևյալ արտահայտությունը.
Գումար(Քանակ)/Հաշվարկել("Գումար(Քանակ)", "Ընդամենը")*100

Ինչպես երևում է, «Calculate» ֆունկցիայի բոլոր պարամետրերը տողեր են. Որպեսզի քանակի դաշտը գեղեցիկ ցուցադրվի զեկույցում, մենք այն կկարգավորենք «Տվյալների հավաքածուներ» ներդիրում: Քանակի տողում մենք կգտնենք «Խմբագրման ընտրանքներ» դաշտը: Եկեք բացենք երկխոսությունը, գտնենք «Ձևաչափ» տողը և խմբագրենք դրա ձևաչափի տողը, «Թիվ» ներդիրում «Ճշգրտություն» արժեքը սահմանելով երկու:

Եկեք գործարկենք հաշվետվությունը և տեսնենք «AUPP KOS TOO» կոնտրագենտի գնումների տոկոսի հաշվարկման արդյունքը՝ համեմատած
ընդհանուր ծավալը:


Հոդվածի վերջում ես ուզում եմ ձեզ անվճար առաջարկել Անատոլի Սոտնիկովից: Սա փորձառու ծրագրավորողի դասընթաց է: Այն ձեզ առանձին հիմունքներով ցույց կտա, թե ինչպես կարելի է հաշվետվություններ կազմել մուտքի վերահսկման համակարգում: Պարզապես պետք է ուշադիր լսել և հիշել: Դուք կստանաք հետևյալ հարցերի պատասխանները.
  • Ինչպե՞ս ստեղծել պարզ ցուցակի հաշվետվություն:
  • Ինչի՞ համար են նախատեսված «Դաշտեր» ներդիրի Դաշտը, Ճանապարհը և Վերնագիր սյունակները:
  • Որո՞նք են դասավորության դաշտերի սահմանափակումները:
  • Ինչպե՞ս ճիշտ կարգավորել դերերը:
  • Որո՞նք են դասավորության դաշտերի դերերը:
  • Որտեղ կարող եմ գտնել տվյալների կազմի ներդիրը հարցման մեջ:
  • Ինչպե՞ս կարգավորել պարամետրերը մուտքի կառավարման համակարգում:
  • Էլ ավելի հետաքրքիր է դառնում...
Միգուցե դուք ինքներդ չփորձե՞ք համացանցում փնտրել անհրաժեշտ տեղեկատվություն: Ավելին, ամեն ինչ պատրաստ է օգտագործման համար։ Պարզապես սկսեք: Բոլոր մանրամասներն այն մասին, թե ինչ կա անվճար տեսադասերում

Ահա հարցման մեջ տվյալների կազմը էջանշելու վերաբերյալ դասերից մեկը.

Դիտարկենք օրինակ.

Մի քանի միավոր ապրանքներ հաճախորդին առաքվում են տարբեր զեղչերով: Դուք պետք է հաշվետվության մեջ ցուցադրեք զեղչի արժեքները յուրաքանչյուր ապրանքի համար և հաշվարկեք միջին զեղչը: Եկեք ստեղծենք հաշվետվություն մուտքի վերահսկման համակարգի մասին:
Բոլոր դաշտերի համար, որոնց համար մենք պետք է ցուցադրենք հանրագումարները, մենք կսահմանենք արտահայտություն (մեթոդ) դրանց հաշվարկման համար «Պաշարներ» ներդիրում: «Զեղչ» դաշտի համար հաշվարկման եղանակը սահմանեք որպես «Միջին»:

Մենք ներկայացնում ենք զեկույցը.

Ինչպես տեսնում եք, «Զեղչ» դաշտի ընդհանուր գումարը հաշվարկվում է որպես դաշտի արժեքների միջին թվաբանական, այսինքն. բոլոր արժեքների գումարը բաժանված արժեքների քանակի վրա: Բայց քանի որ Քանի որ տարբեր զեղչերով առաքված ապրանքների ծավալները տարբեր են, միջին զեղչը կարող է հաշվարկվել այլ կերպ. օրինակ՝ որպես առաքված ապրանքների ընդհանուր քանակի հարաբերակցություն՝ հաշվի առնելով զեղչը, առաքված ապրանքների ընդհանուր քանակին: Բայց այստեղ հարց է առաջանում. եթե դուք կարող եք բանաձև գրել ACS-ում մանրամասն գրառումների դաշտերի արժեքները հաշվարկելու համար, ապա գումարները հաշվարկվում են ավտոմատ կերպով՝ համաձայն «Պաշարներ» ներդիրում նշված արտահայտության, և այնտեղ, ինչպես. Մենք ավելի վաղ տեսանք, «Միջինը» հաշվարկվում է որպես ցուցադրված արժեքների միջին թվաբանական, քանի որ այս դեպքում ես պետք է հաշվարկեմ այս սյունակի ընդհանուր գումարը իմ սեփական բանաձևով:
Դա իրականում դժվար չէ: Դա անելու համար մենք կկարգավորենք մեր հաշվետվությունը՝ դրան ավելացնելով անհրաժեշտ դաշտերը, որոնք կմասնակցեն հաշվարկին, մեր դեպքում դրանք են «AmountWithDiscount» և «AmountAtPrice»:

Որպեսզի ACS-ին «սովորեցնենք» ցուցադրել մեր արդյունքները, մենք կատարում ենք հետևյալ քայլերը.
1. «Կարգավորումներ» ներդիրում նշանակեք անուն խմբավորմանը «», օրինակ՝ «ResultSKD», դա անելու համար զանգահարեք խմբավորման համատեքստի ընտրացանկը և սեղմեք «նշանակել անուն»;

2. «Layouts» ներդիրում ավելացրեք «խմբավորման վերնագրի դասավորությունը», որտեղ մենք ընտրում ենք նախկինում նշանակված անունը «TotalSKD»;

3. գծում ենք դասավորության գիծ, ​​որտեղ թողնում ենք բոլոր արդյունքները, որոնց հաշվարկը մեզ հարմար է, ինչպես որ կան, և միջին զեղչի տոկոսը հաշվարկելու համար գրում ենք հաշվարկման բանաձև.

Եթե ​​ամեն ինչ ճիշտ է, ապա երբ հաշվետվությունը կցուցադրվի, դրա տակ կցուցադրվի երկու ընդհանուր տող, սկզբում այն, որը ստեղծվում է ավտոմատ կերպով, ապա ձեր կողմից ստեղծվածը:

Որպեսզի թողնեք միայն ձեր ընդհանուր գծի ելքը, դուք պետք է «Կարգավորումներ» ներդիրում դասավորության ելքի «Այլ կարգավորումներ» բաժնում անջատեք «Հորիզոնական ընդհանուր դասավորությունը» և «Ուղղահայաց ընդհանուր դասավորությունը» ելքը:

Կիսվեք ընկերների հետ կամ խնայեք ինքներդ.

Բեռնվում է...