Տողերի հետ աշխատելու գործառույթներ 1s 8. Լարերի հետ աշխատելու նոր գործառույթներ

1C հարցումներում տողերի հետ աշխատելու մեխանիզմները քիչ են: Նախ, տողերը կարող են ավելացվել: Երկրորդ, դուք կարող եք վերցնել տողից ենթատող: Երրորդ, տողերը կարելի է համեմատել, այդ թվում՝ ըստ օրինաչափության։ Հավանաբար սա այն ամենն է, ինչ կարելի է անել լարերով:

Լարի ավելացում

Հարցման մեջ տողեր ավելացնելու համար օգտագործվում է «+» գործողությունը: Դուք կարող եք ավելացնել միայն սահմանափակ երկարությամբ տողեր:

Ընտրեք «Անուն.

Ենթալարի ֆունկցիա

ԵՆԹԱԴՐՈՒՄ (<Строка>, <НачальнаяПозиция>, <Длина>)

Environment() ֆունկցիայի անալոգը օբյեկտի մոդելից: Substring() ֆունկցիան կարող է կիրառվել լարային տվյալների վրա և թույլ է տալիս ընտրել հատված <Строки> , սկսած նիշի համարից <НачальнаяПозиция> (տողի նիշերը համարակալված են 1-ից սկսած) և երկարությունը <Длина> կերպարներ. Ֆունկցիայի հաշվարկի արդյունքն ունի փոփոխական երկարությամբ տողի տեսակ, և երկարությունը կհամարվի անսահմանափակ, եթե <Строка> ունի անսահմանափակ երկարություն և պարամետր <Длина> հաստատուն չէ կամ 1024-ից մեծ չէ:

Եթե ​​տողի երկարությունը փոքր է, քան նշված է երկրորդ պարամետրում, ապա ֆունկցիան կվերադարձնի դատարկ տող:

Ուշադրություն.Խորհուրդ չի տրվում օգտագործել SUBSTRING() ֆունկցիան՝ անսահմանափակ երկարությամբ տողերը սահմանափակ երկարությամբ տողերի փոխարկելու համար: Փոխարենը, ավելի լավ է օգտագործել Cast օպերատորը EXPRESS():

Գործառույթը նման է

Եթե ​​մենք պետք է համոզվենք, որ լարային հատկանիշը համապատասխանում է որոշակի չափանիշների, մենք համեմատում ենք այն.

ԸՆՏՐԵՔ Կողմնակիցներ. Անվանում AS Սյունակ 1 տեղեկատուից. Կողմնակիցներ ՈՐՊԵՍ Կողմնակիցներ WHERE Կոնտրագենտներ. Անուն = «Գազպրոմ»

Բայց ի՞նչ, եթե ավելի նուրբ համեմատության կարիք ունեք: Ոչ միայն հավասարություն կամ անհավասարություն, այլ նմանություն որոշակի օրինաչափության: Հենց դրա համար է ստեղծվել SIMILAR ֆունկցիան։

LIKE - Օպերատոր, որը ստուգում է տողը օրինաչափության նմանության համար: LIKE-ի անալոգը SQL-ում:

SIMILAR օպերատորը թույլ է տալիս համեմատել դրա ձախ կողմում նշված արտահայտության արժեքը աջ կողմում նշված օրինաչափության տողի հետ: Արտահայտության արժեքը պետք է լինի string տիպի: Եթե ​​արտահայտության արժեքը համապատասխանում է օրինաչափությանը, ապա օպերատորի արդյունքը կլինի TRUE, հակառակ դեպքում՝ FALSE:

Կաղապարի տողի հետևյալ նիշերը սպասարկման նիշեր են և ունեն տողային նիշից տարբեր նշանակություն.

  • % (տոկոս). հաջորդականություն, որը պարունակում է ցանկացած թվով կամայական նշաններ.
  • _ (ընդգծում). մեկ կամայական նիշ;
  • [...] (մեկ կամ մի քանի նիշ քառակուսի փակագծերում). ցանկացած առանձին նիշ, որը նշված է քառակուսի փակագծերում: Թվարկումը կարող է պարունակել միջակայքեր, օրինակ՝ a-z, որը նշանակում է կամայական նիշ, որը ներառված է տիրույթում, ներառյալ տիրույթի ծայրերը.
  • [^...] (քառակուսի փակագծերում ժխտման նշան, որին հաջորդում է մեկ կամ մի քանի նիշ). ցանկացած առանձին նիշ, բացառությամբ ժխտման նշանին հաջորդող թվարկվածների:

Ցանկացած այլ նշան նշանակում է ինքն իրեն և չի կրում որևէ լրացուցիչ բեռ: Եթե ​​թվարկված նիշերից մեկը պետք է գրվի որպես ինքն իրեն, ապա դրան պետք է նախորդել<Спецсимвол>. ինքս ինձ<Спецсимвол>(ցանկացած հարմար նիշ) սահմանվում է նույն հայտարարության մեջ ՀԱՏՈՒԿ ՆՇԱՆԱՎՈՐ հիմնաբառից հետո:

Իրականացված տարբերակում 8.3.6.1977 թ.

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

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

StrTemplate() ֆորմատավորման ֆունկցիա

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

StrTemplate (<Шаблон>, <Значение1-Значение10>)

<Шаблон>- սա այն տողն է, որի մեջ դուք պետք է փոխարինեք պարամետրերի ներկայացումները:

<Значение1> , ... <Значение10>- սրանք պարամետրեր են (առավելագույնը տասը), որոնց ներկայացումները պետք է փոխարինվեն տողի մեջ:

Կաղապարում որոշակի տեղ նշելու համար, որտեղ ցանկանում եք կատարել փոխարինումը, դուք պետք է օգտագործեք նշիչներ, ինչպիսիք են %1, ... %10: Կաղապարում ներգրավված մարկերների քանակը և արժեքներ պարունակող պարամետրերի քանակը պետք է համընկնեն:

Օրինակ, նման օպերատորի կատարման արդյունքը.

կլինի տող.

Տվյալների սխալ 2-րդ տողում (ամսաթվի տեսակը պարտադիր է)

StrCompare() տողերի հետ աշխատելու ֆունկցիա

Այս ֆունկցիան համեմատում է երկու տողեր՝ մեծատառերի անզգայուն եղանակով: Օրինակ, այսպես.

Դուք կարող եք նույն գործողությունը կատարել ավելի վաղ՝ օգտագործելով Value Comparison օբյեկտը.

Այնուամենայնիվ, նոր գործառույթից օգտվելն ավելի հեշտ է թվում: Եվ բացի սրանից, ֆունկցիան, ի տարբերություն Value Comparison օբյեկտի, աշխատում է ինչպես thin client-ում, այնպես էլ վեբ-հաճախորդում։

StrStartsWith(), StrEndsAt() տողերի հետ աշխատելու գործառույթներ

Այս ֆունկցիաները որոշում են՝ արդյոք տողը սկսվում է որոշակի ենթատողով, թե արդյոք տողը ավարտվում է նշված ենթատողով։ Այս գործառույթների ալգորիթմը ներդրված լեզվով իրականացնելը դժվար չէ, սակայն դրանց առկայությունը թույլ է տալիս գրել ավելի մաքուր և հասկանալի կոդ: Եվ նրանք ավելի արագ են աշխատում:

Օրինակ, դրանք հարմար է օգտագործել If դրույթում.

StrDivide(), StrConnect() տողերի հետ աշխատելու գործառույթներ

Այս գործառույթները տողը բաժանում են մասերի, օգտագործելով որոշակի սահմանազատիչ: Կամ հակառակը, նրանք միավորում են մի քանի տող մեկի մեջ, նրանց միջև ներդնելով ընտրված բաժանարարը: Դրանք հարմար են տեղեկամատյաններ և տեխնոլոգիական ամսագրեր ստեղծելու կամ վերլուծելու համար: Օրինակ, դուք կարող եք հեշտությամբ վերլուծել տեխնոլոգիական մատյան մուտքը մասերի, որոնք հարմար են հետագա վերլուծության համար.

StrFind() տողերի հետ աշխատելու ֆունկցիա

Հին Find() ֆունկցիայի փոխարեն մենք ներդրել ենք նոր ֆունկցիա, որն ունի լրացուցիչ հնարավորություններ.

  • Որոնել տարբեր ուղղություններով (սկզբից, վերջից);
  • Որոնել նշված դիրքից;
  • Որոնել նշված թվով երևույթ (երկրորդ, երրորդ և այլն):

