Funcție pentru a găsi ultima intrare în contabilitatea 1C. Funcții de conversie a majusculelor text

Rândurile din 1C 8.3 în limbajul încorporat 1C reprezintă valori de tip primitiv Linia. Valorile de acest tip conțin un șir Unicode de lungime arbitrară. Variabilele de tip șir sunt un set de caractere cuprinse între ghilimele.

Exemplul 1. Să creăm o variabilă șir cu text.

StringVariable = „Bună lume!”;

Funcții pentru lucrul cu șiruri în 1s 8.3

Această secțiune vă va oferi principalele funcții care vă permit să schimbați liniile în 1c sau să analizați informațiile conținute în acestea.

StrLength

StrLength(<Строка>) . Returnează numărul de caractere conținut în șirul transmis ca parametru.

Exemplul 2. Să numărăm numărul de caractere din rândul „Bună lume!”

String = „Bună lume!”; NumberofCharacters = StrLength(String); Raport (NumărCaractere);

Rezultatul executării acestui cod va fi afișarea numărului de caractere din rând: 11.

AbbrL

AbbrL(<Строка>) . Decupează caracterele nesemnificative la stânga primului caracter semnificativ din șir.
Caractere mici:

  • spaţiu;
  • spatiu nerupere;
  • intabulare;
  • retur transport;
  • traducere de linie;
  • traducerea formularului (pagina).

Exemplul 3. Eliminați toate spațiile din partea stângă a liniei „lume!” și adăugați linia „Bună ziua”.

String = Abreviere ("lumea!"); String = „Bună ziua”+String; Raport (Șir);

Rezultatul executării acestui cod va fi afișarea liniei „Hello world!” pe ecran.

Abreviat

Abreviere(<Строка>) . Decupează caracterele nesemnificative la dreapta primului caracter semnificativ din șir.

Exemplul 4. Formular din rândurile „Bună ziua” și „pace!” expresia „Bună lume!”

Linie = Abreviere("Bună ziua ")+" "+ Abreviere(" lume!"); Raport (Șir);

AbbrLP

AbbrLP(<Строка>) . Decupează caracterele nesemnificative la dreapta primului caracter semnificativ din șir și, de asemenea, decupează caracterele nesemnificative la stânga primului caracter semnificativ din șir. Această funcție este folosită mai des decât precedentele două, deoarece este mai universală.

Exemplul 5. Eliminați caracterele nesemnificative din stânga și dreapta din numele contrapărții.

