1c satrdagi ikkinchi hodisani toping. Satrlar bilan ishlash uchun yangi funksiyalar

💖 Sizga yoqdimi? Havolani do'stlaringiz bilan baham ko'ring

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 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:

StrTemplate(<Шаблон>, <Значение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.

1C so'rovlarida satrlar bilan ishlashning bir nechta mexanizmlari mavjud. Birinchidan, chiziqlar qo'shilishi mumkin. Ikkinchidan, siz satrdan pastki qatorni olishingiz mumkin. Uchinchidan, satrlarni, shu jumladan naqsh bo'yicha solishtirish mumkin. Bu, ehtimol, torlar bilan bajarilishi mumkin bo'lgan barcha narsadir.

String qo'shish

So'rovga qatorlar qo'shish uchun "+" operatsiyasidan foydalaniladi. Siz faqat cheklangan uzunlikdagi satrlarni qo'shishingiz mumkin.

"Ism:" + Kontrapartiyalar AS 1-Ustunni Katalogdan kontragentlar AS ni tanlang

Substring funktsiyasi

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

Ob'ekt modelidan Environment() funksiyasining analogi. Substring() funksiyasi string ma'lumotlariga qo'llanilishi mumkin va fragmentni tanlash imkonini beradi <Строки> , belgi raqamidan boshlanadi <НачальнаяПозиция> (satrdagi belgilar 1 dan boshlab raqamlanadi) va uzunligi <Длина> belgilar. Funktsiyani hisoblash natijasi o'zgaruvchan uzunlikdagi satr turiga ega va agar bo'lsa, uzunlik cheksiz hisoblanadi. <Строка> cheksiz uzunlik va parametrga ega <Длина> doimiy yoki 1024 dan katta emas.

Agar satr uzunligi ikkinchi parametrda ko'rsatilganidan kichik bo'lsa, u holda funktsiya bo'sh qatorni qaytaradi.

Diqqat! Cheksiz uzunlikdagi satrlarni cheklangan uzunlikdagi satrlarga aylantirish uchun SUBSTRING() funksiyasidan foydalanish tavsiya etilmaydi. Buning o'rniga EXPRESS() cast operatoridan foydalangan ma'qul.

Funktsiya o'xshash

Agar string atributi ma'lum mezonlarga javob berishiga ishonch hosil qilishimiz kerak bo'lsa, biz uni taqqoslaymiz:

Qarama-qarshi tomonlar nomini 1-ustun.

Ammo nozikroq taqqoslash kerak bo'lsa-chi? Faqat tenglik yoki tengsizlik emas, balki ma'lum bir naqshga o'xshashlikmi? SIMILAR funksiyasi aynan shu uchun yaratilgan.

LIKE — qatorni naqshga oʻxshashligini tekshirish operatori. SQL da LIKE ning analogi.

SIMILAR operatori uning chap tomonida ko'rsatilgan ifoda qiymatini o'ngda ko'rsatilgan naqsh qatori bilan solishtirish imkonini beradi. Ifodaning qiymati string tipida bo'lishi kerak. Ifodaning qiymati naqshga to'g'ri kelsa, operatorning natijasi TRUE bo'ladi, aks holda u FALSE bo'ladi.

Shablon qatoridagi quyidagi belgilar xizmat belgilari bo‘lib, satr belgisidan farqli ma’noga ega:

  • % (foiz): ixtiyoriy belgilarning istalgan sonini o'z ichiga olgan ketma-ketlik;
  • _ (pastki chiziq): ​​bitta ixtiyoriy belgi;
  • […] (kvadrat qavs ichida bir yoki bir nechta belgilar): kvadrat qavs ichida sanab o'tilgan har qanday bitta belgi. Ro'yxatda diapazonlar bo'lishi mumkin, masalan, a-z, ya'ni diapazonga kiritilgan ixtiyoriy belgi, jumladan diapazon oxirlari;
  • [^...] (kvadrat qavs ichida inkor belgisi, keyin bir yoki bir nechta belgilar): inkor belgisidan keyin sanab o‘tilganlardan boshqa har qanday bitta belgi.

Boshqa har qanday belgi o'zini anglatadi va qo'shimcha yuk ko'tarmaydi. Agar sanab o'tilgan belgilardan biri o'zi kabi yozilishi kerak bo'lsa, u holda uning oldiga yozilishi kerak<Спецсимвол>. O'zim<Спецсимвол>(har qanday mos belgi) keyin xuddi shu bayonotda aniqlanadi kalit so'z MAXSUS RAMZ.

Hammaga salom
Bugun ular mendan amalga oshirish hujjatini chop etishda hujjat prefiksini ko'rsatmaslikni so'rashdi, men muammoni quyidagicha hal qildim.

StrReplace(Raqam, Lev(Raqam, 3), "" );

Sintaksis yordamchisiga qaraganimda u menga shu qadar yoqdiki, bu haqda yozmoqchi edim 1C: Enterprise da satrlar bilan ishlash.

1C dagi satr ibtidoiy ma'lumotlar turiga ishora qiladi.

Agar siz 1C yordamiga qarasangiz, biz String turining quyidagi tavsifini ko'ramiz:
Qadriyatlar bu turdagi ixtiyoriy uzunlikdagi Unicode qatorini o'z ichiga oladi.
Agar siz strings haqida o'z so'zlaringizdan foydalansangiz, u ishlaydi. Satr har doim qo'shtirnoq bilan o'ralgan har xil belgilardan iborat doimiydir.

Chiziqni o'rnatish
Salom = "Salom yo'lovchi";

Odatdagi konfiguratsiyalardagi ko'p qatorli chiziqlar ko'pincha vertikal ajratuvchi "|" yordamida yaratiladi:
String = "Ko'p qatorli
|string
|yozmoq
|matn";

Satr ichidagi qo'shtirnoq qo'sh tirnoq bilan belgilanadi.
String = ""Qo'shtirnoq ichidagi matn"";

Satrlar ustida ko'plab operatsiyalar mavjud (satr ichida qidirish, birinchilarini aniqlash va h.k.), Sintaksis yordamchisiga qarash yaxshidir.
Sintaksis yordamchisi - o'rnatilgan tilning umumiy tavsifi -> o'rnatilgan funktsiyalar -> satrlar bilan ishlash funktsiyalari.

Satrlar bilan ishlash funksiyalari

Bu erda satrlar bilan ishlash funktsiyalarining qisqacha tavsifi:

VReg(<Строка>) — Funktsiya satrdagi barcha belgilarni bosh harfga o'zgartiradi.

SymbolCode(<Строка>, <НомерСимвола>) – Funksiya uzatilgan satrda joylashgan belgi kodini belgilangan raqamga ega bo‘lgan joyda oladi.

sher(<Строка>, <ЧислоСимволов>) – Funktsiya satrning birinchi chap belgilarini tanlaydi.

toping(<Строка>, <ПодстрокаПоиска>) — Funksiya qidiruv satrining manba qatorida pastki qator sifatida paydo bo‘lishini topadi.

NReg(<Строка>) — Funktsiya satrdagi barcha belgilarni kichik harflarga o'zgartiradi.

To'g'ri(<Строка>, <ЧислоСимволов>) Bu funksiya Chap funksiyalaridan farqi shundaki, u satrning o‘ng tomonidagi oxirgi belgilarni tanlaydi.

EmptyString(<Строка>) — Funksiya qatorda muhim belgilar mavjudligini tekshiradi.

Belgi(<КодСимвола>) — Funksiya belgilar kodini belgini o‘z ichiga olgan qatorga aylantiradi.

AbbrL(<Строка>) — Funktsiya satrdagi birinchi muhim belgining chap tomonidagi ahamiyatsiz belgilarni kesib tashlaydi.

AbbrLP(<Строка>) — Funktsiya satrdagi birinchi muhim belgining chap tomonidagi ahamiyatsiz belgilarni va qatordagi oxirgi muhim belgining o'ng tomonidagi bo'sh joylarni kesadi.

Qisqartma(<Строка>) — Funktsiya satrdagi oxirgi muhim belgining o'ng tomonidagi ahamiyatsiz belgilarni kesib tashlaydi.

chorshanba(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Funksiya belgidan boshlab belgilar qatorini tanlaydi<НачальныйНомер>, umumiy soni<ЧислоСимволов>.

StrLength(<Строка>) — Funksiya qatordagi belgilar sonini oladi.

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Funksiya manba qatoridagi qidiruv pastki satrining barcha takrorlanishini topadi va uni almashtiriladigan pastki qator bilan almashtiradi.

StrGetString(<Строка>, <НомерСтроки>) - Funktsiya raqam bo'yicha ko'p qatorli qatorni oladi.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — Funksiya manba qatoridagi qidiruv pastki qatorining takrorlanish sonini hisoblab chiqadi.

StrNumberRow(<Строка>) — Funksiya ko‘p qatorli qatordagi qatorlar sonini hisoblaydi. Ko'p qatorli satrda qatorlar yangi qatorlar bilan ajratiladi.

TReg(<Строка>) — Funktsiya satrni sarlavha registriga aylantiradi. Bu shuni anglatadiki, har bir so'zning birinchi belgisi sarlavha registriga yoki agar belgi uchun sarlavha kattaligi ko'rsatilmagan bo'lsa, bosh harfga aylantiriladi. Qolgan belgilar kichik harflarga aylantiriladi.

Konvertatsiya turi
Maʼlumotlar turlarini aniq konvertatsiya qilish uchun konvertatsiya qilinayotgan maʼlumotlar turi bilan bir xil nomdagi funksiyalar mavjud: String(<Значение>)

StringFromNumbers = String(Raqam);

Ushbu funktsiyalarning barchasi Sintaksis yordamchisida batafsil tavsiflangan; Men maqolada Sintaksis yordamchisi yangi boshlanuvchi dasturchiga qanday yordam berishi mumkinligini tasvirlab berdim.

Satrlar bilan ishlashga misollar

Raqamni satrga va orqaga aylantirish.

Yilning qatorli tasvirini olish uchun Format funksiyasidan foydalaning.

Yil = Format(CurrentDate(), "DF=yyyy") // Yil = "2012"

Guruh ajratuvchi belgini kiritmasdan raqamni satrga aylantirish uchun ( buzilmaydigan bo'shliq), siz BH=0 parametri bilan Format funksiyasini qo'llashingiz kerak:

Raqam = 2012 Satr = Format(Raqam, "NH=0" );

//String = "2012"

String Bo'sh joy yo'q.

Ko'zoynak orqali eslatmalar

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 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:

StrTemplate(<Шаблон>, <Значение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:

08/18/2014 Satrlar bilan ishlash uchun yangi funksiyalar Ob'ektdan foydalanib, xuddi shu amalni avvalroq bajarishingiz mumkin:

Qadriyatlarni solishtirish Ob'ektdan foydalanib, xuddi shu amalni avvalroq bajarishingiz mumkin Biroq, yangi funksiyadan foydalanish osonroq ko'rinadi. Va bundan tashqari, ob'ektdan farqli o'laroq, funktsiya

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.

, nozik mijozda ham, veb-mijozda ham ishlaydi. Masalan, ularni operatorda ishlatish 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

Agar Eski funktsiya o'rniga Toping()

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

Biz qo'shimcha imkoniyatlarga ega bo'lgan yangi funktsiyani amalga oshirdik: Eski funktsiya o'rniga Aslida, u eski funktsiyaning imkoniyatlarini takrorlaydi. Bu eski versiyalarda tuzilgan modullar bilan moslikni saqlash uchun amalga oshiriladi. Eski funksiya

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.

Qayta ishlatmaslik tavsiya etiladi.

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,

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

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

3. 1C-dagi konfiguratsiyalar nafaqat bir til (rus, ingliz yoki boshqa) uchun, 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 qatoridan olib tashlanadi qo'shimcha bo'shliqlar. 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 qatoridan 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 oxirgi versiya XONIM Office Word va Excel fayllarni ushbu formatda saqlaydi (mos ravishda docx va xlsx kengaytmani zip-ga o'zgartiradi, arxivda ochiladi).

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() funksiyasidan foydalanishingiz mumkin. Ularning harakatlarining natijasi bir xil - ular foydalanuvchi uchun har qanday 1C ob'ektining satrli tasvirini yaratadilar.

Katalog uchun sukut bo'yicha 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. Mavjud o'z yo'li 1C platformasi har qanday 1C ob'ektini satrga aylantiradi. 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/Vstavka boshqaruv menyusiga Field ni qo'shishingiz kerak matnli hujjat. 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 mavjud edi yangi imkoniyat 1C liniyasini ko'rsatish - 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
    &OnServer

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

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

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

Do'stlarga ayting