Naujos funkcijos darbui su stygomis. Naujos funkcijos, skirtos darbui su eilutėmis 1c dirbant su stygų pavyzdžiais

Užrašai iš pro žiūrėjimo stiklą

2014-08-18 Naujos funkcijos darbui su stygomis

Įdiegta 8.3.6.1977 versijoje.

Išplėtėme funkcijų rinkinį, skirtą darbui su eilutėmis. Tai padarėme norėdami suteikti jums pažangesnius įrankius, skirtus eilučių duomenims analizuoti. Naujos funkcijos bus patogios ir naudingos atliekant technologines teksto analizės užduotis. Atliekant užduotis, susijusias su teksto, kuriame yra suformatuotų duomenų, analizavimu. Tai gali būti kai kurių failų, gautų iš įrangos, analizė arba, pavyzdžiui, technologinio žurnalo analizė.

Anksčiau galėjote atlikti visus veiksmus, kurie atlieka naujas funkcijas. Naudojant daugiau ar mažiau sudėtingus algoritmus, parašytus integruota kalba. Todėl naujos funkcijos nesuteikia jums jokių iš esmės naujų galimybių. Tačiau jie leidžia sumažinti kodo kiekį ir padaryti kodą paprastesnį bei suprantamesnį. Be to, jie leidžia pagreitinti veiksmų atlikimą. Nes platformoje įdiegtos funkcijos, žinoma, veikia greičiau nei panašus algoritmas, parašytas integruota kalba.

Formatavimo funkcija StrTemplate()

Ši funkcija pakeičia parametrus į eilutę. Tokios konversijos poreikis dažnai iškyla, pavyzdžiui, kai rodomi įspėjamieji pranešimai. Šios funkcijos sintaksė yra tokia:

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

<Шаблон>- tai eilutė, į kurią reikia pakeisti parametrų atvaizdus.

<Значение1> , ... <Значение10>- tai yra parametrai (daugiausia dešimt), kurių atvaizdai turi būti pakeisti į eilutę.

Norėdami nurodyti konkrečią šablono vietą, kurioje norite atlikti pakeitimą, turite naudoti tokius žymenis kaip %1, ... %10. Šablone dalyvaujančių žymeklių skaičius ir parametrų, kuriuose yra reikšmės, skaičius turi sutapti.

Pavyzdžiui, tokio operatoriaus vykdymo rezultatas:

bus eilutė:

Duomenų klaida 2 eilutėje (reikia datos tipo)

Funkcija, skirta dirbti su eilutėmis StrCompare()

Ši funkcija lygina dvi eilutes neskiriant didžiųjų ir mažųjų raidžių. Pavyzdžiui, taip:

Tą patį veiksmą galėtumėte atlikti anksčiau naudodami objektą Vertybių palyginimas:

Tačiau naudotis nauja funkcija atrodo lengviau. Be to, funkcija, priešingai nei objektas Vertybių palyginimas, veikia tiek plonajame kliente, tiek žiniatinklio kliente.

Funkcijos, skirtos darbui su eilutėmis StrStartsWith(), StrEndsAt()

Šios funkcijos nustato, ar eilutė prasideda nurodyta poeile, ar eilutė baigiasi nurodyta poeile. Šių funkcijų algoritmą nėra sunku įgyvendinti įterptoje kalboje, tačiau jų buvimas leidžia parašyti švaresnį ir suprantamesnį kodą. Ir jie dirba greičiau.

Pavyzdžiui, juos patogu naudoti operatoriuje Jeigu:

Funkcijos, skirtos darbui su eilutėmis StrDivide(), StrConnect()

Šios funkcijos padalija eilutę į dalis, naudodamos nurodytą skyriklį. Arba atvirkščiai, jie sujungia kelias eilutes į vieną, tarp jų įterpdami pasirinktą skyriklį. Jie yra patogūs žurnalams ir technologiniams žurnalams kurti ar analizuoti. Pavyzdžiui, galite lengvai išanalizuoti technologinio žurnalo įrašą į dalis, tinkamas tolesnei analizei:

Funkcija darbui su eilutėmis StrFind()

Vietoj senos funkcijos Rasti ()Įdiegėme naują funkciją, kuri turi papildomų galimybių:

  • Ieškoti skirtingomis kryptimis (nuo pradžios, nuo pabaigos);
  • Ieškoti iš nurodytos padėties;
  • Ieškokite įvykio su nurodytu skaičiumi (antru, trečiu ir pan.).

Tiesą sakant, tai dubliuoja senosios funkcijos galimybes. Tai daroma siekiant išlaikyti suderinamumą su moduliais, sudarytais senesnėse versijose. Sena funkcija Rasti () Rekomenduojama daugiau nenaudoti.

Toliau pateikiamas naujų paieškos galimybių naudojimo pavyzdys. Atvirkštinė paieška naudinga, kai reikia paskutinio formalizuotos eilutės fragmento, pvz., viso failo pavadinimo URL. O paieška iš nurodytos padėties padeda tais atvejais, kai reikia ieškoti žinomame fragmente, o ne visoje eilutėje.

Įdiegta 8.3.6.1977 versijoje.

Išplėtėme funkcijų rinkinį, skirtą darbui su eilutėmis. Tai padarėme norėdami suteikti jums pažangesnius įrankius, skirtus eilučių duomenims analizuoti. Naujos funkcijos bus patogios ir naudingos atliekant technologines teksto analizės užduotis. Atliekant užduotis, susijusias su teksto, kuriame yra suformatuotų duomenų, analizavimu. Tai gali būti kai kurių failų, gautų iš įrangos, analizė arba, pavyzdžiui, technologinio žurnalo analizė.

Anksčiau galėjote atlikti visus veiksmus, kurie atlieka naujas funkcijas. Naudojant daugiau ar mažiau sudėtingus algoritmus, parašytus integruota kalba. Todėl naujos funkcijos nesuteikia jums jokių iš esmės naujų galimybių. Tačiau jie leidžia sumažinti kodo kiekį ir padaryti kodą paprastesnį bei suprantamesnį. Be to, jie leidžia pagreitinti veiksmų atlikimą. Nes platformoje įdiegtos funkcijos, žinoma, veikia greičiau nei panašus algoritmas, parašytas integruota kalba.

Formatavimo funkcija StrTemplate()

Ši funkcija pakeičia parametrus į eilutę. Tokios konversijos poreikis dažnai iškyla, pavyzdžiui, kai rodomi įspėjamieji pranešimai. Šios funkcijos sintaksė yra tokia:

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

<Шаблон>- tai eilutė, į kurią reikia pakeisti parametrų atvaizdus.

<Значение1> , ... <Значение10>- tai yra parametrai (daugiausia dešimt), kurių atvaizdai turi būti pakeisti į eilutę.

Norėdami nurodyti konkrečią šablono vietą, kurioje norite atlikti pakeitimą, turite naudoti tokius žymenis kaip %1, ... %10. Šablone dalyvaujančių žymeklių skaičius ir parametrų, kuriuose yra reikšmės, skaičius turi sutapti.

Pavyzdžiui, tokio operatoriaus vykdymo rezultatas:

bus eilutė:

Duomenų klaida 2 eilutėje (reikia datos tipo)

Funkcija, skirta dirbti su eilutėmis StrCompare()

Ši funkcija lygina dvi eilutes neskiriant didžiųjų ir mažųjų raidžių. Pavyzdžiui, taip:

Tą patį veiksmą galėtumėte atlikti anksčiau naudodami objektą Vertės palyginimas:

Tačiau naudotis nauja funkcija atrodo lengviau. Be to, ši funkcija, skirtingai nei vertės palyginimo objektas, veikia ir plonajame kliente, ir žiniatinklio kliente.

Funkcijos, skirtos darbui su eilutėmis StrStartsWith(), StrEndsAt()

Šios funkcijos nustato, ar eilutė prasideda nurodyta poeile, ar eilutė baigiasi nurodyta poeile. Šių funkcijų algoritmą nėra sunku įgyvendinti įterptoje kalboje, tačiau jų buvimas leidžia parašyti švaresnį ir suprantamesnį kodą. Ir jie dirba greičiau.

Pavyzdžiui, juos patogu naudoti If teiginyje:

Funkcijos, skirtos darbui su eilutėmis StrDivide(), StrConnect()

Šios funkcijos padalija eilutę į dalis, naudodamos nurodytą skyriklį. Arba atvirkščiai, jie sujungia kelias eilutes į vieną, tarp jų įterpdami pasirinktą skyriklį. Jie yra patogūs žurnalams ir technologiniams žurnalams kurti ar analizuoti. Pavyzdžiui, galite lengvai išanalizuoti technologinio žurnalo įrašą į dalis, tinkamas tolesnei analizei:

Funkcija darbui su eilutėmis StrFind()

Vietoj senos funkcijos Find() įdiegėme naują funkciją, kuri turi papildomų galimybių:

  • Ieškoti skirtingomis kryptimis (nuo pradžios, nuo pabaigos);
  • Ieškoti iš nurodytos padėties;
  • Ieškokite įvykio su nurodytu skaičiumi (antru, trečiu ir pan.).

Tiesą sakant, tai dubliuoja senosios funkcijos galimybes. Tai daroma siekiant išlaikyti suderinamumą su moduliais, sudarytais senesnėse versijose. Rekomenduojama nebenaudoti senosios Find() funkcijos.

Toliau pateikiamas naujų paieškos galimybių naudojimo pavyzdys. Atvirkštinė paieška naudinga, kai reikia paskutinio formalizuotos eilutės fragmento, pvz., viso failo pavadinimo URL. O paieška iš nurodytos padėties padeda tais atvejais, kai reikia ieškoti žinomame fragmente, o ne visoje eilutėje.

1C 8.3 eilutės integruotoje 1C kalboje reiškia primityvaus tipo reikšmes Linija. Šio tipo reikšmėse yra savavališko ilgio Unicode eilutė. Eilučių tipo kintamieji yra simbolių rinkinys, įtrauktas į kabutes.

1 pavyzdys. Sukurkime eilutės kintamąjį su tekstu.

StringVariable = "Sveikas pasaulis!";

Funkcijos dirbant su stygomis 1s 8.3

Šiame skyriuje bus pateiktos pagrindinės funkcijos, leidžiančios keisti 1c eilutes arba analizuoti jose esančią informaciją.

Stiprumas

Stiprumas(<Строка>) . Grąžina simbolių skaičių eilutėje, perduodamoje kaip parametras.

2 pavyzdys. Suskaičiuokime simbolių skaičių eilutėje "Sveikas pasaulis!"

String = "Sveikas pasaulis!"; Simbolių skaičius = String(Eilutė); Ataskaita (Skaičius simboliai);

Šio kodo vykdymo rezultatas bus simbolių skaičius eilutėje: 11.

AbbrL

AbbrL(<Строка>) . Apkarpomi nereikšmingi simboliai į kairę nuo pirmojo reikšmingo simbolio eilutėje.
Smulkūs veikėjai:

  • erdvė;
  • nelūžtanti erdvė;
  • lentelės;
  • vežimo grąžinimas;
  • eilutės vertimas;
  • formos (puslapio) vertimas.

3 pavyzdys. Pašalinkite visus tarpus iš kairės eilutės "pasaulis!" ir pridėkite eilutę „Sveiki“.

String = Santrumpa("pasaulis!"); String = "Sveiki"+Eilutė; Report(String);

Šio kodo vykdymo rezultatas bus eilutė „Hello world!“ ekrane.

Sutrumpintas

abr(<Строка>) . Apkarpomi nereikšmingi simboliai į dešinę nuo pirmojo reikšmingo simbolio eilutėje.

4 pavyzdys. Forma iš eilučių „Labas“ ir „taika! frazė "Sveikas pasaulis!"

Linija = Santrumpa("Sveiki ")+" "+ Santrumpa(" pasaulis!"); Report(String);

AbbrLP

AbbrLP(<Строка>) . Apkarpomi nereikšmingi simboliai į dešinę nuo pirmojo reikšmingo simbolio eilutėje, taip pat apkarpomi nereikšmingi simboliai į kairę nuo pirmojo reikšmingo eilutės simbolio. Ši funkcija naudojama dažniau nei dvi ankstesnės, nes ji yra universalesnė.

5 pavyzdys. Pašalinkite nereikšmingus simbolius kairėje ir dešinėje sandorio šalies pavadinime.

Sandorio šalis = Katalogai. Ieškoti pagal išsamią informaciją ("TIN", "0777121211"); AccountObject = Account.GetObject(); Sandorio šaliesObject.Pavadinimas = AbbrLP(Sandorio šaliesObject.Name); AccountObject.Write();

