Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Windows 7, XP
  • Nevažeći broj kategorija u izvornom retku 1c. Nove funkcije za rad sa nizovima

Nevažeći broj kategorija u izvornom retku 1c. Nove funkcije za rad sa nizovima

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

Primjer 1. Kreirajmo varijablu niza s tekstom.

StringVariable = "Zdravo svijet!";

Funkcije za rad sa nizovima u 1c 8.3

U ovom odjeljku bit će navedene glavne funkcije koje vam omogućuju promjenu redaka u 1c ili analizu informacija sadržanih u njima.

Str Duljina

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 svijet!"; Broj znakova = StrLength (String); Izvješće (broj znakova);

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

Skraćenica

AbbrL (<Строка>) ... Skraćuje beznačajne znakove lijevo od prvog značajnog znaka u nizu.
Manji likovi:

  • prostor;
  • neprekidni prostor;
  • tabeliranje;
  • povrat prtljage;
  • prijevod redaka;
  • prijevod obrasca (stranica).

Primjer 3. Uklonite sve razmake s lijeve strane retka "svijet!" i na njega pričvrstite niz "Halo".

String = skraćeno ("mir!"); String = "Zdravo" + String; Izvješće (String);

Rezultat izvršenja ovog koda bit će izlaz retka "Hello world!"

Skraćenica

Skraćenica (<Строка>) ... Skraćuje beznačajne znakove desno od prvog značajnog znaka u nizu.

Primjer 4. Obrazac "Zdravo" i "Svijet!" fraza "Zdravo svijete!"

String = skraćeno ("Halo") + "" + skraćeno ("svijet!"); Izvješće (String);

SokrLP

SocrLP (<Строка>) ... Skraćuje beznačajne znakove desno od prvog značajnog znaka u nizu, a također izrezuje beznačajne 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.

Druga strana = Imenici.Izvođači.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject = Counterparty.GetObject (); CounterpartyObject.Name = SokrLP (CounterpartyObject.Name); CounterpartyObject.Write ();

Lav

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

Primjer 6. Neka u strukturi Zaposlenik sadržavati ime, prezime i patronimiju radnika. Dobijte niz s prezimenom i inicijalima.

PočetnoIme = Lav (Ime zaposlenika, 1); Patronim Inicijal = Lav (Zaposlenik, Patronim, 1); Puno ime = Zaposlenik.Prezime + "" + PočetnoIme + "." + Inicijal od patronima + ".";

Pravo

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

Primjer 7. Pretpostavimo da kraj varijable niza sadrži datum u formatu "ggggmmdd", dobijete niz s datumom i pretvorite ga u vrstu datum.

String = "Trenutni datum: 20170910"; StringDate = desno (niz, 8); Datum = Datum (Datum niza);

srijeda

