Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Windows 7, XP
  • Netačan broj kategorija u izvornoj liniji 1c. Nove nizove funkcije

Netačan broj kategorija u izvornoj liniji 1c. Nove nizove funkcije

Nizovi u 1C 8.3 u ugrađenom jeziku 1c su vrijednosti primitivnog tipa Linija. Vrijednosti ovog tipa sadrže Unicode niz proizvoljne dužine. Varijable tipa string su skup znakova zatvorenih u navodnike.

Primjer 1. Kreirajmo varijablu niza sa tekstom.

StringVariable = "Zdravo svijete!";

Funkcije za rad sa stringovima u 1s 8.3

Ovaj odjeljak će pružiti glavne funkcije koje vam omogućavaju da mijenjate linije u 1s ili analizirate informacije sadržane u njima.

Snaga

Snaga(<Строка>) . Vraća broj znakova sadržanih u nizu koji je proslijeđen u parametru.

Primjer 2. Izbrojimo broj znakova u nizu "Hello world!".

String = "Zdravo svijete!"; Broj znakova = StrLength(String); Izveštaj (broj karaktera);

Rezultat izvršavanja ovog koda će biti prikaz broja znakova u nizu: 11.

Skraćeno

skraćeno(<Строка>) . Sječe znakove koji nisu značajni lijevo od prvog značajnog znaka u nizu.
Nebitni likovi:

  • prostor;
  • neprekidni prostor;
  • tabelarni prikaz;
  • povrat kočije;
  • prijevod redaka;
  • prevod obrasca (stranica).

Primjer 3. Uklonite sve razmake s lijeve strane niza "mir!" i dodajte string "Hello" na njega.

String = abbr("svijet!"); String = "Bok"+String; Obavijesti (niz);

Rezultat izvršenja ovog koda će biti prikaz stringa "Hello world!".

Skraćenica

skraćeno (<Строка>) . Sječe nebitne znakove desno od prvog značajnog znaka u nizu.

Primjer 4. Formirajte iz nizova "Hello" i "world!" fraza "Zdravo svijete!"

String = abbr("Bok")+" "+abbr("svijet!"); Obavijesti (niz);

Skraćeno LP

Abbrl(<Строка>) . Sječe nebitne znakove desno od prvog značajnog znaka u nizu, također skraćuje nebitne znakove lijevo od prvog značajnog znaka u nizu. Ova funkcija se koristi češće od prethodne dvije, jer je svestranija.

Primjer 5. Uklonite beznačajne znakove s lijeve i desne strane u nazivu druge strane.

Izvođač = Direktoriji.Izvođači.Pronađi po detaljima("TIN", "0777121211"); ContractorObject = Contractor.GetObject(); ContractorObject.Description = Skraćeni LP(ContractorObject.Description); ContractorObject.Write();

lav

lav (<Строка>, <ЧислоСимволов>) . Dobiva prve znakove niza, broj znakova je naveden u parametru Broj znakova.

Primjer 6. Neka struktura Zaposleni sadrže ime, prezime i patronim zaposlenog. Nabavite niz sa prezimenom i inicijalima.

PočetnoIme = Lav(Ime zaposlenog, 1); Patronim Initial = Lav(Zaposleni.Patronim, 1); Puno ime = Employee.Prezime + " " + Početno ime + "." + Patronimsko inicijalo + ".";

Prava

tačno (<Строка>, <ЧислоСимволов>) . Dobiva posljednje znakove niza, broj znakova je naveden u parametru Broj znakova. Ako navedeni broj znakova premašuje dužinu niza, onda se vraća cijeli niz.

Primjer 7. Neka se datum napiše na kraju string varijable u formatu “ggggmmdd”, dobijete string sa datumom i pretvorite ga u tip datum.

String = "Trenutni datum: 20170910"; StringData = Prava(String, 8); Datum = Datum(StringDate);

srijeda

srijeda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Dobiva podniz iz niza proslijeđenog u parametru Linija, počevši od znaka čiji je broj naveden u parametru Početni broj i dužina proslijeđena parametru Broj znakova. Numeracija znakova u nizu počinje od 1. Ako parametar Početni broj specificirana je vrijednost manja ili jednaka nuli, tada parametar uzima vrijednost 1. Ako je parametar Broj znakova nije navedeno, selektiraju se znakovi do kraja niza.

