Ավելացրեք տող 1-ին փաստաթղթի աղյուսակային մասում 8.3. Թեժ ստեղներ. ընդհանուր գործողություններ

Նախորդ օրինակի համար կարող եք ավելացնել կոդերի հետևյալ տողերը.

Form Elements.TableField1.AddRow(); էջ = FormElements.TableField1.CurrentRow; p.First = 3; p.Second = «Ալյուր»; p.Քանակ = 350;

Ինչպե՞ս որոշել արժեքների աղյուսակում տողերի քանակը 1s 8-ում:

countRows = table.Quantity(); Հաշվետվություն («Սեղանի արժեքների աղյուսակում տողերի քանակը = « + տողերի քանակը);

Արդյունք:

Աղյուսակի արժեքների աղյուսակում տողերի քանակը = 3

Ինչպե՞ս ջնջել մի շարք արժեքների աղյուսակում 1s 8-ում:

rowTable = աղյուսակ; table.Delete(rowTable);

Ինչպե՞ս փլուզել արժեքների աղյուսակը 1s 8-ում:

Ծալել:

table.Collapse(«Երկրորդ», «Քանակ»);

Կլորացումից հետո մենք ստանում ենք.

Ինչպե՞ս տեսակավորել արժեքների աղյուսակը 1s 8-ում:

Դասավորել ըստ երկրորդ և երրորդ սյունակների.

table.Sort («Երկրորդ, Քանակ»);

Ինչպե՞ս տեղադրել աղյուսակի դաշտը 1c 8-ի գծի վրա:

Երկրորդ տողում.

Form Elements.TableField1.CurrentRow = աղյուսակ;

Տպագրելի ձև 1s 8-ում

Նախ, մենք կազմում ենք դասավորություն (տարածքի անվանումը. ընտրում ենք դասավորության պահանջվող տողերը, հատկություններում, Անուն դաշտում, մուտքագրում ենք տարածքի անունը), այնուհետև այն ցուցադրում ենք աղյուսակի փաստաթղթում.

Ընթացակարգ CommandPanel1Print(Button) փոփոխական td, rs, rs1, դասավորություն, ծածկագիր, անուն, անուն; կոդը = 0; դասավորություն = GetLayout («Ապրանքներ»); header = layout.GetArea ("Header"); header.Parameters.datta = CurrentDate(); pc = layout.GetArea ("Pc"); pc1 = layout.GetArea ("pc1"); td = New TabularDocument; td.Արդյունք (գլխարկ); nomen = Directories.Nomenclature; ընտրություն = nom.SelectHierarchically(); while fetch.Next() հանգույց կոդը = կոդը + 1; եթե sample.ThisGroup = True, ապա pc1.Parameters.code = կոդը; pc1.Parameters.name = selection.Name; td.Արդյունք (rs1); else rs.Parameters.code = կոդը; rs.Parameters.name = selection.Name; td.Withdraw(rs); վերջԵթե; վերջի ցիկլ; etc.ViewOnly = True; td.Show («Տեղեկագիր ««Անոմենկլատուրա»»»); Ընթացակարգի ավարտը

Ծրագրավորման լեզվի հիմնական հնարավորությունները սովորաբար ներառում են թվերի և տողերի հետ աշխատելը: Սովորաբար այս հատկանիշները կոշտ կոդավորված են կոմպիլյատորի կոդի մեջ (կամ ներդրվում են ծրագրավորման լեզվի «բազային» դասերը):

1C-ում լարերի հետ աշխատելու ունակությունը ծրագրավորված է հենց հարթակում: Այսօր մենք կանդրադառնանք 1C տողերի հետ աշխատելու առանձնահատկություններին ներկառուցված 1C լեզվով ծրագրերում:

Գծի արժեքը 1C

1. Սկսենք ամենապարզից. Փոփոխական ստեղծելը և դրան լարային հաստատուն արժեք վերագրելը 1C-ում այսպիսի տեսք ունի.

Փոփոխական = «Բարև, աշխարհ»;

Եթե ​​Ձեզ անհրաժեշտ է նշել չակերտի նիշը հաստատուն 1C տողի արժեքով, ապա դուք պետք է այն կրկնապատկեք «»

Փոփոխական = «Բարև, աշխարհ»;

2. Գծի ընդմիջում 1C կարելի է նշել միանգամից երկու եղանակով: Առաջինը օգտագործում է նշանը |

Փոփոխական = «Բարև,
| աշխարհ! «;

Երկրորդը Սիմվոլների համակարգի թվարկումն է: Այն թույլ է տալիս ավելացնել ինչպես 1C տողերի ընդմիջումներ, այնպես էլ այլ ոչ տպագրական նիշեր, օրինակ՝ TAB:

Փոփոխական = «Բարև» + Symbols.PS + «խաղաղություն»;

3. 1C-ի կոնֆիգուրացիաները կարող են մշակվել ոչ միայն մեկ լեզվի համար (ռուսերեն, անգլերեն կամ այլ), այլ միաժամանակ մի քանի լեզուների համար: Այս դեպքում ներկայումս օգտագործվող լեզուն ընտրվում է 1C պատուհանի ներքևում:

Լեզուների ցանկը գտնվում է General/Languages ​​մասնաճյուղի կազմաձևման պատուհանում: Յուրաքանչյուր լեզու ունի կարճ նույնացուցիչ, ինչպիսին է ruկամ eng.

Հասկանալի է, որ նման կոնֆիգուրացիան ծրագրավորելիս 1C տողերը կարող են լինել նաև բազմալեզու։ Դա անելու համար հնարավոր է ստեղծել նման 1C գիծ՝ նշելով միջոցով; ընտրանքներ ըստ լեզվի նույնացուցիչի.

Variable = "ru=""Բարև աշխարհ ""; en=""Բարև աշխարհ""";

Եթե ​​դուք օգտագործում եք այս ձևով ձևավորված 1C տողը, ինչպես միշտ, ապա դա կլինի այն, ինչ գրված է դրանում: Որպեսզի համակարգը բաժանի այն երկու տարբերակի և օգտագործի ցանկալիը, անհրաժեշտ է օգտագործել НStr() ֆունկցիան.

//ճիշտ է երկլեզու կոնֆիգուրացիաների համար
Հաշվետվություն (NStr (Փոփոխական));

Հենարաններ 1C տիպի գծով

Հատկանիշը դաշտ է 1C գրացուցակում/փաստաթղթում: Այն տարբերվում է 1C լեզվով ծրագրի փոփոխականից նրանով, որ հատկանիշի համար հստակ նշված է դրա տեսակը (համար, 1C տող և այլն): Եթե ​​Ձեզ անհրաժեշտ է թարմացնել հիշողությունը, թե ինչ է հենարանը, դիտեք դասը շարունակաբար:

Եթե ​​նշեք հատկանիշի տեսակը՝ տող 1C, ապա պետք է լրացուցիչ նշեք պարամետրերը:

1C տողերը գալիս են անսահմանափակ երկարությամբ (նշված է որպես երկարություն = 0) և սահմանափակ երկարությամբ՝ նշելով նիշերի ճշգրիտ թիվը: Անսահմանափակ երկարությամբ 1C տողերը պահվում են առանձին SQL աղյուսակում, ուստի դրանց օգտագործումն ավելի քիչ արդյունավետ է, քան սահմանափակները:

Այդ իսկ պատճառով անսահմանափակ երկարությամբ 1C տողերի օգտագործումն ունի իր սահմանափակումները՝ դրանք հնարավոր չէ օգտագործել ամենուր։ Օրինակ, դա չի թույլատրվում որպես փաստաթղթի համար, հղման կոդ կամ չափում:

Աշխատեք 1C տողերի հետ

1C պլատֆորմի մի քանի ներկառուցված գործառույթներ կան տողերի հետ աշխատելու համար:

  • AbbrLP («Անհավանական, բայց ճշմարիտ»)
    Հեռացնում է լրացուցիչ բացատները 1C գծից: Կարող է օգտագործվել նաև ցանկացած տեսակի 1C տողի փոխակերպելու համար (օրինակ՝ թվեր):
  • Փոփոխական = «Վասյա» + AbbrLP («պլյուս») + «Օլյա»; //կլինի «Վասյա պլյուս Օլյա»
    1C լարային մի քանի արժեքների գումարման օրինակ։ Արդյունքը կլինի մեկ տող 1C:
  • Փոփոխական = Լև («Երաժշտություն», 2); //կլինի «Մու»
    Փոփոխական = Միջին («Երաժշտություն», 2, 2); //կլինի «սպառնալիք»
    Փոփոխական = իրավունքներ («Երաժշտություն», 2); //կլինի «կա»
    1C տողից ենթատող ստանալու տարբեր տարբերակներ:
  • Փոփոխական = Գտնել ("Երաժշտություն", "zy"); //կլինեն 3
    Փնտրեք ենթատող 1C տողում՝ սկսած 1-ին գրանշանից:
  • Փոփոխական = StrLength («Երաժշտություն»); //կլինի 6
    Վերադարձնում է նիշերի քանակը 1C տողում:
  • Զեկուցել («Բարև») // 1C պատուհանի ներքևում գտնվող հաղորդագրության պատուհանում
    Զգուշացում («Բարև») // բացվող երկխոսություն
    Կարգավիճակ («Բարև») // ներքևի ձախ մասում գտնվող կարգավիճակի ցուցադրման տողում
    .

