1C 8.3 և 8.2 ծրագրավորման լեզուների կառուցվածքը «Բանալին» և «Արժեք» զույգերի մի շարք է: «Բանալին» դաշտն ունի տողի տեսակ, մինչդեռ «Արժեք» դաշտը կարող է ընդունել ցանկացած տվյալների տեսակ: Սովորաբար օգտագործվում է ընթացակարգերի միջև մի շարք պարամետրեր պահելու և փոխանցելու համար:
1C ծրագրավորման լեզվով կառուցվածքը կարող է ստեղծվել երկու եղանակով՝ օգտագործելով «Նոր» կառուցվածքը:
Առաջին ճանապարհը.
Կառուցվածք = նոր Կառուցվածք;
Structure.Insert ("ParameterKey1", "ParameterValues No.1");
Structure.Insert(«ParameterKey2», «ParameterValues No.2»);
Երկրորդ ճանապարհը.
Կառուցվածք = Նոր կառուցվածք ("ParameterKey1, ParameterKey2", "ParameterValues No.1", "ParameterValues No.2");
Երկու մեթոդներն էլ կստեղծեն կառուցվածք, որը կարելի է տեսնել վրիպազերծման սքրինշոթում.
Ստացեք 267 վիդեո դասեր 1C-ում անվճար.
Փոփոխություն
Դուք կարող եք ավելացնել կամ փոխել կառուցվածք՝ օգտագործելով «Insert()» մեթոդը:
Structure.Insert("KeyName", KeyValue);
Եթե Ձեզ անհրաժեշտ է փոխել հին բանալու արժեքը, մուտքագրեք նրա անունը: Եթե ավելացնեք նոր բանալի, ապա կառուցվածքի բոլոր ստեղների համեմատ եզակի անուն ավելացրեք:
Հավաքածուի տարրը ջնջելու համար անհրաժեշտ է օգտագործել «Ջնջել» մեթոդը, որտեղ դուք փոխանցում եք բանալի անունը.
Structure.Delete("KeyName");
Հնարավոր է նաև մաքրել հավաքածուի բոլոր օբյեկտները.
Structure.Clear();
Շրջելով կառուցվածքը
Կառուցվածքի հավաքածուի միջոցով կրկնելու համար դուք պետք է օգտագործեք «Կառուցվածքի հանգույցից յուրաքանչյուր հիմնական արժեքի համար» կառուցվածքը:
Օրինակ:
Կառուցվածքային հանգույցից յուրաքանչյուր հիմնական իմաստի համար
…… //գործընթացը, օրինակ, փոխել արժեքները
End Cycle;
Յուրաքանչյուր ցիկլում կտեսնեք, որ մեզ հասանելի են հետևյալ դաշտերը.
1C հարթակը տվյալների բազաների հետ աշխատելու բարձր մակարդակի գործիք է: Ընդհանուր առմամբ, մշակողը կարիք չունի մտածելու, թե ինչ և ինչպես է կատարվում DBMS-ի կողմից, քանի որ հարթակն ինքն է որոշում, թե քանի աղյուսակ պետք է ստեղծի և ինչ դաշտեր կլինեն դրանց ներսում։
Այնուամենայնիվ, խոշոր նախագծերում անհրաժեշտ է ուղղակիորեն աշխատել տվյալների հետ, օրինակ՝ վերլուծել տեղեկատվությունը երրորդ կողմի գործիքների միջոցով կամ, ինչպես իմ դեպքում, տվյալների բազան արտաքին հավելվածների հետ ինտեգրել: Նման իրավիճակում անհրաժեշտ է պատկերացում ունենալ, թե ֆիզիկական աղյուսակների որ դաշտերում փնտրենք մեզ անհրաժեշտ տեղեկատվությունը:
Ներկառուցված գործառույթը նախատեսված է հենց նման դեպքի համար GetDatabaseStorageStructure(), որը վերադարձնում է բոլոր անհրաժեշտ տվյալները արժեքների աղյուսակի տեսքով։ Ավելին, այս աղյուսակի որոշ մանրամասներ (դաշտեր և ինդեքսներ) ինքնին արժեքների աղյուսակներ են:
Մի կողմից, հարմար է ունենալ բոլոր տվյալները մեկ կառուցվածքում, բայց, մյուս կողմից, լրացուցիչ դժվարություններ են առաջանում այս աղյուսակը հաճախորդին փոխանցելիս (Load() մեթոդը, ցավոք, չի բեռնում տեղադրված աղյուսակները): Դրա պատճառով դուք պետք է շրջանցեք աղյուսակի բոլոր գրառումները մի օղակով, ինչը հանգեցնում է մեծ ծավալների ավելի դանդաղ աշխատանքի:
Դրա պատճառով ավելի լավ տարբերակ կլինի մետատվյալների օբյեկտների անունները ֆունկցիա փոխանցել՝ վերադարձվող տվյալների քանակը նվազեցնելու համար: Այնուամենայնիվ, ոչ բոլոր DBMS աղյուսակները կապված են կազմաձևման մետատվյալների հետ, ուստի ես թողեցի ամբողջական ցանկը դիտելու տարբերակը:
Մշակման գործառույթ
Երբ մետատվյալների ծառի տարրն ակտիվացված է, աղյուսակների, դաշտերի և ինդեքսների ցանկը կլրացվի: Երբ դուք կրկնակի սեղմում եք ծառի արմատի վրա, ցուցադրվում են բոլոր աղյուսակները, ներառյալ սպասարկման աղյուսակները (խորհուրդ չի տրվում, քանի որ որոնվող տվյալների ծավալը մեծանում է):
Աղյուսակային մասերում աշխատում են ստանդարտ որոնման և ցուցակի հրամանները:
Տարբերությունները գոյություն ունեցող իրականացումներից
Կան մի քանի նմանատիպ հրապարակումներ, օրինակ, և. Սակայն նրանց անհարմարությունը մետատվյալների ծառի բացակայությունն է, ինչը դժվարացնում է նավիգացիան։ Որոնումն իրականացվում է նաև տվյալների բազայի աղյուսակների և դաշտերի անուններով, և ոչ հակառակը։
Ֆունկցիոնալությունը ամենամոտն է հեղինակի հրապարակմանը (): Ի հակադրություն, այս մշակումը պարունակում է ամենաամբողջական ծառը մետատվյալներ (փոխանակման պլաններ, հաստատուններ, փաստաթղթերի տեղեկամատյաններ և այլն): Բացի այդտվյալների կառուցվածքը ներկայացված է ավելի հստակ.
UPD-2018-01-06 (v1.3):Շտկվել է սխալ, որը տեղի է ունեցել 8.3.7 և ավելի բարձր համատեղելիության ռեժիմում (պլատֆորմի վարքագիծը փոխվել է):
UPD-2012-08-17 (v1.2):Կատարվել է կարկատ՝ սովորական առաջադրանքների ճիշտ մշակման համար, ֆիքսվել է հաշվարկային տեսակների պլանների ցուցադրման կետը և ֆիքսվել է կոնֆիգուրացիայի արմատում կառուցվածքի տեսակը փոխելու պահվածքը:
P.S. Որոշ գործատուներ աշխատանքի ընդունելիս հարցնում են ռեգիստրների ֆիզիկական և վիրտուալ աղյուսակների քանակի մասին: Հաճելի կլիներ իմանալ այս հարցերի պատասխանները, հատկապես որ սա 1C: Մասնագիտական մակարդակն է: Եթե ցանկանում եք ոչ միայն սովորել այս պատասխանը, այլև «զգալ» այս աղյուսակները, ապա այս բուժումը ձեզ համար է:
Տվյալները, որոնք որոշում են 1C:Enterprise-ի հիման վրա համակարգի գործունեության տրամաբանությունը, պատկանում են տեղեկատվական բազային: Տեղեկատվական բազան պահվում է տվյալների բազայում մի շարք աղյուսակների տեսքով, որի համար 1C:Enterprise 8.1-ը կարող է օգտագործել տվյալների բազայի կառավարման չորս համակարգերից մեկը (DBMS).
* Ներկառուցված 1C:Enterprise 8.1-ում (infobase-ի ֆայլային տարբերակը): Այս դեպքում տեղեկատվական բազայի բոլոր տվյալները պահվում են 1Cv8.1CD անունով ֆայլում: Այս ֆայլն ունի երկուական ձևաչափ և ըստ էության տվյալների բազա է 1C:Enterprise 8.1-ում ներկառուցված DBMS-ի համար:
*Microsoft SQL Server(տեղեկատվական բազայի հաճախորդ-սերվերի տարբերակը): Բոլոր տեղեկատվական բազայի տվյալները պահվում են Microsoft SQL Server տվյալների բազայում:
* PostgreSQL(տեղեկատվական բազայի հաճախորդ-սերվերի տարբերակը): Տեղեկատվական բազայի բոլոր տվյալները պահվում են PostgreSQL տվյալների բազայում:
* IBM DB2(տեղեկատվական բազայի հաճախորդ-սերվերի տարբերակը): Տեղեկատվական բազայի բոլոր տվյալները պահվում են IBM DB2 տվյալների բազայում:
Տվյալների բազայի օբյեկտների (աղյուսակներ, դաշտեր, ինդեքսներ և այլն) մակարդակում տեղեկատվական բազայի և՛ ֆայլի, և՛ հաճախորդ-սերվերի տարբերակները ունեն նմանատիպ ձևաչափ (տարբերվում են փոքր մանրամասներով): Այս ձևաչափի մասին որոշ տեղեկություններ ներկայացված են ստորև:
Ամբողջ տեղեկատվական բազան տվյալների բազայում ներկայացված է աղյուսակների տեսքով: Դրանց թվում կան մի քանի աղյուսակներ, որոնք անպայմանորեն առկա են ցանկացած տեղեկատվական բազայի տեսանկյունից.
* Կազմաձև- տեղեկատվական բազայի հիմնական կոնֆիգուրացիա: Այս կոնֆիգուրացիան համապատասխանում է իրական տվյալների կառուցվածքին և օգտագործվում է 1C:Enterprise 8.0-ի կողմից Enterprise ռեժիմում:
*ConfigSave- Կոնֆիգուրատորի կողմից խմբագրված կոնֆիգուրացիա: ConfigSave-ի կոնֆիգուրացիան վերագրվում է Config-ին, երբ կատարում է «Տվյալների բազայի կոնֆիգուրացիայի թարմացում» կոնֆիգուրատորում, և հակառակը՝ «Կազմաձևում - Տվյալների բազայի կազմաձևում - Վերադարձ դեպի DB կոնֆիգուրացիա» գործողությունը Կազմաձևիչում կատարելիս:
* Ֆայլերպարունակում է ծառայության տեղեկատվություն, օրինակ՝ կազմաձևման պահոցի հետ աշխատելու մասին:
* Պարամետրերպարունակում է տեղեկատվական բազայի պարամետրեր: Նրանց մեջ:
=>
Տեղեկատվական բազայի օգտագործողների ցուցակ.
=>
Ազգային տեղեկատվական բազայի կարգավորումներ.
=>
Համապատասխան աղյուսակ մետատվյալների օբյեկտների և տվյալների բազայի օբյեկտների միջև (աղյուսակներ, դաշտեր, ինդեքսներ):
=>
Որոշ այլ տեղեկություններ.
*_YearOffset- տվյալների բազայում ամսաթվի փոխհատուցում: Այս աղյուսակը ստեղծվում է միայն Microsoft SQL Server-ի օգտագործման ժամանակ:
* DBSchemaպարունակում է տեղեկատվություն 1C:Enterprise տվյալների բազայի կառուցվածքի մասին և սահմանում է տվյալների բազայի այլ օբյեկտներ, որոնք օգտագործվում են այս տեղեկատվական բազայի կողմից:
Երբ 1C:Enterprise-ը սկսվում է, այն ստուգում է տեղեկատվական բազայում թվարկված աղյուսակների առկայությունը, և եթե դրանցից որևէ մեկը բացակայում է, ցուցադրվում է «ինֆոբազը ոչնչացվել է» հաղորդագրությունը: Բոլոր թվարկված աղյուսակների բացակայությունը նշանակում է, որ տեղեկատվական բազան դատարկ է։ Վերջին դեպքում այս աղյուսակները կստեղծվեն:
Տվյալների բազայի այլ աղյուսակների ցանկը և կառուցվածքը որոշվում է կոնկրետ կոնֆիգուրացիայով, այն է՝ դրանում սահմանված մետատվյալների օբյեկտներով: Յուրաքանչյուր աղյուսակի անվանումը բաղկացած է տառերի նախածանցից, որին հաջորդում է մի թիվը: Նախածանցը որոշում է աղյուսակի նպատակը, իսկ համարը թույլ է տալիս տարբերակել նույն նպատակի աղյուսակները, որոնք պատկանում են տարբեր մետատվյալների օբյեկտներին: Եթե IBM DB2-ն օգտագործվում է որպես DBMS, ապա նկարագրված կառուցվածքը ոչ թե աղյուսակների անուններն են, այլ դրանց անունները:
Եթե առնվազն մեկ փոխանակման պլան սահմանված է «Բաշխված տեղեկատվական բազա» դրոշի հավաքածուով կազմաձևում, ապա կստեղծվեն հետևյալ աղյուսակները.
*_ConfigChangeRec- կազմաձևման օբյեկտների փոփոխությունները գրանցելու աղյուսակ:
* _ConfigChangeRec_ExtProps- կազմաձևման օբյեկտների փոփոխված արտաքին հատկությունների ֆայլերի անվանումների աղյուսակ:
Ստորև թվարկված են մետատվյալների տարբեր օբյեկտներ, որոնց կարող է համապատասխանել յուրաքանչյուր աղյուսակ:
* հաստատուններ
=>
_Consts-ը պարունակում է կոնֆիգուրացիայի մեջ սահմանված բոլոր հաստատունների ընթացիկ արժեքները:
=>
_ConstsChangeRec - մշտական փոփոխություններ գրանցելու աղյուսակ: Ստեղծվում է, եթե առնվազն մեկ հաստատուն ներգրավված է առնվազն մեկ փոխանակման պլանում:
* Կիսվեք պլաններով
=>
_Հանգույց
=>
_Հանգույց
* Գրացուցակներ
=>
_Հղում
=>
_Հղում
=>
_ReferenceChangeRec
* Փաստաթղթեր
=>
_Փաստաթուղթ
=>
_Փաստաթուղթ
=>
_DocumentChangeRec
* Փաստաթղթերի հաջորդականությունը
=>
_Հաջորդականություն
=>
_SequenceBoundary
=>
_SequenceChangeRec
* Փաստաթղթերի տեղեկամատյաններ:
=>
_DocumentJournal
* Փոխանցումներ
=>
_Թվ
* Պլաններ բնութագրերի տեսակների համար
=>
_Chrc
=>
_Chrc
=>
_ChrcChangeRec
* Հաշվային գծապատկերներ
=>
_Հաշվ
=>
_Հաշվ
=>
_Հաշվ
=>
_AccChangeRec
* Հաշվարկների տեսակների պլաններ
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKind
=>
_CalcKindDN
=>
_CalcKind
=>
_CalcKindChangeRec
* Տեղեկատվական գրանցամատյաններ
=>
_InfoReg
=>
_InfoRegChangeRec
* Կուտակման ռեգիստրներ
=>
_AccumReg
=>
_AccumRegTotals
=>
_ AccumRegTurnovers
=>
_AccumRegChangeRec
=>
_AccumRegOptions - կուտակային ռեգիստրների հանրագումարները պահելու պարամետրերի աղյուսակ, մեկը բոլոր կուտակային ռեգիստրների համար:
* Հաշվապահական գրանցամատյաններ
=>
_AccntReg
=>
_AccntRegED
=>
_AccTtl0
=>
_AccTtl
=>
_AccTtlC
=>
_AccntRegChangeRec
=>
_AccntRegOptions - ընդհանուր գումարները պահելու պարամետրերի աղյուսակ, մեկը բոլոր հաշվապահական գրանցամատյանների համար:
* Հաշվարկային գրանցամատյաններ
=>
_CalcReg
=>
_CalcRegActPer
=>
_CalcRegChangeRec
=>
_CalcRegRecalc
=>
_CalcRegRecalcChangeRec
* Բիզնես գործընթացներ
=>
_BPRoutePoint
=>
_Բիզնես գործընթաց
=>
_Բիզնես գործընթաց
=>
_BusinessProcessChangeRec
* Առաջադրանքներ
=>
_Առաջադրանք
=>
_Առաջադրանք
=>
_TaskChangeRec
IBM DB2-ն օգտագործելիս աղյուսակի այլանունների նախածանցները չեն սկսվում ընդգծված նշանով, փոխարենը սկսվում են տառային մասով:
Այս աղյուսակների թիվը կախված է կոնֆիգուրացիայի ֆունկցիոնալությունից և կարող է բավականին մեծ լինել: Նորմալ ռեժիմում 1C:Enterprise-ը չի ստուգում դրանց առկայությունը, ինչպես նաև դրանցում պարունակվող տվյալների ամբողջականությունն ու հետևողականությունը։ Հետևաբար, կարևոր է, որ տվյալների բազան, որտեղ տեղակայված է 1C:Enterprise 8.1 տեղեկատվական բազան, պաշտպանված լինի չարտոնված մուտքից, և դրա փոփոխումը կատարվի միայն 1C:Enterprise գործիքների միջոցով: Ստուգելու համար դուք պետք է օգտագործեք «Կառավարում - փորձարկում և ուղղում» գործառույթը, որը ներկառուցված է կոնֆիգուրատորում:
Կարևոր է նաև, որ տեղեկատվական բազան պահող տվյալների բազայի կրկնօրինակումն ու վերականգնումը կատարվի միայն որպես ամբողջություն: Այդ նպատակով խորհուրդ է տրվում օգտագործել տվյալների բազայի կրկնօրինակման գործիքներ՝ ներկառուցված օգտագործվող DBMS-ում: Ինֆաբազայի ֆայլային տարբերակի կրկնօրինակում կարելի է կատարել՝ պատճենելով 1Cv8.1CD ֆայլը:
Կազմաձևիչն ունի հատուկ գործառույթ՝ Administration - Upload infobase: Նրա օգնությամբ դուք կարող եք վերբեռնել նշված ֆայլ (վերբեռնել ֆայլ) ինֆոբազի հետ կապված բոլոր տվյալները, և ոչ ավելին։ Հակադարձ գործառույթը «Բեռնել տեղեկատվական բազան» թույլ է տալիս բեռնված ֆայլի բոլոր տվյալները բեռնել ընթացիկ տեղեկատվական բազա՝ առկա տվյալների փոխարեն: Այս գործառույթները կարող են օգտագործվել նաև տեղեկատվական բազայի տվյալների կրկնօրինակման համար ինչպես ֆայլի, այնպես էլ հաճախորդ-սերվերի տարբերակներում: