Satrlar bilan ishlash uchun yangi funksiyalar. Satrlar bilan ishlash uchun yangi funksiyalar 1c string qo'shish

Satr 1C: Enterprise 8 tizimidagi o'zgaruvchilar turidagi ibtidoiy ma'lumotlar turlaridan biridir chiziq matnni o'z ichiga oladi.

O'zgaruvchan qiymatlarni yozing chiziq qo'sh tirnoq ichiga olinadi. Ushbu turdagi bir nechta o'zgaruvchilar qo'shilishi mumkin.

Per1 = "So'z 1" ;
Per2 = "Word 2" ;
Per3 = Per1 + " " + Per2;

Natijada Per3 degani bo'ladi 1-so'z 2-so'z.

Bundan tashqari, 1C: Enterprise 8 tizimlari satrlar bilan ishlash funktsiyalarini ta'minlaydi. Keling, asosiylarini ko'rib chiqaylik:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funktsiya foydalanuvchi turidagi o'zgaruvchining qiymatini belgilashi mumkin bo'lgan dialog oynasini ko'rsatish uchun mo'ljallangan Chiziq. Parametr <Строка> talab qilinadi va kiritilgan satr yoziladigan o'zgaruvchining nomini o'z ichiga oladi. Parametr <Подсказка> ixtiyoriy - bu dialog oynasining sarlavhasi. Parametr <Длина> ixtiyoriy, kiritish satrining maksimal uzunligini ko'rsatadi. Standart nolga teng, ya'ni cheksiz uzunlik. Parametr <Многострочность> ixtiyoriy. Ko'p qatorli matn kiritish rejimini belgilaydi: True — qator ajratgichlar bilan ko'p qatorli matn kiritish; False - oddiy qatorni kiriting.

Unicode-dagi belgilar kodini bilsangiz, qatorni kiritishingiz mumkin:

Belgi(<КодСимвола>) — kod raqam sifatida kiritiladi.

Harf= Belgi(1103); // I

Belgining kodini topishga imkon beruvchi teskari funksiya ham mavjud.

SymbolCode(<Строка>, <НомерСимвола>) — belgilangan belgining Unicode raqamini raqam sifatida qaytaradi.

Matn registrini aylantirish funksiyalari:

VReg(<Строка>) — Satrdagi barcha belgilarni bosh harfga o‘zgartiradi.

NReg(<Строка>) — Satrdagi barcha belgilarni kichik harflarga o‘zgartiradi.

TReg(<Строка>) — satrdagi barcha belgilarni sarlavha registriga aylantiradi. Ya'ni, barcha so'zlardagi birinchi harflar bosh harfga, qolgan harflar esa kichik harfga aylantiriladi.

Satrdagi belgilarni qidirish va almashtirish funktsiyalari:

toping(<Строка>, <ПодстрокаПоиска>) — qidiruv satrining paydo bo'lishining belgi raqamini topadi. Masalan:

Toping ("String" , "oka" ); // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — qidiruv pastki satrining paydo bo'lishining belgi raqamini topadi, hodisa raqami mos keladigan parametrda ko'rsatiladi. Bunday holda, qidiruv parametrda raqami ko'rsatilgan belgidan boshlanadi Boshlang'ich pozitsiyasi. Qidiruv satrning boshidan yoki oxiridan mumkin. Masalan:

4-raqamli hodisalar = Str Find ( "Himoyaviylik", "haqida", Qidiruv yoʻnalishi. Boshidan, 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – qidiruv satrining barcha koʻrinishlarini manba satrida topadi va uni oʻzgartirish pastki qatori bilan almashtiradi.

StrReplace ("String", "oka", "" ); // sahifa

Bo'sh qator (<Строка>) – satrda muhim belgilar mavjudligini tekshiradi. Agar muhim belgilar bo'lmasa yoki umuman belgilar bo'lmasa, qiymat qaytariladi To'g'ri. Aks holda - Yolg'on.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Manba satrida qidiruv pastki qatorining takrorlanish sonini hisoblaydi.

StrNumberOccurrences ( "O'qing, o'qing va yana o'qing", "o'rganish", "" );

// 3<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — StrTemplate( parametrlarni qatorga raqam bilan almashtiradi. Satrda quyidagi shakldagi almashtirish belgilari bo'lishi kerak: “% 1..% N”. Marker raqamlash 1 dan boshlanadi. Agar parametr qiymati bo'lsa Aniqlanmagan

, bo'sh satr almashtiriladi. StrTemplate (, "1" , "2" ) ; "1-parametr = %1, 2-parametr = %2"

// Parametr 1= 1, Parametr 2 = 2

String konvertatsiya funktsiyalari:<Строка>, <ЧислоСимволов>) sher (

– satrning birinchi belgilarini qaytaradi.<Строка>, <ЧислоСимволов>) To'g'ri(

– satrning oxirgi belgilarini qaytaradi.<Строка>, <НачальныйНомер>, <ЧислоСимволов>) chorshanba(<ЧислоСимволов>– uzunlikdagi qatorni qaytaradi<НачальныйНомер>.

, belgisidan boshlab<Строка>) AbbrL(

satrdagi birinchi muhim belgining chap tomonidagi ahamiyatsiz belgilarni kesadi.<Строка>) qisqartma(

— qatordagi oxirgi muhim belgining oʻng tomonidagi ahamiyatsiz belgilarni kesib tashlaydi.<Строка>) AbbrLP(

– satrdagi birinchi muhim belgining chap tomonidagi va oxirgi muhim belgining o‘ng tomonidagi ahamiyatsiz belgilarni kesib tashlaydi.<Строка>, <НомерСтроки>) StrGetString(

– Raqam bo‘yicha ko‘p qatorli qatorni oladi.

Boshqa xususiyatlar:<Строка>) StrLength(

– satrdagi belgilar sonini qaytaradi.<Строка>) StrNumberRow(

– ko‘p qatorli satrlar sonini qaytaradi. Agar satr oldingisidan yangi satr belgisi bilan ajratilgan bo'lsa, yangi hisoblanadi.<Строка1>, <Строка2> ) StrCompare( – ikki qatorni katta-kichik harflar bilan solishtiradi. Funktsiya ob'ektga o'xshash ishlaydi Qadriyatlarni solishtirish

  • . Qaytaradi:
  • 1 - agar birinchi qator ikkinchisidan katta bo'lsa
  • -1 - agar ikkinchi qator birinchisidan katta bo'lsa

0 - agar satrlar teng bo'lsa

StrCompare("Birinchi qator" , "Ikkinchi qator" ); // 1

Chiziq

String turi barcha dasturlash tillarida uchraydi. Bu ibtidoiy va 1C da u bilan ishlash uchun juda ko'p funktsiyalar mavjud. Ushbu maqolada biz misollar yordamida 1C 8.3 va 8.2 da string turlari bilan ishlashning turli usullarini batafsil ko'rib chiqamiz.

Har qanday turdagi o'zgaruvchini satrga aylantirish uchun xuddi shu nomdagi “String()” funksiyasi mavjud. Kirish parametri o'zgaruvchining o'zi bo'ladi, uning satr tasvirini olish kerak.
String(False) // "Yo'q"ni qaytaradi
String (12345) // "12,345" ni qaytaradi

String(CurrentDate()) //"21/07/2017 11:55:36"

Satrga faqat ibtidoiy turlarni emas, balki boshqalarni, masalan, katalog va hujjatlar elementlarini ham aylantirish mumkin.

Ushbu funksiyalarning kirish parametrlari qator tipidagi o'zgaruvchidir. Funktsiyalar ahamiyatsiz belgilarni (bo'shliqlar, karetaning qaytishi va boshqalar) olib tashlaydi: chap va o'ng tomondan, faqat chap tomondan va faqat o'ngdan.

Qisqartma("Ikki tomondan bo'shliqlar o'chiriladi") // "Ikkala tomondagi bo'shliqlar o'chiriladi"
Qisqartma("Ikkala tomondagi bo'shliqlar o'chiriladi") // "Chapdagi bo'shliqlar o'chiriladi"
Qisqartma("Ikkala tomondagi bo'shliqlar o'chiriladi") // "O'ngdagi bo'shliqlar o'chiriladi"

Arslon, o'ng, o'rta

Bu funksiyalar qatorning bir qismini kesish imkonini beradi. "Left()" funktsiyasi satrning belgilangan uzunlikdagi chap tomonidagi qismini qaytaradi. "O'ng ()" funktsiyasi shunga o'xshash, lekin o'ngdan kesiladi. “Ovg()” funksiyasi qator tanlanadigan belgi sonini va uning uzunligini belgilash imkonini beradi.

Lev("String o'zgaruvchisi", 4) // "Str" ni qaytaradi
Right("String o'zgaruvchisi", 7) // "o'zgaruvchi"ni qaytaradi
Medium("String o'zgaruvchisi", 2, 5) // "troko" ni qaytaradi

StrLength

Funktsiya satr o'zgaruvchisi tarkibidagi belgilar sonini aniqlaydi.

StrLength("Word") // bajarilish natijasi 5 raqami bo'ladi

Toping

Funktsiya satr o'zgaruvchisida satrning bir qismini qidirish imkonini beradi. Qaytish qiymati topilgan satr boshining o'rnini ko'rsatadigan raqam bo'ladi. Agar moslik topilmasa, nol qaytariladi.

E'tibor bering, qidiruv katta-kichik harflarga sezgir. Agar asl satrda qidiruv satrining bir nechta takrorlanishi boʻlsa, funksiya birinchi takrorlanishning boshlanishini qaytaradi.

Find("bir, ikki, bir, ikki, uch", "ikki") // funksiya 6 raqamini qaytaradi

Bo'sh qator

Ushbu funktsiyadan foydalanish satr bo'sh yoki yo'qligini aniqlash imkonini beradi. Bo'sh joy, karetaning qaytishi va boshqalar kabi kichik belgilar hisobga olinmaydi.

EmptyString("Qovoq Vasiliy Ivanovich") // funksiya False qiymatini qaytaradi
EmptyString(" ") // funksiya True qiymatini qaytaradi

VReg, NReg, TReg

Bu funksiyalar qator o‘zgaruvchilarni solishtirish va o‘zgartirishda juda foydali. "Vreg()" asl satrni katta harf bilan, "HPreg()" kichik harf bilan qaytaradi va "TReg()" uni har bir alohida so'zning birinchi belgisi va keyingi barcha belgilar bosh harf bilan yozilishi uchun formatlaydi.

VReg("GENERAL DIRECTOR") // qaytariladigan qiymat - "GENERAL DIRECTOR"
NReg (“CEO DIRECTOR”) // qaytariladigan qiymat – “CEO”
TREG("Bosh DIREKTOR") // Qaytish qiymati - "Bosh direktor"

Sahifani almashtiring

Bu funksiya matn muharrirlarida almashtirishga o'xshaydi. U qator oʻzgaruvchilarda bir belgi yoki belgilar toʻplamini boshqasiga almashtirish imkonini beradi.