srijeda (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Dobiva podniz iz niza proslijeđenog kao parametra Crta, počevši od znaka čiji je broj naveden u parametru Početni broj a duljina proslijeđena parametru Broj znakova. Numeracija znakova u retku počinje od 1. Ako parametar Početni broj specificirana je vrijednost koja je manja ili jednaka nuli, tada parametar poprima vrijednost 1. Ako parametar Broj simbola nije navedeno, tada se odabiru znakovi do kraja retka.

Primjer 8. Pretpostavimo da varijabla niza počevši od devete pozicije sadrži kod regije, trebali biste ga dobiti i napisati u poseban redak.

Linija = "Regija: 99 Moskva"; Regija = sri (linija, 9, 2);

traži

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

  • Crta... Izvorni niz;
  • Podniz... Podniz koji se traži;
  • Smjer traženja... Određuje smjer traženja podniza u nizu. Može poprimiti vrijednosti:
    • Smjer pretraživanja. Od početka;
    • Smjer pretraživanja.;
  • Početni položaj... Određuje poziciju u nizu od koje počinje pretraživanje;
  • Broj unosa... Određuje broj pojavljivanja željenog podniza u izvornom nizu.

Primjer 9. U retku "Zdravo svijet!" odrediti položaj posljednjeg pojavljivanja simbola "i".

PositionNumber = StrNayti ("Zdravo svijet!", "I", DirectionSearch.End); Izvješće (broj pozicije);

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

VReg

BReg (<Строка>) ... Pretvara sve znakove u navedenom nizu u 1s 8 u velika slova.

Primjer 10. Pretvorite niz "hello world!" na velika slova.

StringBreg = BReg ("zdravo svijet!"); Izvješće (StringVreg);

Rezultat izvršavanja ovog koda bit će prikaz retka "HELLO WORLD!"

Nreg

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

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

StringNreg = NReg ("ZDRAVO SVIJETE!"); Izvješće (StringVreg);

Rezultat izvršenja ovog koda bit će izlaz retka "hello world!"

Treg

Treg (<Строка>) ... Pretvara niz na sljedeći način: prvi znak svake riječi pretvara se u velika slova, a preostali znakovi riječi se pretvaraju u mala slova.

Primjer 12. Napišite velika slova riječi u nizu "hello world!"

StringTreg = Treg ("zdravo svijet!"); Izvješće (StringTreg);

Rezultat izvršenja ovog koda bit će izlaz na ekranu retka "Hello World!"

Simbol

Simbol(<КодСимвола>) ... Dobiva znak po svom Unicode kodu.

Primjer 13. Dodajmo lijevo i desno u retku "Hello World!" simbol ★

StringWithStars = Simbol ("9733") + "Hello World!" + Simbol ("9733"); Izvješće (StringWithStars);

Rezultat izvršavanja ovog koda bit će prikaz retka "★ Hello World! ★"

Šifra simbola

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

Primjer 14. Saznajte šifru posljednjeg znaka u "Hello World!"

String = "Zdravo svijet!"; CharacterCode = CharacterCode (String, StrLength (String)); Izvješće (SymbolCode);

Rezultat izvršenja ovog koda bit će prikaz koda simbola "!" - 33.

Prazna linija

Prazan red (<Строка>) ... Provjerava sadrži li niz samo beznačajne znakove, odnosno je li prazan.

Primjer 15. Provjerite je li niz koji se sastoji od tri razmaka prazan.

Prazan = Prazan niz (""); Izvješće (prazno);

Rezultat izvršenja ovog koda bit će prikaz riječi "Da" (izraz niza logičke vrijednosti Pravi).

Zamijeni stranicu

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

Primjer 16. U retku "Hello World!" zamijenite riječ "Mir" riječju "Prijatelji".

String = StrReplace ("Hello World!", "World", "Friends"); Izvješće (String);

Rezultat izvršenja ovog koda bit će prikaz retka "Zdravo prijatelji!"

StrNumberStrings

StrBroj redaka (<Строка>) ... Broji broj redaka u nizu s više redaka. Za prijelaz na novi red za 1s 8, upotrijebite znak P.S(znak za prijelaz linije).

Primjer 17. Odredite broj redaka u tekstu:
"Prvi red
Drugi redak
Treći red"

Broj = StrNumberStrings ("Prvi redak" + Simboli.PS + "Drugi red" + Simboli.PS + "Treći red"); Izvješće (broj);

Rezultat izvršavanja ovog koda bit će prikaz broja redaka u tekstu: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Dobiva niz u nizu s više redaka po svom broju. Numeracija redaka počinje od 1.

Primjer 18. Dobijte zadnji redak u tekstu:
"Prvi red
Drugi redak
Treći red"

Tekst = "Prvi red" + Simboli.PS + "Drugi red" + Simboli.PS + "Treći red"; LastRow = StrGetString (tekst, strNumberLines (tekst)); Izvješće (LastLine);

Rezultat izvršenja ovog koda bit će prikaz retka "Treći red".

StrBroj pojavljivanja

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

Primjer 19. Odredite koliko se puta slovo "c" pojavljuje u retku "Linije u 1s 8.3 i 8.2", bez obzira na veliko i veliko slovo.

Linija = "Linije u 1s 8.3 i 8.2"; Broj pojavljivanja = StrBroj pojavljivanja (Vreg (niz), "S"); Izvješće (broj pojavljivanja);

Rezultat izvršavanja ovog koda bit će prikaz broja pojavljivanja: 2.

Stranica počinje s

Stranica počinje s (<Строка>, <СтрокаПоиска>) ... Provjerava da li niz proslijeđen u prvom parametru počinje s nizom u drugom parametru.

Primjer 20. Odredite počinje li INN odabrane druge ugovorne strane brojem 1. Dopustite u varijablu Druga strana Izvođači radova.

TIN = Counterparty.INN; Počinje s jedinicama = StrPočinje s (INN, "1"); If BeginsUnits Then // Vaš kod EndIf;

Stranica završava sa

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

Primjer 21. Odredite završava li TIN odabrane druge ugovorne strane znamenkom 2. Dopustite u varijablu Druga strana sprema se veza na stavku imenika Izvođači radova.

TIN = Counterparty.INN; Završava s dva = Str završava s (INN, "2"); If Ends WithDouble Then // Vaš kod EndIf;

PageSplit

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Dijeli niz na dijelove koristeći specificirane znakove za razgraničenje i zapisuje rezultirajuće nizove u niz. Prvi parametar pohranjuje izvorni niz, drugi sadrži niz koji sadrži separator, treći određuje hoće li se u niz napisati prazni niz (prema zadanim postavkama Pravi).

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

Niz = "1; 2; 3"; Niz = StrSplit (niz, ";"); Za Rd = 0 Po nizu.Količina () - 1 niz pokušaja ciklusa [Rd] = Broj (SqrLP (Niz [Rd])); Niz izuzetaka [Sč] = 0; Kraj pokušaja Kraj petlje;

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

StrConnect

StrConnect (<Строки>, <Разделитель>) ... Pretvara niz nizova iz prvog parametra u niz koji sadrži sve elemente niza, odvojene graničnikom navedenim u drugom parametru.

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

Za Rd = 0 By Array.Quantity () - 1 Niz ciklusa [Rd] = String (Niz [Rd]); Kraj ciklusa; String = StrConnect (Niz, ";");

Bilješke iz ogledala

18.08.2014 Nove funkcije za rad sa nizovima

Implementirano u verziji 8.3.6.1977.

Proširili smo skup funkcija za rad sa stringovima. To smo učinili kako bismo vam pružili naprednije alate za raščlanjivanje podataka niza. Nove funkcije bit će zgodne i korisne u tehnološkim zadacima analize teksta. U zadacima koji se odnose na raščlanjivanje teksta koji sadrži formatirane podatke. 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 izvesti i prije. Uz pomoć manje-više složenih algoritama napisanih ugrađenim jezikom. Stoga vam nove funkcije ne daju nikakve suštinski nove mogućnosti. Međutim, oni mogu smanjiti količinu koda, učiniti kôd jednostavnijim i lakšim za razumijevanje. Osim toga, oni vam omogućuju da ubrzate izvršenje radnji. Budući da funkcije implementirane u platformi rade, naravno, brže od sličnog algoritma napisanog u ugrađenom jeziku.

Funkcija oblikovanja StrPattern ()

Ova funkcija zamjenjuje parametre u niz. Potreba za takvom pretvorbom često se javlja, primjerice, prilikom prikazivanja poruka upozorenja. Sintaksa za ovu funkciju je sljedeća:

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

<Шаблон>je niz koji zamjenjuje prikaze parametara.

<Значение1> , ... <Значение10>- to su parametri (maksimalno - deset), čiji se prikazi moraju zamijeniti u nizu.

Za označavanje određenog mjesta u predlošku na kojem želite izvršiti zamjenu, trebate koristiti tokene oblika% 1, ...% 10. Broj oznaka korištenih u predlošku i broj parametara koji sadrže vrijednosti moraju biti isti.

Na primjer, rezultat izvršavanja takve izjave:

bit će redak:

Pogreška u podacima u retku 2 (potrebna je vrsta datuma)

Funkcija za rad sa nizovima StrCompare ()

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

Mogli ste izvesti istu radnju prije korištenja objekta Usporedba vrijednosti:

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

Funkcije za rad sa nizovima RowStart With (), RREnd With ()

Ove funkcije određuju da li niz počinje određenim podnizom ili završava navedenim podnizom. Algoritam ovih funkcija nije teško implementirati u ugrađeni jezik, ali njihova prisutnost omogućuje pisanje čišćeg i razumljivijeg koda. I rade brže.

Na primjer, zgodno ih je koristiti u operateru Ako:

Funkcije za rad sa nizovima StrSplit (), StrConnect ()

Ove funkcije dijele niz na dijelove prema navedenom graničniku. Ili obrnuto, kombiniraju nekoliko redaka u jedan, umetajući odabrani razdjelnik između njih. Prikladni su za izradu ili analizu dnevnika, tehnoloških dnevnika. Na primjer, možete jednostavno rastaviti zapis tehnološkog dnevnika na dijelove prikladne za daljnju analizu:

Funkcija za rad sa nizovima StrFind ()

Umjesto stare funkcije Pronaći() implementirali smo novu značajku koja ima dodatne mogućnosti:

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

Zapravo, duplicira mogućnosti stare funkcije. To je učinjeno kako bi se održala kompatibilnost s modulima sastavljenim u starijim verzijama. Stara funkcija Pronaći() preporuča se više ne koristiti.

U nastavku je primjer korištenja novih mogućnosti pretraživanja. Pretraživanje unatrag korisno je kada vam je potreban zadnji dio formaliziranog niza, kao što je potpuno kvalificirani naziv datoteke u URL-u. A pretraživanje s određene pozicije pomaže u slučajevima kada trebate pretraživati ​​u poznatom fragmentu, a ne u cijelom nizu.

Tip "String" nalazi se u svim programskim jezicima. Primitivan je, a u 1C postoji mnogo funkcija za rad s njim. U ovom članku pobliže ćemo pogledati različite načine rada s vrstama nizova u 1C 8.3 i 8.2 na primjerima.

Crta

Da bi se varijabla bilo koje vrste pretvorila u niz, postoji funkcija istog imena "String ()". Ulazni parametar bit će sama varijabla čiji se nizovski prikaz 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 ne samo primitivne vrste u niz, već i druge, na primjer, elemente referentnih knjiga, dokumenata.

SocrLP, SocrL, SocrP

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

AbbrLP ("Razmaci s obje strane bit će uklonjeni") // "Razmaci s obje strane bit će uklonjeni"
Skraćeno ("Razmaci s obje strane bit će uklonjeni") // "Razmaci s lijeve strane bit će uklonjeni"
Kratica ("Razmaci s obje strane bit će uklonjeni") // "Razmaci s desne strane bit će uklonjeni"

Leo, točno, srijeda

Ove funkcije omogućuju vam da izrežete dio niza. Funkcija "Lion ()" vratit će dio niza s njegove lijeve strane određene duljine. Funkcija "Desno ()" je ista, ali se obrezivanje vrši s desne strane. Funkcija "Prosj. ()" omogućuje vam da odredite broj znaka iz kojeg će biti odabran niz i njegovu duljinu.

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

Str Duljina

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

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

Pronaći

Funkcija omogućuje traženje dijela niza u bilo kojoj varijabli niza. Povratna vrijednost bit će broj koji pokazuje položaj početka pronađenog niza. Ako nije pronađeno podudaranje, vraća se nula.

Imajte na umu da su pretraživanja osjetljiva na velika i mala slova. Ako izvorni niz sadrži više od jednog pojavljivanja podniza pretraživanja, funkcija će vratiti početak prvog pojavljivanja.

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

Prazna linija

Korištenje ove funkcije omogućuje vam da odredite je li niz prazan. Zanemaruju se beznačajni znakovi kao što su razmak, povratak kočije i drugi.

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

VReg, NReg, Treg

Ove su funkcije vrlo korisne za usporedbu i pretvorbu varijabli niza. Breg () će vratiti izvorni niz velikim slovima, HPreg () malim slovima, a TPreg () će ga formatirati tako da će prvi znak svake pojedinačne riječi biti napisan velikim slovima, a svi sljedeći bit će mala.

Vreg ("GENERALNI DIREKTOR") // povratna vrijednost - "GENERALNI DIREKTOR"
NReg ("GENERAL DIREKTOR") // povratna vrijednost - "generalni direktor"
TREG ("GENERAL DIREKTOR") // povratna vrijednost - "Generalni direktor"

Zamijeni stranicu

Ova je funkcija analogna zamjeni u uređivačima teksta. Omogućuje vam zamjenu jednog znaka ili skupa znakova drugim u string varijablama.

StrReplace ("crveno, bijelo, žuto", ",", ";") // će vratiti "crveno; Bijela; žuta boja"

StrNumberStrings

Funkcija vam omogućuje da odredite broj redaka razdvojenih povratnim znakovima u tekstualnoj varijabli.

Petlja u donjem primjeru proći će kroz tri kruga jer će funkcija RowNumber of Rows vratiti vrijednost 3:

Za ind = 1 po StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Petlja
<тело цикла>
Kraj ciklusa;

StrGetString

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

StrGetString ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3", 2) // će vratiti "String2"

StrBroj pojavljivanja

Funkcija broji broj pojavljivanja znaka ili podniza u nizu za pretraživanje.

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

Simbol i kod simbola

Ove funkcije vam omogućuju da dobijete znak po njegovom Unicode kodu, kao i da taj kod odredite po samom znaku.

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

Česti zadaci pri radu sa žicama

Povezivanje nizova

Za spajanje više nizova (za izvođenje spajanja) dovoljno je koristiti operator zbrajanja.

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

Pretvorba vrsta

Za pretvaranje vrste u niz, na primjer, referencu na rječničku stavku, broj itd., dovoljno je koristiti funkciju "String ()". Funkcije poput "Skraćenica ()" također će pretvoriti varijable u niz, ali odmah s skraćenjem beznačajnih znakova.

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

Imajte na umu da prilikom pretvaranja broja u niz program automatski dodaje razmak koji odvaja tisuću. Kako biste to izbjegli, možete koristiti sljedeće konstrukcije:

StrReplace (String (1000), Characters.NPP, "") // vratit će "1000"

String (Format (1000, "CHG =")) // vratit će "1000"

Navodnici u nizu

Vrlo često ćete se morati suočiti s potrebom da navedete navodnike u varijabli stringa. To može biti ili tekst zahtjeva napisan u konfiguratoru ili samo varijabla. Da biste riješili ovaj problem, trebate samo postaviti dva navodnika.

Naslov = String ("Horns and Hooves LLC" - to smo mi! ") // vraća" Horns and Hooves LLC - to smo mi!"

Više redaka, prijelom reda

Za izradu teksta u više redaka dovoljno je u njega dodati znakove za prijelom retka (Symbols.PS).

MultilineText = "Prvi redak" + Simboli.PS + "Drugi redak"

Kako ukloniti razmake

Da biste uklonili razmake s desne ili lijeve strane, možete koristiti funkciju "Skraćenica ()" (kao i "Skraćenica ()" i "Skraćenica ()"):

StringNoSpaces = AbbreviatedLP ("Mnogo slova") // funkcija će vratiti vrijednost "Mnogo slova"

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

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // vratit će "99999"

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

StringNoSpaces = StrReplace ("dobrodošli", "", "") // vraća "zdravo"

Uspoređujući žice međusobno

Pojmovi se mogu usporediti s uobičajenim znakom jednakosti. Usporedba je osjetljiva na velika i mala slova.

"Hello" = "hello" // će vratiti False
"Hello" = "Hello" // će vratiti True
"Hello" = "Zbogom" // će vratiti False

Niz je jedan od primitivnih tipova podataka u 1C: Enterprise 8. Varijable s tipom crta sadrže tekst.

Vrijednosti varijabli tipa crta nalaze se u dvostrukim navodnicima. Može se dodati nekoliko varijabli ove vrste.

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

Naposljetku Per3 značit će " Riječ 1 Riječ 2 ″.

Osim toga, sustavi 1C: Enterprise 8 pružaju funkcije za rad sa nizovima. Razmotrimo glavne:

Unesite niz (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcija je namijenjena za prikaz dijaloškog okvira u kojem korisnik može odrediti vrijednost varijable tog tipa Crta... Parametar <Строка> je obavezan i sadrži naziv varijable u koju će biti upisan uneseni niz. Parametar <Подсказка> izborno je naslov dijaloškog okvira. Parametar <Длина> neobavezno, označava maksimalnu duljinu ulaznog niza. Zadana vrijednost je nula, što znači neograničenu duljinu. Parametar <Многострочность> neobavezno. Određuje način unosa za višerečni tekst: True - unos višerečnog teksta s razdjelnicima redaka; False - unos jednostavnog niza.

Niz se može unijeti i dati mu Unicode znakovni kod:

Simbol(<КодСимвола>) — kod se upisuje kao broj.

Slovo = Simbol (1103); // JA SAM

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

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

Funkcije pretvorbe velikih i malih slova:

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

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

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

Funkcije za traženje i zamjenu znakova u nizu:

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

Pronađite ("String", "Oka"); // 4

Pronaći (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - pronalazi broj znakova pojavljivanja podniza pretraživanja, broj pojavljivanja je naznačen u odgovarajućem parametru. U tom slučaju pretraživanje počinje znakom čiji je broj naveden u parametru Početni položaj. Pretraživanje je moguće od početka ili od kraja niza. Na primjer:

Broj4 pojavljivanja = StrFind ( "Sposobnost obrane", "o", Smjer pretraživanja. Od početka, 1, 4); // 7

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

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

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

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

StrBroj pojavljivanja ( "Uči, uči i uči opet", "učiti" , "" ) ; // 3

StrPattern (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — zamjenjuje parametre u nizu brojem. Niz mora sadržavati zamjenske oznake oblika: "% 1 ..% N". Oznake se numeriraju počevši od 1. Ako vrijednost parametra Nedefiniran, zamjenjuje se prazan niz.

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

Funkcije konverzije nizova:

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

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

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

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

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

SocrLP (<Строка>) - odsijeca beznačajne znakove lijevo od prvog značajnog znaka u retku i desno od posljednjeg značajnog znaka u retku.

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

Ostale funkcije:

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

StrBroj redaka (<Строка>) - vraća broj redaka u nizu s više redaka. Redak se smatra novim ako je od prethodnog retka odvojen znakom novog retka.

Usporedi (<Строка1>, <Строка2> ) - uspoređuje dva niza, neosjetljivo na velika i mala slova. Funkcija radi na isti način kao i objekt Usporedba vrijednosti... Vraća:

  • 1 - ako je prvi red veći od drugog
  • -1 - ako je drugi redak 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 se mogu dodati linije. Drugo, možete uzeti podniz iz niza. Treće, žice se mogu usporediti, uključujući uzorak. To je vjerojatno sve što možete učiniti sa žicama.

Povezivanje nizova

Za dodavanje nizova u upit koristi se operacija "+". Mogu se presavijati samo linije ograničene duljine.

ODABERITE "Naziv:" + Suprotne strane. Naziv KAO Stupac 1 IZ Imenika. Suprotne strane KAO Counterparties GDJE Suprotne strane. Veza = & Veza

Funkcija podniza

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

Analog funkcije Environment () iz objektnog modela. Funkcija Substring () može se primijeniti na podatke tipa niza i omogućuje odabir fragmenta <Строки> počevši od broja znaka <НачальнаяПозиция> (znakovi u nizu su numerirani od 1) i duljina <Длина> likovima. Rezultat evaluacije funkcije ima vrstu niza promjenjive duljine, a duljina će se smatrati neograničenom ako <Строка> ima neograničenu duljinu i parametar <Длина> nije konstantan ili prelazi 1024.

Ako je duljina niza manja od one navedene u drugom parametru, funkcija će vratiti prazan niz.

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

Funkcija kao

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

ODABIR Counterparts. Naziv AS Stupac 1 IZ Imenika. Suprotne strane KAO Counterparty GDJE Counterparts. Naziv = "Gazprom"

Ali što ako želite složeniju usporedbu? Ne samo jednakost ili nejednakost, nego kao određeni obrazac? Upravo za to je stvorena funkcija LIKE.

LIKE - Operator za provjeru niza poput uzorka. Analog LIKE-a u SQL-u.

Operator LIKE omogućuje vam da usporedite vrijednost izraza navedenog lijevo od njega sa nizom predloška specificiranog s desne strane. Vrijednost izraza mora biti tipa string. Ako vrijednost izraza odgovara uzorku, operator će rezultirati TRUE, u suprotnom - FALSE.

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

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

Bilo koji drugi simbol znači sam po sebi i ne nosi nikakvo dodatno značenje. Ako je potrebno napisati jedan od navedenih znakova kao sebe, tada mu mora prethoditi<Спецсимвол>... Sebe<Спецсимвол>(bilo koji prikladan znak) definiran je u istoj izjavi nakon ključne riječi SPECIAL CHARACTER.

Vrhunski povezani članci