Qatorli robotlarning yangi funksiyalari.

topshirish / Golovna

Asosiy funksionallik Import qilingan 1C tili uchun 1C 8.3 qatorlari ibtidoiy turdagi qiymatlarga ega Qator

.

Ushbu turdagi ma'no uzoq vaqt davomida Unicode formatidagi qatorni almashtirishdir.

Qator turidagi o'zgarishlar - oyoqdagi bo'g'inlarning belgilari to'plami.

Misol 1. Oddiy matn tuzamiz.

Ryadkova Zminna = "Salom dunyo!";

1s qatorli robotlarning vazifalari 8.3<Строка>) Ushbu bo'lim 1 soniyada qatorlarni o'zgartirish yoki ularga mos keladigan ma'lumotlarni tahlil qilish imkonini beruvchi asosiy funktsiyalarga ega bo'ladi.

Chiziq uzunligi

StrLength(

.

Parametrda berilgan qatorga mos keladigan belgilar sonini aylantiradi.

Misol 2. “Salom dunyo!” qatoridagi belgilar sonini tekshiring.<Строка>) Qator = "Salom dunyo!";
Belgilar soni = StrLength(Row);

  • E'lon qilish (belgilar soni);
  • Ushbu kodning natijasi ekranda ketma-ket belgilar soni uchun ko'rsatiladi: 11.
  • AbbrL
  • AbbrL(
  • .
  • Ketma-ket birinchi belgidan oldin chap qo'lda turgan ahamiyatsiz belgilar mavjud.

Kichik belgilar:

sindirish;

tozalash buzilmaydi;

jadval tuzish;

vagonning aylanishi;<Строка>) qatorni siljitish;

shaklning tarjimasi (yon hikoya).

Misol 3. Yorug'lik qatorining chap tomonidagi barcha bo'shliqlarni tozalang!

va unga "Salom" qatorini qo'shing.

Qator = AbbrL ("yorug'lik!");<Строка>) Qator = "Salom" + Qator;

Ko'rsatish (Qator);

Kodni kiritish orqali sizning kodingiz ekranda “Salom dunyo!” qatorida ko'rsatiladi.

Qisqartirilgan

Qisqartma(<Строка>, <ЧислоСимволов>) . Ketma-ket birinchi belgining yonida turgan ahamiyatsiz belgilar mavjud.

4-misol. “Salom” va “Svit!” qatorini tuzing. "Salom dunyo!" iborasi Ism ishlatilgan, taxallus otamning harbiy kiyimidan olingan.

Ism va bosh harflardan qatorni olib tashlang.

Boshlang'ich = Lev(Spivrobitnik.Im'ya, 1);

Batkivshchina bosh harfi = Leo (Spivrobitnik. Po-Batkovy, 1);<Строка>, <ЧислоСимволов>) Im'ya tashqarisida = Spivrobitnik. Taxallus + " " + Ismning bosh harfi + "." Ketma-ket birinchi belgining yonida turgan ahamiyatsiz belgilar mavjud.+ Vatan tashabbusi + ".";

Men telsizdan foydalanaman To'g'ri(.

.

Qatorning qolgan belgilarini, parametrda ko'rsatilgan belgilar sonini tanlaydi

Qatorning qolgan belgilarini, parametrda ko'rsatilgan belgilar sonini tanlaydi<Строка>, <НачальныйНомер>, <ЧислоСимволов>) Belgilar soni ko'rsatilgan bo'lsa va qatorning pastki qismini siljitsa, butun qator aylantiriladi. Import qilingan 1C tili uchun 1C 8.3 qatorlari ibtidoiy turdagi qiymatlarga ega Misol 7. Masalan, qatorni o'zgartirsangiz, sana "yyyymmdd" formatida yoziladi, sana bilan qatorni olib tashlang va uni turga o'zgartiring. Sana Qator = "Qator sanasi: 20170910"; Ketma-ket birinchi belgining yonida turgan ahamiyatsiz belgilar mavjud. RowDate = O'ng (Qator, 8); Sana Sana = Sana (RowDate); Seredovishche.

Parametrda o'tgan buyurtmadan buyurtmani olib tashlaydi

, belgidan boshlab, parametrdagi har bir ko'rsatkichning raqami

Kob raqami

va parametrga o'tgan qo'shimcha miqdor<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) Bir qatordagi belgilarni raqamlash 1 dan boshlanadi.

  • Import qilingan 1C tili uchun 1C 8.3 qatorlari ibtidoiy turdagi qiymatlarga ega Agar qiymat noldan kichik yoki teng belgilansa, parametr 1 qiymatini oladi. Parametr sifatida
  • Belgilar soni belgilanmagan, belgilar qator oxirigacha tanlanadi.
  • Misol 8. Keyingi qatorda, to'qqizinchi pozitsiyadan boshlab, mintaqa kodini kiriting, so'ngra uni tanlang va keyingi qatorga yozing. Qator = "Hudud: 99 r. Moskva";
    • Viloyat = Seredovishche (qator, 9, 2);;
    • PageFind;
  • StrFind(.
  • Ushbu funktsiya belgilangan tartibni ketma-ket qidiradi va topilgan tartibning birinchi belgisining pozitsiya raqamini aylantiradi. Keling, ushbu funktsiyaning parametrlarini ko'rib chiqaylik:

.

Chiqish qatori;

PodryadkaPoshuk

.

Bir qatorda shoshilish;<Строка>) To'g'ridan-to'g'ri qidirish