StrReplace("qizil, oq, sariq", ","", ";") // "qizil"ni qaytaradi; oq; sariq"

StrNumberLines

Funktsiya matn o'zgaruvchisida karetaning qaytishi bilan ajratilgan qatorlar sonini aniqlash imkonini beradi.

Quyidagi misoldagi tsikl uchta turdan o'tadi, chunki LineNumberRow funktsiyasi 3 qiymatini qaytaradi:

Ind = 1 uchun StrNumber of Str ("Line1" + Symbols.PS + "Line2" + Symbols.PS + "Line3") sikl
<тело цикла>
EndCycle;

StrGetString

Bu funksiya ko'p satrli matn bilan avvalgisi kabi ishlaydi. Bu sizga matn o'zgaruvchisidan ma'lum bir qatorni olish imkonini beradi.

StrGetString("String1" + Belgilar.PS + "String2" + Belgilar.PS + "String3", 2) // "String2" ni qaytaring

Sahifa raqamlari

Funktsiya qidiruv satrida belgi yoki pastki qatorning takrorlanish sonini hisoblaydi.

StrNumberAttachments("a;b;c;d; ", ";") // funksiya 4 raqamini qaytaradi

Ramz va belgilar kodi

Ushbu funktsiyalar Unicode kodlashda uning kodi bo'yicha belgini olish, shuningdek, ushbu kodni belgining o'zi bilan aniqlash imkonini beradi.

SymbolCode("A") // funksiya 1040 raqamini qaytaradi
CharacterCode (1040) // funksiya "A" ni qaytaradi

Satrlar bilan ishlashda umumiy vazifalar

Birlashtiruvchi satrlar

Bir nechta satrlarni birlashtirish uchun (birlashtirishni amalga oshirish uchun) qo'shish operatoridan foydalanish kifoya.

“1-qator” + “2-qator” //ikki qator qo‘shish natijasi “1-qator 2-qator” bo‘ladi.

Konvertatsiya turi

Turni satrga, masalan, katalog elementiga havola, raqam va hokazolarga aylantirish uchun “String()” funksiyasidan foydalanish kifoya. "ScrLP()" kabi funksiyalar ham o'zgaruvchilarni satrga aylantiradi, lekin darhol ahamiyatsiz belgilarni kesib tashlaydi.

String(1000) // "1000"ni qaytaradi

E'tibor bering, raqamni satrga o'zgartirganda, dastur avtomatik ravishda mingni ajratib turadigan bo'sh joy qo'shadi. Bunga yo'l qo'ymaslik uchun siz quyidagi konstruktsiyalardan foydalanishingiz mumkin:

StrReplace(String(1000),Characters.NPP,"") // "1000"ni qaytaradi

String(Format(1000,"HG=")) // "1000"ni qaytaradi

Satrdagi iqtiboslar

Ko'pincha siz satr o'zgaruvchisida tirnoq belgilarini belgilash zarurati bilan shug'ullanishingiz kerak bo'ladi. Bu konfiguratorda yozilgan so'rov matni yoki shunchaki o'zgaruvchi bo'lishi mumkin. Ushbu muammoni hal qilish uchun siz ikkita tirnoq belgisini qo'yishingiz kerak.

Header = String("Horns and Hooves LLC - bu bizmiz!") // "Horns and Hooves MChJ - bu bizmiz!"

Ko'p qatorli, qatorli uzilish

Ko'p qatorli matn yaratish uchun unga satrlarni (Symbols.PS) qo'shish kifoya.

MultilineText = "Birinchi qator" + Symbols.PS + "Ikkinchi qator"

Bo'shliqlarni qanday olib tashlash mumkin

O'ng yoki chapdagi bo'shliqlarni olib tashlash uchun siz "ScrAP()" (shuningdek, "ScrL()" va "ScrP()" funksiyasidan foydalanishingiz mumkin:

StringNoSpaces = Qisqartma(" ​​Ko'p harf ") // funktsiya "Ko'p harf" qiymatini qaytaradi

Agar raqamni satrga aylantirgandan so'ng, siz uzilmaydigan bo'shliqlarni olib tashlashingiz kerak bo'lsa, quyidagi konstruktsiyadan foydalaning:

StringNoSpaces = StrReplace(String(99999),Characters.NPP,"") // "99999"ni qaytaradi

Dasturchilar ko'pincha matn o'zgaruvchisidagi barcha bo'shliqlarni olib tashlash yoki boshqa belgi bilan almashtirish imkonini beruvchi quyidagi konstruktsiyadan foydalanadilar:

StringNoSpaces = StrReplace("salom","") // "salom"ni qaytaradi

Iplarni bir-biri bilan solishtirish

Siz atamalarni odatdagi tenglik belgisi bilan solishtirishingiz mumkin. Taqqoslash katta-kichik harflarga sezgir.

"Salom" = "salom" // False ni qaytaradi
"Salom" = "Salom" // "To'g'ri" ni qaytaradi
"Salom" = "Alvido" // False ni qaytaradi

Dasturlash tilining asosiy imkoniyatlari odatda raqamlar va satrlar bilan ishlashni o'z ichiga oladi. Odatda bu xususiyatlar kompilyator kodiga qattiq kodlangan (yoki dasturlash tilining "asosiy" sinflari amalga oshiriladi).

1C da satrlar bilan ishlash qobiliyati platformaning o'zida dasturlashtirilgan. Bugun biz o'rnatilgan 1C tilidagi dasturlarda 1C satrlari bilan ishlash xususiyatlarini ko'rib chiqamiz.

Chiziq qiymati 1C

1. Eng oddiyidan boshlaylik. O'zgaruvchini yaratish va unga doimiy satr qiymatini belgilash 1C da shunday ko'rinadi:

O'zgaruvchi = "Salom, dunyo!";

Agar siz doimiy 1C satr qiymatida tirnoq belgisini ko'rsatishingiz kerak bo'lsa, uni ikki barobarga oshirishingiz kerak ""

O'zgaruvchi = "Salom, dunyo"!;

2. 1C chiziq uzilishi bir vaqtning o'zida ikkita usulda belgilanishi mumkin. Birinchisi | belgisidan foydalaniladi

O'zgaruvchi = "Salom,
| dunyo! ";

Ikkinchisi, Symbols tizimi ro'yxatidan foydalanish. Bu sizga 1C qatorlarini ham, TAB kabi chop etilmaydigan belgilarni ham qo'shish imkonini beradi.

O'zgaruvchi = "Salom" + Symbols.PS + "tinchlik!";

3. 1C-dagi konfiguratsiyalar faqat bitta til (rus, ingliz yoki boshqa) uchun emas, balki bir vaqtning o'zida bir nechta tillar uchun ham ishlab chiqilishi mumkin. Bunday holda, hozirda foydalanilayotgan til 1C oynasining pastki qismida tanlanadi.

Tillar ro'yxati Umumiy/Tillar bo'limidagi konfiguratsiya oynasida joylashgan. Har bir tilda qisqa identifikator mavjud, masalan ru yoki uzb.

Bunday konfiguratsiyani dasturlashda 1C liniyalari ham ko'p tilli bo'lishi mumkinligi aniq. Buning uchun orqali ko'rsatib, shunday 1C chizig'ini yaratish mumkin; til identifikatori bo'yicha variantlar:

Variable = "ru=""Salom, dunyo! ""; en=""Salom, dunyo! """;

Agar siz odatdagidek shakllangan 1C chizig'idan foydalansangiz, unda yozilgan narsa bo'ladi. Tizim uni ikkita variantga bo'lish va kerakli variantni ishlatish uchun siz NStr() funktsiyasidan foydalanishingiz kerak:

//ikki tilli konfiguratsiyalar uchun to'g'ri
Hisobot (NStr(O'zgaruvchi));

1C tipidagi chiziqli rekvizitlar

Atribut 1C katalogi/hujjatidagi maydondir. U 1C tilidagi dasturdagi o'zgaruvchidan farq qiladi, chunki atribut uchun uning turi aniq ko'rsatilgan (raqam, 1C qatori va boshqalar). Agar siz rekvizit nima ekanligi haqida xotirangizni yangilashingiz kerak bo'lsa, darsni tomosha qiling.

Agar siz atribut turini belgilasangiz - 1C qatori, u holda siz qo'shimcha ravishda parametrlarni ko'rsatishingiz kerak.

1C chiziqlari cheksiz uzunlikda (uzunlik = 0 sifatida ko'rsatilgan) va cheklangan uzunlikda bo'lib, belgilarning aniq sonini ko'rsatadi. Cheksiz uzunlikdagi 1C qatorlari alohida SQL jadvalida saqlanadi, shuning uchun ulardan foydalanish cheklanganlarga qaraganda unumdor emas.

Shuning uchun cheksiz uzunlikdagi 1C satrlaridan foydalanish o'z cheklovlariga ega - ularni hamma joyda ishlatish mumkin emas. Masalan, hujjat raqami, mos yozuvlar kodi yoki o'lchov sifatida ruxsat etilmaydi.

1C strings bilan ishlash

Satrlar bilan ishlash uchun 1C platformasining bir nechta o'rnatilgan funktsiyalari mavjud.

  • AbbrLP ("Aql bovar qilmaydigan, lekin haqiqat!")
    1C chizig'idan qo'shimcha bo'shliqlarni olib tashlaydi. Har qanday turlarni 1C satriga aylantirish uchun ham foydalanish mumkin (masalan, raqamlar).
  • O'zgaruvchi = "Vasya" + AbbrLP("plyus") + "Olya"; //"Vasya plus Olya" bo'ladi
    Bir nechta 1C satr qiymatlarini yig'ish misoli. Natijada bitta chiziq 1C bo'ladi.
  • O'zgaruvchi = Lev("Musiqa", 2); //"Mu" bo'ladi
    O'zgaruvchi = O'rta("Musiqa", 2, 2); //"tahdid" bo'ladi
    O'zgaruvchi = Huquqlar ("Musiqa", 2); //"ka" bo'ladi
    1C satridan pastki qatorni olishning turli xil variantlari.
  • O'zgaruvchi = Top ("Musiqa", "zy"); // 3 ta bo'ladi
    1C satrida 1-belgidan boshlab pastki qatorni qidiring.
  • O'zgaruvchi = StrLength ("Musiqa"); //6 bo'ladi
    1C qatoridagi belgilar sonini qaytaradi.
  • Hisobot("Salom") //1C oynasining pastki qismidagi xabarlar oynasida
    Ogohlantirish ("Salom") // qalqib chiquvchi dialog oynasi
    Status("Salom") //pastki chap tarafdagi holatni ko'rsatish qatorida
    .

Ob'ektlarni 1C qatoriga olib kelish

Ma'lumki, hozirgi vaqtda tuzilgan ma'lumotlarni almashishning eng mashhur formati XML hisoblanadi. Hatto MS Office Word va Excelning so'nggi versiyalari fayllarni ushbu formatda saqlaydi (docx va xlsx mos ravishda kengaytmani zip-ga o'zgartiradi, arxivatorda ochadi).

Ma'lumotlar almashinuvi uchun 1C platformasi bir nechta variantlarni taqdim etadi, ulardan asosiysi ham XML.

1. Eng oddiy usul Abbreviation() yoki String() funksiyasidan foydalanishdir. Siz so'rov tanasida REPRESENTATION() funktsiyasidan foydalanishingiz mumkin. Ularning harakatlarining natijasi bir xil - ular foydalanuvchi uchun har qanday 1C ob'ektining satrli tasvirini yaratadilar.

Sukut bo'yicha katalog uchun bu uning nomi bo'ladi. Hujjat uchun - hujjat nomi, raqami va sanasi.

2. Har qanday 1C ob'ekti (cheklovlar bilan) XML ga va aksincha o'zgartirilishi mumkin. O'tkazish jarayoni serializatsiya deb ataladi.

StringViewXml = XMLString (Qiymat); //1C qiymatidan XML oling
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"), TypeStringXml); //XML qatoridan 1C qiymatini oling, siz qabul qilinishi kerak bo'lgan 1C turini ko'rsatishingiz kerak

3. 1C platformasining har qanday 1C ob'ektini satrga aylantirishning o'ziga xos usuli mavjud. U 1C 7.7 versiyasidan ko'chirildi. Ushbu format boshqa dasturlar tomonidan tushunilmaydi, lekin boshqa 1C buni tushunadi, bu esa uni 1C ma'lumotlar bazalari o'rtasida almashish uchun ishlatishni osonlashtiradi.

Qator = ValueInRowInt(Value1C); //1C qiymatidan 1C qatorini oling
ValueVFile("C:\MyFile.txt", Value1C); //boshqa variant, biz 1C qiymatidan saqlangan satrli faylni olamiz
Value1C = ValueFromStringInt(String); //1C qatoridan orqaga
Value1C = ValueFile("C:\MyFile.txt"); // fayldan qaytish

Shaklda 1C satrlarini tahrirlash

1C tilidagi dasturda 1C satrlari bilan ishlashdan tashqari, albatta, foydalanuvchi ularni tahrirlash imkoniyatiga ega bo'lishini istardim. Buning uchun bir nechta imkoniyatlar mavjud:

1. Eng oson yo'li - talab bo'yicha 1C liniyasini kiritishni so'rash. Bu usul 1C dasturlashni o'rgatishda qo'llaniladi; hayotda u kamroq qo'llaniladi (lekin u ishlatiladi!).

O'zgaruvchi = "";
Qator = EnterValue(O'zgaruvchi, "To'liq ismni kiriting");

2. 1C ob'ektining tafsilotlarini (katalog / hujjat) yoki shakl tafsilotlarini (qarang) ko'rsatish uchun kiritish maydoni ko'pincha ishlatiladi. Bu foydalanuvchi tahrirlash maydonlari bilan ishlash uchun 1C-da eng keng tarqalgan vositadir.

3. Kirish maydonining imkoniyatlari kengaytirilishi mumkin (kiritish maydonining xususiyatlariga qarang, ustiga o'ng tugmasini bosing, batafsilroq):

  • Ko'p qatorli tahrirlash rejimini belgilang
  • Kengaytirilgan tahrirlash katagi (agar oldingi katakcha belgilansa mavjud)
  • Tasdiqlash qutisi Parol rejimi (qarang).

4. Agar kiritish maydonining barcha imkoniyatlari siz uchun etarli bo'lmasa, o'rnatilgan muharrir mavjud. Uni formaga qo'shish uchun Form/Insert Control menyusiga Matnli hujjat maydonini qo'shishingiz kerak. Uning xususiyatlarida siz uning ishlash rejimini - Kengaytma xususiyatini belgilashingiz mumkin.

Matnli hujjat maydonini ma'lumotlar bilan bevosita bog'lash mumkin emas. Shaklning OnOpen() hodisasi ishlovchisida funktsiyani yozish kerak (qarang):

Form Elements.ElementNameTextDocumentField.SetText(StringValue); //bu yerda ValueString - bu atributdan olingan matn

Va saqlash moslamasida - masalan, Saqlash tugmachasida - saqlashni qo'shing:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueBu yerdagi satr biz qiymatni saqlaydigan atributdir

5. 1C 8.2.11 versiyasida boshqariladigan shakllarda 1C liniyasini ifodalash uchun yangi variant paydo bo'ldi - Formatlangan hujjat maydoni.


Matn hujjatining maydoniga o'xshab, uni ochishda sozlashingiz va dastur yordamida o'zingiz saqlashingiz kerak.

  • Biz shakl yaratayotgan 1C ob'ektida (katalog, hujjat, ishlov berish va boshqalar) - qiymatni saqlash turiga ega atributni qo'shing.
  • OnReadOnServer() funksiyasida biz atributdan matnni o'rnatamiz

    //bu erda Atribut 1C ob'ektining qo'shilgan atributidir
    //bu yerda FormattedDocument - tahrirlash uchun formadagi maydon nomi
    &Serverda

    FormattedDocument = CurrentObject.Attributes.Get();
    Jarayonning oxiri

  • BeforeWritingOnServer() funksiyasida yoki tugma yordamida biz matnni maydondan yozamiz

    &Serverda
    ReadingOnServer(CurrentObject) paytidagi protsedura
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Jarayonning oxiri

8.3.6.1977 versiyasida amalga oshirilgan.

Biz satrlar bilan ishlash uchun mo'ljallangan funktsiyalar to'plamini kengaytirdik. Biz buni sizga string ma'lumotlarini tahlil qilish uchun yanada ilg'or vositalarni berish uchun qildik. Yangi funksiyalar matn tahlilining texnologik vazifalarida qulay va foydali bo‘ladi. Formatlangan shakldagi ma'lumotlarni o'z ichiga olgan matnni tahlil qilish bilan bog'liq vazifalarda. Bu uskunadan olingan ba'zi fayllarning tahlili yoki, masalan, texnologik jurnalning tahlili bo'lishi mumkin.

Oldindan yangi funksiyalarni bajaradigan barcha amallarni bajarishingiz mumkin edi. O'rnatilgan tilda yozilgan ko'p yoki kamroq murakkab algoritmlardan foydalanish. Shunday qilib, yangi funktsiyalar sizga mutlaqo yangi imkoniyatlarni bermaydi. Biroq, ular sizga kod miqdorini kamaytirish va kodni sodda va tushunarli qilish imkonini beradi. Bundan tashqari, ular sizga harakatlarning bajarilishini tezlashtirishga imkon beradi. Chunki platformada amalga oshirilgan funksiyalar, albatta, o‘rnatilgan tilda yozilgan shunga o‘xshash algoritmdan tezroq ishlaydi.

StrTemplate() formatlash funksiyasi

Bu funksiya parametrlarni satrga almashtiradi. Bunday konvertatsiya qilish zarurati ko'pincha, masalan, ogohlantirish xabarlarini ko'rsatishda paydo bo'ladi. Ushbu funktsiyaning sintaksisi quyidagicha:

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

<Шаблон>- bu parametr ko'rinishlarini almashtirishingiz kerak bo'lgan satr.

<Значение1> , ... <Значение10>- bu parametrlar (maksimal o'nta), ularning tasvirlari qatorga almashtirilishi kerak.

Shablonda almashtirishni amalga oshirmoqchi bo'lgan ma'lum joyni ko'rsatish uchun siz %1, ... %10 kabi markerlardan foydalanishingiz kerak. Shablonga kiritilgan markerlar soni va qiymatlarni o'z ichiga olgan parametrlar soni mos kelishi kerak.

Masalan, bunday operatorni bajarish natijasi:

qator bo'ladi:

2-qatordagi maʼlumotlar xatosi (Sana turi kerak)

StrCompare() satrlari bilan ishlash funksiyasi

Bu funksiya ikkita satrni katta-kichik harflarni sezmaydigan tarzda solishtiradi. Masalan, bu kabi:

Qiymatni taqqoslash ob'ektidan foydalanib, xuddi shu amalni avvalroq bajarishingiz mumkin:

Biroq, yangi funksiyadan foydalanish osonroq ko'rinadi. Bundan tashqari, funktsiya Qiymatni taqqoslash ob'ektidan farqli o'laroq, nozik mijozda ham, veb-mijozda ham ishlaydi.

StrStartsWith(), StrEndsAt() satrlar bilan ishlash funksiyalari

Bu funksiyalar satr belgilangan pastki satr bilan boshlanishini yoki satr belgilangan pastki qator bilan tugashini aniqlaydi. Ushbu funktsiyalar uchun algoritmni o'rnatilgan tilda amalga oshirish qiyin emas, lekin ularning mavjudligi sizga toza va tushunarli kod yozish imkonini beradi. Va ular tezroq ishlaydi.

Masalan, ular If iborasida foydalanish uchun qulay:

StrDivide(), StrConnect() satrlar bilan ishlash funksiyalari

Bu funksiyalar belgilangan ajratuvchi yordamida qatorni qismlarga ajratadi. Yoki aksincha, ular bir nechta satrlarni biriga birlashtirib, ular orasiga tanlangan ajratgichni kiritadilar. Ular jurnallar va texnologik jurnallarni yaratish yoki tahlil qilish uchun qulaydir. Masalan, siz texnologik jurnaldagi yozuvni keyingi tahlil uchun mos qismlarga osongina tahlil qilishingiz mumkin:

StrFind() satrlari bilan ishlash funksiyasi

Eski Find() funksiyasi oʻrniga biz qoʻshimcha imkoniyatlarga ega boʻlgan yangi funksiyani joriy qildik:

  • Turli yo'nalishlarda qidirish (boshidan, oxiridan);
  • Belgilangan joydan qidirish;
  • Belgilangan raqam bilan hodisani qidiring (ikkinchi, uchinchi va boshqalar).

Aslida, u eski funktsiyaning imkoniyatlarini takrorlaydi. Bu eski versiyalarda tuzilgan modullar bilan moslikni saqlash uchun amalga oshiriladi. Eski Find() funksiyasidan endi foydalanmaslik tavsiya etiladi.

Quyida yangi qidiruv imkoniyatlaridan foydalanish misoli keltirilgan. Teskari qidiruv sizga rasmiylashtirilgan qatorning oxirgi qismi kerak bo'lganda foydali bo'ladi, masalan, URL manzilidagi to'liq fayl nomi. Va ma'lum bir pozitsiyadan qidirish butun qatorda emas, balki ma'lum bo'lgan qismda qidirish kerak bo'lgan hollarda yordam beradi.