Counterparty = Directoare. Counterparties.Find By Details("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

un leu

Un leu(<Строка>, <ЧислоСимволов>) . Obține primele caractere ale șirului, numărul de caractere este specificat în parametru Numărul de caractere.

Exemplul 6. Lăsați structura Angajat conțin numele, prenumele și patronimele angajatului. Obțineți un șir cu numele de familie și inițialele.

NameInitial = Lev(Employee.Name, 1); Patronimic Initial = Leu(Angajat. Patronimic, 1); FullName = Employee.LastName + " " + FirstName Initial + "." + Inițiala din mijloc + ".";

Dreapta

Dreapta(<Строка>, <ЧислоСимволов>) . Obține ultimele caractere ale unui șir, numărul de caractere specificat în parametru Numărul de caractere. Dacă numărul specificat de caractere depășește lungimea șirului, atunci întregul șir este returnat.

Exemplul 7. Lăsați o dată în formatul „aaaammzz” să fie scrisă la sfârșitul unei variabile șir, obțineți un șir cu data și convertiți-l în tip Data.

String = „Data curentă: 20170910”; StringDate = Drepturi (String, 8); Data = Data(StringDate);

miercuri

Miercuri(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Obține un subșir din șirul transmis ca parametru Linia, începând de la caracterul al cărui număr este specificat în parametru InitialNumber iar lungimea trecută în parametru Numărul de caractere. Numerotarea caracterelor dintr-o linie începe de la 1. Dacă se află în parametru InitialNumber este specificată o valoare mai mică sau egală cu zero, atunci parametrul ia valoarea 1. Dacă parametrul Numărul de caractere nu este specificat, apoi sunt selectate caractere până la sfârșitul rândului.

Exemplul 8. Lăsați variabila șir care începe din a noua poziție să conțină codul de regiune, ar trebui să îl obțineți și să îl scrieți într-o linie separată.

String = „Regiune: 99 Moscova”; Regiune = Avg(String, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Caută un subșir specificat într-un șir, returnând numărul de poziție al primului caracter al subșirului găsit. Să ne uităm la parametrii acestei funcții:

  • Linia. șir sursă;
  • Căutare subșir. Căutare subșir;
  • Direcția de căutare. Specifică direcția de căutare a unui subșir într-un șir. Poate lua valori:
    • Căutare Direcție. De la început;
    • Căutare.Sfârșit direcția;
  • Poziția inițială. Specifică poziția în șir de la care începe căutarea;
  • NumberOccurrence. Specifică numărul de apariție al subșirului căutat în șirul sursă.

Exemplul 9. În rândul „Bună lume!” Determinați poziția ultimei apariții a caracterului „și”.

PositionNumber = StrFind("Bună lume!", "și", SearchDirection.End); Raport (Număr Poziție);

Rezultatul executării acestui cod va fi afișarea numărului ultimei apariții a simbolului „și”: 9.

VReg

VReg(<Строка>) . Convertește toate caracterele din șirul specificat în 1s8 în majuscule.

Exemplul 10: Convertiți șirul „hello world!” la majuscule.

StringVreg = VReg("bună lume!"); Raport (StringVreg);

Rezultatul executării acestui cod va fi afișarea liniei „HELLO WORLD!”

NReg

NReg(<Строка>) . Convertește toate caracterele șirului specificat în 1s 8 în minuscule.

Exemplul 11: Convertiți șirul „HELLO WORLD!” la litere mici.

StringNreg = NReg("HELLO WORLD!"); Raport (StringVreg);

Rezultatul executării acestui cod va fi afișarea liniei „hello world!”

Treg

TReg(<Строка>) . Convertește un șir după cum urmează: primul caracter al fiecărui cuvânt este convertit în majuscule, caracterele rămase ale cuvântului sunt convertite în minuscule.

Exemplul 12: Scrieți cu majuscule primele litere ale cuvintelor din rândul „hello world!”

StringTreg = TReg("bună lume!"); Raport (StringTreg);

Rezultatul executării acestui cod va fi afișarea liniei „Hello World!”

Simbol

Simbol(<КодСимвола>) . Obține un caracter prin codul său Unicod.

Exemplul 13. Adăugați la stânga și la dreapta liniei „Hello World!” simbol ★

StringWithStars = Simbol("9733")+"Bună lume!"+Simbol ("9733"); Raport (StringWithStars);

Rezultatul executării acestui cod va fi afișarea liniei „★Hello World!”

Cod simbol

CodSimbol(<Строка>, <НомерСимвола>) . Obține codul caracterului Unicode din șirul specificat în primul parametru, situat în poziția specificată în al doilea parametru.

Exemplul 14. Aflați codul ultimului caracter din rândul „Hello World!”

String = „Bună lume!”; CharacterCode = CharacterCode(String, StrLength(String)); Notify(CharacterCode);

Rezultatul executării acestui cod va fi afișarea codului simbol „!” - 33.

Linie goală

Linie goală (<Строка>) . Verifică dacă șirul constă doar din caractere nesemnificative, adică dacă este gol.

Exemplul 15. Verificați dacă un șir format din trei spații este gol.

Gol = EmptyString(" "); Raport (Gol);

Rezultatul executării acestui cod va fi afișarea cuvântului „Da” (o expresie șir de valoare logică Adevărat).

Înlocuire pagină

StrInlocuire(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Găsește toate aparițiile subșirului de căutare în șirul sursă și îl înlocuiește cu subșirul de înlocuire.

Exemplul 16. În rândul „Hello World!” înlocuiți cuvântul „Pace” cu cuvântul „Prieteni”.

String = StrReplace("Bună lume!", "Lumea", "Prieteni"); Raport (Șir);

Rezultatul executării acestui cod va fi afișarea liniei „Salut prieteni!”

StrNumberLines

StrNumberRow(<Строка>) . Vă permite să numărați numărul de linii dintr-un șir cu mai multe linii. Pentru a merge la o nouă linie în 1s 8, utilizați simbolul PS(caracter nou linie).

Exemplul 17. Determinați numărul de rânduri din text:
"Prima linie
A doua linie
A treia linie"

Number = StrNumberString("Prima linie"+Caractere.PS +"A doua linie"+Simboluri.PS +"A treia linie"); Raport (Număr);

Rezultatul executării acestui cod va fi afișarea numărului de linii din text: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Obține o linie într-un șir de mai multe linii după numărul său. Numerotarea liniilor începe de la 1.

Exemplul 18. Obțineți ultima linie din text:
"Prima linie
A doua linie
A treia linie"

Text = "Prima linie" + Simboluri. PS + "A doua linie" + Simboluri. PS + "A treia linie"; LastRow = StrGetRow(Text, StrNumberLines(Text)); Raport (LastLine);

Rezultatul executării acestui cod va fi afișarea liniei „Third Line”.

PageNumberOccurrence

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Returnează numărul de apariții ale subșirului specificat într-un șir. Funcția este sensibilă la majuscule și minuscule.

Exemplul 19. Determinați de câte ori apare litera „c” în linia „Linii în 1s 8.3 și 8.2”, indiferent de cazul ei.

Linie = „Linii în 1s 8.3 și 8.2”; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Raport (Număr Apariții);

Rezultatul executării acestui cod va fi afișarea numărului de apariții: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Verifică dacă șirul trecut în primul parametru începe cu șirul din al doilea parametru.

Exemplul 20. Determinați dacă TIN-ul contrapărții selectate începe cu numărul 1. Introduceți variabila Contrapartidă Contrapartide.

TIN = Counterparty.TIN; StartsUNits = StrStartsWith(TIN, "1"); If Starts with units Then //Codul dvs. EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Verifică dacă șirul trecut în primul parametru se termină cu șirul din al doilea parametru.

Exemplul 21. Determinați dacă TIN-ul contrapărții selectate se termină cu numărul 2. Introduceți variabila Contrapartidă este stocată o referință la un element de director Contrapartide.

TIN = Counterparty.TIN; EndsWithTwo = StrEndsWith(TIN, „2”); If EndsInTwo Then //Codul dvs. EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Împarte un șir în părți folosind caracterele delimitatoare specificate și scrie șirurile rezultate într-o matrice. Primul parametru stochează șirul sursă, al doilea conține șirul care conține delimitatorul, iar al treilea indică dacă șirurile goale trebuie scrise în matrice (în mod implicit Adevărat).

Exemplul 22. Să avem un șir care conține numere separate prin simbolul „;”, obținem o matrice de numere din șir.

String = "1; 2; 3"; Array = StrDivide(String, ";"); Pentru Count = 0 By Array.Quantity() - 1 Cycle Attempt Array[Count] = Number(AbbrLP(Array[Count])); Exception Array[Sch] = 0; EndAttemptsEndCycle;

Ca rezultat al execuției, se va obține o matrice cu numere de la 1 la 3.

PageConnect

StrConnect(<Строки>, <Разделитель>) . Convertește matricea de șiruri din primul parametru într-un șir care conține toate elementele matricei separate de delimitatorul specificat în al doilea parametru.

Exemplul 23. Folosind tabloul de numere din exemplul anterior, obțineți șirul original.

Pentru cont = 0 By Array.Quantity() - 1 Cycle Array[Act] = String(Array[Act]); EndCycle; Rând = StrConnect(Matrice, "; ");

În acest articol vă voi spune despre funcția de căutare rapidă a 1C Enterprise 8. Ce este căutarea rapidă? Foarte simplu. Căutarea rapidă este una dintre modalitățile de a naviga în liste mari de înregistrări 1C. Acestea pot fi liste de documente, directoare, registre - tot ceea ce este prezentat în tabele.

Ce este căutarea rapidă?

Funcția de căutare rapidă în documentele 1C Enterprise este extrem de convenabilă și vă permite să nu defilați prin cantități uriașe de date (de exemplu, folosind bara de defilare), ci să mergeți imediat la locul dorit din listă. Din păcate, utilizatorii începători ai 1C Enterprise 8 (inclusiv 1C Accounting 8) nu folosesc la început capacitățile de căutare rapidă, preferând să parcurgă listele de documente manual (și pot fi Foarte mare). Acest articol vă va ajuta să înțelegeți utilizarea căutării rapide în 1C.

În primul rând, trebuie remarcat faptul că în configurațiile 1C Enterprise 8 construite pe formulare gestionate, căutarea rapidă funcționează diferit față de versiunile anterioare ale 1C. Prin urmare, vom analiza separat utilizarea căutării rapide în formularele gestionate și în cele obișnuite.

Căutare rapidă în 1C Accounting 8.2

În versiunile 1C Accounting de la 8.0 la 8.2 Această funcție este destinată special tranziție la partea dorită a listei. De exemplu, uitați-vă la fereastra planului de conturi prezentată în figură.


O anumită linie este evidențiată în fereastră. Acordați atenție triunghiului subtil de dungi, indicat de săgeata roșie. Ca și în alte programe Windows în care există liste (de exemplu, în Explorer), poziția acestui marcator (triunghi) determină sortarea listei ca întreg - În ce coloană este plasat marcatorul, întreaga listă va fi sortată după acea coloană.În figură, marcatorul se află în coloana Cod, prin urmare conturile din planul de conturi vor fi sortate după cod.

Markerul poate fi mutat de la o coloană la alta făcând clic pe coloana dorită ( pe coloana TITUL!) cu mouse-ul. Dacă marcatorul se află deja în coloana curentă, atunci făcând clic se va schimba direcția de sortare în sensul opus (adică de la mare la mic sau invers). Acesta este un comportament standard pentru orice program Windows. Care este particularitatea acestui marker în 1C Enterprise și ce legătură are cu căutarea rapidă?

O căutare rapidă în listele 1C Enterprise 8 este efectuată de coloana în care se află marcatorul.În acest caz, se va efectua o căutare rapidă în planul de conturi folosind coloana Cod.

A fost o parte importantă a articolului, dar fără JavaScript nu este vizibil!

Cum se utilizează căutarea rapidă în 1C? Uşor! Începeți doar să introduceți ceea ce doriți să găsiți în ACEASTA coloană, adică unde este marcatorul. În exemplul din figura de mai sus, trebuie să introduceți numărul contului. De exemplu, doriți să găsiți contul 50 Cash. În acest caz, introduceți ( Nu este nevoie să faceți clic oriunde!) numărul 50 de la tastatură și dacă există un cont cu acel număr în această coloană (și, desigur, există unul), atunci lista va derula la această linie, iar linia în sine va fi evidențiată. Rezultatul este afișat în captura de ecran a planului de conturi de mai jos.

website_

Textul spre care indică săgeata este nu este nevoie să te speli după aceea- va dispărea de la sine.

În exemplul de mai sus, dacă începeți să tastați cuvântul „Casier”, textul din partea de jos a ferestrei va fi introdus și apoi șters. Acest lucru se întâmplă pentru că de îndată ce startșirul de căutare rapidă introdus nu mai corespunde începutului a cel puțin unui rând din această coloană, 1C Enterprise concluzionează că șirul căutat nu a fost găsit și îl șterge automat. Din cauza asta Există două reguli de reținut.

În 1C Enterprise 8, o căutare rapidă este efectuată la începutul liniei, adică într-o coloană, se caută o potrivire a textului introdus cu începutul unuia dintre rândurile acestei coloane.
Acest lucru duce la o recomandare importantă: atunci când introduceți date în directoare, numiți elementele astfel încât să poată fi găsite convenabil folosind o căutare rapidă. De exemplu, este mai bine să scrieți numele contrapărții ca „Firm Name LLC” decât „Firm Name LLC”. Și cu atât mai mult, nu trebuie să folosiți ghilimele și alte simboluri inutile în nume (vorbim despre completarea câmpului Nume în formulare).

Dacă începi să tastezi text și acesta este șters, ceea ce cauți nu se află în această coloană!În acest caz, verificați limba de introducere, precum și coloana în care se efectuează căutarea rapidă. O greșeală tipică este că este selectată coloana greșită. De exemplu, marcatorul este setat în coloana Cod, iar căutarea este efectuată după numele contului.

Căutare rapidă în 1C Accounting 8.3

Acum să vedem cât de mult diferă căutarea rapidă în versiunea 1C Enterprise 8.3. Utilizarea este în mare parte similară cu versiunea 8.2, dar există o diferență majoră de reținut.

În 1C Accounting 8.3, precum și în orice alte configurații pe formulare gestionate (aceeași interfață nouă), funcționează ca un filtru. Pur și simplu, ca rezultat al funcției de căutare rapidă, o parte a listei ascunzându-se.

Acum vom afla cum să folosim acest lucru. Mai întâi, uitați-vă la captura de ecran a ferestrei planului de conturi 1C Accounting 8.3 de mai jos.

website_

După cum puteți vedea, același marcator se află într-una dintre coloane. Căutarea se efectuează și în coloana în care este instalat markerul. Toate acestea rămân neschimbate. Cu toate acestea, dacă începeți să introduceți text (în exemplu, numărul contului), se va întâmpla următoarele.

website_

După cum puteți vedea, fereastra de căutare pur și simplu s-a deschis automat. Exact aceeași fereastră se va deschide dacă faceți clic pe butonul de căutare din bara de instrumente a ferestrei (subliniat în figură). Drept urmare, când faceți clic pe butonul Găsiți din fereastra de căutare (ascuns în spatele meniului derulant din imagine) sau pur și simplu pe Enter, obțineți următorul rezultat.

website_

Din aceasta este clar că căutarea rapidă în 1C Accounting 8.3 pur și simplu lasă vizibilă partea din listă care îndeplinește condițiile de căutare.În acest caz, butonul Găsiți dispare, iar în loc de acesta apare o lentilă cu o cruce (subliniată în figură), atunci când se face clic, lista revine la starea inițială (linia găsită ca urmare a unei căutări rapide rămâne evidențiată) .

O altă caracteristică importantă a căutării rapide în 1C Accounting 8.3— o potrivire nu este căutată la începutul liniei, ca în versiunea 8.2, dar o potrivire este căutată pentru o potrivire cu orice parte a liniilor din coloană. Astfel, dacă denumești contrapartea „Firm Name LLC”, iar la căutare, începeți să introduceți „Firm Name LLC”, atunci linia va fi în continuare găsită!

Tragerea concluziilor

Astfel, căutarea rapidă în 1C Accounting 8.2 și versiunile anterioare are scopul de a derula lista la linia dorită, iar în 1C Accounting 8.3 căutarea rapidă funcționează ca un filtru obișnuit, ascunzând partea din listă de care nu aveți nevoie.

Acasă Note de la Through the Looking Glass

02/07/2013 Căutare după șir

Implementat în versiunea 8.3.3.641.

Am îmbunătățit serios intrarea în linie. Pentru a face acest lucru, a trebuit să implementăm un nou mecanism de căutare puternic în câmpul de introducere. Acum poate funcționa rapid prin milioanele de înregistrări conținute în baza de date.

Am analizat sarcinile de căutare pe care le întâlnesc utilizatorii. Am efectuat un „audit” al mecanismelor disponibile în platformă care utilizează diverși algoritmi de căutare. Ca rezultat, intrarea pe linie a dobândit capabilități complet noi.

Acum utilizatorii pot căuta oriunde într-un titlu, nu doar la începutul rândului. Ei pot utiliza căutarea text integral și chiar pot efectua căutări folosind o lucrare de fundal. Pentru a ne asigura că căutarea text integral funcționează eficient pentru introducerea rând cu linie, am optimizat și mai mult motorul de căutare și i-am îmbunătățit performanța.

Am colectat toate proprietățile noi care vă permit să personalizați intrarea după linie într-o filă separată a ferestrei de editare a obiectului de configurare:

De exemplu, puteți specifica că căutarea va fi efectuată oriunde în șir, nu doar la început:

Apoi utilizatorul poate introduce orice fragment de cuvinte și nu doar acele caractere cu care începe șirul căutat:

Utilizarea căutării full-text la introducerea unui rând este activată de o proprietate separată:

Folosind căutarea full-text, utilizatorii pot găsi rapid date relevante printre volume mari de date folosind oricare dintre cuvintele conținute, de exemplu, în nume:

De asemenea, pot căuta folosind mai multe cuvinte cunoscute. Cuvintele neterminate vor fi completate automat cu posibile combinații:

Dacă cantitatea de date este mare, atunci în ambele cazuri puteți specifica că căutarea trebuie efectuată folosind un job de fundal:

Apoi, lângă câmpul de introducere, va fi afișată o imagine animată pentru utilizatori, similară cu imaginea care este afișată atunci când raportul rulează în fundal:

  • dacă obiectul care este utilizat în câmpul de intrare nu este de așteptat să conțină o cantitate mare de date, atunci vă recomandăm să activați căutarea de șiruri oriunde;
  • dacă într-un obiect este planificată o cantitate mare de date, atunci:
    • Vă recomandăm să activați căutarea în text integral și în fundal;
    • în același timp, puteți utiliza și căutarea de șiruri oriunde, dar împreună cu căutarea în fundal și, de preferință, cu căutarea text integral; astfel încât cele mai multe căutări sunt efectuate prin căutare full-text.

Dacă este necesar, puteți redefini toate proprietățile enumerate în timpul execuției soluției aplicației.

Pe client - în manipulatorii de evenimente din câmpul de intrare client Selectare automată Și EndInputText :

Pe server - în modulul manager al obiectului ale cărui date sunt căutate. În handler de evenimente ProcesareReceiveSelectionData :

Desigur, în acest loc, pe server, nu poți trece peste modul în care se efectuează căutarea "Direct" sau „Lucră de bază” . Pentru că execuția codului a fost deja transferată pe server.

Salutare tuturor
Astăzi mi-au cerut să nu afișez prefixul documentului la tipărirea unui document de implementare, am rezolvat problema în felul următor.

StrReplace(Număr, Lev(Număr, 3), "" );

Când m-am uitat în asistentul de sintaxă, mi-a plăcut atât de mult încât am vrut să scriu despre el lucrul cu șiruri în 1C:Enterprise.

Un șir în 1C se referă la un tip de date primitiv.

Dacă te uiți la ajutorul 1C, vom vedea următoarea descriere a tipului String:
Valorile de acest tip conțin un șir Unicode de lungime arbitrară.
Dacă folosiți propriile cuvinte despre șiruri, va funcționa. Un șir este o constantă formată din diferite caractere, întotdeauna înconjurate de ghilimele.

Stabilirea unei linii
Salutare = „Bună ziua pasagerului”;

Liniile cu mai multe linii în configurații tipice sunt cel mai adesea create folosind separatorul vertical „|”:
String = „Multilinie
|șir
|scrie
|text";

Un ghilimele dintr-un șir este specificat prin ghilimele duble.
String = ""Text între ghilimele"";

Există multe operații pe șiruri (căutarea în interiorul șirului, determinarea primelor etc.), este mai bine să te uiți la Syntax Assistant.
Syntax Helper - Descrierea generală a limbajului încorporat -> funcții încorporate -> funcții pentru lucrul cu șiruri.

Funcții pentru lucrul cu șiruri

Iată un scurt rezumat al funcțiilor pentru lucrul cu șiruri de caractere:

VReg(<Строка>) — Funcția convertește toate caracterele din șir în majuscule.

CodSimbol(<Строка>, <НомерСимвола>) – Funcția primește codul caracterului aflat în șirul transmis la poziția cu numărul specificat.

Un leu(<Строка>, <ЧислоСимволов>) – Funcția selectează primele caractere din stânga șirului.

Găsi(<Строка>, <ПодстрокаПоиска>) — Funcția găsește o apariție a șirului de căutare ca subșir în șirul sursă.

NReg(<Строка>) — Funcția convertește toate caracterele din șir în litere mici.

Dreapta(<Строка>, <ЧислоСимволов>) – Această funcție diferă de funcțiile Left prin faptul că selectează ultimele caractere din dreapta șirului.

Linie goală (<Строка>) — Funcția verifică șirul pentru prezența caracterelor semnificative.

Simbol(<КодСимвола>) — Funcția convertește codul caracterului într-un șir care conține caracterul.

AbbrL(<Строка>) — Funcția decupează caracterele nesemnificative din stânga primului caracter semnificativ din șir.

AbbrLP(<Строка>) — Funcția decupează caracterele nesemnificative la stânga primului caracter semnificativ din linie și spațiile la dreapta ultimului caracter semnificativ din linie.

Abreviere(<Строка>) — Funcția decupează caracterele nesemnificative din dreapta ultimului caracter semnificativ din șir.

Miercuri(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Funcția selectează un șir de caractere, începând cu caracterul<НачальныйНомер>, numărul total<ЧислоСимволов>.

StrLength(<Строка>) — Funcția primește numărul de caractere din linie.

StrInlocuire(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Funcția găsește toate aparițiile subșirului de căutare în șirul sursă și îl înlocuiește cu subșirul de înlocuire.

StrGetString(<Строка>, <НомерСтроки>) - Funcția primește un șir de mai multe linii după număr.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — Funcția calculează numărul de apariții ale subșirului de căutare în șirul sursă.

StrNumberRow(<Строка>) — Funcția numără numărul de linii dintr-un șir cu mai multe linii. Într-un șir cu mai multe linii, liniile sunt separate prin linii noi.

TReg(<Строка>) — Funcția convertește șirul în majuscule de titlu. Aceasta înseamnă că primul caracter al fiecărui cuvânt este convertit în majuscule sau litere mari dacă nu este specificată pentru caracter. Caracterele rămase sunt convertite în litere mici.

Conversii de tip
Pentru conversia explicită a tipurilor de date, există funcții cu același nume cu tipul de date la care are loc conversia: String(<Значение>)

StringFromNumbers = String(Number);

Toate aceste funcții sunt descrise în detaliu în Syntax Assistant; am descris modul în care Syntax Assistant poate ajuta un programator începător în articol.

Exemple de lucru cu șiruri

Conversia unui număr într-un șir și înapoi.

Pentru a obține o reprezentare în șir a anului, utilizați funcția Format.

An = Format(CurrentDate(), "DF=aaaa") // An = "2012"

Pentru a converti un număr într-un șir fără a introduce un caracter separator de grup (spațiu neîntrerupt), trebuie să utilizați funcția Format cu parametrul NG=0:

Număr = 2012 Linie = Format(Număr, "NH=0" ); //Șir = „2012”

String Fără spații.

Există puține mecanisme pentru a lucra cu șiruri în interogările 1C. În primul rând, liniile pot fi adăugate. În al doilea rând, puteți lua un subșir dintr-un șir. În al treilea rând, șirurile pot fi comparate, inclusiv după model. Asta este probabil tot ce se poate face cu șiruri.

Adăugarea șirurilor

Pentru a adăuga rânduri într-o interogare, se utilizează operația „+”. Puteți adăuga doar șiruri de lungime limitată.

SELECTAȚI „Nume: ” + Contrapărți. Nume AS Coloana 1 DIN Director. Contrapărți AS Contrapărți WHERE Contrapărți. Link = &Link

Funcția subșir

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

Un analog al funcției Environment() din modelul obiect. Funcția Substring() poate fi aplicată datelor șirului și vă permite să selectați un fragment <Строки> , începând cu numărul caracterului <НачальнаяПозиция> (caracterele dintr-o linie sunt numerotate începând de la 1) și lungime <Длина> personaje. Rezultatul calculului funcției are un tip de șir de lungime variabilă, iar lungimea va fi considerată nelimitată dacă <Строка> are lungime și parametri nelimitați <Длина> nu este o constantă sau mai mare decât 1024.

Dacă lungimea șirului este mai mică decât cea specificată în al doilea parametru, atunci funcția va returna un șir gol.

Atenţie! Utilizarea funcției SUBSTRING() pentru a converti șiruri de lungime nelimitată în șiruri de lungime limitată nu este recomandată. În schimb, este mai bine să utilizați operatorul de distribuție EXPRESS().

Funcție similară

Dacă trebuie să ne asigurăm că un atribut șir îndeplinește anumite criterii, îl comparăm:

SELECTARE Counterparties. Nume AS Coloana 1 FROM Directory. Counterparties AS Counterparties WHERE Contrapartide. Nume = "Gazprom"

Dar dacă ai nevoie de o comparație mai subtilă? Nu doar egalitate sau inegalitate, ci asemănarea cu un anumit tipar? Exact pentru asta a fost creată funcția SIMILAR.

LIKE — Operator pentru verificarea asemănării unui șir cu un model. Analog de LIKE în SQL.

Operatorul SIMILAR vă permite să comparați valoarea expresiei specificate în stânga acesteia cu șirul de model specificat în dreapta. Valoarea expresiei trebuie să fie de tip șir. Dacă valoarea expresiei se potrivește cu modelul, rezultatul operatorului va fi TRUE, în caz contrar va fi FALS.

Următoarele caractere din șirul șablon sunt caractere de serviciu și au o semnificație diferită de caracterul șir:

  • % (procent): o secvență care conține orice număr de caractere arbitrare;
  • _ (subliniere): un caracter arbitrar;
  • […] (unul sau mai multe caractere între paranteze drepte): orice caracter unic enumerat între paranteze drepte. Enumerarea poate conține intervale, de exemplu a-z, adică un caracter arbitrar inclus în interval, incluzând capetele intervalului;
  • [^...] (în paranteze drepte un semn de negație urmat de unul sau mai multe caractere): orice caracter unic, altul decât cele enumerate după semnul de negație.

Orice alt simbol înseamnă el însuși și nu poartă nicio sarcină suplimentară. Dacă unul dintre caracterele enumerate trebuie să fie scris ca el însuși, atunci trebuie să fie precedat de<Спецсимвол>. Eu insumi<Спецсимвол>(orice caracter adecvat) este definit în aceeași instrucțiune după cuvântul cheie SPECIAL CHARACTER.