Դինամիկ ցուցակով ցուցադրվող տվյալների ստացում

Բացի պարզունակ տվյալների տեսակներից, որոնք կարելի է գտնել ցանկացած ծրագրավորման լեզվում, 1C-ում կան եզակի տեսակներ: Նրանցից յուրաքանչյուրն ունի իր առանձնահատկությունները, մեթոդները, գործառույթները, նպատակը և համակարգում օգտագործման նրբությունները: Այս տեսակներից մեկը դինամիկ ցուցակն է, որը մեծապես հեշտացնում է բազմաթիվ կիրառական առաջադրանքներ: Այդ իսկ պատճառով մշակողները պետք է իմանան և կարողանան կառավարել այս ունիվերսալ գործիքը:

1C-ում դինամիկ ցուցակների առանձնահատկությունները

Այս տեսակի նպատակը ցանկացած տվյալների բազայի աղյուսակներից տեղեկատվություն ցուցադրելն է՝ անկախ դրա տեսակից: Մեխանիզմը ստեղծվել է SKD-ի հիման վրա և ունի նմանատիպ հնարավորություններ։ Բայց դա չի նշանակում, որ դուք անպայման պետք է հարցում գրեք 1C լեզվով, թեև այս հնարավորությունը կա և պետք է օգտագործվի: Դուք կարող եք պարզապես նշել աղյուսակը, որի տեղեկատվությունը ձեզ և 1C-ին հետաքրքրում է, ինքնուրույն կստեղծի պարզ հարցում:

Տեսնելու համար, թե ինչպես է ձևավորվում դինամիկ ցուցակը և ինչ տվյալներ է այն ցույց տալիս, դուք պետք է բացեք կառավարվող ձևերը, որտեղ այն գտնվում է կոնֆիգուրատորում. մանրամասների ցանկում օգտագործեք համատեքստի ընտրացանկը՝ դրա հատկությունները բացելու համար և ուշադրություն դարձրեք «Պատվերով» հարցում» կետը: Եթե ​​վանդակ չկա, ապա «Հիմնական աղյուսակ» պարամետրը արտացոլում է տվյալների բազայի աղյուսակը, որտեղից վերցված են տվյալները: Հակառակ դեպքում, դինամիկ ցանկը արտացոլում է հատուկ հարցման տվյալները, որոնք կարելի է տեսնել՝ բացելով ցանկի կարգավորումները:

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

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

  • Դինամիկ ցուցակի ընտրություն;
  • Խմբեր;
  • Տեսակավորում;
  • Դեկոր.

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

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

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



SELECT NomenclatureList.Name AS Name, GoodsIn WarehousesRemainings.Warehouse AS Warehouse, GoodsIn WarehousesRemainings.QuantityRemaining AS QuantityRemaining FROM Directory.Nomenclature AS NomenclatureList.LEFT CONNECTIONASRegistrationAccum ԱպրանքներԱՄՆ գանձերՄնացած ծրագրակազմ NomenclatureList.Link = ProductsIn WarehousesRemainings.Nomenclature WHERE

Քանի որ մեր հարցումն օգտագործել է «CurrentDate» պարամետրը, մենք պետք է սահմանենք դրա արժեքը նախքան մշակումն օգտագործելը: Դա անելու համար «When CreatedOnServer» ընթացակարգի ձևի մոդուլում, օգտագործելով ստանդարտ հրաման, դրան վերագրեք «CurrentSessionDate» գործառույթը: Մենք նաև պետք է ցուցադրենք դինամիկ ցուցակը կառավարման ձևի վրա և փոխենք դաշտերի հերթականությունը՝ պարզության համար: Քաշեք «Nomenclature Remaining» հատկանիշը ձևի տարրերի մեջ (վերևի ձախ մաս) և օգտագործեք կապույտ սլաքները՝ ձևի աղյուսակի դաշտերի հերթականությունը փոխելու համար:

&Սերվերի վրա Սերվերի վրա Ստեղծվելիս Անվանակարգը մնում է: Պարամետրեր Սահմանել ParameterValue("CurrentDate", CurrentSessionDate()) EndProcedure


Արդեն այս փուլում մենք կարող ենք բացել մեր արտաքին մշակումը 1C-ում և տեսնել, որ դինամիկ ցուցակն աշխատում է։ Մենք կարող ենք դիտարկել մնացորդները, ստեղծել տարրեր և խմբեր և որոնել: Հաճախ հաճախորդները խնդրում են ավելացնել մնացորդները տեսնելու ամսաթիվը ընտրելու հնարավորությունը: Դինամիկ ցուցակով ձևի դեպքում դա ձեռք է բերվում լրացուցիչ դաշտի և դրա օգտագործմամբ պարամետրեր սահմանելու միջոցով:

Ավելացնել «DateRemaining» հատկանիշը «Date» տեսակի և փոխանցել այն ձևի տարրերին: Դաշտային իրադարձություններում մենք ստեղծում ենք «OnChange» իրադարձությունը և գրում դինամիկ հարցումում օգտագործվող «CurrentDate» պարամետրը սահմանելու կոդը: Որպեսզի ձևը բացելիս օգտատերը անմիջապես հասկանա, թե որ ամսաթվին է տեսնում մնացորդները, մենք փոքր փոփոխություններ կանենք «When CreatedOnServer» ընթացակարգում:



&OnServerProcedureWhenCreatingOnServer(Ձախողում, ՍտանդարտՊրոցեսինգ)RemainingDate = CurrentSessionDate(); Նյութ Remains.Parameters.SetParameterValue("CurrentDate", RemainingDate); Ընթացակարգի ավարտը &Հաճախորդի ընթացակարգի մասին Remaining DateWhenCanged(Element)Nomenclature Remaining.Parameters.SetParameterValue("CurrentDate",RemainingDate); Ընթացակարգի ավարտը

Արդյունքում, մեր Դինամիկ ցուցակի ձևը կարող է արտացոլել մնացորդները ցանկացած ամսաթվի դրությամբ:

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

  1. Ընտրություն;
  2. Ցուցակներ.

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

Պլատֆորմ 1C:Enterprise 8.2-ը կարող է շատ գրառումների հետ աշխատել տվյալների բազայի աղյուսակում դինամիկ ձևով, այսինքն՝ կարդալ տվյալները մասերով: Նախկինում հոդվածներում մենք դիտարկել ենք դինամիկ ցուցակների մեխանիզմը և դրանց հետ աշխատանքի օպտիմալացման մեթոդները:

Այսօր մենք ոչ ստանդարտ խնդիր ենք լուծելու դինամիկ ցուցակների համար։Մենք պետք է հաշվարկենք ընդհանուր գումարը՝ օգտագործելով «Գումար» փաստաթղթի հատկանիշը և ցուցադրենք այն ցուցակի ստորոտում: Նմանապես, հաշվարկեք «Վարկանիշ» դաշտի միջին արժեքը և ցուցադրեք այն դինամիկ ցուցակի ստորոտում: Ընդհանուր դաշտերի հաշվարկը պետք է հաշվի առնի փաստաթղթերի ցանկի կարգավորումներում օգտագործողի կողմից սահմանված ընտրությունը:

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

Իրականացում

Եվ այսպես, անցնենք խնդրի լուծմանը։ Սկսենք ձևը փոխելուց, այնուհետև կնկարագրենք վերջնական արժեքների ստացման ալգորիթմը։

Ձև և միջերես

Նախ, եկեք պատրաստենք փաստաթղթի ձևը, որը կցուցադրի ստացված դաշտերը: Դա անելու համար մենք կավելացնենք «Վարկանիշ» և «Գումար» ձևի երկու տողային մանրամասներ:

Փաստաթղթերի ընդհանուր արժեքները կգրանցվեն այս մանրամասներով:

Դինամիկ ցուցակի ստորոտում մանրամասների արժեքները ցուցադրելու համար դուք պետք է միացնեք ցանկի ձևի համապատասխան տարրի համապատասխան տարբերակը (տես հետևյալ սքրինշոթը):

Այժմ դուք պետք է որոշեք, թե ինչ իրադարձության մասին կթարմացվեն ցուցակի էջատակի արդյունքները: Մշակման հեշտության համար հրամանի վահանակում ավելացնենք «Update» հրամանը և համապատասխան ձևի տարրը։ Երբ այս հրամանը կատարվի, ընդհանուր գումարները կթարմացվեն:

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

Ալգորիթմ

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

Նշում․ դինամիկ ցուցակների կարգավորումները (տե՛ս վերևում գտնվող սքրինշոթը) հիմնված են տվյալների կազմման համակարգի (DCS) մեխանիզմների վրա։ Համապատասխանաբար, դուք կարող եք նրանց հետ աշխատել նմանատիպ եղանակով (ծրագրային կերպով ավելացնել, փոխել, կարդալ և այլն):

Արդյունք ստանալու համար հայտի ձևավորման փուլերը հետևյալն են.

1. Մենք ստանում ենք դինամիկ ցուցակի նախնական հարցումը:

Ինչպես տեսնում ենք, հարցումն ընտրում է փաստաթղթի բոլոր մանրամասները: Մի փոքր ավելի բարդություն ավելացնելու համար ես ավելացրեցի իմ սեփական «Գնահատականի մակարդակ» դաշտը, որը ստեղծվել է «SELECT» կառուցվածքով:

2. Մենք ձևավորում ենք հարցման պայմանների տեքստը (բաժին «ՈՐՏԵՂ») և այն փոխարինում սկզբնական հարցումով:

Մենք պետք է պայմաններ ավելացնենք ստացված աղբյուրի հարցման տեքստին՝ կազմաձևված դինամիկ ցանկի ընտրության համաձայն:

Ընթացակարգը, կախված անցած ընտրության տարրի տեսակից (խումբ կամ ընտրության տարր), առաջացնում է համապատասխան պայմանի տեքստը: Խմբի բոլոր պայմանները շրջապատված են փակագծերով, իսկ խմբի մեջ ընդգրկվածները նույնպես շրջապատված են փակագծերով: Արտահայտությունների միջև պայմանները կախված են մայր խմբից («ԵՎ» պայմանը տեղադրված է հիերարխիայի վերին տարրերի միջև):

Եթե ​​տարրն ունի օգտագործման դրոշակի հավաքածու («Օգտագործում» հատկությունը), ապա տարրը մշակվում է: Ստեղծված տեքստը կախված է նաև համեմատության պայմանից (Հավասար, ոչ հավասար, ցուցակում և այլն): Ստեղծված պայմանի տեքստի կախվածությունը համեմատության տեսակից կարելի է տեսնել հետևյալ գործառույթում.

Մեկ այլ հետաքրքիր գործառույթ, իմ կարծիքով, «GetFieldTextByView» է: Այն անհրաժեշտ է հարցման լեզվի արտահայտություններով ձևավորված դաշտերը հարցման պայմանների մեջ փոխարինելու համար: Վերևում ես ավելացրել եմ «Գնահատականի մակարդակ» դաշտը սկզբնական հարցումին: Եթե ​​օգտագործողը օգտագործում է այն ընտրության մեջ, ապա ամբողջ արտահայտությունը պետք է փոխարինվի հարցման պայմանով: Այս ֆունկցիան ստանում է դաշտի տեքստը հարցումից՝ հիմնվելով դրա ներկայացման վրա: Նման բարդ դաշտերի համար այն կվերադարձնի արտահայտության ամբողջ տեքստը:

Ալգորիթմի մասին լրացուցիչ մանրամասների համար տե՛ս հոդվածին կցված թեստային կազմաձևը: Ստորև ներկայացված է ընտրության կարգավորումների և դրանց համար ստեղծված հարցումների պայմանների սքրինշոթը:

Ստեղծված պայմանի տեքստը կցվում է դինամիկ ցանկի սկզբնական հարցումին: Հարցման արդյունքը տեղադրվում է ժամանակավոր աղյուսակում:

3. Մենք առաջին հարցումը տեղադրում ենք ժամանակավոր աղյուսակում և կատարում ենք խմբավորում ըստ ամփոփ դաշտերի՝ անհրաժեշտ ագրեգատային ֆունկցիաներով:

Հիշեցնեմ, որ մենք պետք է ստանանք «Վարկանիշ» դաշտի միջին արժեքը և «Գումար» դաշտի ընդհանուր գումարը։ Մենք արդեն ստեղծել ենք հարցում՝ հաշվի առնելով ընտրությունները, մնում է հաշվարկել ընդհանուր արժեքները։ Դա արվում է հետևյալ խնդրանքով.

Հարցումը կատարելուց հետո մենք մշակում ենք ստացված արդյունքը, այն վերադարձնում հաճախորդին և գրում այն ​​ձևաթղթի մեջ, որը մենք ստեղծել ենք ավելի վաղ: Ի վերջո, մենք ստացանք արդյունքները, որոնք ցուցադրվում են դինամիկ ցուցակի ստորոտում (տե՛ս հոդվածի առաջին սքրինշոթը):

Լուծման օպտիմալությունը

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

Բացի այդ, մենք կարող ենք միայն հաշվարկել ընդհանուր գումարները և պահանջել սերվերի կողմից: Հետևաբար, դուք պետք է լրջորեն մոտենաք սերվերին, քանի որ ընդհանուրների թարմացման ընթացակարգը կարող է իրականացվել շատ հաճախ: Պատկերացրեք ՀԴՄ անդորրագրերի ամսագիր առևտրային կազմակերպությունում, որտեղ րոպեում կարելի է մուտքագրել մինչև 5 կտրոն, իսկ ժամում՝ մինչև 300 կտրոն։ Ամեն անգամ, երբ փաստաթուղթը գրվում է, ընդհանուր գումարները կթարմացվեն: Հետևաբար, խելամիտ կլինի կրճատել փոխանցվող երթևեկությունը՝ օգտագործելով կոնտեքստից դուրս ընթացակարգեր:

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

Առաջին պարամետրը փոխանցում է դինամիկ ցուցակի ընտրությունը, երկրորդը «SelectionFieldNameSelectionFieldValueType» տիպի կառուցվածքն է: Խնդրում ենք նկատի ունենալ, որ ֆունկցիայի առաջին պարամետրը ստացվում է որպես սեփական արժեք: Չեմ կարող հստակ ասել, թե ինչու, բայց եթե ընտրությունը փոխանցեք որպես հղում, հարթակը սխալ է տալիս՝ նշելով, որ ընտրությունը հնարավոր չէ փոխել: Սխալը միայն այս կերպ է շրջանցվել։->

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

Եզրակացություն

Եզրափակելով, ես կասեմ, որ դինամիկ ցուցակում ընդհանուրների հաշվարկման այս մոտեցումը ճիշտ չէ զարգացման մեթոդաբանության տեսանկյունից: Ճիշտ կլինի ընդհանուրը ստանալ ռեգիստրներով։ Օրինակ, չեկերի մատյանում, կրկին, ընթացիկ ՀԴՄ-ի գումարը կարող ենք ստանալ կա՛մ փաստաթղթերից, կա՛մ համապատասխան կուտակային մատյանից։

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

Այնուամենայնիվ, հոդվածում նկարագրված մեթոդը տեղի է ունենում խնդիրներ լուծելիս:

Ֆայլեր ներբեռնման համար.

Տպել (Ctrl+P)

Դինամիկ ցուցակ

1. Ընդհանուր տեղեկություններ

Դինամիկ ցուցակը տվյալների հատուկ տեսակ է, որը թույլ է տալիս ձևաթղթի վրա ցուցադրել տվյալների բազայի աղյուսակներից կամայական տեղեկատվություն: Դա անելու համար դուք պետք է նշեք աղյուսակը, որտեղից ցանկանում եք ցուցադրել տվյալները, կամ նկարագրել ստացված ընտրությունը հարցման լեզվով:
Մեխանիզմը հիմնված է տվյալների կազմման համակարգի վրա և ապահովում է ստացված տվյալների տեսակավորման, ընտրության, որոնման, խմբավորման և պայմանական ձևաչափման հնարավորություններ։ Տվյալ դեպքում տվյալների աղբյուրը հարցումն է, որը կա՛մ գեներացվում է համակարգի կողմից ավտոմատ կերպով (նշված տվյալների հիման վրա), կա՛մ ձեռքով գրվում մշակողի կողմից:

Բրինձ. 1. Դինամիկ ցուցակ ստեղծելու տարբերակներ

Տիպի ձևի ատրիբուտներ ստեղծելիս Դինամիկ ցուցակծրագրավորողը կարող է ընտրել տվյալների հարցում ձևավորելու երկու եղանակ.
● Նշելով հիմնական աղյուսակը. այս դեպքում պարզապես պետք է նշել աղյուսակը (Main table հատկությունը), որից ցանկանում եք ստանալ տվյալներ, և համակարգը ավտոմատ կերպով կստեղծի հարցում տվյալների համար (տես աջ մասը Նկ. 1).
● Հարցում ձեռքով ստեղծելը. դրա համար անհրաժեշտ է սահմանել Custom request հատկությունը (տես Նկար 1-ի ձախ կողմը): Դրանից հետո հասանելի կլինի ինֆաբազայից տվյալներ ստանալու հարցումների ձեռքով ստեղծումը:
Հարցումը կարող է տվյալներ առբերել բազմաթիվ աղյուսակներից, այնպես որ կարող եք նշել հիմնական աղյուսակը: Դա այնպես է, որ դինամիկ ցանկը կարող է որոշել, թե որ տվյալներն են առաջնային և որոնք են երկրորդական, ինչպես նաև կարող է ճիշտ ընտրել և ցուցադրել տեղեկատվությունը, ինչպես նաև տրամադրել ստանդարտ հրամաններ: Այնուամենայնիվ, եթե հարցումում հնարավոր չէ որոշել հիմնական աղյուսակը, ապա այն չի կարելի նշել, բայց հետո
դինամիկ ցանկը չի տրամադրի հիմնական աղյուսակի հետ կապված հրամաններ: Բացի այդ, այս դեպքում (առանց հիմնական աղյուսակը նշելու) զգալիորեն կնվազի դինամիկ ցուցակով տվյալների ստացման արդյունավետությունը։
Արդյունավետությունը բարելավելու համար խորհուրդ է տրվում, որ հատուկ հարցումներում օգտագործվող ցանկացած միացում միայն լրացուցիչ տվյալներ ստանալու համար լինի ընտրովի՝ օգտագործելով տվյալների կազմի համակարգի հարցումների լեզվի ընդլայնումը:
Դինամիկ ցուցակի համար, որը ձևի հիմնական հատկանիշն է, հնարավոր է ընտրել ընտրության արժեքները՝ օգտագործելով ձևի պարամետրը Ընտրություն. Դա անելու համար անհրաժեշտ է, որ պարամետրում գտնվող կառուցվածքի սեփականության անվանումը Ընտրություն,
համընկավ դինամիկ ցուցակի ընտրության դաշտի անվան հետ: Այս դեպքում կառուցվածքի հատկության արժեքը կսահմանվի որպես ընտրության տարրի ճիշտ արժեք: Եթե ​​զանգվածը, ֆիքսված զանգվածը կամ արժեքների ցանկը փոխանցվում է որպես դինամիկ ցուցակի ձևի Selection պարամետրի տարրի արժեք, ապա ընտրությանը ավելացվում է պայման՝ In List տարբերակով, ճիշտ արժեքով: որոնցից տեղադրվում է արժեքների ցանկ (որին վերածվում են զանգվածը և ֆիքսված զանգվածը):
Դինամիկ ցանկում կամայական հարցումը կարող է լինել հարցում, որտեղ պարամետրն օգտագործվում է դաշտի արժեքը ստեղծելու համար, օրինակ.