Liūtas

Liūtas(<Строка>, <ЧислоСимволов>) . Gauna pirmuosius eilutės simbolius, simbolių skaičius nurodomas parametre Simbolių skaičius.

6 pavyzdys. Įleiskite struktūrą Darbuotojas yra darbuotojo vardas, pavardė ir tėvavardis. Gaukite eilutę su pavarde ir inicialais.

VardasPradinis = Lev(Darbuotojo.Vardas, 1); Patroniminis inicialas = Liūtas(Darbuotojas. Patronimas, 1); FullName = Darbuotojas.Pavardė + " " + Vardo pradžia + "." + Vidurinė pradžia + ".";

Teisingai

Teisingai (<Строка>, <ЧислоСимволов>) . Gauna paskutinius eilutės simbolius, parametre nurodytą simbolių skaičių Simbolių skaičius. Jei nurodytas simbolių skaičius viršija eilutės ilgį, grąžinama visa eilutė.

7 pavyzdys. Tegul eilutės kintamojo pabaigoje įrašoma data formatu „yyyymmdd“, gaukite eilutę su data ir konvertuokite į tipą data.

String = "Dabartinė data: 20170910"; StringDate = teisės (Eilutė, 8); Data = Data(StringDate);

trečiadienį

trečiadienis (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Gauna poeilelę iš eilutės, perduotos kaip parametras Linija, pradedant nuo simbolio, kurio numeris nurodytas parametre PradinisSkaičius o ilgis perduotas į parametrą Simbolių skaičius. Simbolių numeracija eilutėje prasideda nuo 1. Jei parametre PradinisSkaičius nurodyta reikšmė mažesnė arba lygi nuliui, tada parametras įgauna reikšmę 1. Jei parametras Simbolių skaičius nenurodytas, tada pasirenkami simboliai iki eilutės pabaigos.

8 pavyzdys. Tegul eilutės kintamajame, pradedant nuo devintos pozicijos, yra regiono kodas, jį reikia gauti ir įrašyti atskiroje eilutėje.

Styga = "Regionas: 99 Maskva"; Regionas = vid.(Eilutė, 9, 2);

Puslapio radimas

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Ieško nurodytos poeilutės eilutėje, grąžindama rastos poeilutės pirmojo simbolio pozicijos numerį. Pažvelkime į šios funkcijos parametrus:

  • Linija. Šaltinio eilutė;
  • Ieškoti poeilutės. Ieškoti poeilutės;
  • Paieškos kryptis. Nurodo kryptį ieškoti poeilutės eilutėje. Gali imti vertes:
    • Paieškos kryptis. Nuo pradžios;
    • Paieška.Pabaigos kryptis;
  • Pradinė padėtis. Nurodo vietą eilutėje, nuo kurios prasideda paieška;
  • Skaičius Atsitikimai. Nurodo ieškomos poeilutės pasireiškimo numerį šaltinio eilutėje.

9 pavyzdys. Eilutėje "Sveikas pasaulis!" Nustatykite paskutinio „ir“ simbolio pasireiškimo vietą.

PositionNumber = StrFind("Sveikas pasaulis!", "ir", Paieškos kryptis.Pabaiga); Ataskaita(PozicijosNumeris);

Vykdant šį kodą bus rodomas paskutinio simbolio „ir“ pasireiškimo numeris: 9.

VReg

VReg(<Строка>) . Konvertuoja visus simbolius nurodytoje eilutėje 1s8 į didžiąsias raides.

10 pavyzdys: konvertuokite eilutę "labas pasaulis!" į didžiąsias raides.

StringVreg = VReg("sveikas pasaulis!"); Ataskaita(StringVreg);

Šio kodo vykdymo rezultatas bus eilutė "HELLO WORLD!"

NReg

NReg(<Строка>) . Konvertuoja visus simbolius nurodytoje eilutėje 1s8 į mažąsias raides.

11 pavyzdys: konvertuokite eilutę "HELLO WORLD!" į mažąsias raides.

StringNreg = NReg("SVEIKAS PASAULIS!"); Ataskaita(StringVreg);

Šio kodo vykdymo rezultatas bus eilutė "labas pasaulis!"

Treg

TReg(<Строка>) . Konvertuoja eilutę taip: pirmasis kiekvieno žodžio simbolis paverčiamas didžiosiomis raidėmis, likę žodžio simboliai paverčiami mažosiomis raidėmis.

12 pavyzdys: Pirmąsias žodžių raides eilutėje „labas pasaulis“ rašykite didžiosiomis raidėmis.

StringTreg = TReg("sveikas pasaulis!"); Ataskaita(StringTreg);

Šio kodo vykdymo rezultatas bus eilutė „Sveikas pasaulis!

Simbolis

Simbolis (<КодСимвола>) . Gauna simbolį pagal Unicod kodą.

13 pavyzdys. Pridėkite kairę ir dešinę eilutę „Sveikas pasaulis! simbolis ★

StringWithStars = Simbolis("9733")+"Sveikas pasaulis!"+Simbolis("9733"); Report(StringWithStars);

Šio kodo vykdymo rezultatas bus eilutė „★ Sveiki, pasauli!★“

Simbolio kodas

Simbolio kodas(<Строка>, <НомерСимвола>) . Gauna Unikodo simbolio kodą iš pirmame parametre nurodytos eilutės, esančios antrajame parametre nurodytoje pozicijoje.

14 pavyzdys. Sužinokite paskutinio simbolio kodą eilutėje „Sveikas pasaulis!

String = "Sveikas pasaulis!"; CharacterCode = CharacterCode(Eilutė, Strings(Eilutė)); Pranešti (simbolio kodas);

Šio kodo vykdymo rezultatas bus simbolio kodas „! – 33.

Tuščia eilutė

Tuščia eilutė (<Строка>) . Patikrina, ar eilutė susideda tik iš nereikšmingų simbolių, ty ar ji tuščia.

15 pavyzdys. Patikrinkite, ar eilutė, susidedanti iš trijų tarpų, yra tuščia.

Tuščias = EmptyString(" "); Ataskaita (tuščia);

Šio kodo vykdymo rezultatas bus žodis „Taip“ (loginės reikšmės eilutės išraiška Tiesa).

Puslapio keitimas

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Suranda visus paieškos poeilutės atvejus šaltinio eilutėje ir pakeičia ją pakaitine poeilute.

16 pavyzdys. Eilutėje "Sveikas pasaulis!" pakeisti žodį „Taika“ žodžiu „Draugai“.

String = StrReplace("Sveikas pasaulis!", "Pasaulis", "Draugai"); Report(String);

Šio kodo vykdymo rezultatas bus eilutė „Sveiki draugai!

StrNumberLines

StrNumberRow(<Строка>) . Leidžia suskaičiuoti kelių eilučių eilutės eilučių skaičių. Norėdami pereiti į naują eilutę 1s 8, naudokite simbolį PS(naujos eilutės simbolis).

17 pavyzdys. Nustatykite eilučių skaičių tekste:
"Pirma eilė
Antra eilutė
Trečioji eilutė"

Skaičius = StrNumberString("Pirmoji eilutė"+Simboliai.PS +"Antra eilutė"+Simboliai.PS +"Trečia eilutė"); Ataskaita(Skaičius);

Šio kodo vykdymo rezultatas bus teksto eilučių skaičius: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Gauna eilutę kelių eilučių eilutėje pagal jos numerį. Eilučių numeracija prasideda nuo 1.

18 pavyzdys. Gaukite paskutinę teksto eilutę:
"Pirma eilė
Antra eilutė
Trečioji eilutė"

Tekstas = "Pirmoji eilutė" + Simboliai PS + "Antra eilutė" + Simboliai. Paskutinė eilutė = StrGetRow(tekstas, StrNumberLines(tekstas)); Ataskaita (Paskutinė eilutė);

Šio kodo vykdymo rezultatas bus eilutė „Trečia eilutė“.

PuslapiųNumberAtvykimai

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Grąžina nurodytos poeilutės pasikartojimų skaičių eilutėje. Funkcija yra didžiosios ir mažosios raidės.

19 pavyzdys. Nustatykite, kiek kartų raidė „c“ pasirodo eilutėje „Eilutės 1s 8.3 ir 8.2“, neatsižvelgiant į jos raidę.

Linija = "Eilutės per 1s 8.3 ir 8.2"; Skaičiuspasireiškimai = StrSkaičiusAtlikimai(Vreg(String), "Su"); Ataskaita (įvykių skaičius);

Šio kodo vykdymo rezultatas bus įvykių skaičius: 2.

Puslapis prasideda nuo

StrStartsWith(<Строка>, <СтрокаПоиска>) . Patikrina, ar pirmame parametre perduota eilutė prasideda antrojo parametro eilute.

20 pavyzdys. Nustatykite, ar pasirinktos sandorio šalies TIN prasideda skaičiumi 1. Įveskite kintamąjį Sandorio šalis Sandorio šalys.

TIN = sandorio šalis.TIN; StartsUNits = StrStartsWith(TIN, "1"); Jei prasideda vienetais Tada //Jūsų kodas EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Patikrina, ar pirmame parametre perduota eilutė baigiasi antrojo parametro eilute.

21 pavyzdys. Nustatykite, ar pasirinktos sandorio šalies TIN baigiasi skaičiumi 2. Įveskite kintamąjį Sandorio šalis išsaugoma nuoroda į katalogo elementą Sandorio šalys.

TIN = sandorio šalis.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Jūsų kodas EndIf;

Puslapio padalijimas

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Padalina eilutę į dalis, naudodamas nurodytus skiriamuosius simbolius, ir įrašo gautas eilutes į masyvą. Pirmasis parametras saugo šaltinio eilutę, antrasis yra eilutė su skyrikliu, trečiasis nurodo, ar į masyvą reikia įrašyti tuščias eilutes (pagal numatytuosius nustatymus Tiesa).

22 pavyzdys. Turėkime eilutę su skaičiais, atskirtais simboliu „;“, gaukime skaičių masyvą iš eilutės.

Eilutė = "1; 2; 3"; Masyvas = StrDivide(Eilutė, ";"); Skaičiavimui = 0 pagal masyvą.Kiekis() - 1 ciklo bandymas Masyvas[Count] = Skaičius(Abbr(Masyvas[Skaičius])); Išimčių masyvas[Sch] = 0; EndAttemptsEndCycle;

Vykdymo metu bus gautas masyvas su skaičiais nuo 1 iki 3.

PageConnect

StrConnect(<Строки>, <Разделитель>) . Konvertuoja eilučių masyvą iš pirmojo parametro į eilutę, kurioje yra visi masyvo elementai, atskirti antrajame parametre nurodytu skyrikliu.

23 pavyzdys. Naudodami skaičių masyvą iš ankstesnio pavyzdžio, gaukite pradinę eilutę.

Sąskaitai = 0 pagal masyvą.Kiekis() - 1 ciklas Masyvas[Act] = String(Masyvas[Veiksmas]); EndCycle; Eilutė = StrConnect(Masyvas, "; ");

Yra keletas mechanizmų, kaip dirbti su eilutėmis 1C užklausose. Pirma, galima pridėti eilutes. Antra, galite paimti eilutę iš eilutės. Trečia, stygas galima palyginti, taip pat ir pagal šabloną. Tikriausiai tai viskas, ką galima padaryti su stygomis.

Stygos papildymas

Norėdami pridėti eilučių į užklausą, naudojama operacija „+“. Galite pridėti tik riboto ilgio eilutes.

PASIRINKITE „Vardas:“ + Sandorio šalys Pavadinimas AS 1 stulpelis FROM Sandorio šalys WHERE Sandorio šalys

Poeilutės funkcija

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

Funkcijos Environment() analogas iš objekto modelio. Funkcija Substring() gali būti taikoma eilutės duomenims ir leidžia pasirinkti fragmentą <Строки> , pradedant simbolio numeriu <НачальнаяПозиция> (simboliai eilutėje numeruojami pradedant nuo 1) ir ilgis <Длина> personažai. Funkcijos skaičiavimo rezultatas turi kintamo ilgio eilutės tipą, o ilgis bus laikomas neribotu, jei <Строка> turi neribotą ilgį ir parametrus <Длина> nėra konstanta arba didesnis nei 1024.

Jei eilutės ilgis yra mažesnis nei nurodyta antrajame parametre, funkcija grąžins tuščią eilutę.

Dėmesio! Nerekomenduojama naudoti funkcijos SUBSTRING() norint konvertuoti neriboto ilgio eilutes į riboto ilgio eilutes. Vietoj to geriau naudoti perdavimo operatorių EXPRESS().

Funkcija panaši

Jei turime įsitikinti, kad eilutės atributas atitinka tam tikrus kriterijus, palyginame jį:

SELECT Sandorio šalys Pavadinimas AS 1 stulpelis FROM Sandorio šalys WHERE Pavadinimas = "Gazprom".

Bet ką daryti, jei jums reikia subtilesnio palyginimo? Ne tik lygybė ar nelygybė, bet ir panašumas į tam tikrą modelį? Būtent tam buvo sukurta funkcija PANAŠAS.

LIKE – operatorius, skirtas patikrinti, ar eilutė yra panaši į šabloną. LIKE analogas SQL.

Panašus operatorius leidžia palyginti išraiškos, nurodytos jo kairėje, reikšmę su šablono eilute, nurodyta dešinėje. Išraiškos vertė turi būti eilutės tipo. Jei išraiškos reikšmė atitinka šabloną, operatoriaus rezultatas bus TRUE, kitu atveju jis bus FALSE.

Šie rašto eilutės simboliai yra aptarnavimo simboliai ir jų reikšmė skiriasi nuo eilutės simbolio:

  • % (procentai): seka, turinti bet kokį skaičių savavališkų simbolių;
  • _ (pabraukimas): vienas savavališkas simbolis;
  • […] (vienas ar daugiau simbolių laužtiniuose skliaustuose): bet koks atskiras simbolis, esantis laužtiniuose skliaustuose. Sąraše gali būti diapazonų, pavyzdžiui, nuo a iki z, o tai reiškia, kad į diapazoną įtrauktas savavališkas simbolis, įskaitant diapazono galus;
  • [^...] (laužtiniuose skliaustuose neigimo ženklas, po kurio yra vienas ar daugiau simbolių): bet koks atskiras simbolis, išskyrus tuos, kurie išvardyti po neigimo ženklo.

Bet koks kitas simbolis reiškia save ir nekelia jokios papildomos apkrovos. Jei vieną iš išvardytų simbolių reikia parašyti kaip save patį, tada prieš jį reikia įrašyti<Спецсимвол>. Aš pats<Спецсимвол>(bet koks tinkamas simbolis) apibrėžiamas tame pačiame teiginyje po raktinio žodžio SPECIAL CHARACTER.

Eilutė yra vienas iš primityvių duomenų tipų 1C:Enterprise 8 sistemose linija yra teksto.

Įveskite kintamųjų reikšmes linija yra įtrauktos į dvigubas kabutes. Galima pridėti keletą šio tipo kintamųjų.

Per1 = "1 žodis" ;
Per2 = "2 žodis" ;
Per3 = Per1 + " " + Per2;

Galų gale Per3 reikš " Žodis 1 Žodis 2 colių.

Be to, 1C:Enterprise 8 sistemos suteikia funkcijas, skirtas darbui su eilutėmis. Pažvelkime į pagrindinius:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcija skirta parodyti dialogo langą, kuriame vartotojas gali nurodyti tipo kintamojo reikšmę Linija. Parametras <Строка> yra būtinas ir jame yra kintamojo, į kurį bus įrašyta įvesta eilutė, pavadinimas. Parametras <Подсказка> neprivaloma – tai dialogo lango pavadinimas. Parametras <Длина> neprivaloma, rodo maksimalų įvesties eilutės ilgį. Numatytoji vertė yra nulis, o tai reiškia neribotą ilgį. Parametras <Многострочность> neprivaloma. Apibrėžiamas kelių eilučių teksto įvesties režimas: True – kelių eilučių teksto įvestis su eilučių skyrikliais; Netiesa – įveskite paprastą eilutę.

Galite įvesti eilutę, jei žinote simbolio kodą Unicode:

Simbolis (<КодСимвола>) — kodas įvedamas kaip skaičius.

Raidė= Simbolis(1103) ; // aš

Taip pat yra atvirkštinė funkcija, leidžianti sužinoti simbolio kodą.

Simbolio kodas(<Строка>, <НомерСимвола>) — grąžina nurodyto simbolio unikodo numerį kaip skaičių.

Teksto didžiųjų ir mažųjų raidžių konvertavimo funkcijos:

VReg(<Строка>) — Konvertuoja visus eilutės simbolius į didžiąsias raides.

NReg(<Строка>) — Konvertuoja visus eilutės simbolius į mažąsias raides.

TReg(<Строка>) — konvertuoja visus eilutės simbolius į pavadinimo didžiąsias ir mažąsias raides. Tai reiškia, kad pirmosios raidės visuose žodžiuose paverčiamos didžiosiomis raidėmis, o likusios raidės konvertuojamos į mažąsias.

Simbolių paieškos ir keitimo eilutėje funkcijos:

Rasti (<Строка>, <ПодстрокаПоиска>) — suranda paieškos poeilutės pasireiškimo simbolio numerį. Pavyzdžiui:

Rasti ("Styga" , "gerai" ) ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — suranda paieškos poeilutės pasikartojimo simbolio numerį, įvykio numeris nurodomas atitinkamame parametre. Šiuo atveju paieška pradedama simboliu, kurio numeris nurodytas parametre Pradinė padėtis. Ieškoti galima nuo eilutės pradžios arba pabaigos. Pavyzdžiui:

Skaičius4 atvejai = Str Rasti ( "Gynybiškumas", "apie" ,Paieškos kryptis. Nuo pradžios, 1, 4); // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – suranda visus paieškos poeilutės atvejus šaltinio eilutėje ir pakeičia ją pakaitine eilute.

StrReplace ("Eilutė" , "gerai" , "" ) ; // Puslapis

Tuščia eilutė (<Строка>) – patikrina, ar eilutėje nėra reikšmingų simbolių. Jei reikšmingų simbolių nėra arba visai nėra, vertė grąžinama Tiesa. Kitaip - Melas.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Skaičiuoja paieškos poeilutės pasikartojimų skaičių šaltinio eilutėje.

StrNumberCurrences ( „Mokykis, mokykis ir dar kartą mokykis“, "studija" , "" ) ; // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — pakeičia parametrus į eilutę pagal skaičių. Eilutėje turi būti pakeitimo žymenys, tokios formos: „%1..%N“. Žymeklių numeracija prasideda nuo 1. Jei parametro reikšmė Neapibrėžtas, pakeičiama tuščia eilutė.

StrTemplate ( "1 parametras = %1, 2 parametras = %2", "1" , "2" ) ; // 1 parametras = 1, 2 parametras = 2

Eilučių konvertavimo funkcijos:

Liūtas(<Строка>, <ЧислоСимволов>) – grąžina pirmuosius eilutės simbolius.

Teisingai (<Строка>, <ЧислоСимволов>) – grąžina paskutinius eilutės simbolius.

trečiadienis (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – grąžina ilgio eilutę<ЧислоСимволов>, pradedant nuo simbolio<НачальныйНомер>.

AbbrL(<Строка>) apkarpo nereikšmingus simbolius į kairę nuo pirmojo reikšmingo simbolio eilutėje.

abr(<Строка>) — nupjauna nereikšmingus simbolius į dešinę nuo paskutinio reikšmingo simbolio eilutėje.

AbbrLP(<Строка>) – nupjauna nereikšmingus simbolius į kairę nuo pirmojo reikšmingo simbolio eilutėje ir į dešinę nuo paskutinio reikšmingo simbolio eilutėje.

StrGetString(<Строка>, <НомерСтроки>) – Gauna kelių eilučių eilutę pagal skaičių.

Kitos funkcijos:

Stiprumas(<Строка>) – grąžina simbolių skaičių eilutėje.

StrNumberRow(<Строка>) – grąžina kelių eilučių eilutės eilučių skaičių. Eilutė laikoma nauja, jei ji nuo ankstesnės atskirta naujos eilutės simboliu.

StrCompare(<Строка1>, <Строка2> ) – lygina dvi eilutes neskiriant didžiųjų ir mažųjų raidžių. Funkcija veikia kaip objektas Vertybių palyginimas. Grąžinimai:

  • 1 - jei pirmoji eilutė yra didesnė už antrąją
  • -1 - jei antroji eilutė yra didesnė už pirmąją
  • 0 - jei eilutės yra lygios

StrCompare("Pirma eilutė" , "Antra eilutė") ; // 1