Funkcija za pronalaženje posljednjeg unosa u 1C računovodstvu. Funkcije konverzije velikih i malih slova

Redovi u 1C 8.3 u ugrađenom 1C jeziku 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 1c ili analizirate informacije sadržane u njima.

StrLength

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

Primjer 2. Izbrojimo broj znakova u retku “Zdravo svijete!”

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

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

AbbrL

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

  • prostor;
  • neprekidni prostor;
  • tabela;
  • povratak kočije;
  • pomicanje linije;
  • prevod obrasca (stranica).

Primjer 3. Uklonite sve razmake s lijeve strane linije "svijet!" i dodajte mu red "Zdravo".

String = Skraćenica("svijet!"); String = "Zdravo"+String; Izvještaj(String);

Rezultat izvršavanja ovog koda će biti prikaz reda „Zdravo, svijete“ na ekranu.

Skraćeno

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

Primjer 4. Formirajte iz redova “Zdravo” i “mir!” fraza "Zdravo svijete!"

Linija = Skraćenica("Zdravo ")+" "+ Skraćenica(" svijet!"); Izvještaj(String);

AbbrLP

AbbrLP(<Строка>) . Sječe znakove koji nisu značajni desno od prvog značajnog znaka u nizu, a 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 univerzalnija.

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

Counterparty = Imenici. Pronađi po detaljima("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

Lav

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

Primjer 6. Neka u strukturi Zaposleni sadrži ime, prezime i prezime zaposlenog. Nabavite niz s prezimenom i inicijalima.

ImeInicijal = Lev(ime zaposlenog, 1); Patronim Inicijal = Lav(Zaposleni. Patronim, 1); Puno ime = Employee.Prezime + " " + Početno ime + "."

+ Srednje inicijal + ".";

U redu<Строка>, <ЧислоСимволов>) tačno ( Broj znakova.. Dobiva posljednje znakove niza, broj znakova specificiranih u parametru

Ako navedeni broj znakova premašuje dužinu niza, onda se vraća cijeli niz. Primjer 7. Neka datum u formatu “ggggmmdd” bude napisan na kraju string varijable, dobijete string sa datumom i pretvorite ga u tip.

Datum

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

srijeda<Строка>, <НачальныйНомер>, <ЧислоСимволов>) srijeda( Linija. Dobiva podniz iz niza koji je proslijeđen kao parametar , počevši od znaka čiji je broj naveden u parametru InitialNumber Broj znakova. i dužina predata u parametar , počevši od znaka čiji je broj naveden u parametru Numeracija znakova u retku počinje od 1. Ako je u parametru specificirana je vrijednost manja ili jednaka nuli, tada parametar uzima vrijednost 1. Ako je parametar Broj znakova

nije navedeno, tada se biraju znakovi do kraja reda.

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

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

PageFind<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) StrFind(

  • Linija. Traži određeni podniz u nizu, vraćajući broj pozicije prvog znaka pronađenog podniza. Pogledajmo parametre ove funkcije:
  • . Izvorni niz; Pretraži podniz
  • . Search substring; Smjer pretraživanja
    • . Određuje smjer traženja podniza u nizu. Može uzeti vrijednosti:;
    • Smjer pretraživanja.Od početka;
  • Search.End Direction InitialPosition
  • . Određuje poziciju u nizu na kojoj pretraga počinje; NumberOccurrences

. 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.End); Izvještaj (broj pozicije);

Rezultat izvršavanja ovog koda će biti prikaz broja posljednjeg pojavljivanja simbola “i”: 9.

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

. Pretvara sve znakove u navedenom nizu u 1s8 u velika slova.

Primjer 10: Konvertirajte string "zdravo svijete!" na velika slova.

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

Rezultat izvršavanja ovog koda će biti prikaz reda "ZDRAVO SVIJETE!"

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

Primjer 11: Konvertirajte string "HELLO WORLD!" na mala slova.

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

Rezultat izvršavanja ovog koda će biti prikaz reda "zdravo svijete!"

Treg

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

Primjer 12: Napišite velika slova riječi u redu "zdravo svijete!"

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

Rezultat izvršavanja ovog koda će biti prikaz reda "Hello World!"

Simbol

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

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

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

Rezultat izvršavanja ovog koda će biti prikaz linije “★Hello World!★”

Šifra simbola

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

Primjer 14. Saznajte šifru posljednjeg znaka u redu “Hello World!”

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

Rezultat izvršavanja ovog koda bit će prikaz koda simbola “!” - 33.

EmptyString

EmptyString(<Строка>) . Provjerava da li se string sastoji samo od beznačajnih znakova, odnosno da li je prazan.

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

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

Rezultat izvršavanja ovog koda će biti prikaz riječi „Da“ (izraz niza logičke vrijednosti Istina).

PageReplace

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

Primjer 16. U retku “Zdravo svijete!” zamijenite riječ “Mir” riječju “Prijatelji”.

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

Rezultat izvršavanja ovog koda će biti prikaz reda „Zdravo prijatelji!“

StrNumberLines

StrNumberRow(<Строка>) . Omogućava vam da prebrojite broj redova u višelinijskom nizu. Da biste prešli na novi red za 1s 8, koristite simbol PS(znak za novi red).

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

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

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

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Dobiva red 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 = "Prvi red" + PS + "Drugi red" + PS + "Treći red". LastRow = StrGetRow(Tekst, StrBroj linija(Tekst)); Izvještaj (posljednja linija);

Rezultat izvršavanja ovog koda će biti prikaz linije “Third Line”.

PageNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . 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 redu “Linije u 1s 8.3 i 8.2”, bez obzira na veliko i malo.

Linija = "Linije u 1s 8.3 i 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Izvještaj (broj pojavljivanja);

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

PageStartsWith

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

Primjer 20. Odredite da li PIB odabrane druge ugovorne strane počinje brojem 1. Upišite varijablu Counterparty Counterparties.

TIN = Counterparty.TIN; StartsUNits = StrStartsWith(TIN, "1"); Ako počinje s jedinicama Then //Vaš kod EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . 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. Upišite varijablu Counterparty pohranjuje se referenca na element direktorija Counterparties.

TIN = Counterparty.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Vaš kod EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Dijeli string na dijelove koristeći specificirane znakove za razdvajanje i upisuje rezultirajuće nizove u niz. Prvi parametar pohranjuje izvorni niz, drugi sadrži niz koji sadrži separator, treći pokazuje da li prazne nizove treba upisati u niz (podrazumevano Istina).

Primjer 22. Neka imamo niz koji sadrži brojeve odvojene simbolom “;”, dobijemo niz brojeva iz niza.

String = "1; 2; 3"; Niz = StrDivide(String, ";"); Za Count = 0 Po Array.Quantity() - 1 Ciklus pokušaj Niz[Broj] = Broj(AbbrLP(Niz[Broj]));

Niz izuzetaka[Sch] = 0;

EndAttemptsEndCycle;

Kao rezultat izvršenja, dobiće se niz s brojevima od 1 do 3.<Строки>, <Разделитель>) PageConnect

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

Za račun = 0 Po Array.Quantity() - 1 Ciklus Niz[Akt] = String(Niz[Akt]); EndCycle; Red = StrConnect(Niz, ";");

U ovom članku ću vam reći o funkciji brzog pretraživanja 1C Enterprise 8. Šta je brza pretraga? Vrlo jednostavno. Brza pretraga je jedan od načina za kretanje kroz velike liste 1C zapisa. To mogu biti spiskovi dokumenata, imenici, registri - sve što je predstavljeno u tabelama.

Šta je brza pretraga?

Funkcija brzog pretraživanja u 1C Enterprise dokumentima je izuzetno zgodna i omogućava vam da ne skrolujete kroz ogromne količine podataka (na primjer, pomoću trake za pomicanje), već da odmah odete na željeno mjesto na listi. Nažalost, početnici u 1C Enterprise 8 (uključujući 1C Accounting 8) u početku ne koriste mogućnosti brzog pretraživanja, radije se kreću kroz liste dokumenata ručno (a mogu se Veoma veliki). Ovaj članak će vam pomoći da shvatite korištenje brzog pretraživanja u 1C.

Prije svega, treba napomenuti da u konfiguracijama 1C Enterprise 8 izgrađenim na upravljanim obrascima, brzo pretraživanje funkcionira drugačije nego u prethodnim verzijama 1C. Stoga ćemo posebno analizirati upotrebu brze pretrage u upravljanim i redovnim oblicima.

Brza pretraga u 1C računovodstvu 8.2

U verzijama 1C računovodstva od 8.0 do 8.2 Ova funkcija je posebno namijenjena za tranzicija na željeni dio liste. Na primjer, pogledajte prozor kontnog plana prikazan na slici.


Određena linija je istaknuta u prozoru. Obratite pažnju na suptilni trougao pruga, na koji pokazuje crvena strelica. Kao iu drugim Windows programima u kojima postoje liste (na primjer, u Exploreru), pozicija ovog markera (trokuta) određuje sortiranje liste u cjelini - U kojoj koloni se nalazi marker, cela lista će biti sortirana po toj koloni. Na slici je marker u koloni Šifra, pa će računi u kontnom planu biti razvrstani po šifri.

Marker se može premještati iz jedne kolone u drugu klikom na željenu kolonu ( u rubrici HEADING!) pomoću miša. Ako se marker već nalazi u trenutnoj koloni, klik će promijeniti smjer sortiranja u suprotan (tj. od velikog prema malom ili obrnuto).

Ovo je standardno ponašanje za bilo koji Windows program. Koja je posebnost ovog markera u 1C Enterprise i kako se on odnosi na brzo pretraživanje? U tom slučaju će se izvršiti brza pretraga kontnog plana pomoću kolone Šifra.

Postojao je važan dio članka, ali bez JavaScripta nije vidljiv!

Kako koristiti brzu pretragu u 1C? Lako! Samo počnite kucati ono što želite da pronađete u OVOM stupcu, tj. gde je marker. U primjeru na gornjoj slici, morate unijeti broj računa. Na primjer, želite pronaći račun 50 Cash. U ovom slučaju unesite ( Nema potrebe nigdje kliknuti!) broj 50 sa tastature i ako u ovoj koloni postoji račun sa tim brojem (i, naravno, postoji), onda će lista skrolovati do ovog reda, a sam red će biti istaknut. Rezultat je prikazan na snimku ekrana kontnog plana ispod.

web stranica_

Tekst na koji strelica pokazuje je nema potrebe za pranjem nakon toga- on će nestati sam.

U gornjem primjeru, ako počnete kucati riječ “Blagajna”, tekst na dnu prozora će biti unesen, a zatim obrisan. Ovo se dešava jer čim počni uneseni niz za brzo pretraživanje više ne odgovara početku barem jednog reda u ovoj koloni, 1C Enterprise zaključuje da traženi niz nije pronađen i automatski ga briše. Zbog ovoga Dva su pravila koja treba zapamtiti.

U 1C Enterprise 8, brza pretraga se vrši na početku linije, tj. u koloni se traži podudaranje unesenog teksta sa početkom jednog od redova ove kolone.
Ovo dovodi do važne preporuke: kada unosite podatke u direktorije, imenujte elemente tako da ih možete lako pronaći brzim pretraživanjem. Na primjer, bolje je napisati naziv druge ugovorne strane kao “Naziv firme LLC” nego “Naziv firme LLC”. Štaviše, ne biste trebali koristiti navodnike i druge nepotrebne simbole u nazivu (govorimo o popunjavanju polja Ime u obrascima).

Ako počnete da kucate tekst i on se izbriše, ono što tražite nije u ovoj koloni! U tom slučaju provjerite jezik unosa, kao i kolonu u kojoj se vrši brza pretraga. Tipična greška je da je odabrana pogrešna kolona. Na primjer, marker se postavlja u kolonu Šifra, a pretraga se vrši po imenu računa.

Brza pretraga u 1C računovodstvu 8.3

Sada da vidimo koliko se brzo pretraživanje razlikuje u verziji 1C Enterprise 8.3. Upotreba je uglavnom slična verziji 8.2, ali postoji jedna velika razlika koju treba zapamtiti.

U 1C računovodstvu 8.3, kao iu svim drugim konfiguracijama na upravljanim obrascima (isti novi interfejs), radi kao filter. Jednostavno rečeno, kao rezultat funkcije brzog pretraživanja, dio liste.

Sada ćemo saznati kako to iskoristiti. Prvo pogledajte snimku ekrana prozora kontnog plana 1C Accounting 8.3 ispod.

web stranica_

Kao što vidite, isti marker je u jednoj od kolona. Pretraga se takođe vrši u koloni u kojoj je marker instaliran. Sve ovo ostaje nepromijenjeno. Međutim, ako počnete unositi tekst (u primjeru, broj računa), dogodit će se sljedeće.

web stranica_

Kao što vidite, prozor za pretragu se jednostavno otvorio automatski. Potpuno isti prozor će se otvoriti ako kliknete na dugme za pretragu na alatnoj traci prozora (podvučeno na slici). Kao rezultat toga, kada kliknete na dugme Find u prozoru za pretragu (skriveno iza padajućeg menija na slici) ili jednostavno Enter, dobićete sledeći rezultat.

web stranica_

Iz ovoga je jasno da brza pretraga u 1C računovodstvu 8.3 jednostavno ostavlja vidljivom dio liste koji zadovoljava uvjete pretraživanja. U tom slučaju nestaje dugme Pronađi, a umjesto njega pojavljuje se sočivo s križićem (podvučeno na slici), kada se klikne, lista se vraća u prvobitno stanje (linija pronađena kao rezultat brze pretrage ostaje istaknuta).

Još jedna važna karakteristika brzog pretraživanja u 1C računovodstvu 8.3— podudaranje se ne traži na početku reda, kao u verziji 8.2, već se traži podudaranje za podudaranje sa bilo kojim dijelom reda u koloni. Dakle, ako drugu stranu nazovete „Naziv firme LLC“, a prilikom pretraživanja počnite unositi „Naziv firme LLC“, red će se i dalje naći!

Izvlačenje zaključaka

Dakle, brzo pretraživanje u 1C Accounting 8.2 i starijim verzijama namijenjeno je pomicanju liste do željene linije, au 1C Accounting 8.3 brzo pretraživanje radi kao običan filter, skrivajući dio liste koji vam nije potreban.

Početna Bilješke kroz ogledalo

02/07/2013 Pretraga po nizu

Implementirano u verziji 8.3.3.641.

Ozbiljno smo poboljšali linijski unos. Da bismo to učinili, morali smo implementirati novi moćni mehanizam pretraživanja u polju za unos. Sada može brzo raditi kroz milione zapisa sadržanih u bazi podataka.

Analizirali smo zadatke pretraživanja sa kojima se korisnici susreću. Izvršili smo “reviziju” mehanizama dostupnih na platformi koji koriste različite algoritme pretraživanja. Kao rezultat toga, linijski unos je dobio potpuno nove mogućnosti.

Sada korisnici mogu pretraživati ​​bilo gdje u naslovu, a ne samo na početku reda. Oni mogu koristiti pretraživanje po cijelom tekstu, pa čak i obavljati pretraživanja koristeći pozadinski posao. Kako bismo osigurali da pretraživanje punog teksta radi efikasno za unos red po red, dodatno smo optimizirali pretraživač i poboljšali njegove performanse.

Prikupili smo sva nova svojstva koja vam omogućavaju da prilagodite unos po redovima na zasebnoj kartici prozora za uređivanje konfiguracijskih objekata:

Na primjer, možete odrediti da će se pretraga izvršiti bilo gdje u nizu, a ne samo na početku:

Tada korisnik može upisati bilo koje fragmente riječi, a ne samo one znakove s kojima počinje traženi niz:

Korištenje pretraživanja cijelog teksta prilikom unosa reda omogućeno je posebnim svojstvom:

Koristeći pretragu po cijelom tekstu, korisnici mogu brzo pronaći relevantne podatke među velikim količinama podataka koristeći bilo koju od riječi sadržanih, na primjer, u nazivu:

Oni također mogu pretraživati ​​koristeći nekoliko poznatih riječi. Nedovršene riječi će se automatski dopuniti mogućim kombinacijama:

Ako je količina podataka velika, tada u oba slučaja možete odrediti da se pretraživanje treba izvršiti pomoću pozadinskog posla:

Zatim će se pored polja za unos korisnicima prikazati animirana slika, slična slici koja se prikazuje kada se izvještaj radi u pozadini:

  • ako se ne očekuje da objekat koji se koristi u polju za unos sadrži veliku količinu podataka, onda preporučujemo da omogućite pretragu stringova bilo gde;
  • ako je u objektu planirana velika količina podataka, tada:
    • Preporučujemo da omogućite pretraživanje po punom tekstu i pozadini;
    • u isto vrijeme, također možete koristiti pretraživanje nizova bilo gdje, ali u kombinaciji s pozadinskom pretragom i po mogućnosti s pretraživanjem cijelog teksta; tako da se većina pretraživanja izvodi putem pretraživanja punog teksta.

Možete, ako je potrebno, redefinirati sva navedena svojstva dok izvršavate rješenje aplikacije.

Na klijentu - u polju unosa klijenta, rukovaoci događaja AutoSelection I EndInputText :

Na serveru - u modulu menadžera objekta čiji se podaci traže. U obrađivaču događaja ProcessingReceiveSelectionData :

Naravno, na ovom mjestu, na serveru, ne možete poništiti način na koji se pretraga obavlja "direktno" ili "pozadinski posao" . Zato što je izvršenje koda već prebačeno na server.

Zdravo svima
Danas su me zamolili da ne prikazujem prefiks dokumenta prilikom štampanja implementacionog dokumenta, rešio sam problem na sledeći način.

StrReplace(Broj, Lev(Broj, 3), "" );

Kada sam pogledao pomoćnika za sintaksu, toliko mi se dopao da sam hteo da pišem o tome rad sa stringovima u 1C: Enterprise.

Niz u 1C odnosi se na primitivni tip podataka.

Ako pogledate 1C pomoć, vidjet ćemo sljedeći opis tipa String:
Vrijednosti ovog tipa sadrže Unicode niz proizvoljne dužine.
Ako koristite svoje riječi o nizovima, funkcionirat će. Niz je konstanta koja se sastoji od različitih znakova, uvijek okružena navodnicima.

Postavljanje linije
Pozdrav = "Zdravo putniče";

Višelinijske linije u tipičnim konfiguracijama najčešće se kreiraju pomoću vertikalnog separatora “|”:
String = "Višelinijski
|string
|piši
|tekst";

Navodnik unutar stringa je određen dvostrukim navodnicima.
String = ""Tekst u navodnicima"";

Postoji mnogo operacija nad stringovima (pretraga unutar stringa, određivanje prvih, itd.), bolje je pogledati pomoćnik za sintaksu.
Syntax Helper - Opšti opis ugrađenog jezika -> ugrađene funkcije -> funkcije za rad sa stringovima.

Funkcije za rad sa stringovima

Evo kratkog sažetka funkcija za rad sa stringovima:

VReg<Строка>) — Funkcija pretvara sve znakove u nizu u velika slova.

SymbolCode(<Строка>, <НомерСимвола>) – Funkcija prima kod karaktera koji se nalazi u prenesenom nizu na poziciji sa navedenim brojem.

lav(<Строка>, <ЧислоСимволов>) – Funkcija odabire prve lijeve znakove niza.

Pronađi(<Строка>, <ПодстрокаПоиска>) — Funkcija pronalazi pojavljivanje niza za pretraživanje kao podniza u izvornom nizu.

NReg<Строка>) — Funkcija pretvara sve znakove u nizu u mala slova.

U redu<Строка>, <ЧислоСимволов>) – Ova funkcija se razlikuje od funkcija Lijeva po tome što bira posljednje znakove s desne strane niza.

EmptyString(<Строка>) — Funkcija provjerava prisustvo značajnih znakova u nizu.

simbol(<КодСимвола>) — Funkcija pretvara kod karaktera u niz koji sadrži znak.

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

AbbrLP(<Строка>) — Funkcija skraćuje znakove koji nisu značajni lijevo od prvog značajnog znaka u retku i razmakne desno od posljednjeg značajnog znaka u retku.

skraćeno(<Строка>) — Funkcija odsiječe beznačajne znakove desno od posljednjeg značajnog znaka u nizu.

srijeda<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Funkcija bira niz znakova, počevši od znaka<НачальныйНомер>, ukupan broj<ЧислоСимволов>.

Snaga(<Строка>) — Funkcija dobiva broj znakova u retku.

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

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

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

StrNumberRow(<Строка>) — Funkcija broji broj redova u višelinijskom nizu. U višelinijskom nizu, redovi su odvojeni novim redovima.

TReg(<Строка>) — Funkcija pretvara string u velika slova. To znači da se prvi znak svake riječi pretvara u veliko slovo u naslovu ili u veliko slovo ako naslov nije specificiran za znak. Preostali znakovi se pretvaraju u mala slova.

Tip Konverzije
Za eksplicitnu konverziju tipova podataka, postoje funkcije istog imena sa tipom podataka u koji se vrši konverzija: String(<Значение>)

StringFromNumbers = String(Broj);

Sve ove funkcije su detaljno opisane u Syntax Assistant-u. U članku sam opisao kako sintaktički pomoćnik može pomoći programeru početniku.

Primjeri za rad sa stringovima

Pretvaranje broja u niz i nazad.

Da biste dobili prikaz godine u nizu, koristite funkciju Format.

Godina = Format(TrenutniDatum(), "DF=yyyy") // Godina = "2012"

Da biste broj pretvorili u niz bez umetanja znaka za razdvajanje grupe (razmak bez prekida), trebate koristiti funkciju Format s parametrom NG=0:

Broj = 2012 Red = Format(Broj, "NH=0" );

//String = "2012"

String Bez razmaka.

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

Dodavanje niza

Da biste dodali redove u upit, koristi se operacija “+”. Možete dodati samo nizove ograničene dužine.

SELECT "Naziv: " + Naziv AS Kolona 1 IZ Imenika Counterparties GDJE Counterparties

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

SUBSTRING( <Строки> Analog funkcije Environment() iz objektnog modela. Funkcija Substring() može se primijeniti na nizove podataka i omogućava vam da odaberete fragment <НачальнаяПозиция> , počevši od broja karaktera <Длина> (znakovi u redu su numerisani počevši od 1) i dužina <Строка> karaktera. Rezultat izračunavanja funkcije ima tip stringa promjenjive 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 se trebamo uvjeriti da atribut stringa ispunjava određene kriterije, uspoređujemo ga:

ODABIR Counterparts AS Kolona 1 IZ Imenika Counterparties GDJE Counterparts.

Ali šta ako vam treba suptilnije poređenje? Ne samo jednakost ili nejednakost, već sličnost s određenim obrascem? Upravo za to je stvorena SLIČNA funkcija.

Operator SIMILAR vam omogućava da uporedite vrijednost izraza navedenog lijevo od njega sa nizom uzorka koji je specificiran desno. Vrijednost izraza mora biti tipa string. Ako vrijednost izraza odgovara uzorku, rezultat operatora će biti TRUE, u suprotnom će biti FALSE.

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

  • % (postotak): niz koji sadrži bilo koji broj proizvoljnih znakova;
  • _ (donja crta): jedan proizvoljan znak;
  • […] (jedan ili više znakova u uglastim zagradama): svaki pojedinačni znak naveden unutar uglastih zagrada. Nabrajanje može sadržavati opsege, na primjer a-z, što znači proizvoljan znak uključen u opseg, 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 označava sam sebe i ne nosi nikakav dodatni teret. Ako jedan od navedenih znakova treba biti napisan kao sam, onda mu mora prethoditi<Спецсимвол>. Sebe<Спецсимвол>(bilo koji odgovarajući znak) je definiran u istoj izjavi nakon ključne riječi SPECIAL CHARACTER.