ACS-ը միայն հաշվետվությունների համար չէ, ունիվերսալ ընտրությունների իրականացում: Ընտրությունների օգտագործումը SCD-ում Ինչպես կատարել ընտրություն առանց SDS-ի

Պրոցեսինգ գրելու համար ծրագրավորողները հաճախ ստիպված էին հարցումներ օգտագործել՝ տվյալներ ստանալու և այնուհետև դրանք մշակելու համար: Տվյալներն իրենց հերթին ստացվել են հարցումից։ Դե, առանց ընտրության կամ ֆիլտրի հարցումը հազվադեպ է: Եկեք խոսենք նման հարցումների ընտրության մասին, օգտագործելով օրինակի հարցումը.

Որպեսզի օգտագործողի համար կոնտրագենտի ընտրությունը սովորական ձևով կազմակերպեր, ծրագրավորողը պետք է ձևի վրա տեղադրեր երեք տարր, որոնք այսպիսի տեսք ունեն.

Որքա՞ն ջանք է պահանջվում ծրագրավորողից՝ նկարագրելու տարբեր տեսակի համեմատություններ (հավասար, ոչ հավասար, ցուցակում, խմբում...) և, հիմնվելով այս տեսակի համեմատության վրա, ճշգրտելու իր վերջնական խնդրանքը՝ տվյալներ ստանալու համար:

Եկեք նայենք, թե ինչպես դա կարելի է անել ACS-ի միջոցով: Մեր մշակման ընթացքում եկեք ստեղծենք դասավորություն Տվյալների կազմման սխեմայի տիպով և լրացնենք այն մեր խնդրանքով.

Կարգավորումների ներդիրում մենք կավելացնենք նոր խմբավորում առանց մանրամասների և, մեր օրինակում, Հաշիվ դաշտը, քանի որ վերջում մենք ամեն ինչ կստանանք արժեքների աղյուսակում.

Եվ «Ընտրություն» ներդիրում ընտրության մեջ ավելացրեք Կողմնակիցը.

Այժմ եկեք սկսենք ստեղծել ձևը: Եկեք ինքնին մշակման ձևի վրա ցուցադրենք Ընտրությունը, որի հետ օգտատերը կաշխատի: Մենք ձևաթղթում կցուցադրենք Table Field տեսակի տարրը և նրան կտանք Selection անվանումը տվյալների տիպով Composer.Settings.Selection:

Այժմ եկեք ստեղծենք իրադարձությունների մշակիչներ OnOpen ձևի համար և մշակող՝ «Գործարկել» կոճակը սեղմելու համար, կոդը ներկայացված է ստորև.

Պերեմի դասավորությունը; Procedure ButtonExecutePress(Button) Result.Clear(); LayoutLinker = newDataLayoutLayoutLinker; Layout Layout = Layout Composer.Execute(Layout, Composer.GetSettings(), Type("DataCompositionLayoutGeneratorForValueCollection")); CompositionProcessor = newDataCompositionProcessor; LayoutProcessor.Initialize(LayoutLayout); Ելքային պրոցեսոր = Արժեքների հավաքածուի մեջ տվյալների կազմման արդյունքի նոր ելքային պրոցեսոր; OutputProcessor.SetObject(Արդյունք); OutputProcessor.Output(CompositionProcessor); Եթե ​​FormElements.Result.Columns.Quantity() = 0 Ապա FormElements.Result.CreateColumns(); վերջԵթե; EndProcedure ProcedureOnOpen() Layout = GetLayout("Layout"); SourceAvailableSettings = Նոր SourceAvailableSettingsDataComposition(Layout); Linker.Initialize (SourceAvailableSettings); Linker.LoadSettings (Layout.DefaultSettings); Ընթացակարգի ավարտը