Օբյեկտները բերելով 1C տողին

Ինչպես գիտեք, ներկայումս կառուցվածքային տեղեկատվության փոխանակման ամենատարածված ձևաչափը XML-ն է։ Նույնիսկ MS Office Word-ի և Excel-ի վերջին տարբերակը պահպանում է ֆայլերը այս ձևաչափով (համապատասխանաբար docx և xlsx, փոխեք ընդլայնումը zip-ի, բացեք արխիվատորում):

Տվյալների փոխանակման 1C հարթակը տրամադրում է մի քանի տարբերակներ, որոնցից հիմնականը նույնպես XML-ն է։

1. Ամենապարզ մեթոդը Abbreviation() կամ String() ֆունկցիան օգտագործելն է։ Հարցման մարմնում կարող եք օգտագործել ՆԵՐԿԱՅԱՑՆՈՒՄ() ֆունկցիան: Նրանց գործողության արդյունքը նույնն է. նրանք օգտվողի համար ստեղծում են ցանկացած 1C օբյեկտի լարային ներկայացում:

Լռելյայն գրացուցակի համար սա կլինի նրա անունը: Փաստաթղթի համար՝ փաստաթղթի անվանումը, համարը և ամսաթիվը:

2. Ցանկացած 1C օբյեկտ (սահմանափակումներով) կարող է փոխարկվել XML-ի և հակառակը։ Փոխակերպման գործընթացը կոչվում է սերիալացում:

StringViewXml = XMLString (Արժեք); //ստացեք XML 1C արժեքից
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); //ստացեք 1C արժեքը XML տողից, դուք պետք է նշեք 1C տեսակը, որը պետք է ստացվի

3. Գոյություն ունի 1C պլատֆորմի սեփական ճանապարհը՝ ցանկացած 1C օբյեկտ վերածելու տողի: Այն տեղափոխվեց 1C 7.7 տարբերակից: Այս ձևաչափը չի հասկացվում այլ ծրագրերի կողմից, բայց մյուս 1C-ները հասկանում են այն, ինչը հեշտացնում է այն օգտագործել 1C տվյալների բազաների միջև փոխանակման համար:

Տող = ValueInRowInt (Value1C); //ստացեք 1C տողը 1C արժեքից
ValueVFile ("C:\MyFile.txt", Value1C); //մեկ այլ տարբերակ, մենք 1C արժեքից ստանում ենք պահված տողով ֆայլ
Value1C = ValueFromStringInt(String); //վերադարձ 1C տողից
Value1C = ValueFile ("C:\MyFile.txt"); //վերադարձ ֆայլից

Ձևաթղթի վրա 1C տողերի խմբագրում

Բացի 1C լարերի հետ աշխատելուց 1C լեզվով ծրագրում, իհարկե, ես կցանկանայի, որ օգտվողը կարողանա խմբագրել դրանք: Դրա համար կան մի քանի հնարավորություններ.

1. Ամենահեշտ ճանապարհը պահանջով 1C գծի մուտքագրումն է: Այս մեթոդը օգտագործվում է 1C ծրագրավորում սովորեցնելիս, կյանքում այն ​​օգտագործվում է շատ ավելի քիչ հաճախ (բայց այն օգտագործվում է):

Փոփոխական = "";
Տող = EnterValue (Փոփոխական, «Մուտքագրեք լրիվ անունը»);

2. 1C օբյեկտի (տեղեկատու/փաստաթուղթ) կամ ձևի մանրամասները (տես) ցուցադրելու համար ամենից հաճախ օգտագործվում է մուտքագրման դաշտ: Սա 1C-ում օգտագործողի համար ամենատարածված գործիքն է խմբագրման դաշտերի հետ աշխատելու համար:

3. Մուտքագրման դաշտի հնարավորությունները կարող են ընդլայնվել (տես մուտքագրման դաշտի հատկությունները, աջ սեղմիր դրա վրա, ավելի մանրամասն).

  • Նշավանդակ Բազմագիծ խմբագրման ռեժիմ
  • Ընդլայնված խմբագրման վանդակ (հասանելի է, եթե նախորդ վանդակը նշված է)
  • Checkbox Գաղտնաբառի ռեժիմ (տես):

4. Եթե մուտքագրման դաշտի բոլոր հնարավորությունները ձեզ չեն բավարարում, ապա կա ներկառուցված խմբագիր։ Այն ձևաթղթին ավելացնելու համար անհրաժեշտ է տեքստային փաստաթղթի դաշտ ավելացնել Form/Insert Control ցանկում: Նրա հատկություններում կարող եք նշել դրա գործառնական ռեժիմը՝ Extension հատկությունը:

Տեքստային փաստաթղթի դաշտը չի կարող ուղղակիորեն կապված լինել տվյալների հետ: Ձևի OnOpen() իրադարձությունների մշակիչում անհրաժեշտ է գրել ֆունկցիա (տես).

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //այստեղ ValueString-ը տեքստն է, որը ստացվել է, օրինակ, հատկանիշից

Իսկ պահպանման կարգավորիչում, օրինակ, Save կոճակում, ավելացրեք պահպանում.

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueԱյս տողը այն հատկանիշն է, որտեղ մենք պահպանում ենք արժեքը

5. 1C 8.2.11 տարբերակում, կառավարվող ձևերով, հայտնվել է նոր տարբերակ 1C տողը ներկայացնելու համար՝ Formatted Document դաշտը։


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

  • 1C օբյեկտում, որի ձևը մենք ստեղծում ենք (տեղեկատու, փաստաթուղթ, մշակում և այլն) - ավելացրեք ատրիբուտ Value Storage տիպով:
  • OnReadOnServer() ֆունկցիայի մեջ մենք սահմանում ենք տեքստը հատկանիշից

    //այստեղ Attribute-ը 1C օբյեկտի ավելացված հատկանիշն է
    //այստեղ FormattedDocument-ը խմբագրման համար նախատեսված ձևի դաշտի անվանումն է
    &Սերվերի վրա

    FormattedDocument = CurrentObject.Attributes.Get();
    Ընթացակարգի ավարտը

  • BeforeWritingOnServer() ֆունկցիայի մեջ կամ կոճակի միջոցով տեքստը կգրենք դաշտից

    &Սերվերի վրա
    Ընթացակարգը Սերվերի վրա կարդալիս (Ընթացիկ Օբյեկտ)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Ընթացակարգի ավարտը

Աղյուսակային մասեր գոյություն ունեն 1C-ում շատ օբյեկտների համար.

  • տեղեկատուներ
  • Փաստաթղթեր
  • Հաշվետվություններ և մշակում
  • Հաշվային գծապատկերներ
  • Բնութագրական տիպի պլաններ
  • Հաշվարկի տեսակների պլաններ
  • Բիզնես գործընթացներ և առաջադրանքներ

Աղյուսակային մասերը թույլ են տալիս պահպանել մեկ օբյեկտին պատկանող անսահմանափակ քանակությամբ կառուցվածքային տեղեկատվություն:

Եկեք նայենք աղյուսակային մասերի հետ աշխատելու որոշ տեխնիկայի:

Ինչպես շրջանցել աղյուսակային մասը

Սեղանի հատվածը անցնելու համար կարող եք օգտագործել հանգույց Յուրաքանչյուրի համար

Ցիկլի աղյուսակային մասից յուրաքանչյուր տողի համար

Հաշվետվություն (String. TabularPart հատկանիշ) ;

Վերջնական ցիկլ;

Յուրաքանչյուր կրկնության դեպքում փոփոխականի մեջ Գիծփոխանցվում է աղյուսակային հատվածի հաջորդ շարքը: Շարքի մանրամասների արժեքները կարելի է ձեռք բերել արտահայտությամբ Line.AttributeName.

Ինչպես ստանալ և շրջանցել աղյուսակային մասի ընտրված տողերը

Օբյեկտի աղյուսակային մասից տեղեկատվություն ցուցադրելու համար օգտագործեք ձևի տարր Սեղանի դաշտ. Աղյուսակային դաշտում մի քանի տող ընտրելու հնարավորությունը միացնելու համար հարկավոր է արժեքը սահմանել Բազմաթիվիր սեփականության վրա Ընտրության ռեժիմ.

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

