Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Windows 7, XP
  • Numri i pavlefshëm i kategorive në rreshtin origjinal 1c. Funksione të reja për të punuar me vargje

Numri i pavlefshëm i kategorive në rreshtin origjinal 1c. Funksione të reja për të punuar me vargje

Vargjet në 1C 8.3 në gjuhën e integruar 1c përfaqësojnë vlera të një lloji primitiv Linjë... Vlerat e këtij lloji përmbajnë një varg Unicode me gjatësi arbitrare. Variablat e llojit të vargut janë një grup karakteresh të mbyllura në thonjëza.

Shembulli 1. Le të krijojmë një variabël vargu me tekst.

StringVariable = "Përshëndetje botë!";

Funksionet për të punuar me vargje në 1c 8.3

Në këtë seksion, do të jepen funksionet kryesore që ju lejojnë të ndryshoni linjat në 1c, ose të analizoni informacionin që përmbahet në to.

Gjatësia e Rr

Gjatësia e fortë (<Строка>) ... Rikthen numrin e karaktereve që përmbahen në vargun e kaluar në parametër.

Shembulli 2. Le të numërojmë numrin e karaktereve në vargun "Përshëndetje botë!"

String = "Përshëndetje botë!"; Numri i Karaktereve = StrLength (String); Raporti (Numri i Personazheve);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e numrit të karaktereve në vargun: 11.

Shkurtesa

AbbrL (<Строка>) ... Shkurt karakteret e parëndësishme në të majtë të karakterit të parë domethënës në varg.
Personazhet e vegjël:

  • hapësirë;
  • hapësirë ​​që nuk prishet;
  • tabelimi;
  • kthim ngarkese;
  • përkthimi i linjës;
  • përkthimi i formularit (faqes).

Shembulli 3. Hiqni të gjitha hapësirat nga ana e majtë e rreshtit "botë!" dhe bashkëngjitni vargun "Përshëndetje" në të.

String = shkurtuar ("paqe!"); String = "Përshëndetje" + String; Raporti (String);

Rezultati i ekzekutimit të këtij kodi do të jetë dalja e rreshtit "Përshëndetje botë!"

Shkurtesa

Shkurtesa (<Строка>) ... Shkurt karakteret e parëndësishme në të djathtë të karakterit të parë domethënës në varg.

Shembulli 4. Forma "Përshëndetje" dhe "Bota!" shprehja "Përshëndetje botë!"

String = shkurtuar ("Përshëndetje") + "" + shkurtuar ("botë!"); Raporti (String);

SokrLP

SocrLP (<Строка>) ... Shkurt karakteret e parëndësishme në të djathtë të karakterit të parë domethënës në një varg, dhe gjithashtu shkurton karakteret e parëndësishme në të majtë të karakterit të parë domethënës në një varg. Ky funksion përdoret më shpesh se dy të mëparshmit, pasi është më i gjithanshëm.

Shembulli 5. Hiqni karakteret e parëndësishme majtas dhe djathtas në emër të palës tjetër.

Counterparty = Directories.Contractors.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject = Counterparty.GetObject (); CounterpartyObject.Name = SokrLP (CounterpartyObject.Name); CounterpartyObject.Write ();

nje luan

Nje luan(<Строка>, <ЧислоСимволов>) ... Merr karakteret e para të një vargu, numri i karaktereve është specifikuar në parametër Numri i Personazheve.

Shembulli 6. Lëreni në strukturë Punonjës përmbajnë emrin, mbiemrin dhe patronimin e punonjësit. Merrni një varg me mbiemrin dhe inicialet.

InitialName = Luani (Emri i Punonjësit, 1); Patronimik Inicial = Luani (Punonjës, Patronim, 1); Emri i plotë = Punonjës.Mbiemri + "" + Emri fillestar + "." + Iniciali i patronimit + ".";

E drejta

djathtas (<Строка>, <ЧислоСимволов>) ... Merr karakteret e fundit të një vargu, numri i karaktereve specifikohet në parametër Numri i Personazheve. Nëse numri i specifikuar i karaktereve tejkalon gjatësinë e vargut, atëherë i gjithë vargu kthehet.

Shembulli 7. Supozoni se fundi i një variabli të vargut përmban një datë në formatin "yyyymmdd", merrni një varg me një datë dhe kthejeni atë në llojin datë.

String = "Data aktuale: 20170910"; StringDate = Right (String, 8); Data = Data (StringDate);

e mërkurë

