Որն է 1C ընթացակարգի պաշտոնական պարամետրերը: Ընթացակարգերի եւ գործառույթների նկարագրությունը

Գործառույթների 1C եւ ընթացակարգեր 1C- ում նույն լեզուների համար նույն կերպ. Գործառույթը անվանված ենթաբազմություն է `ծրագրային օրենսգրքի այլ վայրերից զանգահարելու համար:

Կամայական մոդուլում գործառույթներ հայտարարելու կարգը (այսինքն, դա հնարավոր է ընթացակարգի տեքստում, որը գտնվում է մոդուլի հենց սկզբում `օգտագործելու ընթացակարգերը, որոնց տեքստը տեղակայված կլինի այս մոդուլում): Նմանապես, 1C գործառույթները կարող են արտահանվել:

«Ելք» 1C գործառույթի եւ ընթացակարգերի կատարումից, օգտագործեք «վերադարձը» հրամանը: Գործառույթը (ի տարբերություն ընթացակարգի. «Վերադարձնում է» հաշվարկների արդյունքը, այսինքն, անհրաժեշտ է գրել «վերադարձի արժեքը»: 1C գործառույթները մուտքագրված չեն, ապա նրանք կարող են վերադարձնել տարբեր տեսակի արժեքը, կախված պարամետրերից կամ պայմաններից:

Գործառույթը տարբերվում է հաշվարկների արդյունքը վերադարձնելու ունակության կարգից, օրինակ.

Գործառույթի գործառույթ 1 (պարամետր)
Վերադարձի պարամետր * 2;
Վերջնական

Variable1 \u003d գործառույթ 1 (10);
// Variable1- ը հավասար կլինի 20-ի

1C գործառույթի եւ ընթացակարգերի պարամետրերը հղումներ են այն փոփոխականների հետ, որոնք կան զանգի վայրում: «Հղում» նշանակում է «Ներքին» գործառույթի 1C պարամետրերի արժեքը փոխելիս այն կփոխվի եւ «դրսում»: Այնպես որ, դա տեղի չի ունենում. Պարամետրը փոխանցվում է AC- ի արժեքով: Այնուամենայնիվ, սա չի գործում օբյեկտի արժեքների (ցուցակների, սեղանների, տվյալների բազայի օբյեկտների) հետ, դրանք դեռ փոխանցվելու են հղումով:

Պարամետրը ընթացակարգի / գործառույթի փոխանցում փոխանցելիս այն փոխանցվում է «հղումով»: Սա նշանակում է, որ այն փոխելը ընթացակարգի մեջ, դուք փոխում եք դրա արժեքը 1C գործառույթի ավարտից հետո մուտք ունենալիս: Այսպիսով, նախորդ օրինակը կարող է գրվել այսպես.

Ընթացակարգի կարգը 1 (պարամետր)
Պարամետր \u003d պարամետր * 2;
Extrudresses

Variable1 \u003d 10;
Ընթացակարգ (փոփոխական 1);
Զեկույց (variable1);
// արդյունքը կլինի 20-ը

Անցնել ընթացակարգի, փոփոխականի արժեքը, եւ ոչ թե դրա.

Ընթացակարգի կարգը 1 (արժեքի պարամետր)
// Գործողություններ ..
Extrudresses

Օբեկտների (գրացուցակների, փաստաթղթերի) հետ աշխատելիս պետք է հիշել, որ 1C- ի 1C- ի (ընթացակարգի ընթացակարգի ներսում կարող է իրականացվել:
Եթե \u200b\u200b1C / ընթացակարգի գործառույթը 1C Բազմաթիվ պարամետրեր, ապա ավելորդը կարող է բաց թողնել (մատնանշելով ստորակետը, եթե պարամետրը բացակայում է), այն կփոխանցվի կամ անորոշ է.

Գործառույթի գործառույթ 1 (պարամետր 1, պարամետր 2, պարամետր 3 \u003d "լարային արժեք")
// անել ինչ որ բան
Վերջնական

// գործառույթ զանգահարել առանց որոշ պարամետրերի
// պարամետրը հավասար կլինի անորոշ
// պարամետրը հավասար կլինի «լարային արժեքին»
Գործառույթ 1 (10);

// գործառույթ զանգահարել առանց երկրորդ պարամետրերի
Գործառույթ 1 (10, "արժեք");

Ինչպես ավելի վաղ նշվեց, 1C ընթացակարգերը օգտագործվում են որպես օգտագործողից բխող միջոցառումներ `ձեւով (բացումը, փակումը, սեղմիչ կոճակները եւ այլն) կամ այլն: Ձեւաթղթերի հնարավոր տեսակների կամ դրա տարրերի հնարավոր տեսակները կարելի է տեսնել հատկություններում `կտտացնելով ձեւի համապատասխան տարրը (եւ պահելով գույքի պատուհանը ներքեւ): Օբեկտների մոդուլում բեռնափոխադրողների տեսակները կարելի է տեսնել Configurator- ում վահանակի վրա բացվող ցուցակի միջոցով, որտեղ ցուցադրվում է նույնիսկ անորոշ եւ արդեն որոշակի իրադարձությունների ցուցակը: Տարբեր իրադարձություններում, 1C բեռնափոխադրող ավելացնելիս տարբեր պարամետրեր, ինքնաբերաբար սահմանում է պարամետրերի ցուցակ:

Ներկառուցված 1C. Ձեռնարկությունները աջակցում են պարամետրերը ընթացակարգերին եւ գործառույթներին փոխանցելու երկու եղանակ. Պարամետրերի փոխանցում հղումներով եւ փոխանցելով պարամետրերը ըստ արժեքի:

Ըստ լռելյայն, ներկառուցված լեզվով 1C. Ձեռնարկություններ 8 Պարամետրերը փոխանցում են ընթացակարգերին եւ գործառույթներին `հղումով: Սա նշանակում է, որ ընթացակարգի կամ գործառույթի ներսում պաշտոնական պարամետրը փոխելը կանդրադառնա իրական պարամետրերի արժեքի վրա, երբ կոչվում է ընթացակարգը կամ գործառույթը:


Ընթացակարգի կարգը 1 (պաշտոնական պարամետր 1)

Ֆորմալպամետր 1 \u003d 2 * 3;

Extrudresses

Factualparameter \u003d 10;
Ընթացակարգ 1 (փաստացի պարամետր);

// կցուցադրվի 6-ի արժեքը `ֆորմալ փոփոխությունը
// Պարամետրը ընթացակարգի ներսում ազդեցության վրա ազդեց

// զանգի կարգը. Լռելյայն, պարամետրերը փոխանցվում են
// հղում:

Տեղափոխեք պարամետրերը ըստ արժեքի

Երբ կոչվում է կարգի կամ գործառույթի պարամետրը, ընթացակարգի կամ գործառույթի մեջ ձեւական պարամետրի արժեքի փոփոխությունը չի ազդում ընթացակարգի կամ գործառույթի մասին: Նկատի ունեցեք, որ պարամետրը պետք է փոխանցվի ըստ արժեքի, իրականացվում է արժեքի հիմնաբառի միջոցով:

Օրինակ:


Ընթացակարգի կարգը 2 (պաշտոնական պարամետր արժեք)

Ֆորմալպամետր 1 \u003d 2 * 3;

Extrudresses

Factualparameter \u003d 10;
Ընթացակարգ (իրական պարամետր);

// 10-րդ արժեքը կցուցադրվի `ֆորմալ փոփոխությունը
// Պարամետրը ընթացակարգի ներսում չի ազդել փոփոխության վրա
// իրական պարամետրերի արժեքները փոխանցվում են, երբ
// Զանգահարման կարգը. Պարամետրը փոխանցվում է ըստ արժեքի:
Հաշվետվություն (փաստացի պարամետր);

Տարբեր տեսակի տվյալների փոփոխականներ ըստ արժեքի

Տարբեր տեսակի տվյալների փոփոխականների փոխանցումն ըստ արժեքի ունի իր բնութագրերը: Դրանք բաղկացած են պաշտոնական պարամետրերի համատեքստի մեթոդների եւ հատկությունների հետ աշխատելու մեջ, իրական պարամետրերի վիճակը, որը փոխանցվում է ընթացակարգը կամ գործառույթը:

Դիտարկենք որպես օրինակ այն իրավիճակը, երբ արժեքով փոխանցվող ընթացակարգի պարամետրը արժեքի աղյուսակն է: Նշված ընթացակարգի ներսում ստեղծվում է գործընթացի ինսուլտի () արժեքների աղյուսակի նոր դեպք, որն ավելացնում է երեք տող: Սա չի ազդում TK- ի արժեքների աղյուսակի կարգավիճակի վրա, որը փոխանցվում է որպես իրական պարամետր, որպեսզի կարգը փոխանցվի ().


Ընթացակարգի մշակում (նշանի աղյուսակ)


Ներդիրի արժեքը \u003d նոր սեղաններ;

// երկու խոսնակ ավելացնել արժեքների աղյուսակի
Ներդիրի կոմպոզիցիա: Tablocks. Addly ("COLUMN1");
Ներդիրի կոմպլեկտներ: Addly («Column2»);


Համար n \u003d 1-ից 3 ցիկլի համար
Novstok \u003d ներդիրի արժեքը: Հուլում ();
Novstok.colonka1 \u003d "սյուն";
Novstok.colonka2 \u003d p;
Էսթիսլիկ;

Extrudresses

// ստեղծել արժեքների նոր աղյուսակ
Tk \u003d նոր սեղաններ;



// ավելացնել արժեքների աղյուսակի մի քանի շարքեր
Համար n \u003d 1-10 ցիկլի համար
Novstok \u003d tz: Հասկանալի ();

Novstok.colonka3 \u003d p;
Էսթիսլիկ;

// կհանվի 10-ը


Բուժված (TK);

// հետ կանչի 10: ընթացակարգի ընթացակարգի ներսում
// ֆորմալ պարամետրը պահպանեց արժեքների նոր աղյուսակը

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


// նշվում է, որ սեղանի արժեքի պարամետրի փոխանցումը իրականացվում է ըստ արժեքի
Ընթացակարգի փլուզումը. Սեղանի ազդանշան)

// մենք կունենանք արժեքների աղյուսակի հետ Column Columns1- ում եւ սյունակում
Ներդիրի ամփոփում («COLUMM1», «COLUMM3»);

Extrudresses

// ստեղծել արժեքների նոր աղյուսակ
Tk \u003d նոր սեղաններ;

// Ավելացնել երեք սյունակ արժեքների աղյուսակ
Tk.colonki. Addly («COLUMN1»);
Tk.colonki. Addly ("Column2");
Tk.colonki. Addly ("Column3");

// ավելացնել արժեքների աղյուսակի մի քանի շարքեր
Համար n \u003d 1-10 ցիկլի համար
Novstok \u003d tz: Հասկանալի ();
Novstok.colonka1 \u003d "column1";
Novstok.colonka2 \u003d "Column2";
Novstok.colonka3 \u003d p;
Էսթիսլիկ;

// կհանվի 10-ը
Հաղորդել («TK- ում տարրերի քանակը շրջվել է.« + Tz. Նիդ. ());

// պահպանել ընթացակարգը `ներկայացնելով իրական պարամետրը TK- ի միջոցով
Տեղակայումը (TK);

// այժմ արժեքների աղյուսակ է նվազագույնի հասցված. Արժեքը կցուցադրվի 1
Զեկույց («TK- ի տարրերի քանակը ծալելուց հետո.« + TK. Ազգություն ());

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

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

1. Ընթացակարգերի եւ գործառույթների նկարագրությունը առաջարկվում է կատարել նրանց մեկնաբանության տեսքով: Ընթացակարգերի եւ գործառույթների որոշակի հատվածների մեկնաբանությունների անհրաժեշտությունը պետք է որոշվի մշակմամբ `հիմնված կոդի հատուկ բաժնի բարդության եւ ոչ ստանդարտի վրա:

2. Պարտադիր մեկնաբանությունը պահանջում է ծրագրային ապահովման միջերեսում ընդգրկված մոդուլների ընթացակարգեր եւ գործառույթներ. Նման ընթացակարգերը եւ գործառույթները նախատեսված են այլ գործառնական ենթահամակարգերում (կամ այլ ծրագրերում), որպեսզի նրանք կարողանան լավ լինել փաստագրված:

Տես նաեւ:Արտահանման ընթացակարգերի եւ գործառույթների օգտագործման սահմանափակումներ եւ արտահանման ընթացակարգերի եւ գործառույթների օգտագործումը մոդուլների ձեւերով

4. Կարծիքներից պետք է խուսափել, որ լրացուցիչ բացատրություններ չեն տալիս ոչ արտահանման կարգի (գործառույթի) գործունեության վերաբերյալ:
Օրինակ, սխալ.

// ընթացակարգ - պրոցեսորի միջոցառում «Արդյունք» ձեւեր // & slit վերամշակման կարգը () // վերամշակման կարգը «հաշվարկեց» // եւ ճիշտ ընթացակարգ հաշվարկ () // խմբագրման սալիկի տանիքի «պարտադրումը» միջոցառման վերամշակման կարգը // & clause խմբագրման կարգը Entertolkovdiahepression (տարր)

Այս օրինակներում մեկնաբանությունները ավելորդ են, քանի որ ակնհայտ է այն ընթացակարգերի անուններից, որոնք սրանք իրադարձությունների բեռնատարներ են: Եվ իրենց նկարագրությամբ եւ պարամետրերի հանձնարարությամբ կարելի է գտնել սինթաքսի օգնականի մեջ:

// գործառույթը վերադառնում է փաստաթղթի համաձայն Կլանազենության գործառույթ (տվյալներ)

Այս մեկնաբանությունը լրացուցիչ տեղեկատվություն չի տալիս գործառույթի մասին:

5. Մեկնաբանությունը տեղադրվում է ընթացակարգի (գործառույթների) հայտարարությունից առաջ եւ ունի հետեւյալ ձեւը:

5.1. Բաժին "Նկարագրություն"Պարունակում է կարգի (գործառույթների) նպատակակետի եւ (կամ) սկզբունքների բանավոր համառոտ նկարագրություն: Դա կարող է լինել ընթացակարգերի միակ բաժինը `առանց պարամետրերի:

5.2. Բաժին «Պարամետրեր»Նկարագրում է ընթացակարգի պարամետրերը (գործառույթներ): Եթե \u200b\u200bդրանք չլինեն, բաժինը բաց է թողնվել: Նախորդում է լարային «պարամետրերը» , ապա նոր տողից կան բոլոր պարամետրերի նկարագրություններ.

5.2.1. Պարամետրերի նկարագրությունը Այն սկսվում է նոր տողից, ապա պարամետրերի անվանումը, ապա `կեղծիք եւ տեսակը (*), որին հաջորդում է պարամետրերի տեքստը:
Օրինակ:

// պարամետրեր.

Նաեւ յուրաքանչյուր պարամետրի համար կարող եք նշել պարամետրերի տեսակների մեկ կամ մի քանի լրացուցիչ նկարագրություններ: Յուրաքանչյուր լրացուցիչ նկարագրություն սկսվում է նոր տողով, ապա պարտադիր հիպհեն, այնուհետեւ պարամետրերի տեսակների ցանկը (*), որին հաջորդում է կեղծիք եւ տեքստի նկարագրություն:
Օրինակ:

// պարամետրեր. // Մանրամասներ - String - ստորակետով թվարկված մանրամասների անունները: // Օրինակ, «Կոդ, անուն, ծնող»: // - կառուցվածքը, ֆիքսված կառույցները `որպես հիմնական փոխանցում // կեղծանունային դաշտերը վերադարձված կառուցվածքի համար արդյունքով, // եւ որպես արժեք (ըստ ցանկության), աղյուսակում իրական դաշտի անվանումը: // Եթե արժեքը սահմանված չէ, դաշտի անվանումը վերցված է բանալուց: // - զանգված, ֆիքսված մայրը `առաջարկների առաջարկներ:

5.3. Բաժին «Վերադարձի արժեք»Նկարագրում է գործառույթի գործառույթի տեսակը եւ բովանդակությունը: Ընթացակարգերի համար այս բաժինը բացակայում է: Նախորդում է «Վերադարձի արժեքը» լարային: Ապա տեսակների տեսակների (*) տեսակների նոր տողից, ապա `կեղծիք եւ տեքստ:
Օրինակ:

// Վերադարձի արժեքը. // Boolevo - Tr շմարտություն, եթե փոխանցվող դերերից առնվազն մեկը հասանելի է ներկայիս օգտագործողին,

5.4. Բաժին «Օրինակ» Պարունակում է ընթացակարգի կամ գործառույթի օգտագործման օրինակ: Պատրաստված է լարային «օրինակ»: Հաջորդը, նոր տողից օգտագործելու օրինակ:

(*) Նշում: «Որակի ցուցակի» ներքո նշանակում է ստորակետերով առանձնացված տեսակների անունները: Տեսակի անվանումը կարող է լինել պարզ (մեկ բառով) կամ կոմպոզիտային `մի կետով առանձնացված երկու բառով:
Օրինակ: Աստառ դնել, Կառուցվածք, Danderher Shipdersettries.

1C պլատֆորմի վրա մշակելիս. Ձեռնարկություն 8.3 Մեկնաբանություն տեքստը ցուցադրվում է նաեւ համատեքստային արագ ընթացակարգերում, գործառույթներում եւ դրանց պարամետրերով: Մանրամասների համար տես «Համատեքստային ակնարկը մոդուլի տեքստեր մուտք գործելու համար» գլուխը 26 «Զարգացման գործիքներ» «Զարգացման գործիքներ»:

Գործառույթի նկարագրության օրինակ `մեկ պարամետրով.

// որոշում է դերասանական դերերի առկայությունը ներկայիս օգտագործողին, // եւ նաեւ վարչական իրավունքների առկայությունը: // // պարամետրեր. // Tamers - լարային անուններ, որոնց առկայությունը ստուգվում է, բաժանվում է ստորակետերով: // // Վերադարձի արժեքը. // Boolevo - Tr շմարտություն, եթե փոխանցվող դերերից առնվազն մեկը հասանելի է ներկայիս օգտագործողին, // Նա ունի վարչական իրավունքներ: // // Օրինակ: // Եթե rolly մուտք ("Լրացուցիչ զանգվածներ, ուղարկեք"), ապա ... // գործառույթի գլանափայտի մուտք (նամյա անուններ) արտահանում

Ընթացակարգի նկարագրության օրինակ `առանց պարամետրերի.

// Իրադարձության գործընթացում կատարվում է փաստաթղթի թարմացումը. // - Ծառայության սեղանի մաս մաքրելը, եթե պայմանագիրը նշված է հանձնաժողովի գործակալի հետ. // - Աղյուսակում գործարքների պահանջվող միավորի լրացումը ստուգելը: Ապրանքների մասեր; // - համաժամացումը «ենթակայության» հաշիվ-ապրանքագրով. // - ապրանքների եւ վերադարձի սեղանի մասերում գնորդի պահեստի լրացումը. // - Սեղանի մասի չօգտագործված գծերի ջնջում. // - օբյեկտի մոդուլի փոփոխական լրացնելը: // վերափոխման կարգը () վերջնական հսկողության համար

6. Եթե ցանկանում եք մեկնաբանել այն ընթացակարգը կամ գործառույթը, որն օգտագործվում է կազմման հրահանգով, դուք նախ պետք է մեկնաբանություն տեղադրեք, ապա -
Կազմման հրահանգ: Օրինակ:

// Ընթացակարգ - Միջոցառման ձեռնարկ «Մեկնում» ձեւաթղթեր: // Վերամշակում է ձեւի պարամետրերը եւ լրացնում ձեւի արժեքների մանրամասները: // եւ կատարում է նաեւ հետեւյալ գործողությունները. // ... // & nasserver Պահպանման կարգը (ձախողում, ստանդարտ աշխատանք)

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

7. Ընթացակարգերի եւ գործառույթների ծածկագիրը պետք է միմյանցից առանձնացվի մոդուլի տեքստում `դատարկ տողերով:

Ավտոմատ կարգով մեկնաբանություններ ընթացակարգերի կամ գործառույթների կազմման հրահանգներով

Ինքնաբերաբար մեկնաբանություններ կազմակերպել ընթացակարգերի կամ գործառույթների հետ կազմման հրահանգներով, կարող եք օգտագործել կիրառական մշակումը Formatimedizedizzpilation.epf., Դրա համար ձեզ հարկավոր է.

  1. Վերաբեռնված կազմաձեւման մոդուլներ (կազմաձեւման ընտրացանկի հրամանը -\u003e բեռնաթափման կազմաձեւման ֆայլեր ...)
  2. Բաց վերամշակման ռեժիմ 1C: Ձեռնարկություն եւ նշեք այն գրացուցակը, որում մոդուլները բեռնաթափվել են `հաջորդը, կտտացրեք« ձեւաչափի »կոճակը
  3. Ներբեռնեք մոդուլները կազմաձեւման մեջ (կազմաձեւման ընտրացանկի հրամանը -\u003e Ներբեռնման կազմաձեւման ֆայլեր ...)

Մենք գտնում ենք. Ընթացակարգի հայտարարության եւ նկարագրությունների օրինակ `առանց պարամետրերի, Պարամետրերի ընթացակարգը `գերավճարային ()Սառնարան `1C- ի համար պատառաքաղների օգտագործման համար, թե ինչպես պետք է ընթացակարգեր կատարել 1C- ում, որ գործառույթների կամ ընթացակարգերի անունները պետք է շտկվեն: 1C 77 գործառույթի նկարագրությունը, մեկնաբանություն 1C, 1C Փաստաթղթերի ընթացակարգերում եւ գործառույթներում քանակը, ընթացակարգերը եւ գործառույթները


Ես նախապես ներողություն եմ խնդրում «Փաթոսին» անոտացիայի համար «միավորների տեղաբաշխում», բայց անհրաժեշտ է ինչ-որ կերպ ձեզ մի հոդված տեւել)) իմ կողմից, ես կփորձեմ վերացնել ձեր ակնկալիքները:

Մի խոսքով, թե ինչ է դա

Այս ամենը հայտնի է նաեւ, բայց դեռ սկզբում ես ձեզ կհիշեցնեմ, թե ինչպես կարելի է մեթոդի պարամետրերը փոխանցվել 1C- ում: Դրանք կարող են փոխանցվել «հղման վրա» եւ «իմաստը»: Առաջին դեպքում մենք նույն արժեքը փոխանցում ենք մեթոդին, որքան զանգի կետում, իսկ երկրորդում `դրա պատճենը:

Լռելյայն, 1C փաստարկները փոխանցվում են հղումով, եւ եղանակի ներսում պարամետրի փոփոխությունը կտեսնվի արտաքին մեթոդից: Այստեղ հետագայում հարցը հասկանալը կախված է նրանից, թե կոնկրետ ինչ եք հասկանում «Փոխել պարամետր» բառի ներքո: Այսպիսով, կա վերագնահատում եւ ոչինչ ավելին: Ավելին, հանձնարարությունը կարող է լինել ենթադրյալ, օրինակ, զանգահարելով պլատֆետի պարամետրում ինչ-որ բան վերադարձնելու պլազմի մեթոդ:

Բայց եթե մենք չենք ցանկանում, որ մեր պարամետրը փոխանցվի հղումով, ապա մենք կարող ենք պարամետրից առաջ նշել հիմնաբառը Նշան

C անաչման կարգը (արժեքի պարամետր) պարամետր \u003d 2; Արտահանվող պարամետր \u003d 1; Ստեղծում (պարամետր); Զեկույց (պարամետր); // կամ կամքը կկազմի 1:

Ամեն ինչ աշխատում է որպես խոստացված, փոփոխություն (եւ ավելի ճիշտ ասում են «փոխարինում») պարամետրի արժեքը չի հանգեցնում մեթոդի սահմաններից դուրս արժեքի փոփոխության:

Դե ինչ, ինչ է կատակը:

Հետաքրքիր պահերը սկսվում են, երբ մենք սկսում ենք փոխանցել, քանի որ պարամետրերը պարզունակ տեսակներ չեն (գծեր, համարներ, ամսաթվերը եւ այլն), բայց առարկաներ: Սա այն դեպքում, երբ օբյեկտի «փոքր» եւ «խորը» պատճենը, ինչպես նաեւ ցուցիչները (ոչ C ++ - ի առումով, այնպես էլ որպես վերացական նկարագրիչ (բռնակներ), թռուցվում են:

Հղումով օբյեկտը (օրինակ, սեղանների) փոխանցում, մենք փոխանցում ենք ցուցիչի արժեքի արժեքը (որոշ բռնակ), որը `« Հատկապես »օբյեկտը: Արժեքը փոխանցելիս պլատֆորմը կկազմի այս ցուցիչի պատճենը:

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

Ընթացակարգի բուժում (պարամետր) պարամետր \u003d նոր զանգված; Extrog բջջային աղյուսակ \u003d նոր հատկացում; Բուժում (աղյուսակ); Զեկույց (Tinch (սեղան)); // բեռնավորել զանգված

Եթե, մենք օբյեկտ կդառնանք արժեքով, ապա զանգի պահին մեր սեղանը չի վերանա:

Օբյեկտի բովանդակությունը եւ դրա վիճակը

Երբ արժեքը փոխանցվում է, եւ ամբողջ օբյեկտը պատճենվում է, բայց միայն դրա ցուցիչն է: Օբեկտի օրինակն մնում է նույնը: Կարեւոր չէ, թե ինչպես եք փոխանցում օբյեկտը հղումով կամ արժեքներով `արժեքների արժեքների մաքրումը կհանգեցնի սեղանի մաքրմանը: Այս մաքրումը տեսանելի կլինի ամենուր, քանի որ Օբեկտը մեկ եւ եզակի էր եւ անկախ նրանից, թե ինչպես է այն փոխանցվել մեթոդին:

Ընթացակարգի մշակում (պարամետր) պարամետր: Գործեք (); Extrog բջջային աղյուսակ \u003d նոր հատկացում; Սեղան: Ավելացնել (); Բուժում (աղյուսակ); Զեկույց (աղյուսակ: Համարը ()); // հանել 0-ը:

Մեթոդներին օբյեկտներ փոխանցելիս պլատֆորմը գործում է ցուցիչներով (սովորական, ոչ ուղղակի անալոգներ C ++ - ից): Եթե \u200b\u200bօբյեկտը փոխանցվում է հղումով, ապա 1C վիրտուալ մեքենայի հիշողության բջիջը, որում այս օբյեկտը ստում է, կարող է վերագրվել մեկ այլ օբյեկտի կողմից: Եթե \u200b\u200bօբյեկտը փոխանցվում է արժեքով, ցուցիչը պատճենվում է եւ վերաշարադրվում է օբյեկտը չի հանգեցնում վերագրելու հիշողության բջիջը աղբյուրի օբյեկտի հետ:

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

Եվ միշտ ճիշտ է, բացի ...

Հաճախորդի սերվերի փոխազդեցություն

Պլատֆորմը շատ թափանցիկ է իրականացվում սերվերի զանգերով: Մենք պարզապես կանչում ենք մեթոդը, եւ գլխարկի տակ պլատֆորմը սերիալացնում է (վերածվում է տողի) բոլոր մեթոդի պարամետրերը, փոխանցում է սերվերին, որտեղ նրանք չեն վերադարձնում եւ ապրեք Գնացեք ցանկացած սերվերի:

Ինչպես գիտեք, ոչ բոլոր պլատֆորմի օբյեկտները սերիալիզացված են: Այստեղից է, որ սահմանափակումն աճում է, որ ոչ բոլոր օբյեկտները կարող են փոխանցվել սերվերի մեթոդից հաճախորդից: Եթե \u200b\u200bչիրականացված օբյեկտ եք փոխանցում, պլատֆորմը կսկսի երդվել վատ բառեր:

  • Ծրագրավորողի մտադրությունների բացահայտ հայտարարություն: Նայելով մեթոդի ստորագրությանը, կարող եք հստակ ասել, թե որ պարամետրերն են մուտքագրում, եւ ինչ արդյունք: Այս ծածկագիրը ավելի հեշտ է կարդալ եւ ուղեկցել
  • «ՈՒղեցույց» պարամետրը փոխելու համար, այն երեւում է հաճախորդի զանգի կետում,Հղումով սերվերին փոխանցված arameter, պլատֆորմը, անշուշտ, կվերադառնա հաճախորդ, հոդվածի սկզբում նկարագրված պահվածքը ապահովելու համար: Եթե \u200b\u200bպարամետրը չվերադարձվի, կլինի երթեւեկության գերլարում: Տվյալների փոխանակումը օպտիմալացնելու համար այն պարամետրերը, որոնց արժեքները, որոնց արժեքը մեզ անհրաժեշտ չէ, դուք պետք է նշեք իմաստը:

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

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

& Grind ընթացակարգի խթանում (պարամետր) պարամետր: Առաջարկել (); Extrudresses & Nasserver Ընթացակարգը ծանոթության (արժեքի պարամետր) պարամետր: Առաջարկել (); Extrudresses եւ բողոքարկման կարգի ճանաչում (արժեքի պարամետր) պարամետր: Առաջարկել (); Վերջնական հսկողություն եւ պահանջի կարգի ստուգման ազդանշանային ազդանշանային () ցուցակ 1 \u003d նոր SNAPS; Ցուցակ1. Ավելացնել («Ողջույն»); List2 \u003d ցուցակ 1.Կոպիա (); Ցուցակ 3 \u003d ցուցակ 1.Copy (); // Օբեկտը պատճենվում է ամբողջությամբ, // փոխանցվում է սերվերին, ապա վերադառնում է: // ցուցակը մաքրելը տեսանելի է արագ (ցուցակի 1) փոստային կետում. // Օբեկտը ամբողջությամբ պատճենվում է, // անցնում է սերվերին: Ետ չի վերադարձվում: // ցուցակը մաքրելը տեսանելի չէ Call Cake P կետում (ցուցակ 2); // Պատճեն միայն օբյեկտի ցուցիչ // ցուցակը մաքրելը տեսանելի է ճանաչողության զանգի կետում (ցուցակ 3); Հաշվետվություն (ցուցակ 1. N0ECE ()); Հաշվետվություն (ցուցակ 2. Միավոր ()); Զեկույց (ցուցակ 3. N'TRB ()); Extrudresses

Ամփոփություն

Եթե \u200b\u200bհամառոտ դեպքում հնարավոր է ամփոփել հետեւյալը.

  • Հղումով փոխանցումը թույլ է տալիս «քրտնել» օբյեկտը բոլորովին այլ օբյեկտով
  • Փոխանցումը չի թույլատրվում «քրտնել» օբյեկտը, բայց օբյեկտի ներքին վիճակի փոփոխությունները տեսանելի կլինեն, քանի որ Աշխատեք օբյեկտի նույն օրինակով
  • Երբ սերվերի զանգը, աշխատանքը գալիս է օբյեկտի տարբեր առարկաներով, քանի որ Կատարվել է խորը պատճենումը: Հիմնաբառ Արժեք Անջատեք սերվերի օրինակին հաճախորդին վերադառնալը եւ օբյեկտի ներքին վիճակը փոխելը, սերվերի վրա չի հանգեցնի հաճախորդի նմանատիպ փոփոխության:

Հուսով եմ, որ կանոնների այս պարզ ցուցակը ձեզ թույլ կտա ավելի հեշտացնել լուծել վեճերը գործընկերների հետ `« Մինչեւ «հղում» պարամետրերի փոխանցման մասին