Փաստորեն, դա կրկնօրինակում է հին ֆունկցիայի հնարավորությունները: Սա արվում է ավելի հին տարբերակներում կազմված մոդուլների հետ համատեղելիությունը պահպանելու համար: Խորհուրդ է տրվում այլևս չօգտագործել հին Find() ֆունկցիան:

Ստորև բերված է նոր որոնման հնարավորությունների օգտագործման օրինակ: Հակադարձ որոնումը օգտակար է, երբ ձեզ անհրաժեշտ է պաշտոնականացված տողի վերջին մասը, օրինակ՝ ֆայլի ամբողջական անունը URL-ում: Իսկ որոնումը նշված դիրքից օգնում է այն դեպքերում, երբ անհրաժեշտ է փնտրել հայտնի հատվածում, այլ ոչ թե ամբողջ տողում։

Տողը 1C:Enterprise 8 համակարգերի պարզունակ տվյալների տեսակներից մեկն է: Տիպի հետ փոփոխականներ տողպարունակում է տեքստ:

Մուտքագրեք փոփոխական արժեքներ տողկցվում են կրկնակի չակերտների մեջ։ Այս տեսակի մի քանի փոփոխականներ կարող են ավելացվել:

Per1 = «Բառ 1» ;
Per2 = «Բառ 2» ;
Per3 = Per1 + " " + Per2;

Ի վերջո Per3կնշանակի « Բառ 1 Բառ 2″:

Բացի այդ, 1C:Enterprise 8 համակարգերը ապահովում են լարերի հետ աշխատելու գործառույթներ։ Դիտարկենք հիմնականները.