Մշակումը պատրաստ է, այն գործարկելով, դուք կարող եք անմիջապես տեսնել մեր ընտրության մեջ մեր Ընտրության մեջ հայտնված Կողմերը, որտեղից կարող եք ընտրել ցանկացած տեսակի համեմատություն, ինչպես նաև ավելացնել ընտրության լրացուցիչ տողեր՝ օգտագործելով Կողմերի գրացուցակի մանրամասները.

Այսքանը, հուսով եմ, որ այս հոդվածը կօգնի ձեզ բարելավել ընտրության ճկունությունը ձեր մշակման մեջ:

Կոնոնով Սերգեյ

Ինչի՞ համար կարող է օգտագործվել SKD-ն:

Սահմանված կարծիքը հաշվետվության նպատակների համար է:

Իրականում ACS-ի հնարավորությունները գերազանցում են համընդհանուր հաշվետվությունների ստեղծումը.

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

Ինչ առաջադրանքների համար սա օգտակար կլինի:

Եկեք տանք օրինակներ բնորոշ կոնֆիգուրացիաներից:

  • «Տվյալների վերբեռնում կայք» մշակում
  • Գնացուցակի ձևավորում
  • Տվյալների վերբեռնում TSD (տվյալների հավաքագրման տերմինալ)
  • Ապրանքների, գործընկերների սեգմենտավորում
  • Պատվերների ձևավորում (հաճախորդներ, մատակարարներ) ըստ կարիքների
  • Վերանորոգման պլանավորում 1C:ERP-ում:

Այսինքն՝ գործիքը օգտակար է ամենուր, որտեղ անհրաժեշտ է օգտատիրոջը ընտրության լայն տարբերակներ տրամադրել։

ACS-ի միջոցով վերահսկվող ձևով պատահական ընտրության ստեղծում

Դասը ներառում է աշխատել կարգավորումների ստեղծողտվյալների դասավորության սխեմաներ.

  • Ընտրության արդյունքը ձևաթղթում
  • Ծրագրային կապ կարգավորումների ստեղծողի և դասավորության դիագրամի միջև
  • Մուտքի կառավարման համակարգում լռելյայն ընտրանքների ստեղծում:

Տվյալների ստացում տվյալների բազայից՝ ACS ընտրությամբ զտմամբ

Տեսանյութը ցույց է տալիս, թե ինչպես կարող եք ընտրել տվյալներ՝ օգտագործելով կարգավորումների ստեղծողի նախկինում սահմանված ընտրությունը:

Օգտագործվում է «վախկոտ» առարկա. ProcessorOutputResultCompositionDataIntoValueCollection.

Իրականում ամեն ինչ այնքան էլ բարդ չէ՝ 8 րոպեում մենք լուծում ենք խնդիրը։

SKD-ի ընտրանքների պահպանում տեղեկատվական բազայում

Դասի ընթացքում մենք կանդրադառնանք ACS Builder-ի կարգավորումների պահպանումօգտագործելով Value Store-ը:

Եկեք պարզենք, թե ինչպես լուծել այս խնդիրը «1C: Արտադրական ձեռնարկությունների կառավարում 1.3» կազմաձևում:

Վայելեք դիտումը: :)

Ընդհանուր առմամբ, ACS-ը շատ հնարավորություններ է տալիս:

Ահա մի քանի «հնարքներ», որոնք մենք նույնիսկ ժամանակ չունեինք նկարագրելու դասընթացի էջում:

Եթե ​​Ձեզ անհրաժեշտ է հավաքել տվյալներ տարբեր աղբյուրներից, կա երեք տարբերակ.

Դուք կարող եք փորձել կազմել մեկ «ունիվերսալ» հարցում բոլոր տվյալների համար (երկար), կարող եք ցուցադրել մի քանի հարցումների տվյալները օղակում (կոշտ, անճկուն կառուցվածք) կամ պարզապես կարող եք օգտագործել ACS և տվյալների հավաքածուների միացումմեկ խնդրանքի փոխարեն.

