Գործառույթների 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. Կարծիքներից պետք է խուսափել, որ լրացուցիչ բացատրություններ չեն տալիս ոչ արտահանման կարգի (գործառույթի) գործունեության վերաբերյալ:
Օրինակ, սխալ.
Այս օրինակներում մեկնաբանությունները ավելորդ են, քանի որ ակնհայտ է այն ընթացակարգերի անուններից, որոնք սրանք իրադարձությունների բեռնատարներ են: Եվ իրենց նկարագրությամբ եւ պարամետրերի հանձնարարությամբ կարելի է գտնել սինթաքսի օգնականի մեջ:
// գործառույթը վերադառնում է փաստաթղթի համաձայն Կլանազենության գործառույթ (տվյալներ)Այս մեկնաբանությունը լրացուցիչ տեղեկատվություն չի տալիս գործառույթի մասին:
5. Մեկնաբանությունը տեղադրվում է ընթացակարգի (գործառույթների) հայտարարությունից առաջ եւ ունի հետեւյալ ձեւը:
5.1. Բաժին "Նկարագրություն"Պարունակում է կարգի (գործառույթների) նպատակակետի եւ (կամ) սկզբունքների բանավոր համառոտ նկարագրություն: Դա կարող է լինել ընթացակարգերի միակ բաժինը `առանց պարամետրերի:
5.2. Բաժին «Պարամետրեր»Նկարագրում է ընթացակարգի պարամետրերը (գործառույթներ): Եթե \u200b\u200bդրանք չլինեն, բաժինը բաց է թողնվել: Նախորդում է լարային «պարամետրերը» , ապա նոր տողից կան բոլոր պարամետրերի նկարագրություններ.
5.2.1. Պարամետրերի նկարագրությունը Այն սկսվում է նոր տողից, ապա պարամետրերի անվանումը, ապա `կեղծիք եւ տեսակը (*), որին հաջորդում է պարամետրերի տեքստը:
Օրինակ:
Նաեւ յուրաքանչյուր պարամետրի համար կարող եք նշել պարամետրերի տեսակների մեկ կամ մի քանի լրացուցիչ նկարագրություններ: Յուրաքանչյուր լրացուցիչ նկարագրություն սկսվում է նոր տողով, ապա պարտադիր հիպհեն, այնուհետեւ պարամետրերի տեսակների ցանկը (*), որին հաջորդում է կեղծիք եւ տեքստի նկարագրություն:
Օրինակ:
5.3. Բաժին «Վերադարձի արժեք»Նկարագրում է գործառույթի գործառույթի տեսակը եւ բովանդակությունը: Ընթացակարգերի համար այս բաժինը բացակայում է: Նախորդում է «Վերադարձի արժեքը» լարային: Ապա տեսակների տեսակների (*) տեսակների նոր տողից, ապա `կեղծիք եւ տեքստ:
Օրինակ:
5.4. Բաժին «Օրինակ» Պարունակում է ընթացակարգի կամ գործառույթի օգտագործման օրինակ: Պատրաստված է լարային «օրինակ»: Հաջորդը, նոր տողից օգտագործելու օրինակ:
(*) Նշում: «Որակի ցուցակի» ներքո նշանակում է ստորակետերով առանձնացված տեսակների անունները: Տեսակի անվանումը կարող է լինել պարզ (մեկ բառով) կամ կոմպոզիտային `մի կետով առանձնացված երկու բառով:
Օրինակ: Աստառ դնել, Կառուցվածք, Danderher Shipdersettries.
1C պլատֆորմի վրա մշակելիս. Ձեռնարկություն 8.3 Մեկնաբանություն տեքստը ցուցադրվում է նաեւ համատեքստային արագ ընթացակարգերում, գործառույթներում եւ դրանց պարամետրերով: Մանրամասների համար տես «Համատեքստային ակնարկը մոդուլի տեքստեր մուտք գործելու համար» գլուխը 26 «Զարգացման գործիքներ» «Զարգացման գործիքներ»:
Գործառույթի նկարագրության օրինակ `մեկ պարամետրով.
// որոշում է դերասանական դերերի առկայությունը ներկայիս օգտագործողին, // եւ նաեւ վարչական իրավունքների առկայությունը: // // պարամետրեր. // Tamers - լարային անուններ, որոնց առկայությունը ստուգվում է, բաժանվում է ստորակետերով: // // Վերադարձի արժեքը. // Boolevo - Tr շմարտություն, եթե փոխանցվող դերերից առնվազն մեկը հասանելի է ներկայիս օգտագործողին, // Նա ունի վարչական իրավունքներ: // // Օրինակ: // Եթե rolly մուտք ("Լրացուցիչ զանգվածներ, ուղարկեք"), ապա ... // գործառույթի գլանափայտի մուտք (նամյա անուններ) արտահանումԸնթացակարգի նկարագրության օրինակ `առանց պարամետրերի.
// Իրադարձության գործընթացում կատարվում է փաստաթղթի թարմացումը. // - Ծառայության սեղանի մաս մաքրելը, եթե պայմանագիրը նշված է հանձնաժողովի գործակալի հետ. // - Աղյուսակում գործարքների պահանջվող միավորի լրացումը ստուգելը: Ապրանքների մասեր; // - համաժամացումը «ենթակայության» հաշիվ-ապրանքագրով. // - ապրանքների եւ վերադարձի սեղանի մասերում գնորդի պահեստի լրացումը. // - Սեղանի մասի չօգտագործված գծերի ջնջում. // - օբյեկտի մոդուլի փոփոխական լրացնելը: // վերափոխման կարգը () վերջնական հսկողության համար6. Եթե ցանկանում եք մեկնաբանել այն ընթացակարգը կամ գործառույթը, որն օգտագործվում է կազմման հրահանգով, դուք նախ պետք է մեկնաբանություն տեղադրեք, ապա -
Կազմման հրահանգ: Օրինակ:
Մեկնաբանության տեղադրման այս ոճը թույլ է տալիս նախ ուշադրություն դարձնել գործառույթի եւ հավաքագրման հրահանգի սահմանմանը, այնուհետեւ `մեկնաբանության վրա, որ կարող են բավականաչափ մեծ թվով տողեր զբաղեցնել:
7. Ընթացակարգերի եւ գործառույթների ծածկագիրը պետք է միմյանցից առանձնացվի մոդուլի տեքստում `դատարկ տողերով:
Ավտոմատ կարգով մեկնաբանություններ ընթացակարգերի կամ գործառույթների կազմման հրահանգներով
Ինքնաբերաբար մեկնաբանություններ կազմակերպել ընթացակարգերի կամ գործառույթների հետ կազմման հրահանգներով, կարող եք օգտագործել կիրառական մշակումը Formatimedizedizzpilation.epf., Դրա համար ձեզ հարկավոր է.
- Վերաբեռնված կազմաձեւման մոդուլներ (կազմաձեւման ընտրացանկի հրամանը -\u003e բեռնաթափման կազմաձեւման ֆայլեր ...)
- Բաց վերամշակման ռեժիմ 1C: Ձեռնարկություն եւ նշեք այն գրացուցակը, որում մոդուլները բեռնաթափվել են `հաջորդը, կտտացրեք« ձեւաչափի »կոճակը
- Ներբեռնեք մոդուլները կազմաձեւման մեջ (կազմաձեւման ընտրացանկի հրամանը -\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համառոտ դեպքում հնարավոր է ամփոփել հետեւյալը.
- Հղումով փոխանցումը թույլ է տալիս «քրտնել» օբյեկտը բոլորովին այլ օբյեկտով
- Փոխանցումը չի թույլատրվում «քրտնել» օբյեկտը, բայց օբյեկտի ներքին վիճակի փոփոխությունները տեսանելի կլինեն, քանի որ Աշխատեք օբյեկտի նույն օրինակով
- Երբ սերվերի զանգը, աշխատանքը գալիս է օբյեկտի տարբեր առարկաներով, քանի որ Կատարվել է խորը պատճենումը: Հիմնաբառ Արժեք Անջատեք սերվերի օրինակին հաճախորդին վերադառնալը եւ օբյեկտի ներքին վիճակը փոխելը, սերվերի վրա չի հանգեցնի հաճախորդի նմանատիպ փոփոխության:
Հուսով եմ, որ կանոնների այս պարզ ցուցակը ձեզ թույլ կտա ավելի հեշտացնել լուծել վեճերը գործընկերների հետ `« Մինչեւ «հղում» պարամետրերի փոխանցման մասին