Primer 8. Neka string varijabla sadrži kod regiona počevši od devete pozicije, trebalo bi da ga dobijete i upišete u poseban red.

String = "Regija: 99 Moskva"; Region = Prosjek(Red, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Traži navedeni podniz u nizu, vraća broj pozicije prvog znaka pronađenog podniza. Uzmite u obzir parametre ove funkcije:

  • Linija. Izvorni niz;
  • SubstringSearch. Željeni podniz;
  • DirectionSearch. Određuje smjer traženja podniza u nizu. Može uzeti vrijednosti:
    • Smjer pretraživanja. Od početka;
    • Smjer pretraživanja. Od kraja;
  • StartPosition. Određuje poziciju u nizu na kojoj treba započeti pretragu;
  • Entry Number. Određuje broj pojavljivanja traženog podniza u izvornom nizu.

Primjer 9. U redu "Zdravo svijete!" odredite poziciju posljednjeg pojavljivanja znaka "i".

PositionNumber = StrFind("Hello World!", "and", SearchDirection.From End); Obavijesti (broj pozicije);

Rezultat izvršenja ovog koda bit će prikaz broja posljednjeg pojavljivanja simbola "i" na ekranu: 9.

VReg

VReg(<Строка>) . Pretvara sve znakove navedenog niza u 1s 8 u velika slova.

Primjer 10. Konvertirajte string "zdravo svijet!" na velika slova.

StringVreg = Vreg("zdravo svijet!"); Izvještaj(StringVreg);

Rezultat izvršenja ovog koda će biti prikaz stringa "HELLO WORLD!"

HReg

HReg(<Строка>) . Pretvara sve znakove navedenog niza u 1s 8 u mala slova.

Primjer 11. Pretvorite string "HELLO WORLD!" na mala slova.

StringNreg = NReg("HELLO WORLD!"); Izvještaj(StringVreg);

Rezultat izvršenja ovog koda će biti prikaz stringa "zdravo svijet!"

TReg

TReg(<Строка>) . Konvertuje string na sledeći način: prvi znak svake reči se konvertuje u velika slova, a preostali znakovi reči se pretvaraju u mala slova.

Primjer 12. Napišite velika slova riječi u nizu "zdravo svijet!".

StringTreg = TReg("zdravo svijet!"); Izvještaj(StringTreg);

Rezultat izvršenja ovog koda će biti prikaz stringa "Hello World!"

Simbol

simbol(<КодСимвола>) . Dobiva znak pomoću svog Unicode koda.

Primjer 13. Dodajte lijevo i desno u red "Hello World!" simbol ★

StringWithStars = Character("9733")+"Hello World!"+Character("9733"); Izvještaj(StringWithStars);

Rezultat izvršenja ovog koda će biti prikaz stringa "★Hello World!★"

SymbolCode

SymbolCode(<Строка>, <НомерСимвола>) . Dobiva Unicode karakterni kod iz niza specificiranog u prvom parametru, koji se nalazi na poziciji navedenoj u drugom parametru.

Primjer 14. Saznajte kod posljednjeg znaka u nizu "Hello World!".

String = "Hello World!"; CharacterCode =CharacterCode(String, StrLength(String)); Obavijesti (CharacterCode);

Rezultat izvršenja ovog koda će biti prikaz koda simbola "!" — 33.

Prazan red

Prazan red (<Строка>) . Provjerava da li se niz sastoji samo od znakova koji nisu značajni, odnosno da li je prazan.

Primjer 15. Provjerite da li je string prazan i da li se sastoji od tri razmaka.

Empty = EmptyString(" "); Izvještaj (prazan);

Rezultat izvršenja ovog koda će biti prikaz riječi "Da" (string izraz booleove vrijednosti Tačno).

StrReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Pronalazi sva pojavljivanja podniza za pretraživanje u izvornom nizu i zamjenjuje ga zamjenskim podnizom.

Primjer 16. U redu "Hello World!" zamijenite riječ "Svijet" riječju "Prijatelji".

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

Rezultat izvršenja ovog koda će biti prikaz stringa "Hello Friends!"

StrNumberRows

StrBroj linija(<Строка>) . Omogućava vam da prebrojite broj redova u višelinijskom nizu. Za prelazak na novi red za 1s 8, koristi se simbol PS(znak za povlačenje linije).

Primjer 17. Odredite broj redova u tekstu:
"Prva linija
Druga linija
Treća linija"

Broj = StrBroj redova("Prvi red"+Simboli.PS +"Drugi red"+Simboli.PS +"Treći red"); Izvještaj (broj);

Rezultat izvršenja ovog koda će biti prikaz broja redova u tekstu: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Dobiva niz u višelinijskom nizu po broju. Numerisanje redova počinje od 1.

Primjer 18. Dobijte zadnji red u tekstu:
"Prva linija
Druga linija
Treća linija"

Tekst = "Prva linija"+Znakovi.PS +"Druga linija"+Znakovi.PS +"Treći red"; LastLine = StrGetLine(tekst, strBroj redova(tekst)); Obavijesti (poslednja linija);

Rezultat izvršenja ovog koda će biti prikaz linije "Third line".

StrNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Vraća broj pojavljivanja navedenog podniza u nizu. Funkcija je osjetljiva na velika i mala slova.

Primjer 19. Odredite koliko puta slovo “c” ulazi u red “Linije u 1s 8.3 i 8.2”, bez obzira na veličinu slova.

String = "Linije u 1s 8.3 i 8.2"; Broj pojavljivanja = StrBroj pojavljivanja(Vreg(String), "C"); izvještaj (broj pojava);

Rezultat izvršavanja ovog koda će prikazati broj pojavljivanja na ekranu: 2.

PageBeginsFrom

StrBeginsFrom(<Строка>, <СтрокаПоиска>) . Provjerava da li niz dat u prvom parametru počinje nizom u drugom parametru.

Primjer 20. Odredite da li PIB odabrane druge ugovorne strane počinje brojem 1. Neka varijabla druga strana Counterparties.

PIB = Izvođač.TIN; StartsCUnits = StrStartsC(TIN, "1"); If StartsFROM1 Then //Vaš kod EndIf;

Stranica se završava

StrEndsOn(<Строка>, <СтрокаПоиска>) . Provjerava da li se niz proslijeđen u prvom parametru završava nizom u drugom parametru.

Primjer 21. Odredite da li se PIB odabrane druge ugovorne strane završava brojem 2. Neka varijabla druga strana sprema se veza do elementa direktorija Counterparties.

PIB = Izvođač.TIN; Završava sa dva = Str se završava sa (TIN, "2"); Ako se završava sa dva then //Vaš kod EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Razdvaja string na dijelove prema specificiranim graničnim znakovima i upisuje rezultirajuće nizove u niz. Prvi parametar pohranjuje originalni niz, drugi parametar sadrži niz koji sadrži graničnik, treći parametar pokazuje da li prazne nizove treba upisati u niz (podrazumevano Tačno).

Primjer 22. Pretpostavimo da imamo niz koji sadrži brojeve odvojene simbolom ";", dobijemo niz brojeva iz niza.

String = "1; 2; 3"; Niz = StrSplit(String, ";"); Za Count = 0 By Array.Quantity() - 1 Loop Attempt Niz[Broj] = Broj(Ablp(Niz[Broj])); Niz izuzetaka[W] = 0; EndTry EndCycle;

Kao rezultat izvršenja, dobiće se niz s brojevima od 1 do 3.

StrConnect

StrConnect(<Строки>, <Разделитель>) . Konvertuje niz stringova iz prvog parametra u niz koji sadrži sve elemente niza koristeći graničnik naveden u drugom parametru.

Primjer 23. Koristeći niz brojeva iz prethodnog primjera, dobiti originalni niz.

Za Count = 0 By Array.Quantity() - 1 Loop Niz[Broj] = String(Niz[Broj]); EndCycle; String = StrConnect(Niz, "; ");

Bilješke iz Looking Glassa

18.08.2014 Nove funkcije za rad sa stringovima

Implementirano u verziji 8.3.6.1977.

Proširili smo skup funkcija za rad sa stringovima. Ovo smo uradili kako bismo vam pružili naprednije alate za raščlanjivanje podataka niza. Nove funkcije će biti zgodne i korisne u tehnološkim zadacima analize teksta. U zadacima koji se odnose na raščlanjivanje teksta koji sadrži podatke u formatiranom obliku. To može biti analiza nekih datoteka primljenih od opreme ili, na primjer, analiza tehnološkog dnevnika.

Sve radnje koje izvode nove funkcije, mogli ste izvršiti prije. Uz pomoć manje ili više složenih algoritama napisanih na ugrađenom jeziku. Stoga vam nove funkcije ne daju nikakve suštinski nove mogućnosti. Međutim, oni vam omogućavaju da smanjite količinu koda, učinite kod jednostavnijim i razumljivijim. Osim toga, oni vam omogućavaju da ubrzate izvršenje radnji. Jer funkcije implementirane u platformi rade, naravno, brže od sličnog algoritma napisanog na ugrađenom jeziku.

Funkcija formatiranja StrTemplate()

Ova funkcija zamjenjuje parametre u string. Potreba za takvom konverzijom često se javlja, na primjer, prilikom prikazivanja poruka upozorenja. Sintaksa za ovu funkciju je sljedeća:

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

<Шаблон>je niz u kojem se zamjenjuju reprezentacije parametara.

<Значение1> , ... <Значение10>- ovo su parametri (maksimalno - deset), čije se reprezentacije moraju zamijeniti u string.

Da biste naveli određeno mjesto u šablonu na kojem želite da izvršite zamjenu, trebate koristiti markere oblika %1, ... %10. Broj markera uključenih u predložak i broj parametara koji sadrže vrijednosti moraju se podudarati.

Na primjer, rezultat izvršavanja takvog operatora:

bit će red:

Greška u podacima u redu 2 (zahtijeva tip datuma)

Funkcija niza StrCompare()

Ova funkcija uspoređuje dva niza neosjetljivo na velika i mala slova. Na primjer, ovako:

Istu radnju možete izvršiti prije korištenja objekta Poređenje vrijednosti:

Međutim, korištenje nove funkcije izgleda jednostavnije. A osim toga, funkcija, za razliku od objekta Poređenje vrijednosti, radi i u tankom i web klijentu.

Funkcije niza StrBeginsC(), StrEndsTo()

Ove funkcije određuju da li string počinje određenim podnizom ili da li niz završava navedenim podnizom. Algoritam ovih funkcija nije teško implementirati na ugrađenom jeziku, ali njihovo prisustvo vam omogućava da pišete čistiji i razumljiviji kod. I rade brže.

Na primjer, zgodno ih je koristiti u operateru Ako:

Funkcije za rad sa stringovima StrSplit(), StrJoin()

Ove funkcije dijele niz na dijelove prema specificiranom graničniku. Ili obrnuto, kombinuju nekoliko redova u jedan, ubacujući odabrani separator između njih. Pogodni su za kreiranje ili analizu dnevnika, tehnološkog dnevnika. Na primjer, možete jednostavno rastaviti unos tehnološkog dnevnika na dijelove pogodne za dalju analizu:

Funkcija rada sa stringovima StrFind()

Umjesto stare funkcije Naći() implementirali smo novu funkciju koja ima dodatne funkcije:

  • Traži u različitim smjerovima (od početka, od kraja);
  • Traži sa određene pozicije;
  • Potražite pojavljivanje sa navedenim brojem (drugo, treće, itd.).

Zapravo, duplira mogućnosti stare funkcije. Ovo se radi kako bi se održala kompatibilnost sa modulima kompajliranim u starijim verzijama. stara funkcija Naći() preporučuje se da se ne koristi ponovo.

Ispod je primjer korištenja novih mogućnosti pretraživanja. Pretraživanje unazad je korisno kada vam je potreban posljednji dio formaliziranog niza, kao što je puno ime datoteke u URL-u. A pretraživanje sa određene pozicije pomaže u slučajevima kada trebate pretraživati ​​u poznatom fragmentu, a ne u cijelom nizu.

String tip se nalazi u svim programskim jezicima. Primitivan je, a u 1C postoji mnogo funkcija za rad s njim. U ovom članku ćemo detaljno razmotriti različite načine rada sa tipovima nizova u 1C 8.3 i 8.2 koristeći primjere.

Linija

Da biste konvertovali varijablu bilo koje vrste u string, postoji funkcija "String ()" istog imena. Ulazni parametar će biti sama varijabla čiji prikaz stringova treba dobiti.

String(False) // vraća "Ne"
String(12345) // vraća "12 345"
String(CurrentDate()) //"21.07.2017. 11:55:36"

Moguće je pretvoriti u string ne samo primitivne tipove, već i druge, na primjer, elemente direktorija i dokumenata.

Skraćeno LP, Skraćeno L, Skraćeno P

Ulazni parametri ovih funkcija su varijabla tipa string. Funkcije uklanjaju beznačajne znakove (razmake, povratne znakove itd.): s lijeve i desne strane, samo s lijeve strane i samo s desne strane.

abbrl("Razmaci na obje strane će biti uklonjeni") // "Razmaci na obje strane će biti uklonjeni"
abbr("Razmaci na obje strane će biti uklonjeni") // "Razmaci s lijeve strane će biti uklonjeni"
abbr(" Razmaci sa obe strane će biti uklonjeni ") // "Razmaci sa desne strane će biti uklonjeni"

Leo, desno, sredina

Ove funkcije vam omogućavaju da odsiječete dio niza. Funkcija Lion() će vratiti dio stringa na njegovoj lijevoj strani određene dužine. Funkcija "Right()" je slična, ali se izrezivanje vrši na desnoj strani. Funkcija "Wed()" vam omogućava da odredite broj karaktera iz kojeg će niz biti odabran i njegovu dužinu.

Lion("String varijabla", 4) // vraća "Stro"
Right("String varijabla", 7) // vraća "varijabla"
avg("String varijabla", 2, 5)// vraća "troco"

Snaga

Funkcija određuje broj znakova koji su sadržani u varijabli stringa.

StrLength("Word") // rezultat izvršenja će biti broj 5

Naći

Funkcija omogućava traženje dijela stringa u varijabli stringa. Povratna vrijednost će biti broj koji označava poziciju početka pronađenog niza. Ako nema podudaranja, vraća se nula.

Imajte na umu da je pretraga osjetljiva na velika i mala slova. Ako postoji više od jednog pojavljivanja podniza pretraživanja u originalnom nizu, funkcija će vratiti početak prvog pojavljivanja.

Find("jedan, dva, jedan, dva, tri", "dva") // funkcija će vratiti broj 6

Prazan red

Korištenje ove funkcije vam omogućava da odredite je li niz prazan. Beznačajni znakovi, kao što su razmak, povratak na vagu i drugi, se ne uzimaju u obzir.

EmptyString("Vasily Ivanovich Pupkin") // funkcija će vratiti False
EmptyString(" ") // funkcija će vratiti True

VReg, NReg, TReg

Ove funkcije su vrlo korisne prilikom poređenja i konvertiranja string varijabli. "Vreg()" će vratiti originalni niz velikim slovima, "HReg()" malim slovima, a "TReg()" će ga formatirati tako da je prvi znak svake pojedinačne riječi napisan velikim slovima, a svi sljedeći znakovi su mala.

VReg("GENERAL DIREKTOR") // povratna vrijednost - "GENERALNI DIREKTOR"
HReg("GENERALNI DIREKTOR") // povratna vrijednost - "CEO"
TReg("GENERALNI DIREKTOR") // povratna vrijednost - "Generalni direktor"

StrReplace

Ova funkcija je slična zamjeni u uređivačima teksta. Omogućava vam da zamijenite jedan karakter ili skup znakova drugim u string varijablama.

StrReplace("crveno, bijelo, žuto", ",", ";") // vraća "crveno; Bijela; žuto"

StrNumberRows

Funkcija vam omogućava da odredite broj redova razdvojenih povratnim znakom u tekstualnoj varijabli.

Petlja u primjeru ispod će proći kroz tri kruga jer će funkcija StrNumberRows vratiti vrijednost 3:

Za ind \u003d 1 po StrBroj linija ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Petlja
<тело цикла>
EndCycle;

StrGetString

Ova funkcija radi s višerednim tekstom na isti način kao i prethodna. Omogućava vam da dobijete određeni niz iz tekstualne varijable.

StrGetString("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // vraća "Line2"

StrNumberOccurrences

Funkcija broji broj pojavljivanja znaka ili podniza u traženom nizu.

StrNumberInstallations("a;b;c;d; ", ";") // funkcija će vratiti broj 4

Simbol i SymbolCode

Ove funkcije vam omogućavaju da dobijete znak po njegovom Unicode kodu, kao i da odredite ovaj kod po samom karakteru.

SymbolCode("A") // funkcija će vratiti broj 1 040
SymbolCode(1040) // funkcija će vratiti "A"

Česti zadaci pri radu sa nizovima

Konkatenacija nizova

Za spajanje više nizova (konkatenacija) samo koristite operator zbrajanja.

"Line 1" + "Line 2" //rezultat dodavanja dva reda će biti "Line 1 Line 2"

Konverzija tipa

Da biste pretvorili tip u string, na primjer, referencu na element rječnika, broj i tako dalje, dovoljno je koristiti funkciju "String ()". Funkcije poput "ShortLP()" će također pretvoriti varijable u niz, ali odmah sa odsijecanjem beznačajnih znakova.

String(1000) // će vratiti "1000"

Imajte na umu da kada konvertuje broj u niz, program automatski dodaje razmak koji razdvaja hiljadu. Da biste to izbjegli, možete koristiti sljedeće strukture:

StrReplace(String(1000),Characters.NPP,"") // vraća "1000"

String(Format(1000,"CH=")) // će vratiti "1000"

Navodnici u nizu

Vrlo često ćete morati da se nosite sa potrebom da stavite navodnike u varijablu niza. To može biti ili tekst zahtjeva napisan u konfiguratoru ili samo varijabla. Da biste riješili ovaj problem, trebate samo postaviti dva znaka navodnika.

Header = String("Horns and Hooves LLC smo mi!") // vraća "Roga and Hooves LLC smo mi!"

Višelinijski, prijelom reda

Da biste kreirali višeredni tekst, dovoljno je u njega dodati znakove za prijelom reda (Symbols.PS).

MultilineText = "Prvi red" + znakovi.PS + "Drugi red"

Kako ukloniti razmake

Da biste uklonili razmake s desne ili lijeve strane, možete koristiti funkciju "Stretch()" (kao i "Scrpt()" i "ScreenP()"):

StringWithoutSpaces = ShortLP(" Mnogo slova ") // funkcija će vratiti vrijednost "Mnogo slova"

Ako, nakon pretvaranja broja u niz, trebate ukloniti razmake bez prekida, koristite sljedeću konstrukciju:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // vraća "99999"

Takođe, programeri često koriste sljedeću konstrukciju, koja vam omogućava da uklonite ili zamijenite sve razmake tekstualne varijable drugim karakterom:

StringWithoutSpaces = StrReplace(" zdravo", " " ,"") // vraća "zdravo"

Poređenje žica međusobno

Možete uporediti pojmove sa uobičajenim znakom jednakosti. Poređenje je osjetljivo na velika i mala slova.

"hello" = "hello" // će vratiti false
"Hello" = "Hello" // će vratiti Tačno
"Hello" = "Zbogom" // će vratiti False

String je jedan od primitivnih tipova podataka u sistemima 1C:Enterprise 8. Varijable sa tipom linija sadrže tekst.

Unesite varijabilne vrijednosti linija nalaze se u dvostrukim navodnicima. Može se dodati nekoliko varijabli ovog tipa.

Per1 = "Riječ 1" ;
Per2 = "Riječ 2" ;
Per3 = Per1 + " " + Per2 ;

Na kraju Per3 bit će važno" Riječ 1 Riječ 2″.

Pored toga, sistemi 1C:Enterprise 8 pružaju funkcije za rad sa stringovima. Razmotrite glavne:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcija je dizajnirana da prikaže dijaloški okvir u kojem korisnik može odrediti vrijednost varijable tipa Linija. Parametar <Строка> je obavezan i sadrži ime varijable u koju će uneti niz biti upisan. Parametar <Подсказка> opciono je naslov dijaloškog okvira. Parametar <Длина> opciono, označava maksimalnu dužinu ulaznog niza. Zadana vrijednost je nula, što znači neograničenu dužinu. Parametar <Многострочность> opciono. Određuje višeredni način unosa teksta: Tačno — višeredni unos teksta sa separatorima redova; Netačno - Unesite jednostavan niz.

Može se uneti niz i, znajući kod karaktera u Unicodeu:

simbol(<КодСимвола>) — Šifra se unosi kao broj.

Slovo= Simbol (1103 ) ; // I

Postoji i inverzna funkcija koja vam omogućava da saznate šifru znaka.

SymbolCode(<Строка>, <НомерСимвола>) — Vraća Unicode broj navedenog znaka kao broj.

Funkcije konverzije velikih i malih slova:

VReg(<Строка>) - Pretvara sve znakove u nizu u velika slova.

HReg(<Строка>) - Pretvara sve znakove u nizu u mala slova.

TReg(<Строка>) - pretvara sve znakove niza u velika i mala slova. Odnosno, prva slova u svim riječima se pretvaraju u velika, a preostala slova se pretvaraju u mala.

Funkcije za traženje i zamjenu znakova u nizu:

Naći(<Строка>, <ПодстрокаПоиска>) - pronalazi broj karaktera pojavljivanja podniza pretraživanja. Na primjer:

Find ("String" , "eye" ) ; // 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — pronalazi broj karaktera pojavljivanja podniza pretraživanja, broj pojavljivanja je naveden u odgovarajućem parametru. U ovom slučaju, pretraga počinje od znaka čiji je broj naveden u parametru StartPosition. Pretraživanje je moguće od početka ili od kraja niza. Na primjer:

Broj4 Unos= StrFind( "odbrana", "o" , Smjer pretraživanja. Prvo, 1 , 4 ) ; // 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Pronalazi sva pojavljivanja podniza za pretraživanje u izvornom nizu i zamjenjuje ga zamjenskim podnizom.

StrReplace("String" , "eye" , "" ) ; // Stranica

Prazan red (<Строка>) - provjerava niz značajnih znakova. Ako nema značajnih znakova ili uopšte nema znakova, tada se vraća vrijednost Tačno. inače - Lazi.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – izračunava broj pojavljivanja podniza pretraživanja u izvornom nizu.

StrNumberOccurrences ( "Uči, uči i uči ponovo", "učiti" , "" ) ; // 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — zamjenjuje parametre u nizu brojem. Niz mora sadržavati zamjenske markere u obliku: "%1..%N". Numeracija markera počinje od 1. Ako je vrijednost parametra Nedefinisano, prazan niz je zamijenjen.

StrPattern ( "Opcija 1 = %1, Opcija 2 = %2", "1" , "2" ) ; // Parametar 1= 1, Parametar 2 = 2

Funkcije konverzije nizova:

lav (<Строка>, <ЧислоСимволов>) vraća prve znakove niza.

tačno (<Строка>, <ЧислоСимволов>) - vraća posljednje znakove niza.

srijeda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - vraća niz dužine<ЧислоСимволов>, počevši sa simbolom<НачальныйНомер>.

skraćeno(<Строка>) skraćuje nebitne znakove lijevo od prvog značajnog znaka u nizu.

skraćeno (<Строка>) - odsijeca beznačajne znakove desno od posljednjeg značajnog karaktera u nizu.

Abbrl(<Строка>) - skraćuje nebitne znakove lijevo od prvog značajnog znaka u nizu i desno od posljednjeg značajnog znaka u nizu.

StrGetString(<Строка>, <НомерСтроки>) – dobiva niz višelinijskog niza po broju.

Ostale karakteristike:

Snaga(<Строка>) - vraća broj znakova u nizu.

StrBroj linija(<Строка>) - vraća broj redova u višelinijskom nizu. Red se smatra novim ako je od prethodnog reda odvojen znakom za novi red.

StrCompare(<Строка1>, <Строка2> ) - uspoređuje dva niza bez obzira na velika i mala slova. Funkcija radi kao objekat Poređenje vrijednosti. Povratak:

  • 1 - ako je prvi red veći od drugog
  • -1 - ako je drugi red veći od prvog
  • 0 - ako su nizovi jednaki

StrCompare("Prvi red" , "Drugi red" ) ; // jedan

Postoji nekoliko mehanizama za rad sa stringovima u 1C upitima. Prvo, mogu se dodati nizovi. Drugo, podniz se može uzeti iz niza. Treće, nizovi se mogu porediti, uključujući i uzorak. To je otprilike sve što možete učiniti sa žicama.

Dodavanje niza

Operator "+" se koristi za dodavanje nizova u upit. Možete dodati samo nizove ograničene dužine.

SELECT "Naziv: " + Contractors.Name AS Column1 FROM Directory.Contractors AS Contractors WHERE Contractors.Reference = &Reference

Funkcija podniza

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

Analog funkcije Environment() iz objektnog modela. Funkcija Substring() može se primijeniti na podatke tipa niza i omogućava vam da odaberete fragment <Строки> , počevši s brojem <НачальнаяПозиция> (znakovi u nizu su numerisani od 1) i dužina <Длина> karaktera. Rezultat evaluacije funkcije ima tip niza varijabilne dužine, a dužina će se smatrati neograničenom ako <Строка> ima neograničenu dužinu i parametar <Длина> nije konstanta ili veća od 1024.

Ako je dužina niza manja od navedene u drugom parametru, funkcija će vratiti prazan niz.

Pažnja! Ne preporučuje se korištenje funkcije SUBSTRING() za pretvaranje nizova neograničene dužine u nizove ograničene dužine. Umjesto toga, bolje je koristiti cast operator EXPRESS().

Funkcija Slična

Ako trebamo biti sigurni da atribut string ispunjava određene kriterije, uspoređujemo ga:

SELECT Counterparties.Name AS Column1 FROM Directory.Counterparties AS Counterparties WHERE Counterparties.Name = "Gazprom"

Ali šta ako je potrebno suptilnije poređenje? Ne samo zbog jednakosti ili nejednakosti, već zbog sličnosti s određenim obrascem? Upravo za to je stvorena funkcija LIKE.

LIKE - Operator za provjeru da li je niz sličan uzorku. Analog LIKE-a u SQL-u.

Operator LIKE vam omogućava da uporedite vrijednost izraza navedenog lijevo od njega sa nizom šablona specificiranim desno. Vrijednost izraza mora biti tipa string. Ako vrijednost izraza odgovara šablonu, rezultat operatora će biti TRUE, u suprotnom će biti FALSE.

Sljedeći znakovi u nizu šablona su uslužni znakovi i imaju drugačije značenje od znakova niza:

  • % (postotak): niz koji sadrži bilo koji broj proizvoljnih znakova;
  • _ (podvlaka): jedan proizvoljan znak;
  • […] (jedan ili više znakova unutar uglastih zagrada): svaki pojedinačni znak naveden unutar uglastih zagrada. Nabrajanje može sadržavati opsege, kao što je a-z, što znači bilo koji znak unutar raspona, uključujući i krajeve raspona;
  • [^…] (u uglastim zagradama znak negacije iza kojeg slijedi jedan ili više znakova): Svaki pojedinačni znak osim onih navedenih iza znaka negacije.

Bilo koji drugi simbol znači sam i ne nosi nikakav dodatni teret. Ako je potrebno napisati jedan od navedenih znakova kao sebe, onda mu mora prethoditi<Спецсимвол>. Ja sam<Спецсимвол>(bilo koji odgovarajući znak) je definiran u istoj izjavi nakon ključne riječi SPECIAL CHARACTER.

Top Related Articles