ԸՆՏՐԵԼ
ԸՆՏՐՈՒԹՅՈՒՆ
ԵՐԲ Առաքում. Գործակից = 1 ՀԵՏԵ &Ներկայացում
ՀԱԿԱՌԱԿԻՑ Առաքում։ Գործակից
ԱՎԱՐՏ AS հարաբերակցությունը
ԻՑ

Ավելին, եթե պարամետրի արժեքի տեսակը տարբերվում է օբյեկտի հատկանիշի տեսակից (օրինակ. Հենարաններ 1տեսակ ունի Թիվ, և պարամետրի արժեքը տեսակն է Գիծ), այնուհետև դաշտը ճիշտ ցուցադրելու համար դուք պետք է հստակորեն փոխանցեք պարամետրի արժեքը ցանկալի տեսակի.

ԸՆՏՐԵԼ
ԸՆՏՐՈՒԹՅՈՒՆ
WHEN Delivery.Coefficient = 1 THEN EXPRESS(&Representation AS String(100)) ELSE Առաքում: Գործակից
ԱՎԱՐՏ AS հարաբերակցությունը
ԻՑ
Document.Delivery of Products ԻՆՉՊԵՍ առաքել

Եթե ​​դաշտը, որով սահմանված է ընտրությունը, անջատված է ֆունկցիոնալ ընտրանքների միջոցով, ապա այդպիսի դաշտով ընտրությունը տեղադրված չէ, նույնիսկ եթե ընտրության արժեքը փոխանցվում է որպես ձևի պարամետրեր կամ ընտրության պարամետրի հղումներ:
Օգտագործելով Dynamic data reading հատկությունը, դուք դինամիկ ցուցակում նշում եք տվյալների փոքր մասերում կարդալու անհրաժեշտությունը
(Դինամիկ ցուցակի և տվյալների քեշավորման միջոցով տվյալներ ստանալու եղանակների մասին լրացուցիչ մանրամասների համար տե՛ս ստորև): Անկախ այս հատկանիշից, գործում են հետևյալ պայմանները.

● Եթե դիտման ռեժիմը դրված է հիերարխիկ ցանկի վրա, ապա կկարդան միայն ընթացիկ խմբի տվյալները և բոլոր ծնող տարրերի տվյալները (առանց երեխաների):
● Եթե դրված է ծառի դիտման ռեժիմը, կկարդացվեն միայն բաց ծառի հանգույցների տվյալները:
● Դինամիկ ցանկի տվյալների միանգամյա բեռնումը չի ապահովվում, եթե հիերարխիկ զննարկումը սահմանված է (Ցուցադրման հատկությունը դրված է ծառի վրա) և սկզբնական ծառի ցուցադրումը դրված է Ընդլայնել բոլոր մակարդակները: Տվյալներ ստանալու համար սերվերին կկատարվեն այնքան հարցումներ, որքան հանգույցներ կան ցուցադրված ցանկում:
Տվյալների մեկ որոնման ընթացքում դինամիկ ցուցակը կրկին օգտագործում է նախկինում ստեղծված ժամանակավոր աղյուսակները, եթե բավարարված են հետևյալ պայմանները.
● Ցուցակի խմբաքանակի հարցումը հիմնական խմբաքանակի հարցումից հետո հարցումներ չունի:
● Ժամանակավոր աղյուսակների և դրանցում գտնվող դաշտերի կազմը անփոփոխ է խմբաքանակի հարցումի նախորդ կատարման համեմատ:

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

2. Սահմանափակումներ և առանձնահատկություններ

Դինամիկ ցուցակում ընտրությունը սահմանելիս հիշեք, որ ընտրությունը չի ազդում խմբերի վրա, եթե դինամիկ ցուցակի ցուցադրման ռեժիմը հիերարխիկ ցուցակն է կամ ծառը: «Խմբեր» ասելով մենք հասկանում ենք գրացուցակի կամ բնութագրական տեսակների պլանի տարր, որի ThisGroup հատկությունը սահմանված է True:
Դինամիկ ցուցակի կողմից ինքնաբերաբար կիրառվող որակավորումները կիրառվում են ստանդարտ մանրամասների համար՝ Սեփականատեր, Ծնող, Ամսաթիվ, Ժամանակաշրջան և ThisGroup:
օգտագործելով ստանդարտ տվյալների կազմման համակարգի գործիքներ: Ընտրությունը, որն ավտոմատ կերպով կիրառվում է դինամիկ ցուցակի միջոցով հիմնական դաշտերի վրա, կարող է կիրառվել ինչպես տվյալների բաղադրության համակարգի ստանդարտ միջոցներով, այնպես էլ հարցման տեքստին ուղղակիորեն պայմաններ ավելացնելով: INդեպի հիմնական աղյուսակի դաշտերը։ Ընտրանքների կիրառման արդյունքում դասավորության գործիքների միջոցով դրանք կարող են կիրառվել ինչպես ներկառուցված հարցումներում, այնպես էլ վիրտուալ աղյուսակների պարամետրերում:

Դինամիկ ցուցակներ մշակելիս խորհուրդ է տրվում փորձարկել բոլոր դինամիկ ցուցակները մաքսային հարցումներով: Հաստատման գործընթացում դուք պետք է համոզվեք, որ եթե ցանկի հարցումը պարունակում է ներդիր հարցումներ կամ վիրտուալ աղյուսակներ, և դրանցում առկա են «Սեփականատեր», «Ծնող», «Ամսաթիվ», «Ժամանակաշրջան», «ԱյսԽումբ» կամ հիմնական դաշտերի այլանունների հետ համընկնող դաշտեր: ընտրությունը, ապա այս դաշտերը վավեր են, համապատասխանում են ստանդարտ մանրամասներին, որոնց հետ համընկնում է նրանց մականունը: Եթե ​​դա այդպես չէ, դուք պետք է փոխեք հարցումն այնպես, որ դրանք համապատասխանեն կամ
մականունն այլ էր.
Եթե ​​դուք ընտրում եք ձեռքով ստեղծել հարցում, ապա որոշ սահմանափակումներ են դրվում հարցման վրա.
● ԱՌԱՋԻՆ դրույթի օգտագործումը դինամիկ ցանկի հարցում չի աջակցվում: Եթե ​​Ձեզ անհրաժեշտ է օգտագործել դինամիկ ցուցակում գրառումների քանակով սահմանափակված ընտրություն, դուք պետք է վերամշակեք դինամիկ ցուցակի ստեղծման հարցումն այնպես, որ հարցման իրական բովանդակությունը տեղադրվի ենթհարցման մեջ և սահմանափակեք գրառումների քանակը: ստացվել է այս ենթհարցում: Դուք կարող եք նաև օգտագործել ժամանակավոր աղյուսակ՝ ենթհարցման փոխարեն:
● Ընտրությունը, տեսակավորումը և խմբավորումը չեն ապահովվում.

  • Ըստ աղյուսակային մասերի մանրամասների.
  • Դիտել դաշտերը:
  • DataVersion դաշտ:
  • PredefinedDataName դաշտ:
  • Հաշվային աղյուսակի աղյուսակի տիպի դաշտ:
  • Կուտակման ռեգիստրի աղյուսակի շարժման դաշտի տեսակը:
  • Դաշտի տեսակը Հատկանշական տիպի պլանի աղյուսակի արժեքները:
  • Տիպային դաշտ Տեսակ;
  • String տիպի դաշտ (անսահմանափակ երկարություն):
  • Երկուական տվյալների տիպի դաշտ:

● Տեսակավորումն ու խմբավորումն ըստ Subconto դաշտերի չի աջակցվում<НомерСубконто>և ViewSubconto<НомерСубконто>Սեղաններ Շարժումներ Ենթակոնտ հաշվապահական ռեգիստրի.
● Խմբավորումն ըստ դաշտերի, որոնք հարցման լեզվի արտահայտություններ են, որոնք պարունակում են համախառն ֆունկցիաներ, չի ապահովվում:
● Երբ հիմնական աղյուսակն ընտրված է, դինամիկ ցուցակի հարցումն ունի հետևյալ սահմանափակումները.

  • Միացումները չեն աջակցվում:
  • «ՊԱՏՎԵՐ ԸՍՏ» բաժինը չի աջակցվում: Դուք պետք է օգտագործեք հարցում առանց հիմնական աղյուսակի կամ դինամիկ ցանկի կարգավորումների միջոցով սահմանեք անհրաժեշտ պատվեր:

● Եթե դինամիկ ցուցակը ցուցադրվում է որպես հիերարխիկ ցուցակ կամ ծառ, ապա գրառումը չի ցուցադրվի որպես դինամիկ ցուցակ, եթե այդ մուտքի առնվազն մեկը չցուցադրվի: Այլ կերպ ասած, հիերարխիկ ցուցակի տարրը ցուցադրելու համար դինամիկ ցուցակը պետք է ցուցադրի նաև այդ տարրի բոլոր ծնողները մինչև ցուցակի վերևը: Տվյալ դեպքում ցուցակի վերևում նկատի ունենք կամ
հիերարխիկ օբյեկտի արմատային տարրը, որը ցուցադրվում է դինամիկ ցուցակով, կամ տարրը սահմանված է որպես ձևի աղյուսակի ընդլայնման ParentTopLevel հատկություն դինամիկ ցուցակի համար:

Հետևյալ աղյուսակները որպես դինամիկ ցուցակի հիմնական աղյուսակ օգտագործելը չի ​​ապահովվում.