Միևնույն ժամանակ, կարևոր է ճիշտ արդյունքներ ստանալ. սա ունի իր առանձնահատկությունները, եթե կան մի քանի աղբյուրներ

SKD-ի օգնությամբ դուք կարող եք պարզապես ստացեք ամենաուշի լուսանկարը հաշվետվության յուրաքանչյուր ամսաթվի համար.

Կամ, պարզության համար, - ստացեք ապրանքի գինը յուրաքանչյուր վաճառքի ամսաթվի համար.

ACS-ի օգնությամբ դուք կարող եք կազմակերպել հաշվետվության մեջ ցուցադրելով ժամանակաշրջանի բոլոր ամսաթվերը, և ոչ միայն նրանք, որոնց համար զեկույցում եղել են տվյալներ (ամսաթվերի ավելացում առանց ծրագրավորման, միայն մուտքի վերահսկման համակարգի հնարավորություններով)

Օգտագործելով ACS-ը, դուք կարող եք կազմակերպել բնադրված խմբավորումներ՝ ժամանակաշրջանների ավելացմամբ (տարի/եռամսյակ/ամիս և այլն)

Զեկույցը դասավորեք ըստ ցանկության, օրինակ՝ ցուցադրեք սյունակի վերնագիրը ուղղահայաց, իսկ այս սյունակի տվյալները՝ հորիզոնական:

Թույլ տվեք օգտվողին ընտրել այն հաճախականությունը, որով տվյալները կցուցադրվեն զեկույցում (ըստ տարվա, եռամսյակի, ըստ ամսվա)՝ բացառապես ըստ կարգավորումների՝ առանց հաշվետվության մոդուլը խմբագրելու:

Ինչպե՞ս համատեղել մի քանի պայմաններ՝ օգտագործելով OR-ը զեկույցում: Այս տարբերակը, օրինակ, հասանելի չէ հաշվետվության ստեղծողում, բայց հասանելի է ACS-ում

Եթե ​​դուք ցուցադրում եք ամփոփ տվյալները գծապատկերի տեսքով, դուք պետք է կարողանաք ճշգրիտ վերահսկել դրա տեսքը. մի շարք մարկերների տեսանելիություն, գծապատկերների շարքերի փոփոխվող գույներ, ուղղահայաց գծով գծապատկերի վրա անցյալի տվյալների բաժանում ապագա տվյալներից: և այլն։

Իհարկե, կան նրբերանգներ, որոնց վրա պետք է ուշադրություն դարձնել։

Զեկույցը ստեղծելիս մշակողը վրիպազերծել է հարցման տեքստը, սակայն այս հարցումը մուտքի վերահսկման համակարգի զեկույցում օգտագործելիս համակարգը սխալ արդյունք է տալիս:

Հետևաբար, կարևոր է, որ կարողանանք ստանալ այն հարցումը, որն իրականում կատարում է համակարգը տվյալների բազայից տվյալներ ստանալու համար և կարգաբերել այդպիսի հարցումը:

Հաշվետվության մեջ փաստաթղթերի ձայնագրիչին մանրամասներ ավելացնելիս համակարգը երբեմն ստեղծում է «սխալ» բացման և փակման մնացորդներ:

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

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

Եթե ​​ցանկանում եք մասնագիտորեն տիրապետեք ACS-ինև ամեն օր կիրառեք ձեր աշխատանքում, գրանցվեք դասընթացին.

Աջակցություն - 2 ամիս. Դասընթացի շրջանակը – 34 ուսուցման ժամ.

Մի հետաձգեք ձեր ուսումը.

Հարցման լեզվի ընդլայնում տվյալների կազմման համակարգի համար

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

Տվյալների կազմման համակարգի հարցումների լեզվի շարահյուսական տարրեր

ԸՆՏՐԵԼ

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

Օրինակ:

(Ընտրեք ապրանք, պահեստ)