.

To'g'ridan-to'g'ri qatordagi qatorni qidirishni ko'rsatadi.

Siz quyidagi qiymatlarni olishingiz mumkin:

To'g'ridan-to'g'ri, hazil bilan.

To'g'ridan-to'g'ri so'rayman.<Строка>) Pochatkova Lavozimi

.

RowNreg = NReg("Salom SWIT!");

Ko'rsatish (qator);

Kodni kiritish orqali sizning kodingiz ekranda “Salom Dunyo!” qatorida ko'rsatiladi.

treg<Строка>) treg(

.

Keyingi qadam bilan qator qayta tartibga solinadi: so'zning birinchi belgisi katta harfga, so'zning oxirgi belgisi kichik harfga aylantiriladi.

12-misol. “Salom, dunyo!” qatorida ajoyib birinchi harflarni oling.

RowTreg = TReg("salom nur!");

Show (RowTreg);<КодСимвола>) Kodni kiritish orqali sizning kodingiz ekranda “Salom Dunyo!” qatorida ko'rsatiladi.

Belgi

Belgi(

.

Unicod kodining orqasidagi belgini olib tashlaydi.

Misol 13. Dodamo chap va o'ng qo'l qatorida "Salom dunyo!"<Строка>, <НомерСимвола>) belgisi ★

RowZi yulduzli = Symbol("9733")+"Salom Dunyo!"+Symbol("9733");

E'lon qilish (Yulduzli qator);

Kodingizni kiritsangiz, sizning kodingiz ekranda “Salom Dunyo!★” qatorida ko'rsatiladi.

Kod belgisi

CodeCharacter(<Строка>) .

Birinchi parametrda tayinlangan, joylashuvi kengaytirilgan, boshqa parametrga tayinlangan tartibning Unicode-dagi belgi kodini oladi.

Misol 14. “Salom Dunyo!” qatoridagi qolgan belgi kodini toping.

Qator = "Salom dunyo!"; CodeSymbol = CodeSymbol (Qator, Chiziq Uzunligi (Qator));).

Ko'rsatish (kod belgisi);

Kodni kiritganingizda ekranda "!" belgisi paydo bo'ladi.<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - 33.

Bo'sh tikuv

Bo'sh tikuv (

.

U bo'sh bo'lishi uchun faqat ahamiyatsiz belgilar qatori tuzilganligini tekshiradi.