● Աղյուսակ, որը չունի բանալի, որը եզակիորեն նույնականացնում է յուրաքանչյուր աղյուսակի գրառումը (հղում օբյեկտների աղյուսակների համար և գրանցման բանալի ռեգիստրների աղյուսակների համար): Այնուամենայնիվ, հետևյալ աղյուսակները կարող են սահմանվել որպես դինամիկ ցուցակի հիմնական աղյուսակ (չնայած բանալի չունենալու համար).

● Հաշվապահական հաշվառման ռեգիստրի ենթահամակարգային աղյուսակ;
● հաշվապահական ռեգիստրի բոլոր վիրտուալ աղյուսակները, բացառությամբ MovementsSubconto աղյուսակի;
● հաստատուն արժեքների աղյուսակներ (ներառյալ հաստատունների աղյուսակը);
● արտաքին տվյալների աղբյուրների աղյուսակներ առանց հիմնական դաշտերի;
● արտաքին տվյալների աղբյուրների խորանարդային աղյուսակներ;
● կուտակման ռեգիստրի աղյուսակներ.

  • հեղափոխության սեղան;
  • հաշվեկշռի աղյուսակ;
  • շրջանառության և մնացորդների աղյուսակ.

● հաշվարկային ռեգիստրի աղյուսակներ.

  • փաստացի վավերականության ժամկետի աղյուսակ;
  • ժամանակացույցի տվյալներ;
  • հիմնական տվյալներ.

● Օբյեկտների աղյուսակային մասերի աղյուսակներ;
● Փոխել գրանցման աղյուսակները (օգտագործվում են տվյալների փոխանակման մեխանիզմներում);
● Հերթականության աղյուսակներ;
● Փոխակերպման աղյուսակներ (օգտագործվում են պարբերական հաշվարկային մեխանիզմներում):
● Աղյուսակ, որն օգտագործվում է հարցման մեջ միայն արտաքին միացման մեջ:

Այլ կերպ ասած, նշված հիմնական աղյուսակով դինամիկ ցուցակը ճիշտ կաշխատի, եթե հարցումը կատարելու արդյունքում՝
որպես տվյալների աղբյուր նշված՝ հիմնական աղյուսակից ստացված տողերի թիվը չի ավելանում (հաշվի առնելով պարտադրված ընտրությունը): Եթե ​​հարցման կատարման արդյունքում մեծանում է հիմնական աղյուսակից հարցման ստացած տողերի թիվը, դա կհանգեցնի ցանկի կողմից ցուցադրվող աղյուսակի գրառումների բանալիների եզակիության խախտման։ Այս դեպքում դուք պետք է անջատեք հիմնական դինամիկ ցուցակի աղյուսակի օգտագործումը:
Դինամիկ ցուցակի հետ աշխատելիս դուք պետք է հաշվի առնեք ցանկի կողմից ցուցադրվող մանրամասների մուտքի իրավունքները.
● Դինամիկ ցուցակի սյունակների տվյալները, որոնք նշված են Միշտ օգտագործիր հատկությամբ, բայց որոնց ներկայիս օգտվողը չունի View իրավունք, չի փոխանցվում հաճախորդի կողմին: Նման սյունակների տվյալների հասանելիություն (օգտագործելով CurrentData հատկությունը և RowData() մեթոդը)
հնարավոր չէ հաճախորդի կողմից:
● Եթե ընթացիկ օգտատերը Դինամիկ ցուցակի առանցքային դաշտի վրա չունի դիտում, ապա տվյալ դինամիկ ցուցակից տվյալների առբերումը հանգեցնում է մուտքի խախտման սխալի:
Դինամիկ ցուցակի համար, որը ցուցադրում է թվարկումների ցուցակը, ցանկը ինտերակտիվ կերպով հարմարեցնելու տարբերակ չկա:
Սյունակների կազմը և դինամիկ ցուցակի կարգավորումները կապված են հարցման դաշտերի հետ՝ օգտագործելով ընտրության դաշտերի անունները: Եթե ​​ընտրական դաշտի հարցման մեջ բացահայտորեն նշված չէ կեղծանունը, և դաշտը համակարգային է, ապա ներկառուցված լեզվի անգլերեն տարբերակի դաշտի անվանումը օգտագործվում է որպես փոխանուն:
Նշված հարաբերությունը նշանակում է, որ փոխելիս (կամ հստակորեն նշելով այն դաշտի անուն-ազգանունը, որի համար օգտագործվել է ավտոմատ կեղծանուն)
Դինամիկ ցուցակի տվյալները ստեղծող հարցման դաշտի այլանունը, դինամիկ ցուցակի հատկանիշի կարգավորումները կկորչեն, ձևի տարրերը «կկորցնեն» ցուցադրված մանրամասները, դինամիկ ցուցակի կարգավորումները կդառնան սխալ և այլն:
Եթե ​​դինամիկ ցուցակի տվյալների աղբյուրը աղյուսակն է (սովորական կամ վիրտուալ), որը թույլ է տալիս ընտրություն կատարել ըստ ժամանակաշրջանի, ապա եթե օգտագործողը սահմանում է ցուցադրման ժամանակահատվածը նման դինամիկ ցուցակում (հրաման Set date interval...),
նշված ժամանակահատվածի սահմանները կսահմանվեն որպես ընտրության արժեքներ կամ վիրտուալ աղյուսակի պարամետրեր: Եթե ​​լեզվի ընդլայնման միջոցով
հարցումներ տվյալների կազմման համակարգի համար, վիրտուալ աղյուսակի պարամետրերի անվանումները հստակորեն նշվել են՝ նշված պարամետրերով
անունները. Աղյուսակներ, որոնց համար հնարավոր է վերահսկել տվյալների ցուցադրման կամ մշակման ժամանակահատվածը.
● գրանցման աղյուսակներ (հիմնական կամ վիրտուալ), որոնց համար հնարավոր է ընտրել ըստ ժամանակաշրջանի (հաշվարկային ռեգիստրի համար՝ ըստ գրանցման ժամանակահատվածի);
● փաստաթղթերի, բիզնես գործընթացների և առաջադրանքների հիմնական աղյուսակներ;
● փաստաթղթերի ամսագրերի հիմնական աղյուսակներ;
● հիմնական հաջորդականության աղյուսակներ, հաջորդականության սահմանային աղյուսակներ:
Դինամիկ ցուցակի հարցման պարամետրը կարող է լինել զանգված կամ արժեքների ցանկ: Այնուամենայնիվ, եթե պարամետրը արժեքների ցանկ է, ապա ցուցակի միայն առաջին արժեքը կօգտագործվի որպես ընտրության արժեք: Եթե ​​դինամիկ ցանկը օգտագործում է հարցումներ պարամետրերով, ապա պարամետրերի արժեքների սկզբնական կարգավորումը պետք է կատարվի OnCreateOnServer կարգավորիչում:
Դինամիկ ցուցակի տվյալները ցուցադրելիս նկատի ունեցեք հետևյալ կետերը.
● Երբ դուք ծրագրային կերպով փոխում եք դինամիկ ցուցակի հատկությունները, ցուցակի հետ կապված հրամանների վահանակները ավտոմատ կերպով չեն վերաբնակեցվում:
այս դինամիկ ցուցակով:
● Եթե մի քանի դաշտեր խմբավորվում են խմբի մեջ՝ խցում խմբավորման ռեժիմով, իսկ խմբավորված դաշտերում կա դաշտ, որը ցուցադրվում է որպես վանդակ, ապա այս վանդակը միշտ առաջինը կցուցադրվի ստացված բջիջում (ձախից տեքստ):
Դինամիկ ցանկում տվյալների տեսակը որոշելիս այն դաշտերի համար, որոնց արտահայտությունները ներառում են պարամետրեր, դաշտեր կամ բառացիներ, ստացված տեսակը որոշվում է դաշտերի և բառացիների տեսակներով: Եթե ​​պարամետրի արժեքի տեսակը ներառված չէ ստացված տվյալների տեսակում, դրա արժեքը կկտրվի:
Օրինակ, հետևյալ օրինակում դաշտը կլինի Number տեսակի։

ԸՆՏՐՈՒԹՅՈՒՆ
ԵՐԲ ՍՈՒՏ Է
ՀԵՏՈ 5
ՀԱԿԱՌԱԿԻՑ
&Պարամետր
ՎԵՐՋ

Եթե ​​պարամետրի պարամետրը սահմանեք մեկ այլ տիպի արժեքի, ապա այդ դաշտի դինամիկ ցանկը կստանա 0 արժեքը (թվերի տեսակի լռելյայն արժեքը):
Եթե ​​նման իրավիճակում ձեզ անհրաժեշտ է ընտրել այլ տեսակի պարամետր, խորհուրդ է տրվում օգտագործել հարցման լեզվի կառուցվածքը EXPRESS. Օրինակ,
եթե վերը նշված օրինակում դուք պետք է պարամետրին փոխանցեք 100 նիշից ոչ ավելի տող, ապա դուք պետք է փոխարինեք պարամետրի պարզ նշումը բացահայտ տիպի cast արտահայտությամբ.

ԸՆՏՐՈՒԹՅՈՒՆ
ԵՐԲ ՍՈՒՏ Է
ՀԵՏՈ 5
ՀԱԿԱՌԱԿԻՑ
EXPRESS (&Parameter AS String (100))
ՎԵՐՋ

Եթե ​​դինամիկ ցանկի հարցման կամայական տեքստը օգտագործում է պարամետրեր ընտրության դաշտերի արտահայտություններում, դուք պետք է հստակ նշեք պարամետրերի տեսակը, օգտագործելով կառուցվածքը: EXPRESS. Օրինակ՝ փոխարեն &Անոմենկլատուրա AS Nomenclatureօգտագործել
EXPRESS (&Nomenclature AS Directory.Nomenclature) AS Nomenclature. Հակառակ դեպքում որոնման տողի միջոցով որոնումը կարող է աշխատել
սխալ կամ առաջացնել սխալներ:

3. Դինամիկ ցուցակով տվյալների որոնման և քեշավորման մեթոդներ

Ցուցադրման համար տվյալներ ստանալիս դինամիկ ցուցակը օգտագործում է երեք մեթոդներից մեկը.
1. Տվյալների բազայից ընթերցումը կատարվում է կտորներով, որոնց թվով տվյալների տարրերը մի փոքր ավելի շատ են, քան ցուցակի կողմից միաժամանակ ցուցադրվող տողերի թիվը (բայց ոչ պակաս, քան 20): Տվյալները քեշավորված չեն սերվերում:
2. Տվյալների բազայից ընթերցումը կատարվում է 1000 տվյալների տարրերից բաղկացած էջերում: Տվյալները պահվում են սերվերում: Հիերարխիկ տվյալները պահվում են քեշում. յուրաքանչյուր ծնողի համար պահվում է ոչ ավելի, քան 2 էջ տարրեր: Յուրաքանչյուր դինամիկ ցանկում պահվում է ոչ ավելի, քան 20 էջ տարրեր: Քեշավորումը կակտիվացվի հետևյալ աղյուսակների դինամիկ ցանկի միջոցով.
● Ընտրության չափանիշներ;
● Հաշվապահական ռեգիստրի բոլոր աղյուսակները, բացառությամբ հիմնական աղյուսակի և MovementsSubconto աղյուսակի;
● Բոլոր կուտակային ռեգիստրների աղյուսակները, բացառությամբ հիմնական աղյուսակի;
● Տեղեկատվական ռեգիստրի բոլոր աղյուսակները, բացառությամբ հիմնական աղյուսակի.
● Հաշվարկային ռեգիստրի բոլոր աղյուսակները, բացառությամբ հիմնական աղյուսակի.
● Կատարողի կողմից առաջադրանքների վիրտուալ աղյուսակ;
● Առանց բանալիների արտաքին աղբյուրների աղյուսակներ;
● Խորանարդներ արտաքին աղբյուրներից։

3. Տվյալների բազայից ընթերցումը կատարվում է 1000 տարրերից բաղկացած էջերով: Առաջին մասը հավասար է 1 էջի։ Յուրաքանչյուր հաջորդ մասը ավելանում է 1 էջով (երբ հասնում է նախորդ նմուշի վերջը): Որքան մոտ է «դիտակետը» շարժվում դեպի ցուցադրված տվյալների վերջը, այնքան մեծ է նմուշը ընթերցվում տվյալների բազայից՝ ի վերջո դառնալով բոլոր ցուցադրվող տվյալներին: Տվյալները պահվում են սերվերում: Քեշի և դինամիկ ցուցակի մուտքերի առավելագույն քանակը 1,000,000 է:
Կախված նրանից, թե ինչ է ընտրված դինամիկ ցուցակի հիմնական աղյուսակով և ինչ արժեք է վերցնում Dynamic reading հատկությունը, օգտագործվում է տվյալների ընթերցման այս կամ այն ​​մեթոդը.

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



● Որպես Main table հատկության արժեք նշվում է հետևյալ աղյուսակներից մեկը՝ տեղեկատվական ռեգիստրի հիմնական աղյուսակը, կուտակման ռեգիստրը, հաշվապահական ռեգիստրը, հաշվարկային ռեգիստրը, հաշվապահական ռեգիստրի վիրտուալ աղյուսակը MovementsSubconto:

● Դինամիկ ընթերցման հատկություն.
● Տեղադրված է. օգտագործվում է մեթոդ 1 (մեթոդների նկարագրությունը տրված է վերևում):
● Վերականգնել. օգտագործվում է մեթոդ 2 (մեթոդների նկարագրությունը տրված է վերևում):

● Main table հատկությունը պարունակում է ընտրության չափանիշի աղյուսակ կամ առաջադրանքների աղյուսակ ըստ կատարողի (Tasks By Performer):
● Սեղանի տող նույնացնող բանալի. Հղում:

● Main table հատկությունը սահմանում է SliceFirst կամ SliceLast տեղեկատվական ռեգիստրի վիրտուալ աղյուսակը.
● Սեղանի տող նույնացնող բանալի. RecordKey:
● Dynamic reading հատկությունը կիրառելի չէ:
● Օգտագործվում է մեթոդ 2 (մեթոդների նկարագրությունը տրված է վերևում):

● Հիմնական աղյուսակի հատկությունը դրված է վիրտուալ ռեգիստրի աղյուսակներից մեկի վրա, բացառությամբ վերը թվարկվածների.

● Dynamic reading հատկությունը կիրառելի չէ:

● Հիմնական աղյուսակի հատկությունը նշված չէ, օգտագործվում է կամայական հարցում.
● Սեղանի տող նույնականացնող բանալի. Թիվ:
● Dynamic reading հատկությունը կիրառելի չէ:
● Օգտագործվում է մեթոդ 3 (մեթոդների նկարագրությունը տրված է վերևում):

Ցուցադրման համար տվյալները հաճախորդին փոխանցվում են մասերով, որոնց չափը նման է տվյալների ընթերցման 1-ին մեթոդի մասի չափին (նկարագրված է այս բաժնի սկզբում):
Երբ ստեղծում եք ձև, որը պարունակում է դինամիկ ցուցակ, յուրաքանչյուր տեսանելի դինամիկ ցուցակի համար 45 տվյալներ սկզբնապես փոխանցվում են հաճախորդին (եթե ցուցակն ունի ավելի քան 45 տարր): Եթե ​​դինամիկ ցանկը ցուցադրում է ավելի քան 45 տող, ապա կկատարվի լրացուցիչ սերվերի զանգ, երբ բացված ձևը կվերցնի բացակայող տվյալների տարրերը:

4. Դինամիկ ցանկի կարգավորումներ

Հատկությունների ցանկի կարգավորումներ - սեղմելով Open hyperlink-ը, բացվում է ձև՝ դինամիկ ցուցակի ցուցադրումը կարգավորելու համար: Ցուցակի ստեղծումը կատարվում է այնպես, ինչպես տվյալների կազմման համակարգում նմանատիպ գործողությունները:


Բրինձ. 2. Դինամիկ ցուցակի պայմանական ոճավորում

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

ԽՈՐՀՈՒՐԴ.Պետք է հիշել, որ տեսակավորման դաշտերի վատ ընտրությունը (ինչպես նաև տվյալների ընտրությունն ու խմբավորումը) բացասաբար է անդրադառնում դինամիկ նմուշառման արդյունավետության վրա։
Ծրագրի մշակողի տեսանկյունից դինամիկ ցանկի կարգավորումները բաղկացած են մի քանի մասերից, որոնք փոխկապակցված են: Հիմնական հատկությունը, որի միջոցով կարող եք կառավարել դինամիկ ցուցակի կարգավորումները, դա է Linker Settings. Այս օբյեկտը պարունակում է պարամետրերի երեք հավաքածու, որոնք, երբ համակարգը աշխատում է, որոշում են դինամիկ ցանկում կիրառվող վերջնական կարգավորումները.
● Կարգավորումներ – կարգավորումներ, որոնք ստեղծված են Կազմաձևիչի ռեժիմում: Դինամիկ ցուցակի Order հատկությունը արագ մուտք է ապահովում դինամիկ ցուցակի կարգավորումների ստեղծողի Settings.Order հատկությունը, ուստի հետևյալ կառուցվածքները համարժեք են.
List.Order և List.SettingsLinker.Settings.Order;
● User Settings – սրանք կարգավորումներ են, որոնք օգտվողը փոխում է 1C:Enterprise ռեժիմում;
● Հաստատված կարգավորումներ – այս կարգավորումները դրված են ներկառուցված լեզվից: Այս հատկությունը պարունակում է նաև ընտրության արժեքներ, որոնք փոխանցվում են ձևին՝ օգտագործելով դրա պարամետրերը: Ցուցակի դինամիկ հատկությունները Ընտրություն, Ընտրանքներ, պայմանական տեսք ապահովում են արագ մուտք դեպի դինամիկ ցուցակի կարգավորումների ստեղծողի ֆիքսված կարգավորումները: Այլ կերպ ասած, այս զանգերը համարժեք են.
List.Settings Composer.FixedSettings.Selection և List.Selection:
Դինամիկ ցուցակի վերջնական կարգավորումները ստեղծելիս կարգավորումների տարբեր ընտրանքներ համակցվում են հետևյալ կերպ.
● Եթե որևէ տեսակի կարգավորում ամբողջությամբ նշված է որպես հատուկ, ապա ստացված կարգավորումները ներառում են հատուկ կարգավորումները
(List.ComposerSettings.UserSettings): Ավելին, եթե պարամետրերի որևէ տարր նշված է որպես անհասանելի, ապա այդ կարգավորումները կտեղադրվեն List.Settings Composer հատկության արդյունքում ստացված կարգավորումներում: Կարգավորումներ.
● Եթե որևէ տեսակի կարգավորում նշվում է որպես սովորական ոչ ամբողջությամբ, այլ տարր առ տարր, ապա.
● Որպես հատուկ նշված տարրերը կներառվեն List.SettingsComposer.CustomSettings հատկության արդյունքում ստացված կարգավորումներում:
● Որպես անհասանելի նշված տարրերը կներառվեն List.SettingsComposer.Settings հատկության արդյունքում ստացված կարգավորումներում:
● Հաստատուն կարգավորումները (List.SettingsComposer.FixedSettings) ավելացվում են ստացված կարգավորումներին «ինչպես կա»: Միևնույն ժամանակ, անընդունելի է, որ ֆիքսված և օգտագործողի կարգավորումները պարունակում են նույնանուն կարգավորումներ, օրինակ՝ պայմանի մեջ նույն ձախ արժեքով ընտրություն։

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