Դաշտի կեղծանունից հետո կարող է լինել «.*» նիշերի համակցություն, որը ցույց է տալիս այս դաշտից մանկական դաշտերի օգտագործման հնարավորությունը:

Օրինակ՝ Nomenclature.* մուտքը ցույց է տալիս «Nomenclature» դաշտի մանկական դաշտերի օգտագործման հնարավորությունը (օրինակ՝ «Nomenclature.Code» դաշտը): SELECT տարրը կարող է հայտնվել միայն առաջին միացման հարցում:

ՈՐՏԵՂ

Նկարագրված են այն դաշտերը, որոնց վրա օգտագործողը կարող է կիրառել ընտրությունը: Այս առաջարկը օգտագործում է աղյուսակի դաշտերը: Չի թույլատրվում օգտագործել ընտրության ցուցակի դաշտերի անուն-ազգանունները: Միության յուրաքանչյուր մաս կարող է պարունակել իր WHERE տարրը:

(WHERE Nomenclature.*, Պահեստ)

Պարզ օրինակ

Անհրաժեշտ է վաճառքներ ստանալ տվյալ ժամանակահատվածի համար + ցուցադրել ամբողջ ապրանքը, անկախ նրանից՝ եղել են վաճառքներ, թե ոչ։ Այսինքն, դուք պետք է ընտրեք տվյալներ Վաճառքի ռեգիստրի շրջանառության աղյուսակից, տվյալներ նոմենկլատուրային գրացուցակից: Եկեք բաց թողնենք այն հարցը, թե ինչու է մեզ անհրաժեշտ ամբողջ նոմենկլատուրան:

Խնդիրը լուծելու համար դուք կարող եք ստեղծել հարցում, որը կապում է ապրանքը և վաճառքի շրջանառության աղյուսակը ձախ միացմամբ, արդյունքում ընտրված ժամանակահատվածում չվաճառված ապրանքի համար մենք կստանանք դաշտի արժեքները: Կոնտրակուսակցական, Համաձայնագիր, Քանակ, Գումար= Չեղյալ: Այս խնդրանքը.

SELECT ReferenceNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty, SalesTurnover.Counterparty contract, SalesTurnover.QuantityTurnover AS Quantity, SalesTurnover.CostTurnover AS Cost FROM Reference.NomenclaturesTurnover AS COST FROM Reference.NomenclaturesTurnoversReference AS SalesTurnover PO SprNomenclature.Link = SalesTurnover.Nomenclature

Ահա արդյունքը.

Կոնտրակուսակցական Համաձայնագիր Անվանակարգ Քանակ Գումար
դատարկ դատարկ _Թեստ 1 դատարկ դատարկ
«Բեղիկներ և սմբակներ» ՍՊԸ Համաձայնագիր 1 Հողաթափեր 10 1200
«Գազպրոմ» Թույն պայմանագիր Կոշիկներ 5 13000
դատարկ դատարկ Գալոշներ դատարկ դատարկ
դատարկ դատարկ Շիֆեր դատարկ դատարկ

Այս օրինակում ապրանքների՝ «Կոշիկ» և «Հողաթափեր» վաճառքներ չեն եղել։

Եվ ամեն ինչ լավ կլինի, եթե նմուշը խմբավորենք ըստ կոնտրագենտի, ապա բոլոր չվաճառված ապրանքները կհայտնվեն առանձին խմբի մեջ, որտեղ Counterparty = Null, բայց հաճախորդը ցանկանում է ունենալ պատահական ընտրություն զեկույցում ըստ կոնտրագենտի դաշտի (բնականաբար, սա նշանակում է վաճառքի ռեգիստրի կոնտրագենտ): Ինչ պետք է անեմ? Ի վերջո, իրականում մենք միայն պետք է զտենք աղյուսակը Վաճառք. Եթե ​​մենք օգտագործում ենք ավտոմատ լրացում ACS կոնստրուկտորում, ապա առկա ընտրության դաշտերը կներառեն դաշտը Կոնտրակուսակցական, թվում է, թե ամեն ինչ լավ է, բայց կոնտրագենտի կողմից ընտրված հաշվետվություն կատարելիս մենք կկորցնենք բոլոր գրառումները ապրանքի հետ կապից: Օրինակ, եկեք սահմանենք ընտրությունը. Կոնտրակուսակցական = ՍՊԸ «Horns and Hooves». Արդյունքը կունենա հետևյալ տեսքը.

Ամենևին այն չէ, ինչ մեզ պետք է, այնպես չէ՞:

Խնդիրը լուծելու համար, իհարկե, կարող եք պարամետր ավելացնել հարցումին, օրինակ՝ վիրտուալ աղյուսակի պարամետրերին։ Վաճառքի շրջանառություն, բայց միևնույն ժամանակ կորում է համեմատության տեսակը սահմանելու ճկունությունը։

Կա լուծում՝ դրա համար ներս հարցումների ստեղծողներդիրի վրա Տվյալների կազմը => Սեղաններավելացրեք պայմանի դաշտ վիրտուալ աղյուսակի պայմաններին Վաճառքի շրջանառությունև փոխել իր մականունը CounterpartySelection

Որպեսզի օգտագործողին չշփոթենք ընտրության դաշտերի հետ, մենք կանջատենք պայմանի դաշտը Կոնտրակուսակցականև փոխել դաշտի անվանումը CounterpartySelection


Կոնտրագենտի դաշտի կողմից միացված ընտրությունով այս սխեման գործարկելու արդյունքում ստացված հարցումը կստանա հետևյալ ձևը.

SELECT SprNomenclature.Link AS Nomenclature, SalesTurnover.Counterparty AS Counterparty, SalesTurnover.Counterparty պայմանագիր AS Counterparty Agreement, SalesTurnover.QuantityTurnover AS >Quantity, SalesTurnover.CostASstTurnover.PostTurnover.PostTurnover. Պայմանագրի Կոնտերկումի ներկայացում, PRESENTATIONLINK(SalesTurnover.Counterparty ) AS CounterpartyPresentation, SprNomenclature.Presentation AS NomenclaturePresentation FROM Directory.Nomenclature AS SprNomenclature ՁԱԽ ՄԻԱՑՈՒՄ Գրանցվել Accumulations.Sales.Turnover(&P , , , Counterparty = &P3.NomenclatureSa. կլատուրա

Եվ համապատասխանաբար արդյունքը.

Կոնտրակուսակցական Համաձայնագիր Անվանակարգ Քանակ Գումար
դատարկ դատարկ _Թեստ 1 դատարկ դատարկ
«Բեղիկներ և սմբակներ» ՍՊԸ Համաձայնագիր 1 Հողաթափեր 10 1200
դատարկ դատարկ Կոշիկներ դատարկ դատարկ
դատարկ դատարկ Գալոշներ դատարկ դատարկ
դատարկ դատարկ Շիֆեր դատարկ դատարկ

Test1-ը Nomenclature գրացուցակի խումբ է, որտեղ ամեն ինչ գտնվում է

Հրապարակմանը կցված է հրապարակման մեջ օգտագործված հաշվետվության XML սխեման: Ես ստեղծեցի սխեման Ինտեգրված ավտոմատացման մեջ, բայց կարծում եմ, որ ամեն ինչ լավ կաշխատի ինչպես UPP-ում, այնպես էլ UT 10-ում:

Ամփոփելով

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

Եթե ​​դուք ունեք բավարար փորձ առանց օգտագործման սխեմաներ ստեղծելու համար Ինքնալրացում- ուրեմն այս խորհուրդը իմաստ չունի։

Օգտագործված ծրագրակազմ

  • Սքրինշոթ ծրագիրSnimOK!
  • XML ֆայլի խմբագիր