e mërkurë (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Merr një nënvarg nga një varg i kaluar si parametër Linjë, duke u nisur nga karakteri, numri i të cilit është specifikuar në parametër Numri i Fillimit dhe gjatësia i kalohet parametrit Numri i Personazheve. Numërimi i karaktereve në rresht fillon nga 1. Nëse në parametrin Numri i Fillimit specifikohet një vlerë që është më e vogël ose e barabartë me zero, atëherë parametri merr vlerën 1. Nëse parametri Numri i simboleve nuk është specifikuar, atëherë përzgjidhen karakteret deri në fund të rreshtit.

Shembulli 8. Supozoni se variabla e vargut duke filluar nga pozicioni i nëntë përmban kodin e rajonit, duhet ta merrni dhe ta shkruani në një rresht të veçantë.

Linja = "Rajoni: 99 Moskë"; Rajoni = E mërkurë (Rreshti, 9, 2);

Kërko

Gjej (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... Kërkon për nënvargun e specifikuar në një varg, kthen numrin e pozicionit të karakterit të parë të nënvargut të gjetur. Konsideroni parametrat e këtij funksioni:

  • Linjë... Vargu i burimit;
  • Nënstring... Nënvargu që do të kërkohet;
  • Drejtimi i kërkimit... Përcakton drejtimin për të kërkuar një nënvarg në një varg. Mund të marrë vlera:
    • Drejtimi i kërkimit. Nga fillimi;
    • Drejtimi i kërkimit.;
  • Pozicioni fillestar... Përcakton pozicionin në vargun nga i cili fillon kërkimi;
  • Numri i hyrjeve... Përcakton numrin e shfaqjeve të nënvargut të dëshiruar në vargun origjinal.

Shembulli 9. Në rreshtin "Përshëndetje botë!" përcaktoni pozicionin e shfaqjes së fundit të simbolit "dhe".

PositionNumber = StrNayti ("Përshëndetje botë!", "Dhe", DirectionSearch.End); Raporti (Numri i Pozicionit);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e numrit të shfaqjes së fundit të simbolit "dhe": 9.

VReg

Breg (<Строка>) ... Konverton të gjitha karakteret në vargun e specifikuar në 1s 8 në shkronja të mëdha.

Shembulli 10. Konvertoni vargun "hello world!" me shkronja të mëdha.

StringBreg = Breg ("përshëndetje botë!"); Raporti (StringVreg);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e rreshtit "HELLO WORLD!"

Nreg

HPreg (<Строка>) ... Konverton të gjitha karakteret e vargut të specifikuar në 1s 8 në shkronja të vogla.

Shembulli 11. Konvertoni vargun "HELLO WORLD!" me shkronja të vogla.

StringNreg = НReg ("HELLO WORLD!"); Raporti (StringVreg);

Rezultati i ekzekutimit të këtij kodi do të jetë dalja e rreshtit "përshëndetje botë!"

Treg

Treg (<Строка>) ... Konverton një varg si më poshtë: karakteri i parë i çdo fjale konvertohet në shkronja të mëdha, karakteret e mbetura të fjalës konvertohen në shkronja të vogla.

Shembulli 12. Shkruani shkronjat e para të fjalëve në vargun "hello world!"

StringTreg = Treg ("përshëndetje botë!"); Raporti (StringTreg);

Rezultati i ekzekutimit të këtij kodi do të jetë dalja në ekranin e rreshtit "Hello World!"

Simboli

Simboli (<КодСимвола>) ... Merr një karakter nga kodi i tij Unicod.

Shembulli 13. Le të shtojmë majtas dhe djathtas në rreshtin "Hello World!" simboli ★

StringWithStars = Simbol ("9733") + "Përshëndetje Botë!" + Simbol ("9733"); Raporti (StringWithStars);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e rreshtit "★ Hello World! ★"

Kodi i simboleve

Kodi i simbolit (<Строка>, <НомерСимвола>) ... Merr kodin e karakterit Unicode nga vargu i specifikuar në parametrin e parë, i vendosur në pozicionin e specifikuar në parametrin e dytë.

Shembulli 14. Gjeni kodin e karakterit të fundit në "Hello World!"

String = "Përshëndetje Botë!"; Kodi i Karakterit = Kodi i Karakterit (String, StrLength (String)); Raporti (SymbolCode);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e kodit të simbolit "!" - 33.

Linjë bosh

Linja e zbrazët (<Строка>) ... Kontrollon nëse një varg përmban vetëm karaktere të parëndësishme, domethënë nëse është bosh.

Shembulli 15. Kontrolloni nëse një varg i përbërë nga tre hapësira është bosh.

Empty = EmptyString (""); Raporti (i zbrazët);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e fjalës "Po" (shprehja e vargut të vlerës logjike E vërtetë).

Replace Page

Zëvendëso (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... Gjen të gjitha dukuritë e nënvargut të kërkimit në vargun origjinal dhe e zëvendëson atë me nënvargun zëvendësues.

Shembulli 16. Në rreshtin "Hello World!" zëvendësohet fjala “Paqe” me fjalën “Miq”.

String = StrReplace ("Hello World!", "World", "Friends"); Raporti (String);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e rreshtit "Përshëndetje miq!"

StrNumberStrings

StrNumri i linjave (<Строка>) ... Numëron numrin e rreshtave në një varg me shumë rreshta. Për të kaluar në një rresht të ri në 1s 8, përdorni karakterin PS(karakteri i furnizimit të linjës).

Shembulli 17. Përcaktoni numrin e rreshtave në tekst:
"Linja e parë
Rreshti i dytë
rreshti i tretë "

Number = StrNumberStrings ("Rreshti i parë" + Simbolet.PS + "Rreshti i dytë" + Simbolet.PS + "Rreshti i tretë"); Raporti (Numri);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e numrit të rreshtave në tekst: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Merr një varg në një varg me shumë rreshta sipas numrit të tij. Numërimi i rreshtave fillon me 1.

Shembulli 18. Merrni rreshtin e fundit në tekst:
"Linja e parë
Rreshti i dytë
rreshti i tretë "

Teksti = "Rreshti i parë" + Simbolet.PS + "Rreshti i dytë" + Simbolet.PS + "Rreshti i tretë"; LastRow = StrGetString (Text, StrNumberLines (Text)); Raporti (Last Line);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e rreshtit "Rreshti i tretë".

StrNumri i Ndodhive

StrNumri i Ndodhive (<Строка>, <ПодстрокаПоиска>) ... Rikthen numrin e dukurive të nënvargut të specifikuar në një varg. Funksioni është i ndjeshëm ndaj shkronjave të vogla.

Shembulli 19. Përcaktoni sa herë shkronja "c" shfaqet në rreshtin "Rreshtat në 1s 8.3 dhe 8.2", pavarësisht nga shkalla e saj.

Line = "Linjat në 1s 8.3 dhe 8.2"; Numri i Ndodhjeve = StrNumri i Ndodhjeve (Vreg (String), "S"); Raporti (Numri i Ndodhive);

Rezultati i ekzekutimit të këtij kodi do të jetë shfaqja e numrit të dukurive: 2.

Faqja Fillon me

Faqja Fillon me (<Строка>, <СтрокаПоиска>) ... Kontrollon nëse vargu i kaluar në parametrin e parë fillon me vargun në parametrin e dytë.

Shembulli 20. Përcaktoni nëse INN i palës tjetër të zgjedhur fillon me numrin 1. Lëreni variablin Kundërpartia Kontraktorët.

NIPT = Kundërpartia.INN; Starts withUnits = StrFillon me (INN, "1"); Nëse fillon Njësitë Atëherë // Kodi juaj EndIf;

Faqja përfundon me

Faqja përfundon me (<Строка>, <СтрокаПоиска>) ... Kontrollon nëse vargu i kaluar në parametrin e parë përfundon me vargun në parametrin e dytë.

Shembulli 21. Përcaktoni nëse TIN-i i palës tjetër të zgjedhur përfundon me shifrën 2. Lëreni variablin Kundërpartia ruhet një lidhje me një artikull drejtorie Kontraktorët.

NIPT = Kundërpartia.INN; Mbaron me dy = Str mbaron me (INN, "2"); Nëse mbaron me dyfish atëherë // Kodi juaj EndIf;

Ndarja e faqeve

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Ndan një varg në pjesë duke përdorur karakteret ndarëse të specifikuara dhe shkruan vargjet që rezultojnë në një grup. Parametri i parë ruan vargun origjinal, i dyti përmban vargun që përmban ndarësin, i treti specifikon nëse duhet të shkruhet vargjet boshe në grup (si parazgjedhje E vërtetë).

Shembulli 22. Supozoni se kemi një varg që përmban numra të ndarë me ";", merrni një grup numrash nga vargu.

Vargu = "1; 2; 3"; Array = StrSplit (String, ";"); Për Rd = 0 Sipas Array.Sasia () - 1 Përpjekje Cikli Array [Rd] = Numri (AbbrLP (Array [Rd])); Array përjashtimi [Сч] = 0; Fundi i Përpjekjeve Fundi i Loop;

Si rezultat i ekzekutimit, do të merret një grup me numra nga 1 në 3.

StrConnect

StrConnect (<Строки>, <Разделитель>) ... Konverton një grup vargjesh nga parametri i parë në një varg që përmban të gjithë elementët e grupit, të ndarë nga ndarësi i specifikuar në parametrin e dytë.

Shembulli 23. Duke përdorur grupin e numrave nga shembulli i mëparshëm, merrni vargun origjinal.

Për Rd = 0 Nga Vargu.Sasia () - 1 Vargu Cikli [Rd] = Vargu (Array [Rd]); Fundi i Ciklit; String = StrConnect (Array, ";");

Shënime nga Looking Glass

18.08.2014 Funksione të reja për të punuar me vargje

Zbatuar në versionin 8.3.6.1977.

Ne kemi zgjeruar grupin e funksioneve për të punuar me vargje. Ne e bëmë këtë për t'ju dhënë mjete më të avancuara për analizimin e të dhënave të vargut. Funksionet e reja do të jenë të përshtatshme dhe të dobishme në detyrat teknologjike të analizës së tekstit. Në detyrat që lidhen me analizimin e tekstit që përmban të dhëna të formatuara. Kjo mund të jetë analiza e disa skedarëve të marrë nga pajisjet, ose, për shembull, analiza e një regjistri teknologjik.

Të gjitha veprimet që kryejnë funksione të reja, mund t'i kishit kryer më parë. Me ndihmën e algoritmeve pak a shumë komplekse të shkruara në një gjuhë të ngulitur. Prandaj, funksionet e reja nuk ju japin ndonjë mundësi thelbësisht të re. Megjithatë, ato mund të zvogëlojnë sasinë e kodit, ta bëjnë kodin më të thjeshtë dhe më të lehtë për t'u kuptuar. Dhe përveç kësaj, ato ju lejojnë të shpejtoni ekzekutimin e veprimeve. Sepse funksionet e implementuara në platformë funksionojnë, natyrisht, më shpejt se një algoritëm i ngjashëm i shkruar në një gjuhë të integruar.

Funksioni i formatimit StrPattern ()

Ky funksion zëvendëson parametrat në një varg. Nevoja për një konvertim të tillë shpesh lind, për shembull, kur shfaqen mesazhe paralajmëruese. Sintaksa për këtë funksion është si më poshtë:

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

<Шаблон>është një varg për të zëvendësuar paraqitjet e parametrave.

<Значение1> , ... <Значение10>- këto janë parametra (maksimumi - dhjetë), paraqitjet e të cilave duhet të zëvendësohen në varg.

Për të treguar një vend specifik në shabllon ku dëshironi të kryeni zëvendësimin, duhet të përdorni shenja të formës% 1, ...% 10. Numri i shënuesve të përdorur në shabllon dhe numri i parametrave që përmbajnë vlera duhet të jenë të njëjta.

Për shembull, rezultati i ekzekutimit të një deklarate të tillë:

do të ketë një linjë:

Gabim i të dhënave në rreshtin 2 (kërkohet lloji i datës)

Funksioni për të punuar me vargjet StrCompare ()

Ky funksion krahason dy vargje në një mënyrë të pandjeshme. Për shembull, si kjo:

Ju mund të kishit kryer të njëjtin veprim përpara se të përdorni objektin Krahasimi i vlerave:

Megjithatë, përdorimi i funksionit të ri duket më i thjeshtë. Dhe përveç kësaj, një funksion, ndryshe nga një objekt Krahasimi i vlerave, funksionon si në klientin thin ashtu edhe në klientin në ueb.

Funksionet për të punuar me vargjet RowStart With (), RREnd With ()

Këto funksione përcaktojnë nëse një varg fillon me një nënvarg të caktuar ose përfundon me një nënvarg të caktuar. Algoritmi i këtyre funksioneve nuk është i vështirë për t'u zbatuar në gjuhën e integruar, por prania e tyre ju lejon të shkruani një kod më të pastër dhe më të kuptueshëm. Dhe ata punojnë më shpejt.

Për shembull, është i përshtatshëm për t'i përdorur ato në operator Nëse:

Funksionet për të punuar me vargjet StrSplit (), StrConnect ()

Këto funksione ndajnë vargun në pjesë sipas kufirit të specifikuar. Ose anasjelltas, ata kombinojnë disa rreshta në një, duke futur ndarësin e zgjedhur midis tyre. Ato janë të përshtatshme për krijimin ose analizimin e regjistrave, regjistrave teknologjikë. Për shembull, mund të çmontoni lehtësisht një regjistrim të një regjistri teknologjik në pjesë të përshtatshme për analiza të mëtejshme:

Funksioni për të punuar me vargjet StrFind ()

Në vend të funksionit të vjetër Gjej() ne kemi implementuar një veçori të re që ka aftësi shtesë:

  • Kërko në drejtime të ndryshme (nga fillimi, nga fundi);
  • Kërkoni nga një pozicion i caktuar;
  • Kërkoni për një ndodhi me numrin e specifikuar (i dyti, i treti, etj.).

Në fakt, ai kopjon aftësitë e funksionit të vjetër. Kjo është bërë për të ruajtur përputhshmërinë me modulet e përpiluara në versionet më të vjetra. Funksioni i vjetër Gjej() rekomandohet të mos e përdorni më.

Më poshtë është një shembull duke përdorur aftësitë e reja të kërkimit. Kërkimet prapa janë të dobishme kur ju nevojitet pjesa e fundit e një vargu të formalizuar, siç është emri i skedarit plotësisht i kualifikuar në një URL. Dhe kërkimi nga një pozicion i caktuar ndihmon në rastet kur duhet të kërkoni në një fragment të njohur, dhe jo në të gjithë vargun.

Lloji "String" gjendet në të gjitha gjuhët e programimit. Është primitiv, dhe në 1C ka shumë funksione për të punuar me të. Në këtë artikull, ne do të hedhim një vështrim më të afërt në mënyra të ndryshme të punës me llojet e vargjeve në 1C 8.3 dhe 8.2 duke përdorur shembuj.

Linjë

Për të kthyer një variabël të çdo lloji në një varg, ekziston një funksion me të njëjtin emër "String ()". Parametri i hyrjes do të jetë vetë ndryshorja, paraqitja e vargut të së cilës duhet të merret.

String (False) // kthen "Jo"
Vargu (12345) // kthen "12 345"
Vargu (Data aktuale ()) // 21/07/2017 11:55:36 ″

Është e mundur të konvertohen jo vetëm llojet primitive në një varg, por edhe të tjerë, për shembull, elementë të librave referencë, dokumenteve.

SocrLP, SocrL, SocrP

Parametrat hyrës të këtyre funksioneve janë një variabël e llojit të vargut. Funksionet heqin karaktere të parëndësishme (hapësirat, kthimet e karrocave dhe të tjera): nga anët e majta dhe të djathta, vetëm nga ana e majtë dhe vetëm nga e djathta, respektivisht.

AbbrLP ("Hapësirat në të dyja anët do të hiqen") // "Hapësirat në të dyja anët do të hiqen"
Shkurtuar ("Hapësirat në të dyja anët do të hiqen") // "Hapësirat në të majtë do të hiqen"
Shkurtesa ("Hapësirat në të dyja anët do të hiqen") // "Hapësirat në të djathtë do të hiqen"

Leo, djathtas, e mërkurë

Këto funksione ju lejojnë të shkurtoni një pjesë të një vargu. Funksioni "Lion ()" do të kthejë pjesën e vargut nga ana e majtë e gjatësisë së specifikuar. Funksioni "Right ()" është i njëjtë, por prerja bëhet në të djathtë. Funksioni "Avg ()" ju lejon të specifikoni numrin e karakterit nga i cili do të zgjidhet vargu dhe gjatësinë e tij.

Lion ("variabla e vargut", 4) // kthen "Stro"
Djathtas ("variabla e vargut", 7) // kthen "ndryshore"
e mërkurë ("variabla e vargut", 2, 5) // kthen "troco"

Gjatësia e Rr

Funksioni përcakton numrin e karaktereve që përmbahen në variablin e vargut.

StrLength ("Fjala") // rezultati i ekzekutimit do të jetë numri 5

Gjej

Funksioni bën të mundur kërkimin e një pjese të një vargu në çdo variabël vargu. Vlera e kthyer do të jetë një numër që tregon pozicionin e fillimit të vargut të gjetur. Nëse nuk gjendet asnjë përputhje, zero kthehet.

Ju lutemi vini re se kërkimet janë të ndjeshme ndaj shkronjave të vogla. Nëse vargu origjinal përmban më shumë se një ndodhi të nënvargut të kërkimit, funksioni do të kthejë fillimin e ndodhjes së parë.

Gjeni ("një, dy, një, dy, tre", "dy") // funksioni do të kthejë numrin 6

Linjë bosh

Përdorimi i këtij funksioni ju lejon të përcaktoni nëse një varg është bosh. Karaktere të parëndësishme si hapësira, kthimi i karrocës dhe të tjerë shpërfillen.

EmptyString ("Pupkin Vasily Ivanovich") // funksioni do të kthejë vlerën False
Funksioni EmptyString ("") // do të kthehet "E vërtetë".

VReg, NReg, Treg

Këto funksione janë shumë të dobishme për krahasimin dhe konvertimin e variablave të vargut. Breg () do të kthejë vargun origjinal me shkronja të mëdha, HPreg () me shkronja të vogla dhe TPreg () do ta formatojë atë në mënyrë që karakteri i parë i secilës fjalë individuale të shkruhet me shkronja të mëdha dhe të gjitha ato të mëvonshme do të jenë të vogla.

Vreg ("DREJTORI I PËRGJITHSHËM") // vlera e kthimit - "DREJTORI I PËRGJITHSHËM"
НReg ("DREJTORI I PËRGJITHSHËM") // vlera e kthimit - "drejtor i përgjithshëm"
TREG ("DREJTORI I PËRGJITHSHËM") // vlera e kthimit - "Drejtori i Përgjithshëm"

Replace Page

Ky funksion është analog me zëvendësimin në redaktuesit e tekstit. Kjo ju lejon të zëvendësoni një karakter ose grup karakteresh me një tjetër në variablat e vargut.

StrReplace ("e kuqe, e bardhë, e verdhë", ",", ";") // do të kthehet "e kuqe; E bardhë; e verdhe"

StrNumberStrings

Funksioni ju lejon të përcaktoni numrin e rreshtave të ndara nga kthimet në një variabël teksti.

Cikli në shembullin e mëposhtëm do të kalojë nëpër tre rrathë sepse funksioni Numri i rreshtave do të kthejë një vlerë prej 3:

Për ind = 1 nga StrNumberStrings ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Loop
<тело цикла>
Fundi i Ciklit;

StrGetString

Ky funksion funksionon me tekst me shumë rreshta në të njëjtën mënyrë si ai i mëparshmi. Kjo ju lejon të merrni një varg specifik nga një variabël teksti.

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // do të kthejë "String2"

StrNumri i Ndodhive

Funksioni numëron numrin e shfaqjeve të një karakteri ose nënvargu në vargun e kërkimit.

Rreshti i bashkëngjitjeve ("a; b; c; d;", ​​";") // funksioni do të kthejë numrin 4

Simboli dhe kodi i simboleve

Këto funksione ju lejojnë të merrni një karakter nga kodi i tij Unicode, si dhe të përcaktoni këtë kod nga vetë karakteri.

SymbolCode ("A") // funksioni do të kthejë numrin 1 040
SymbolCode (1040) // funksioni do të kthejë "A"

Detyra të shpeshta kur punoni me vargje

Lidhja e vargjeve

Për të lidhur vargje të shumta (për të kryer lidhjen), mjafton të përdorni operatorin e mbledhjes.

"Rreshti 1 ″ +" Rreshti 2 ″ // rezultati i shtimit të dy rreshtave do të jetë "Rreshti 1 Rreshti 2"

Konvertimi i llojit

Për të kthyer një lloj në një varg, për shembull, një referencë për një artikull fjalori, një numër etj., mjafton të përdorni funksionin "String ()". Funksionet si "Abbreviation ()" do të konvertojnë gjithashtu variablat në një varg, por menjëherë me shkurtimin e karaktereve të parëndësishme.

Vargu (1000) // do të kthejë "1000"

Ju lutemi vini re se kur konverton një numër në një varg, programi shtoi automatikisht një hapësirë ​​që ndan një mijë. Për të shmangur këtë, mund të përdorni konstruksionet e mëposhtme:

StrReplace (String (1000), Characters.NPP, "") // do të kthejë "1000"

Vargu (Formati (1000, "CHG =")) // do të kthejë "1000"

Citate në një varg

Shumë shpesh, do t'ju duhet të përballeni me nevojën për të specifikuar thonjëza në një variabël vargu. Mund të jetë ose një tekst kërkese i shkruar në konfigurues, ose thjesht një ndryshore. Për të zgjidhur këtë problem, ju vetëm duhet të vendosni dy thonjëza.

Titulli = String ("Horns and Hooves LLC" - kjo jemi ne! ") // kthimet" Horns and Hooves LLC - kjo jemi ne! "

Linja të shumta, ndërprerje rreshti

Për të krijuar tekst me shumë rreshta, mjafton të shtoni karaktere të ndërprerjes së rreshtit (Symbols.PS).

MultilineText = "Rreshti i parë" + Symbols.PS + "Rreshti i dytë"

Si të hiqni hapësirat

Për të hequr hapësirat në të djathtë ose në të majtë, mund të përdorni funksionin "Shkurtesa ()" (si dhe "Shkurtesa ()" dhe "Shkurtesa ()"):

StringNoSpaces = AbbreviatedLP ("Shumë shkronja") // funksioni do të kthejë vlerën "Shumë shkronja"

Nëse, pas konvertimit të një numri në një varg, duhet të hiqni hapësirat që nuk prishen, përdorni konstruksionin e mëposhtëm:

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // do të kthejë "99999"

Gjithashtu, programuesit shpesh përdorin konstruksionin e mëposhtëm, i cili ju lejon të hiqni ose zëvendësoni të gjitha hapësirat e një ndryshoreje teksti me një karakter tjetër:

StringNoSpaces = StrReplace ("mirë se erdhët", "", "") // kthen "përshëndetje"

Krahasimi i vargjeve me njëri-tjetrin

Termat mund të krahasohen me shenjën e zakonshme të barazimit. Krahasimi është i ndjeshëm ndaj rasteve.

"Hello" = "përshëndetje" // do të kthehet False
"Hello" = "Përshëndetje" // do të kthehet e vërtetë
"Hello" = "Mirupafshim" // do të kthehet False

Një varg është një nga llojet primitive të të dhënave në 1C: Enterprise 8. Variablat me llojin linjë përmbajnë tekst.

Vlerat e variablave të tipit linjë janë të mbyllura në thonjëza të dyfishta. Mund të shtohen disa variabla të këtij lloji.

Per1 = "Fjala 1";
Per2 = "Fjala 2";
Per3 = Per1 + "" + Per2;

Përfundimisht Per 3 do të thotë " Fjala 1 Fjalë 2 ″.

Për më tepër, sistemet 1C: Enterprise 8 ofrojnë funksione për të punuar me vargje. Le të shqyrtojmë ato kryesore:

Fut vargun (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funksioni synon të shfaqë një kuti dialogu në të cilën përdoruesi mund të specifikojë vlerën e një variabli të llojit Linjë... Parametri <Строка> kërkohet dhe përmban emrin e ndryshores në të cilën do të shkruhet vargu i futur. Parametri <Подсказка> opsionale është titulli i kutisë së dialogut. Parametri <Длина> opsionale, tregon gjatësinë maksimale të vargut të hyrjes. Parazgjedhja është zero, që do të thotë gjatësi e pakufizuar. Parametri <Многострочность> opsionale. Përcakton modalitetin e hyrjes për tekstin me shumë rreshta: True - futja e tekstit me shumë rreshta me ndarës rreshtash; False - futja e një vargu të thjeshtë.

Vargu mund të futet dhe t'i jepet kodi i karakterit Unicode:

Simboli (<КодСимвола>) — kodi futet si numër.

Shkronja = Simboli (1103); // UNË JAM

Ekziston gjithashtu një funksion i kundërt që ju lejon të zbuloni kodin e një karakteri.

Kodi i simbolit (<Строка>, <НомерСимвола>) — kthen numrin e specifikuar të karakterit Unicode si numër.

Funksionet e konvertimit të rastit:

Breg (<Строка>) - konverton të gjitha karakteret në varg në shkronja të mëdha.

HPreg (<Строка>) - konverton të gjitha karakteret në një varg në shkronja të vogla.

Treg (<Строка>) - konverton të gjitha karakteret në një varg në shkronja të mëdha. Kjo do të thotë, shkronjat e para në të gjitha fjalët konvertohen në shkronja të mëdha, dhe shkronjat e mbetura shndërrohen në shkronja të vogla.

Funksionet për kërkimin dhe zëvendësimin e karaktereve në një varg:

Gjej(<Строка>, <ПодстрокаПоиска>) - gjen numrin e karakterit të shfaqjes së nënvargut të kërkimit. Për shembull:

Gjeni ("String", "Oka"); // 4

Gjej (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - gjen numrin e karakterit të shfaqjes së nënvargut të kërkimit, numri i ndodhjes tregohet në parametrin përkatës. Në këtë rast, kërkimi fillon me karakterin, numri i të cilit është specifikuar në parametër Pozicioni fillestar. Kërkimi është i mundur nga fillimi ose nga fundi i vargut. Për shembull:

Numri 4 Ndodhitë = StrFind ( "Aftësia mbrojtëse", "o", Drejtimi i kërkimit. Që nga fillimi, 1, 4); // 7

Zëvendëso (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - gjen të gjitha dukuritë e nënvargut të kërkimit në vargun origjinal dhe e zëvendëson atë me nënvargun zëvendësues.

StrReplace ("String", "Oka", ""); // Faqe

Linja e zbrazët (<Строка>) - kontrollon një varg për karaktere domethënëse. Nëse nuk ka karaktere domethënëse, ose nuk ka karaktere fare, atëherë vlera kthehet E vërtetë... Përndryshe - Gënjeshtra.

StrNumri i Ndodhive (<Строка>, <ПодстрокаПоиска>) - llogarit numrin e dukurive të nënvargut të kërkimit në vargun origjinal.

StrNumri i Ndodhive ( "Studoni, studioni dhe studioni përsëri", "te studiosh" , "" ) ; // 3

StrPattern (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — zëvendëson parametrat në varg me numër. Vargu duhet të përmbajë shënues zëvendësues të formës: "% 1 ..% N". Shënuesit numërohen duke filluar nga 1. Nëse vlera e parametrit E papërcaktuar, një varg bosh është zëvendësuar.

StrPattern ( "Parametri 1 =% 1, Parametri 2 =% 2", "1" , "2" ) ; // Parametri 1 = 1, Parametri 2 = 2

Funksionet e konvertimit të vargut:

Nje luan(<Строка>, <ЧислоСимволов>) - kthen fillimisht karakteret e para të vargut.

djathtas (<Строка>, <ЧислоСимволов>) - kthen karakteret e fundit të vargut.

e mërkurë (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - kthen një varg gjatësie<ЧислоСимволов>duke filluar nga personazhi<НачальныйНомер>.

AbbrL (<Строка>) shkurton karakteret e parëndësishme në të majtë të karakterit të parë domethënës në varg.

Shkurtesa (<Строка>) - ndërpret karakteret e parëndësishme në të djathtë të karakterit të fundit domethënës në varg.

SocrLP (<Строка>) - ndërpret karakteret e parëndësishme në të majtë të karakterit të parë domethënës në rresht dhe në të djathtë të karakterit të fundit domethënës në rresht.

StrGetString (<Строка>, <НомерСтроки>) - merr një varg me shumë rreshta sipas numrit.

Funksione të tjera:

Gjatësia e fortë (<Строка>) - kthen numrin e karaktereve në një varg.

StrNumri i linjave (<Строка>) - kthen numrin e rreshtave në një varg me shumë rreshta. Një rresht konsiderohet i ri nëse ndahet nga rreshti i mëparshëm me një karakter të linjës së re.

Krahaso (<Строка1>, <Строка2> ) - krahason dy vargje, nuk ka rëndësi të madhe. Funksioni funksionon në të njëjtën mënyrë si një objekt Krahasimi i vlerave... Kthimet:

  • 1 - nëse rreshti i parë është më i madh se i dyti
  • -1 - nëse rreshti i dytë është më i madh se i pari
  • 0 - nëse vargjet janë të barabarta

StrCompare ("Rreshti i parë", "Rreshti i dytë"); // një

Ka pak mekanizma për të punuar me vargjet në pyetjet 1C. Së pari, linjat mund të shtohen. Së dyti, ju mund të merrni një nënvarg nga një varg. Së treti, vargjet mund të krahasohen, duke përfshirë edhe modelin. Kjo është ndoshta gjithçka që mund të bëni me vargjet.

Lidhja e vargjeve

Për të shtuar vargje në një pyetje, përdoret operacioni "+". Mund të palosen vetëm linja me gjatësi të kufizuar.

ZGJIDH "Emri:" + Kundërpalët. Emri AS Kolona 1 NGA Drejtoria.

Funksioni i nënvargut

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

Analog i funksionit Environment () nga modeli i objektit. Funksioni Substring () mund të aplikohet në të dhëna të një lloji vargu dhe ju lejon të zgjidhni një fragment <Строки> duke filluar me numrin e karakterit <НачальнаяПозиция> (karakteret në varg numërohen nga 1) dhe gjatësia <Длина> personazhet. Rezultati i vlerësimit të funksionit ka një lloj vargu me gjatësi të ndryshueshme dhe gjatësia do të konsiderohet e pakufizuar nëse <Строка> ka gjatësi dhe parametra të pakufizuar <Длина> nuk është konstante ose tejkalon 1024.

Nëse gjatësia e vargut është më e vogël se ajo e specifikuar në parametrin e dytë, atëherë funksioni do të kthejë një varg bosh.

Kujdes! Përdorimi i funksionit SUBSTRING () për të kthyer vargjet me gjatësi të pakufizuar në vargje me gjatësi të kufizuar nuk rekomandohet. Është më mirë të përdorni një operacion të derdhjes si EXPRESS () në vend.

Funksioni si

Nëse duhet të sigurohemi që një atribut i vargut plotëson disa kritere, ne e krahasojmë atë:

ZGJIDHni Kundërpalët. Emri AS Kolona1 NGA Drejtoria. Kundërpalët AS Kundërpalët WHERE Kundërpalët. Emri = "Gazprom"

Por çfarë nëse doni një krahasim më të ndërlikuar? Jo vetëm barazi apo pabarazi, por si një model i caktuar? Pikërisht për këtë është krijuar funksioni LIKE.

LIKE - Operatori për kontrollimin e një vargu si një model. Analog i LIKE në SQL.

Operatori LIKE ju lejon të krahasoni vlerën e shprehjes së specifikuar në të majtë të saj me vargun e shabllonit të specifikuar në të djathtë. Vlera e shprehjes duhet të jetë e tipit string. Nëse vlera e shprehjes përputhet me modelin, operatori do të rezultojë në TRUE, përndryshe - FALSE.

Karakteret e mëposhtme në vargun e shabllonit janë karaktere shërbimi dhe kanë një kuptim të ndryshëm nga karakteri i vargut:

  • % (përqindje): një sekuencë që përmban çdo numër karakteresh arbitrare;
  • _ (nënvizoj): një karakter arbitrar;
  • [...] (Një ose më shumë karaktere në kllapa katrore): çdo karakter i vetëm i renditur brenda kllapave katrore. Numërimi mund të përmbajë vargje, për shembull, a-z, që do të thotë një karakter arbitrar i përfshirë në interval, duke përfshirë skajet e diapazonit;
  • [^…] (Në kllapa katrore një shenjë mohimi e ndjekur nga një ose më shumë karaktere): çdo karakter i vetëm përveç atyre të renditur pas shenjës së mohimit.

Çdo simbol tjetër nënkupton vetveten dhe nuk ka ndonjë kuptim shtesë. Nëse është e nevojshme të shkruhet një nga personazhet e listuar si vetvetja, atëherë duhet të paraprihet<Спецсимвол>... Veten time<Спецсимвол>(çdo karakter i përshtatshëm) përcaktohet në të njëjtën deklaratë pas fjalës kyçe KARAKTER SPECIALE.

Artikujt kryesorë të lidhur