Բրինձ. 3. Վերահսկել ընդգրկումը օգտվողի կարգավորումներում

Պատուհանի ներքևում գտնվող վանդակը (տես նկ. 3) պատասխանատու է կարգավորումների ամբողջ տեսակը (նորմալ կամ արագ) տեղադրելու համար: Այս հատկությունը հասանելի է ընտրության, պատվիրման, խմբավորման և պայմանականացման համար: Եթե ​​կարգավորումները նշված են «Արագ ընտրության» խմբագրման ռեժիմով, ապա դինամիկ ցուցակը ցուցադրող ձևի աղյուսակի «User Settings Group» հատկությունում դուք պետք է նշեք ձևի դատարկ խումբ, որտեղ տարրերը կապված են օգտվողի արագ կարգավորումների հետ: դինամիկ ցուցակը կգտնվի: Եթե ​​խումբը նշված չէ, օգտվողի արագ կարգավորումները չեն ցուցադրվի ձևի վրա: Հնարավոր է նաև բացահայտորեն կանչել մաքսային կարգավորումների ստեղծումը՝ օգտագործելով ներկառուցված լեզուն՝ օգտագործելով դինամիկ ցուցակի ընդլայնման CreateCustomSettingsFormItems() մեթոդը:
Հնարավոր է նաև ընտրել՝ օգտատիրոջ կարգավորումներում տեղադրե՞լ որոշակի կարգավորումների տարրեր: Այս հատկությունը հասանելի է ընտրության և պայմանական դիզայնի տարրերի համար (տես Նկար 3):

Եթե ​​դինամիկ ցուցակը բացելիս պետք է բեռնել որևէ հատուկ կարգավորում, դա կարելի է անել երկու եղանակով.
● Օգտագործելով դինամիկ ցանկի ձևի պարամետրը UserSettings: Այս պարամետրում պարունակվող տվյալները կտեղադրվեն օգտագործողի դինամիկ ցանկի կարգավորումներում:
● Օգտագործելով դինամիկ ցուցակի ձևի parameterUserSettingsKey: Եթե ​​ձևը բացելիս նշեք այս պարամետրը, ապա նշված բանալիով պարամետրերի պահեստում տեղադրված օգտվողի կարգավորումները կբեռնվեն դինամիկ ցանկում, որը ձևի հիմնական հատկանիշն է:

5. Որոնել դինամիկ ցանկում

Ձևաթղթում տեղադրված դինամիկ ցուցակը հնարավորություն է տալիս ինտերակտիվորեն որոնել ցուցադրված տվյալները: Որոնումը կարող է իրականացվել հետևյալ գործիքների միջոցով՝ որոնման տող, որոնման երկխոսություն, ընթացիկ արժեքի որոնում, որոնման պատմության օգտագործում և ժամկետի կարգավորում (փաստաթղթերը ցուցադրող դինամիկ ցուցակների համար): Որոնման արդյունքը գրառումների սահմանափակ հավաքածու է
դինամիկ ցուցակ (տվյալների համար, որոնք հասանելի են տվյալ օգտատիրոջը), որոնք համապատասխանում են որոնման չափանիշներին:
Դինամիկ ցուցակի որոնման հնարավորությունները վերահսկելու համար կառավարվող ձևի վրա կան երեք աղյուսակի հատկություններ, որոնք ցուցադրում են դինամիկ ցուցակը.
● Որոնման տողի դիրք – սահմանում է որոնման տողի դիրքը: Կարող է վերցնել հետևյալ արժեքները՝ Auto, Command Bar, None, Top, Bottom:


Բրինձ. 4. Որոնել տողը դինամիկ ցանկում

Եթե ​​այս հատկության արժեքը սահմանված է Command Panel, ապա որոնման տողը կցուցադրվի ձևի հրամանի վահանակում (եթե դինամիկ ցուցակը ձևի հիմնական հատկանիշն է) կամ դինամիկ ցուցակի հետ կապված հրամանների վահանակում: Հրամանի տողում տեղադրված որոնման տողը միշտ սեղմված է հրամանի տողի աջ եզրին (որոնման տողի աջ կողմում գտնվող կոճակների հետ միասին):
Եթե ​​հատկությունը դրված է No, ապա որոնման տողը չի լինի ձևի վրա, և երբ սկսեք մուտքագրել որոնման տողը, կբացվի երկխոսություն:
Եթե ​​հատկությունը դրված է Վերևում, որոնման տողը կտեղակայվի ցուցակի հրամանների տողի և դինամիկ ցուցակը ցուցադրող աղյուսակի միջև: Եթե ​​հատկությունը դրված է Bottom-ի վրա, ապա որոնման տողը կտեղադրվի դինամիկ ցուցակը ցուցադրող աղյուսակից անմիջապես հետո:


● Եթե Համատեղելիության ռեժիմ հատկությունը դրված է «Մի օգտագործիր» կամ ավելի հին է, քան 8.3.4 տարբերակը, արժեքը Command Panel է:
Գնացեք որոնման տող հետևյալ կերպ.
● Սեղմելով ստեղների համակցությունը Ctrl+F;
● Մկնիկ;
● Երբ սկսում եք մուտքագրել դինամիկ ցուցակում (հաշվի առնելով դինամիկ ցուցակի SearchOnTyping հատկության արժեքը):
● View State Position – նկարագրում է, թե որտեղ է ցուցադրվելու դիտման վիճակը. ինչ դաշտեր են որոնվել և ինչ արժեքներ
որոնված է յուրաքանչյուր ոլորտում: Կարող է վերցնել հետևյալ արժեքները՝ Auto, None, Top, Bottom


Բրինձ. 5. Որոնման վիճակը դինամիկ ցանկում

Եթե ​​հատկությունը սահմանված է No, ապա տեսքի վիճակը չի լինի ձևաթղթում: Արդյունքում հնարավոր կլինի որոշել՝ որոնումն ավարտվե՞լ է, թե՞ ոչ միայն Չեղարկել որոնումը կոճակի առկայությամբ։
Եթե ​​հատկությունը դրված է Վերևում, ապա դիտման վիճակը կտեղակայվի ցուցակի հրամանների տողի և դինամիկ ցուցակը ցուցադրող աղյուսակի միջև: Եթե ​​հատկությունը դրված է Bottom-ի վրա, ապա դիտման վիճակը կտեղադրվի դինամիկ ցանկը ցուցադրող աղյուսակից անմիջապես հետո:
Եթե ​​ձևը ստեղծվել է 1C:Enterprise 8.3.4 և ավելի վաղ տարբերակում, հատկությունը սահմանվում է No. Եթե ​​ձևը ստեղծվել է 1C:Enterprise 8.3.5 և ավելի հին տարբերակում, հատկությունը սահմանվում է Ավտոմատ: Գույքի իրական արժեքը այս դեպքում կորոշվի հետևյալ կերպ.
● Եթե Համատեղելիության ռեժիմ հատկությունը դրված է 8.3.4 տարբերակի (և ավելի ցածր) – արժեքը No;
● Եթե Համատեղելիության ռեժիմ հատկությունը դրված է «Չօգտագործել» կամ ավելի հին, քան 8.3.4 տարբերակը – արժեքը Վերև;
● Search Control Position – Որոշում է, թե որտեղ կհայտնվի որոնման կառավարման կոճակը: Կոճակը բացում է մենյու, որը պարունակում է հետևյալ տեղեկությունները. հրամաններ Գտնել ըստ ընթացիկ արժեքի, Ընդլայնված որոնում, Չեղարկել որոնումը, Սահմանել ժամկետը (փաստաթղթերի և ամսագրերի ցուցակների համար) և որոնման հարցումների պատմությունը (վերջին 5 հարցումները): Գույքը կարող է ընդունել հետևյալ արժեքները՝ Auto, None, Command panel:


Բրինձ. 6. Որոնման կառավարում դինամիկ ցուցակում