Ընտրված տողերի միջով կրկնելու համար օգտագործվում է հանգույց: Յուրաքանչյուրի համար:

SelectedRows = FormElements: TableFieldName. Ընտրված տողեր;

Ընտրված տողերի հանգույցից յուրաքանչյուր տողի համար

//հանգույցի բովանդակությունը

Վերջնական ցիկլ;

Ինչպես ծրագրային կերպով ընտրել աղյուսակային մասի (աղյուսակի դաշտի) տողերը և հանել դրանք

Աղյուսակի դաշտի տողերը ծրագրավորապես հանելու համար.

Ձևի տարրեր. TableFieldName. Ընտրված տողեր: Մաքրել ();

Սեղանի դաշտի բոլոր տողերը ծրագրային կերպով ընտրելու համար.

Յուրաքանչյուր CurrentRow-ի համար TabularPart Loop-ից
Ձևի տարրեր. TableFieldName. Ընտրված Գծեր. Ավելացնել (Current Row);
Վերջնական ցիկլ;

Ինչպես մաքրել սեղանի հատվածը

Աղյուսակ Մաս. Մաքրել ();

Ինչպես ստանալ աղյուսակի բաժնի ընթացիկ տողը

Ընթացիկ տողը այն ժամանակացույցն է, որում օգտագործողը ներկայումս ունի կուրսորը: Այն ստանալու համար հարկավոր է մուտք գործել կառավարման տարր այն ձևի վրա, որը կապված է աղյուսակային մասի հետ:

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

Ձևի տարրեր. TableFieldName. Ընթացիկ տվյալներ;

Կառավարվող ձևերի համար՝

Տարրեր. TableFieldName. Ընթացիկ տվյալներ;

Ինչպես ավելացնել նոր տող աղյուսակի բաժնում

Աղյուսակի մասի վերջում նոր տող ավելացնելով.

NewRow = TablePart: Ավելացնել () ;

Աղյուսակի բաժնում ցանկացած տեղ նոր տող ավելացնելով (հետագա տողերը կտեղափոխվեն).

NewRow = TablePart: Տեղադրել (ինդեքս)
//Ինդեքս - ավելացված տողի համարը: Տողերի համարակալումը սկսվում է զրոյից:

Նոր գիծ. Props1 = «Արժեք» ;

Ինչպես ծրագրային կերպով լրացնել աղյուսակի տողի մանրամասները

Եթե ​​Ձեզ անհրաժեշտ է ծրագրային կերպով լրացնել օգտվողի կողմից ավելացված աղյուսակի բաժնի տողի մանրամասները, դուք պետք է օգտագործեք աղյուսակի բաժնի իրադարձությունների մշակիչը: Խմբագրումը սկսելիս.

Գործադիրի կողմից ստեղծված ընթացակարգն ունի երեք պարամետր.

  • Տարր- պարունակում է կառավարման տարր Աղյուսակային դաշտ.
  • Նոր գիծ- բուլյան. Պարունակում է արժեք Ճիշտ, եթե ավելացվի աղյուսակի նոր տող, և Սուտ,եթե օգտվողը սկսել է խմբագրել արդեն գոյություն ունեցող տողը:
  • Պատճենել- բուլյան. Պարունակում է արժեք Ճիշտ, եթե օգտագործողը պատճենում է տողը, և Սուտայլ դեպքերում։

Դիտարկենք մի օրինակ։ Ենթադրենք, մենք պետք է լրացնենք աղյուսակային բաժնի մանրամասները Հաշվի Հաշիվ, նոր տող ավելացնելու դեպքում։ Գոյություն ունեցող տողը խմբագրելիս պետք չէ փոխել հաշվապահական հաշիվը:

Ընթացակարգը TabularPartAtStartEditing (տարր, նոր տող, պատճեն)

//Եթե օգտվողը խմբագրում է գոյություն ունեցող տողը, ապա մենք ոչինչ չենք անում
Եթե ​​ՈՉ NewRow Ապա
Վերադարձ;
Վերջ Եթե ;

//Եթե տողը նոր է, սահմանեք հաշվապահական հաշիվը
TechString = Նյութ. Ընթացիկ տվյալներ; //Ստացեք աղյուսակային մասի ընթացիկ տողը
TechString. Հաշվապահություն = Հաշվային գծապատկերներ: Ինքնապահովվող. Պահանջվող Հաշիվ;
Ընթացակարգի ավարտը