Misol 15. Bo'sh qator uchta bo'sh joydan iborat ekanligini tekshiring.<Строка>) Empty = EmptyRow(" "); Povidomity (bo'sh); Ushbu kodning natijasi ekranda "Shunday" so'zlarining ko'rinishi bo'ladi (mantiqiy ma'noning muntazam ifodasi

Haqiqat
Sahifani almashtiring
Sahifani almashtirish (
.

Chiqish qatoridagi barcha kirish qatorlarini toping va ularni almashtirish tartibi bilan almashtiring.

Misol 16. "Salom dunyo!" qatorida.

“Dunyo” so‘zi “Do‘stlar” so‘zi bilan almashtirilsin.

Qator = StrReplace("Salom Dunyo!", "Dunyo", "Do'stlar");<Строка>, <НомерСтроки>) .

Men y-sondan keyingi qatordan qatorni ayiraman.
Sahifani almashtiring
Sahifani almashtirish (
.

Qatorlarni raqamlash birinchisidan boshlanadi.

Misol 18. Matndan qolgan qatorni olib tashlang:

Matn = "Birinchi qator" + Belgilar. PS + "Boshqa qator" + Belgilar. PS + "Uchinchi qator";

RemainingRow = StrOtrimatiRoku (Matn, StrNumberRow (Matn));<Строка>, <ПодстрокаПоиска>) Show(OstAnyaRow);

Ushbu kodni kiritish orqali sizning kodingiz "Uchinchi qator" qatorining ekranida ko'rsatiladi.

Sahifa raqami Inhodzhen

StrNUMINCODE(

.

Belgilangan qatorning bir qator yozuvlarini qatorga aylantiradi.<Строка>, <СтрокаПоиска>) Funktsiya registrga sezgir.

19-misol. “c” harfi “1c 8.3 va 8.2-dagi qatorlar” qatoridan oldin uning registridan qatʼiy nazar necha marta paydo boʻlishini aniqlang. Qator = "1c 8.3 va 8.2-dagi qatorlar"; NumberInput = StrNumberInput(Vreg(Qator), "C");.

Povidomity (Raqamli kirishlar);

Ushbu kodning natijasi raqam kiritishning ekrani bo'ladi: 2.

BeginsWith<Строка>, <СтрокаПоиска>) BeginsWith(

. Qator = "1c 8.3 va 8.2-dagi qatorlar"; U birinchi parametrda bir qator uzatishlarni, boshqa parametrda bir qatorni tekshiradi va boshlaydi. NumberInput = StrNumberInput(Vreg(Qator), "C");.

20-misol. Tanlangan kontragentning IPN raqami 1 raqamidan boshlanadi. Iltimos, menga xabar bering.

Qarama-qarshi tomon

Qarama-qarshi tomonlar<Строка>, <Разделитель>, <ВключатьПустые>) IPN = Counterparty.IPN; CodeSymbol = CodeSymbol (Qator, Chiziq Uzunligi (Qator));).

BeginsUnit = StrBeginsWith(IPN, "1");

Bu qanday boshlanadiUnit Todi //Sizning kodingiz EndYaksto;

PageEndsAt

StrEndsWith(

.<Строки>, <Разделитель>) Birinchi parametrdagi uzatishlar seriyasi va boshqa parametrdagi seriyalar tugashini tekshiradi.

21-misol. Tanlangan kontragentning IPN raqami 2 raqami bilan tugaydi. Iltimos, almashtiruvchiga murojaat qiling.

Hisob uchun = 0 massiv bo'yicha. Miqdor () - 1 sikl massivi [Sch] = Qator (Masiv [Sch]);

KínetsCycle;

Qator = StrZ'ednati (Masiv, "; ");

Shisha orqasida lavha musiqasi

18.08.2014 Robotlarning qatordagi yangi funksiyalari

8.3.6.1977 versiyasida amalga oshirilgan.

Biz qatorlar bilan ishlash uchun funksiyalar doirasini kengaytirdik.

Biz buni sizga qator ma'lumotlarini tahlil qilish uchun ilg'or vositalarni berish uchun yaratdik.

Yangi funksiyalar texnologik jihatdan ilg‘or matn tahlili uchun qulay va qo‘shimcha bo‘ladi.<Шаблон>, <Значение1-Значение10>)

<Шаблон>Formatlangan ko'rinishdagi ma'lumotlarga mos keladigan matnni tahlil qilish bilan bog'liq vazifalarda.

<Значение1> , ... <Значение10>Bunga egalik paytida olingan har qanday fayllarni tahlil qilish yoki, masalan, texnologik jurnalni tahlil qilish kiradi.

Yangi funksiyalarni qo'shadigan barcha harakatlar avvalroq qo'shilishi mumkin.

Qo'shimcha yordam uchun mening ilhomim bilan yozilgan murakkab algoritmlar kamroq.

Shuning uchun, yangi funktsiyalar sizga hech qanday yangi imkoniyatlar bermaydi.

Biroq, ular kodni qisqartirish imkonini beradi, bu kodni ishlab chiqishni oson va tushunarli qiladi.

Bundan tashqari, badbo'y hid urushni tezlashtirishga imkon beradi.

Platformada amalga oshirilgan funktsiyalar, asosan, men tomonidan yozilgan shunga o'xshash algoritmga asoslangan holda ishlaydi.

Funktsiyani formatlash StrTemplate() Bu funksiya qator parametrlarini beradi.:

Bunday qayta yaratish zarurati ko'pincha, masalan, oldindan xabar berish soatidan oldin paydo bo'ladi. Bu funksiya qator parametrlarini beradi. Ushbu funktsiyaning sintaksisi quyidagicha ko'rinadi:

StrTemplate(

- Parametrlarni kiritish kerak bo'lgan ketma-ketlik.

Masalan, ular operatorda osongina vikorizatsiya qilinishi mumkin Yakshcho:

Robot Build() qatorlari bilan ishlaydi

Bu funksiyalar qatorni belgilangan ajratuvchi orqasida qismlarga ajratadi.

Aks holda, bir qator qatorlarni bittaga birlashtirib, ular orasiga tanlov ajratgichni qo'ying.

Qo'lda yaratilgan va tahlil qilingan jurnallar, texnologik jurnal. Masalan, texnologik jurnalni keyingi tahlil qilish uchun osongina qismlarga bo'lish mumkin: Robot qator funksiyasi StrFind()

  • Eski funktsiyani almashtirish
  • bilish()
  • Biz qo'shimcha imkoniyatlarga ega bo'lgan yangi funktsiyani amalga oshirdik:

Poshuk turli yo'nalishlarda (boshidan, oxiridan); Masalan, texnologik jurnalni keyingi tahlil qilish uchun osongina qismlarga bo'lish mumkin: Belgilangan joydan qidirish;

Belgilangan raqamdan yozuvni qidiring (boshqa, uchinchi va boshqalar).

Aslida, u eski funktsiyaning imkoniyatlarini takrorlaydi.

Bu eski versiyalardan tuzilgan modullar bilan chalkashmaslik uchun amalga oshiriladi.

Eski funksiya

Endi vikorizatsiya qilmaslik tavsiya etiladi.

Dumba pastroq ko'rsatilgan, bu vikoristning hazil qilishning yangi imkoniyatidir.

Agar sizga rasmiylashtirilgan qatorning qolgan qismi kerak bo'lsa, masalan, URL manzilidagi fayl nomidan tashqarida to'g'ridan-to'g'ri qidirish qulay.<Строка>, <НачальнаяПозиция>, <Длина>)

Va belgilangan pozitsiyadan hazil bu holatlarda yordam beradi, agar siz butun qatorda emas, balki ma'lum bir qismda hazil qilishingiz kerak bo'lsa. <Строки> 1C quvvat manbalarida qatorlar bilan ishlash uchun bir nechta mexanizmlar mavjud. <НачальнаяПозиция> Avvalo, qatorlar katlana oladi. <Длина> Boshqa yo'l bilan siz qatordan qatorni olishingiz mumkin. <Строка> Uchinchidan, satrlarni shablonga muvofiq tekislash mumkin. <Длина> Eksa bo'lishi mumkin va satrlarda ishlashi mumkin bo'lgan hamma narsa.

Katlanadigan qatorlar

Qatorga qatorlar qo'shish uchun "+" operatsiyasidan foydalaning. Siz faqat chiziqli qatorlar qatorlarini to'plashingiz mumkin.

VIBRATI "Ismi: " + Qarama-qarshi tomonlar.YAK 1-ustun nomi Z Dovidnik.Counterparties YAK Counterparties DE Counterparties.Posilannya = &Posilannya

Agar qator tafsilotlari quyidagi mezonlarga mos kelishini tekshirishingiz kerak bo'lsa, biz rozilik bildiramiz:

VIBRATI kontragentlari.Nomi YAK 1-ustun Z Dovidnik.Qarama-qarshi tomonlar YAK kontragentlari DE kontragentlari.Nomi = "Gazprom"

Nima uchun tekislashdan ko'ra ko'proq ayyorlikka ehtiyoj bor?

Faqat rashk va asabiylik emas, balki qo'shiq shabloniga o'xshashlikmi?

Funktsiyaning o'zi shu maqsadda xuddi shunday tarzda yaratilgan.

CONFIRMATIVE - naqshga mos keladigan qatorni teskari o'zgartirish uchun operator.

  • SQL-dagi LIKE ga o'xshash.
  • Operator o'ng qo'lda ko'rsatilgan ifoda qiymatini tenglashtirishga ham imkon beradi.
  • Ona qatori muhim ahamiyatga ega.
  • Ifodaning qiymati shablonni qanoatlantirsa, operator natijasi TRUE, aks holda FALSE bo'ladi.

Shablon qatoridagi tegishli belgilar xizmat belgilari bo'lib, qator belgisiga berilgan ma'noga ega:<Спецсимвол>% (yuzlab): iloji boricha ko'proq belgilarni joylashtirish uchun ketma-ketlik;<Спецсимвол>_ (stul): bitta qo'shimcha belgi;

Gateway havolasi