Եթե ​​հատկությունը դրված է No, ապա որոնման կառավարման կոճակը չի լինի ձևի վրա (սակայն հրամանները հասանելի կլինեն «Ավելին» ցանկի միջոցով: Command Bar-ի հատկության արժեքը հրամանի տողի վրա տեղադրում է կոճակ, որը կապված է դինամիկ ցուցակ ցուցադրող աղյուսակի հետ:
Եթե ​​ձևը ստեղծվել է 1C:Enterprise 8.3.4 և ավելի վաղ տարբերակում, հատկությունը սահմանվում է No. Եթե ​​ձևը ստեղծվել է 1C:Enterprise 8.3.5 և ավելի հին տարբերակում, հատկությունը սահմանվում է Ավտոմատ: Գույքի իրական արժեքը այս դեպքում կորոշվի հետևյալ կերպ.
● Եթե Համատեղելիության ռեժիմ հատկությունը դրված է 8.3.4 տարբերակի (և ավելի ցածր) – արժեքը No;
● Եթե Համատեղելիության ռեժիմ հատկությունը դրված է «Մի օգտագործիր» կամ ավելի հին է, քան 8.3.4 տարբերակը, արժեքը Command Panel է.
Եթե ​​ձևաթղթում կան մի քանի հրամանների վահանակներ, որոնց համար հրամանների աղբյուրը կառավարվող ձևի մեկ աղյուսակն է (ցուցադրում է դինամիկ ցուցակի տվյալները), ապա որոնման տողը և որոնման կառավարման կոճակը կտեղակայվեն միայն մեկ հրամանի վահանակում.
● Կամ հենց դինամիկ ցուցակի հրամանների տողում (եթե միացված է ավտոմատ լրացումը)
● Կամ մնացած հրամանների վահանակներից որևէ մեկում:

Դիտարկենք դինամիկ ցանկում որոնման օգտագործման առանձնահատկությունները.
● Որոնումը օգտագործման համար հարմար դարձնելու համար (ներառյալ կատարողականի առումով), դուք պետք է միացնեք ամբողջական տեքստի որոնումը բոլոր կազմաձևման օբյեկտների համար, որոնք կարող են օգտագործվել որպես դինամիկ ցուցակի հիմնական աղյուսակ: Նաև ամբողջական տեքստի որոնումը պետք է ներառի կազմաձևման օբյեկտների բոլոր մանրամասները, որոնք կարող են ցուցադրվել դինամիկ ցանկում և որոնց համար կարող է պահանջվել որոնում:
Եթե ​​օբյեկտը բացառվի ամբողջական տեքստի որոնումից, ապա որոնման մեխանիզմը կաշխատի, բայց նման որոնման կատարումը չափազանց ցածր կլինի: Խորհուրդ չի տրվում օգտագործել որոնումը այն օբյեկտների վրա, որոնք ինդեքսավորված չեն ամբողջական տեքստի որոնման միջոցով:
● Հավելվածի լուծումը պետք է ունենա սովորական առաջադրանք, որը պարբերաբար թարմացնում է ամբողջական տեքստի որոնման ինդեքսը:

● Որոնումը չի իրականացվում դինամիկ ցուցակի (և կազմաձևման օբյեկտի) բոլոր սյունակներում, այլ միայն այն սյունակներում, որոնք ցուցադրված են աղյուսակում:
● Դինամիկ ցանկում որոնումն ըստ տեղեկանքի տեսակների դաշտերի՝ կամայական ներկայացմամբ կատարվում է ըստ դաշտերի, որոնք օգտագործվում են
ներկայացուցչության ձևավորում (տես այստեղ): View-ում ներառված դաշտերը ստացվում են՝ հաշվի առնելով համապատասխան օբյեկտի ViewFieldGettingProcessing() մշակիչը։
● Նշված հիմնական աղյուսակով դինամիկ ցուցակների համար հիմնական աղյուսակում օգտագործվում է ամբողջական տեքստի որոնում: Հիմնական աղյուսակի բոլոր չինդեքսավորված հղումները կավելացվեն ամբողջական տեքստային որոնման արդյունքներին: Հիմնական աղյուսակի ամբողջական տեքստի որոնման արդյունքը օգտագործվում է որպես հիմնական դաշտերի հիման վրա ընտրություն: Ամբողջական տեքստի որոնումն իրականացվում է նաև այլ աղյուսակներից ցանկում ցուցադրված դաշտերում (եթե դաշտը և կազմաձևման օբյեկտը օգտագործում են ամբողջական տեքստային որոնում): Առանց ամբողջական տեքստի որոնումը միացնելու, տվյալները կարող են լինել
հայտնաբերվել է, բայց որոնումն ինքնին շատ դանդաղ է լինելու:
Եթե ​​ամբողջական տեքստի որոնում կատարելիս սխալ է տեղի ունենում, որոնումը կկատարվի առանց ամբողջական տեքստի որոնումը կիրառելու:
Օրինակ, դա կարող է տեղի ունենալ, երբ որոնում եք մեկ տառ և մեծ քանակությամբ տողեր տեղեկատվական բազայում, որոնք սկսվում են այս տառով:
● Եթե Դինամիկ ցուցակի հիմնական աղյուսակի դաշտի համար օգտագործվում է Equals համեմատության տեսակով ընտրություն, ապա ամբողջական տեքստային որոնում կատարելիս այս աղյուսակի որոնման հարցումին կավելացվի ընտրության արժեք:
● Որոնման տողը բաժանված է բառերի: Այս բաժանումը կատարվում է հետևյալ կանոնների համաձայն.
● Գիծը կոտրված է՝ օգտագործելով բացատ և ներդիրի նիշերը որպես սահմանազատիչներ:
● Այնուհետև ստացված յուրաքանչյուր հատված մշակվում է.
● Եթե հատվածը ամսաթվի ներկայացում է (ժամով կամ առանց ժամանակի)՝ հիմնված ընթացիկ նստաշրջանի տեղակայման վրա, ապա բառը հատվածն է:
● Հակառակ դեպքում, հատվածն ավելի է բաժանվում՝ օգտագործելով «,.-/\» նիշերը որպես սահմանազատիչներ: Այս դեպքում տողի յուրաքանչյուր բեկոր ընդունվում է որպես բառ։

● Յուրաքանչյուր բառի համար ձևավորվում է պայմանների իր շարքը, որոնք միավորվում են «OR-ով»: Պայմանների այս փաթեթը ստեղծվում է, եթե աղյուսակում տվյալ բառի ամբողջական տեքստի որոնումը, որից ստացվել է այս դաշտը, վերադարձրել է առնվազն մեկ օբյեկտ, կամ ամբողջական տեքստային որոնում չի օգտագործվել այս դաշտի համար: Պայմանները ձևավորվում են հետևյալ կերպ.
● String տիպի դաշտի համար պայմանն է FieldName LIKE %Word%:
● Number տիպի դաշտի համար պայմանն ունի FieldName=Value ձևը, որտեղ Value-ը բառ է, որը փոխարկվում է Number տեսակի: Եթե ​​գիպսը հնարավոր չէ կատարել, դաշտի որոնումը չի կատարվի:
● Բառը դիտվում է որպես ենթատող՝ ընթացիկ նստաշրջանի համար սահմանված լռելյայն բուլյան ներկայացման մեջ: Եթե ​​որոնման բառը գտնվել է դիտման մեջ, ապա այն որոնում է այն արժեքը, որը համապատասխանում է այն տեսքին, որում գտնվել է բառը: Այս դեպքում որոնումը չի օգտագործում դիտումներ, որոնք նշված են «Format form» տարրի հատկության միջոցով:
● Date տիպի դաշտի համար պայմանը նման է FieldName>=StartofDay(Word) ANDFieldName<=КонецДня(Слово). Если Слово подобно дате, в которой год
նշվում է մեկ կամ երկու նիշով, տարին կկրճատվի մինչև ընթացիկ դարը և այս արժեքը կավելացվի որոնման պայմանին:
● Հղման դաշտերի համար որոնում է կատարվում այն ​​դաշտերում, որոնք օգտագործվում են հղման տեսքը ձևավորելու համար: Այս դաշտերից յուրաքանչյուրում որոնեք
իրականացվում է վերը նկարագրված կանոնների համաձայն: Որոնումը չի օգտագործում դաշտերը, որոնք օգտագործվում են հատուկ տվյալների ներկայացում ձևավորելու համար:
Յուրաքանչյուր բառի պայմանների փաթեթը համակցված է «ԵՎ»:
● Առաջատար զրոներով արժեքների համար կարող եք որոնել կա՛մ սկզբնական զրոներով տողը, կա՛մ առանց սկզբնական զրոների նշված տողը:
● Եթե դինամիկ ցանկը ցուցադրում է փաստաթղթերի ցանկ կամ փաստաթղթերի պատմություն, ապա ձեր նշած ցուցակի դիտման միջակայքը նույնպես ցուցադրվում է ցանկալի դինամիկ ցանկի դիտման կարգավիճակը ցուցադրելու համար նախատեսված ձևի տարածքում:
● Որոնումն ըստ ընթացիկ արժեքի հրամանը հասանելի չէ, եթե դինամիկ ցուցակի հիմնական աղյուսակը ընտրության չափանիշն է:
● Գտնված լարային բեկորները ընդգծվում են, երբ ցուցադրվում են աղյուսակում:
● Մեկ սյունակի համար աջակցվում է միայն մեկ որոնման տող: Արդեն որոնվող սյունակի համար նոր որոնման հարցում ավելացնելիս որոնման արտահայտությունը կփոխարինվի, այլ ոչ թե երկու որոնման հարցումները կավելացվեն միասին:
● Եթե ձևը չունի ձևի տարրի հավելում ձևի Որոնման տողերի ցուցադրում, որը կապված է աղյուսակի հետ (ձևի տարրի ավելացման աղբյուր հատկություն), որը ցուցադրում է դինամիկ ցուցակ, ապա սեղմելով Ctrl+F ստեղնաշարի համակցությունը կբացվի որոնման երկխոսությունը:


Բրինձ. 7. Որոնման երկխոսություն

Եթե ​​ձևը պարունակում է ձևի տարրի հավելում «Որոնման տողերի ցուցադրում» ձևի հետ կապված աղյուսակի հետ (ձևի տարրի ավելացում Աղբյուր հատկություն), որը ցուցադրում է դինամիկ ցուցակ, ապա որոնման երկխոսությունը բացելու համար դուք պետք է օգտագործեք Ընդլայնված որոնման հրամանը:
● Որոնման երկխոսությունն օգտագործելիս նկատի ունեցեք հետևյալ կետերը.
● Ստեղնաշարի դյուրանցման միջոցով որոնման երկխոսության բացումը հանգեցնում է նրան, որ ընթացիկ բջիջի արժեքը կհայտնվի «Ի՞նչ որոնել» տողում, և «Ինչպես որոնել» անջատիչի արժեքը սահմանվում է ըստ ճշգրիտ համընկնումի:

● Բացելով որոնման երկխոսությունը՝ ուղղակիորեն սկսելով մուտքագրել որոնման տողը դինամիկ ցանկում, հանգեցնում է նրան, որ «Ինչպես որոնել» անջատիչի արժեքը սահմանվում է ըստ տողի մասի արժեքին, և մուտքագրված տեքստն ավարտվում է «Ինչ» բաժնում: որոնման դաշտում:

6. Դինամիկ ցուցակով ցուցադրվող տվյալների ստացում

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

Schema = Elements.List.GetExecutableDataCompositionSchema();
Կարգավորումներ = Items.List.GetExecutableDataCompositionSettings();
LayoutLinker = newDataCompositionLayoutLinker();
LayoutLayout = LayoutComposer.Execute(Scheme, Settings);
CompositionProcessor = newDataCompositionProcessor;
LayoutProcessor.Initialize(LayoutLayout);
OutputProcessor = New OutputProcessorDataCompositionResultInTabularDocument;
ReturnOutputProcessor.Output(CompositionProcessor);

Արժեքների հավաքածու (աղյուսակ կամ արժեքների ցուցակ) տվյալների մուտքագրումը կատարվում է նույն կերպ:
Այս եղանակով դինամիկ ցուցակի տվյալներ ստանալն ունի մի շարք առանձնահատկություններ, որոնք պետք է հաշվի առնել կիրառական լուծումներ մշակելիս.
● Հետևյալ աղյուսակի ձևավորումը չի ապահովվում.
● Գծերի փոփոխվող գույներ;
● Վերնագրի նկար;
● Նկուղի նկար;
● Ստորագրի ֆոնի գույնը;
● Ստորագրի տեքստի գույնը;
● Ստորագրի տառատեսակ;
● Հորիզոնական դիրք նկուղում;
● Գաղտնաբառի ռեժիմ:
● Կառավարվող ձևի համար նշված պայմանական տեսքը չի ապահովվում.
● Հիերարխիկ աղյուսակը աճման կարգով պատվիրելիս ըստ Link տիպի դաշտի, դատարկ հղում պարունակող գրառումները միշտ տեղադրվում են առաջին տեղում:

Կազմաձևերի վերջնական մշակման գործընթացում յուրաքանչյուր 1C ծրագրավորող հանդիպում է դինամիկ ցուցակների:
Դինամիկ ցուցակը ինտերֆեյսի օբյեկտ է, որն օգտագործվում է տվյալների բազայի օբյեկտների կամ ոչ օբյեկտային տվյալների տարբեր ցուցակներ ցուցադրելու համար՝ ռեգիստրի գրառումներ:
Օրինակ, դինամիկ ցուցակն օգտագործվում է տարրերի ցանկը ցուցադրելու համար.

Դինամիկ ցուցակի հնարավորությունները ցուցադրելու համար եկեք ստեղծենք արտաքին մշակում և ավելացնենք հիմնական ձևը։ Եկեք նոր հատկանիշ ավելացնենք «Դինամիկ ցուցակ» տեսակի ձևին: Եկեք գնանք նրա հատկությունների մեջ և տեսնենք, թե ինչ կա այնտեղ:
Մեզ հետաքրքրում է «Պատվերով հարցում» գույքը։ Այն միացնելը մեզ ցույց կտա դինամիկ ցուցակի բոլոր հնարավորությունները: Մենք կկարողանանք հարցում գրել՝ օգտագործելով 1C: Enterprise համակարգի հարցումների լեզվի գրեթե բոլոր հնարավորությունները: Ստուգեք վանդակը և սեղմեք «Բացել» հղմանը.

Լռելյայնորեն, մեր ցուցակը կցուցադրի ապրանքների ցանկ բոլոր պահեստների ընդհանուր մնացորդով: Նման ցուցակն իրականացնելու համար ավելացրեք հետևյալ հարցումը.


Որպես հիմնական աղյուսակ, մենք կընտրենք «Directory.Nomenclature», սա մեզ թույլ կտա աշխատել դինամիկ ցուցակի հետ, ինչպես նոմենկլատուրայի ցանկի դեպքում՝ ավելացնել, փոխել, նշել գրացուցակի տարրերը ջնջման համար: Բացի այդ, հիմնական աղյուսակի տեղադրումը հնարավորություն է տալիս դինամիկ կերպով կարդալ տվյալները. սա նշանակում է, որ ընտրությունը կկատարվի մասերով, ըստ անհրաժեշտության:
Հաջորդը մենք պետք է ստեղծենք ձևի տարրեր մեր ցուցակի համար.

Եթե ​​փորձենք մեր մշակումն իրականացնել այս ձևով, մենք սխալ կստանանք.


Այն վերացնելու համար հարկավոր է արժեք սահմանել «Ժամանակաշրջան» պարամետրի համար: Դա անելու համար կարող եք օգտագործել դինամիկ ցանկի «Պարամետրեր» հավաքածուի «SetParameterValue» մեթոդը: Մեթոդը ենթադրում է երկու պարամետր.
. «Պարամետր» - Տեսակ՝ String; DataCompositionParameter. Պարամետրի կամ տվյալների կազմի պարամետրի անվանումը, որի արժեքը ցանկանում եք սահմանել.
. «Արժեք» - Տեսակ՝ կամայական: Սահմանելու արժեքը:
Կարող է կանչվել ձևի «OnCreateOnServer» կարգավորիչում.

Հարց ունե՞ք կամ խորհրդատուի օգնության կարիք ունեք:


Մենք օգտվողին հնարավորություն կտանք փոխել մնացորդների ստացման ժամկետը։ Դա անելու համար ավելացրեք հատկանիշը և դրա հետ կապված «Ամսաթիվ» ձևի տարրը.


«Date» ձևի տարրի «OnChange» մշակիչում մենք կանվանենք «SetParameterValue» մեթոդը՝ որպես արժեք փոխանցելով հարակից հատկանիշի արժեքը: Նմանապես, եկեք փոխենք ձևի «Սերվերում ստեղծելիս» ընթացակարգը: Քանի որ մեթոդը հասանելի է հաճախորդի վրա, կարիք չկա զանգահարել սերվերին.


Այժմ, երբ ամսաթիվը փոխվի, մնացորդները ավտոմատ կերպով կթարմացվեն.




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


Անջատիչի արժեքը փոխելիս մենք կփոխենք հարցման տեքստը: Դա անելու համար մենք կօգտագործենք «On Change» իրադարձությունների մշակիչը «Display Quantity On Receipt» ձևի տարրի համար: Մենք պետք է փոխենք դինամիկ ցուցակի «QueryText» հատկությունը՝ կախված հատկանիշի արժեքից։ Քանի որ այս հատկությունը հասանելի չէ հաճախորդի վրա, սերվերի ընթացակարգը պետք է կանչվի.


Կատարված փոփոխությունների արդյունքը.



Վերջապես իրականացավ յուրաքանչյուր յոթամյա երեխայի երազանքը. Որքա՞ն հաճախ են 7.7 ծրագրի օգտատերերը խնդրել իրերի նորմալ ընտրություն: Որպեսզի կարողանաք տեսնել մնացորդները, գները և սահմանել զտիչներ: Պետք էր տարբեր հնարքներ հորինել, այդ թվում՝ արտաքին բաղադրիչներ գրել։ 1C 8.2-ում հայտնվեցին դինամիկ ցուցակներ: Ես առաջարկում եմ հաշվի առնել, թե ինչ է դա և ինչ կարող են մեզ տալ 1C 8.3-ում:

Եկեք որպես հիմք վերցնենք 1C-ի որոշակի թեստային կոնֆիգուրացիա՝ «Ձեռնարկությունների հաշվառում 3.0»: Մենք հիմա ընտրություն չենք անի, պարզապես կավելացնենք ընտրության մեկ այլ ձև «Անոմենկլատուրա» գրացուցակում և այն ժամանակավորապես կդարձնենք հիմնականը.

Ստեղծվելուց հետո համակարգը լռելյայն ձևին կավելացնի «Դինամիկ ցուցակ» տիպի աղյուսակի դաշտ:

Եկեք գնանք նրա հատկությունների մեջ և տեսնենք, թե ինչ կա այնտեղ:

Առաջին հերթին մեզ հետաքրքրում է «Պատվերով հարցում» վանդակը: Սա մեզ կբացահայտի դինամիկ ցուցակի բոլոր առավելությունները: Մենք հնարավորություն կունենանք գրել մեր սեփական հարցումը՝ պարամետրերով։ Ստուգեք վանդակը և սեղմեք «Բացել» հղմանը.

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

Ստացեք 267 վիդեո դասեր 1C-ում անվճար.

Ինչպես տեսնում եք, կա զանգի կոճակ « » և վանդակ, որը հնարավորություն է տալիս դինամիկ կերպով փոխել ցանկի բովանդակությունը: Այսինքն, երբ մեկ այլ օգտվող ինչ-որ բան փոխի գրացուցակում, այն նույնպես կփոխվի մեր ցուցակում: Բացի այդ, կա «Կարգավորումներ» ներդիրը, բայց մենք դրան կանդրադառնանք ավելի ուշ:

Հատուկ հարցում դինամիկ ցանկում

Նախ, եկեք ստեղծենք մեզ անհրաժեշտ հարցումը մնացորդներով և գներով: Դրա նման:

«Կարգավորումներ» ներդիր

Եվ հիմա լավագույն մասը: Գնացեք «Կարգավորումներ» ներդիր: Եվ մենք անմիջապես տեսնում ենք, որ առաջին ներդիրում մենք կարող ենք ցանկացած ընտրություն կատարել հարցումի ցանկացած դաշտի համար.

Հարցման պարամետրերի ծրագրային կարգավորում դինամիկ ցուցակում 1C 8.3

Մի մոռացեք, որ հարցումում ունենք երկու պարամետր՝ «Ժամանակաշրջան» և «Գնի տեսակ»: Մենք պետք է դրանք փոխանցենք հարցումին, հակառակ դեպքում սխալ կլինի:

Եկեք այս պարամետրերը գրենք ձևի պարամետրերում, և ձևի մոդուլում ավելացնենք հետևյալ տողերը.

&OnServerProcedureWhenCreatingOnServer (ձախողում, ստանդարտ մշակում) ցուցակ: Ընտրանքներ. SetParameterValue(«Ժամանակաշրջան», Պարամետրեր. Ամսաթիվ); Ցուցակ. Ընտրանքներ. SetParameterValue ("PriceType", Parameters.PriceType) ; Ընթացակարգի ավարտը