EnterString (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — Ֆունկցիան նախատեսված է երկխոսության տուփ ցուցադրելու համար, որտեղ օգտագործողը կարող է նշել տիպի փոփոխականի արժեքը Գիծ. Պարամետր <Строка> պահանջվում է և պարունակում է այն փոփոխականի անունը, որի մեջ գրվելու է մուտքագրված տողը: Պարամետր <Подсказка> ընտրովի - սա երկխոսության տուփի վերնագիրն է: Պարամետր <Длина> ընտրովի, ցույց է տալիս մուտքային տողի առավելագույն երկարությունը: Կանխադրված է զրոյի, ինչը նշանակում է անսահմանափակ երկարություն: Պարամետր <Многострочность> ընտրովի: Սահմանում է բազմագիծ տեքստի մուտքագրման ռեժիմը. True—բազմագիծ տեքստի մուտքագրում տողերի բաժանարարներով; False - մուտքագրեք պարզ տող:

Դուք կարող եք մուտքագրել տող, եթե գիտեք Unicode-ի նիշերի կոդը.

Խորհրդանիշ(<КодСимвола>) — կոդը մուտքագրվում է որպես թիվ:

Letter= Symbol(1103) ; // Ի

Կա նաև հակադարձ ֆունկցիա, որը թույլ է տալիս պարզել խորհրդանիշի կոդը։

SymbolCode (<Строка>, <НомерСимвола>) — վերադարձնում է նշված նիշի Unicode համարը որպես թիվ:

Տեքստի գործի փոխակերպման գործառույթներ.

VReg (<Строка>) — Փոխակերպում է տողի բոլոր նիշերը մեծատառերի:

NReg (<Строка>) — Փոխակերպում է տողի բոլոր նիշերը փոքրատառերի:

Treg (<Строка>) — փոխակերպում է տողի բոլոր նիշերը վերնագրի տառերի: Այսինքն՝ բոլոր բառերի առաջին տառերը վերածվում են մեծատառի, իսկ մնացած տառերը՝ փոքրատառի։

Տողում նիշերի որոնման և փոխարինման գործառույթները.

Գտնել (<Строка>, <ПодстрокаПоиска>) — գտնում է որոնման ենթատողի առաջացման նիշերի համարը: Օրինակ:

Գտեք ("String", "oka"); // 4

StrFind (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — գտնում է որոնման ենթատողի առաջացման նիշերի համարը, համապատասխան պարամետրում նշվում է առաջացման համարը: Այս դեպքում որոնումը սկսվում է այն նիշից, որի համարը նշված է պարամետրում Սկզբնական դիրք.Որոնումը հնարավոր է տողի սկզբից կամ վերջից։ Օրինակ:

Number4 Occurrences = Str Գտնել ( «Պաշտպանողականություն», "մասին" ,Որոնման ուղղություն. Սկզբից, 1, 4); // 7

StrReplace (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – գտնում է որոնման ենթատողի բոլոր երևույթները սկզբնաղբյուր տողի մեջ և այն փոխարինում փոխարինող ենթատողով:

StrReplace ("String", "oka", ""); // Էջ

Դատարկ գիծ (<Строка>) – ստուգում է տողը կարևոր նիշերի համար: Եթե ​​չկան նշանակալից նիշեր կամ ընդհանրապես նիշեր չկան, ապա արժեքը վերադարձվում է Ճիշտ. Հակառակ դեպքում - Սուտ.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Հաշվում է սկզբնաղբյուր տողում որոնման ենթատողի դեպքերի քանակը:

StrNumberOccurrences ( «Սովորիր, սովորիր և նորից սովորիր»., «ուսումնասիրություն», «» ); // 3

StrTemplate (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — պարամետրերը փոխարինում է տողի մեջ ըստ թվերի: Տողը պետք է պարունակի «%1..%N» ձևի փոխարինման նշիչներ: Մարկերների համարակալումը սկսվում է 1-ից. Եթե պարամետրի արժեքը Չսահմանված, փոխարինվում է դատարկ տողը։

StrTemplate ( «Պարամետր 1 = %1, պարամետր 2 = %2», "1" , "2" ) ; // Պարամետր 1= 1, Պարամետր 2 = 2

Լարի փոխակերպման գործառույթներ.

Առյուծ (<Строка>, <ЧислоСимволов>) – վերադարձնում է տողի առաջին նիշերը:

Ճիշտ(<Строка>, <ЧислоСимволов>) – վերադարձնում է տողի վերջին նիշերը:

չորեքշաբթի (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – վերադարձնում է երկարության տողը<ЧислоСимволов>, սկսած սիմվոլից<НачальныйНомер>.

AbbrL (<Строка>) կտրում է տողի առաջին նշանակալի նիշի ձախ կողմում գտնվող ոչ էական նիշերը:

հապավումը (<Строка>) — կտրում է աննշան նիշերը տողի վերջին նշանակալից նիշի աջ կողմում:

AbbrLP (<Строка>) – կտրում է աննշան նիշերը տողի առաջին նշանակալից նիշի ձախ կողմում և գծի վերջին նշանակալի նիշի աջ կողմում:

StrGetString (<Строка>, <НомерСтроки>) – Ստանում է բազմագիծ տող ըստ թվի:

Այլ առանձնահատկություններ.

Ուժեղություն (<Строка>) – վերադարձնում է տողի նիշերի քանակը:

StrNumberRow (<Строка>) – վերադարձնում է բազմագիծ տողի տողերի քանակը: Տողը համարվում է նոր, եթե այն բաժանված է նախորդից նոր տողով:

StrCompare(<Строка1>, <Строка2> ) – համեմատում է երկու տողերը մեծատառերի անզգայուն կերպով: Ֆունկցիան աշխատում է օբյեկտի նման Արժեքների համեմատություն. Վերադարձնում է՝

  • 1 - եթե առաջին տողը մեծ է երկրորդից
  • -1 - եթե երկրորդ տողը մեծ է առաջինից
  • 0 - եթե տողերը հավասար են

StrCompare(«Առաջին տող», «Երկրորդ տող»); // 1

Որպես օրինակ, թե ինչպես են աշխատում 1C տողերի հետ աշխատելու գործառույթները, մենք կցանկանայինք ստեղծել ավտոմատ տեքստի վերլուծություն: Մենք կվերցնենք տեքստը ֆայլից: Վերլուծության արդյունքը ցանկացած ձևով ցուցադրվում է օգտագործողին:

Մենք պետք է ստեղծենք արտաքին մշակող, որը թույլ կտա մեզ ընտրել տեքստային ֆայլ և գործարկել անալիզատորը:

Տեքստի վերլուծություն 1C - ձև և կոճակներ

Այսպիսով, եկեք ստեղծենք արտաքին մշակում՝ Կազմաձևիչ/Ֆայլ/Նոր/Արտաքին մշակում։

Ձևի ավելացում. Ձևաթղթի վրա մենք պետք է տեղադրենք տեքստային ֆայլի ընտրության դաշտ և վերլուծության կոճակ:

Տեքստի վերլուծություն 1C - հաստ հաճախորդ

Եկեք ձևաթղթի վրա տեղադրենք սովորական տեքստային դաշտ: Տողի երկարությունը անսահմանափակ է, քանի որ ֆայլի ուղին (տեղեկատուի անունները) կարող է նշանակալից լինել:

Որպեսզի օգտագործողը ստիպված չլինի մուտքագրել ֆայլի անունը, այլ կարողանա ընտրել այն, մենք դաշտում միացնենք ընտրության կոճակը:

Մենք դաշտի անվանումը կփոխենք «FileName»-ի, համապատասխան ձևի հատկանիշի անվանումը ավտոմատ կերպով կփոխվի նույնը:

Որպես կոճակ մենք կօգտագործենք «Գործարկել» կոճակը, որն ավտոմատ կերպով ավելացվում է հարթակի կողմից (և այն արդեն ունի միացված կարգավորիչ՝ հարմար):

Տեքստի վերլուծություն 1C - բարակ հաճախորդ

Thin client-ում մենք ինքնուրույն կստեղծենք «FileName» ձևի հատկանիշը: Եկեք քաշենք հենակետերը ձևի վրա: Ձևի տարրի հատկություններում մենք նաև կակտիվացնենք ընտրելու կոճակը։

Որպես կոճակ՝ մենք կստեղծենք «Run» հրամանը, նրան կվերագրենք մշակում և կքաշենք ձևի վրա:

Տեքստի վերլուծություն 1C - ծրագրավորում

Առաջին բանը, որ մենք պետք է անենք, մշակել ընտրության կոճակի սեղմումը. սեղմելիս ցուցադրել ֆայլի ընտրության երկխոսություն:

Եկեք գնանք ձևի մեր տեքստային դաշտի հատկություններին (հաստ հաճախորդում՝ մկնիկի ձախ կոճակով անմիջապես դաշտի վրա, բարակ հաճախորդում՝ ցուցակի դաշտի անվան վրա), և նշենք իրադարձությունների մշակիչը։ «Ընտրության սկիզբ» միջոցառումը։

Բեռնարկիչի ֆունկցիայի ներսում, որը 1C-ն կստեղծի նշանակվելիս, մենք կգրենք մի պարզ կոդ.

Այժմ մենք ունենք ֆայլի անուն: Մենք պետք է «ստանանք» դրա բովանդակությունը և կոչենք տեքստի վերլուծություն:

Մենք արդեն ունենք կարգավորիչ Run կոճակի համար: Հաստ հաճախորդում կոճակը և դրա կարգավորիչը ինքնաբերաբար ստեղծվել են 1C կոնֆիգուրատորի կողմից: Thin client-ում մենք այն ավելացրել ենք ձեռքով:

Եկեք կոդ ավելացնենք մշակողին, որը կարդում է ֆայլը տողի մեջ.

Ինչ վերաբերում է ֆայլի կոդավորմանը. Եթե ​​դուք ստեղծեք TextReading() օբյեկտ՝ առանց կոդավորումը ցույց տվող պարամետրի, 1C-ը կփորձի ինքնուրույն որոշել կոդավորումը (ստորագրությամբ Byte Order Mark - BOM, կամ հաշվի կառնի դրա ANSI կոդավորումը):

Դուք կարող եք ուղղակիորեն նշել ցանկալի կոդավորումը, օրինակ այսպես.
Ֆայլ = Նոր ընթերցված տեքստ (FileName, «UTF-8»); //փոխարինել ցանկալի կոդավորման անունը

Այսպիսով, արդյունքում մենք ստացանք.

  • Տեքստային տող կարդացված ֆայլից «Text» փոփոխականում
  • Ընթացակարգ, որում մենք կվերլուծենք ստացված տողը «TextAnalysis()» կոչվող փոփոխականից՝ օգտագործելով 1C տողային ֆունկցիաները:

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

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);
    Ընթացակարգի ավարտը