internetul Windows. Android

1c Găsiți a doua intrare în șir. Noi funcții de lucru cu rânduri

Tipul "șir" se găsește în toate limbile de programare. Este primitiv, iar în 1c există multe funcții pentru a lucra cu el. În acest articol vom lua în considerare în detaliu diverse metode Lucrați cu tipuri de șir în 1c 8.3 și 8.2 pe exemple.

Linia

Pentru a converti o variabilă de orice tip la un șir, există funcția "Row ()" a aceluiași nume. Parametrul de intrare va fi variabila însăși, a cărei reprezentare a șirului trebuie obținută.

Rând (fals) // returnează "nu"
Rând (12345) // returnează "12 345"
Rând (actualdata ()) // 2.5.07.2017 11:55:36 "

Conversia la linie este posibilă nu numai tipuri primitive, dar restul, cum ar fi elementele cărților de referință, documente.

Sokrlp, Sokrel, Cropp

Ca parametrii de intrare al acestor funcții, o variabilă de tip șir este o variabilă. Funcțiile îndepărtează caracterele nesemnificative (spații, cărucioare și alte spații): în partea stângă și dreaptă, numai pe partea stângă și numai cu partea dreaptă, respectiv.

Sokrlp (spațiile vor fi îndepărtate pe ambele părți ") //" Spațiile de pe ambele părți vor fi eliminate "
Sokrel (spațiile vor fi îndepărtate pe ambele părți ") //" Spațiile rămase "vor fi eliminate"
Socrp ("Spații de pe ambele părți") // "Spațiile din dreapta vor fi eliminate"

Leu, drepturi, mass-media

Aceste funcții vă permit să tăiați o parte a liniei. Funcția "Lion ()" va reveni o parte a liniei din partea stângă a lungimii specificate. Funcția "dreapta ()" este similară, dar tunderea este efectuată în partea dreaptă. Funcția "Media ()" vă permite să specificați numărul de caractere din care vor fi evidențiate șirul și lungimea acestuia.

Leu ("variabilă de șir", 4) // returnează "paie"
Drepturile ("variabila de balustradă", 7) // returnează "ERAMET"
Media ("Variabila șirului", 2, 5) // întoarce "Troko"

Strotina.

Funcția determină numărul de caractere conținute în variabila șirului.

Streglin ("cuvântul") // rezultatul va fi numărul 5

A găsi

Funcția vă permite să căutați în orice parte variabilă a șirului. Ca o valoare returnată, numărul va fi poziția care arată poziția de la începutul liniei găsite. Dacă nu sunt detectate coincidențe, zero este returnat.

Vă rugăm să rețineți că căutarea este făcută în ceea ce privește registrul. Dacă în linia inițială va fi mai mult de o intrare a substringului de căutare, funcția va reveni la începutul primei intrări.

Găsiți ("O dată, de două ori, două, trei", "două") // Funcția va returna numărul 6

Linia goală

Utilizarea acestei funcții vă permite să determinați dacă șirul este gol. Caracterele au fost luate în considerare, cum ar fi spațiul, transferul de transport și altele nu sunt luate în considerare.

"Pupkin Vasily Ivanovich") // Funcția va returna valoarea falsă
Pastastroca ("") // Funcția va returna valoarea adevărului

Lumina, nreg, treg

Aceste funcții sunt foarte utile atunci când compară și converti variabilele de șir. "Râde ()" va returna linia originală în majuscule, "NEG ()" în mai jos și "TREG (TREG ()" formează astfel încât primul caracter al fiecărui cuvânt individual să fie cu o scrisoare de capital și toate ulterioare cu mic.

VREGA ("Director General") // Returnarea importanței - "Director General"
NREGA ("Director General") // Importanța returnării - "CEO"
Trega ("Director General") // Valoarea returnată - "Director General"

Strună

Această caracteristică este un analog de înlocuire în editori de text. Vă permite să înlocuiți un caracter sau un set de caractere altor în variabilele de șir.

RUST ("roșu, alb, galben", ","; ") // retur" roșu; alb; galben"

Strostroke.ro

Funcția vă permite să determinați numărul de rânduri separate de transferul de transport în variabila de text.

Ciclul, în exemplul de mai jos, vor avea loc trei cercuri, deoarece funcția Stringslock va reveni la 3:

Pentru Ind \u003d 1 prin Strokerlock ("String1" + caractere. PC + "String2" + caractere. PC + "String3")
<тело цикла>
Endcycle;

Plugulastrik.

Această caracteristică funcționează cu text multi-linie, precum și cea precedentă. Vă permite să obțineți un șir specific din variabila de text.

Conectați-vă ("String1" + caractere. PC + "String2" + caractere. PS + "String3", 2) // Return "String2"

Strirling.

Funcția numără cantitatea de intrare de simbol sau substring în șirul dorit.

Formele de stație ("a; b; in; g;", ";") // Funcția va returna numărul 4

Simbol și codeimvol.

Aceste funcții vă permit să primiți un simbol în codul său în codarea Unicode, precum și să definiți acest cod pe simbolul însuși.

Cuțiimvolul ("A") // Funcția va returna numărul 1 040
Kodsimvol (1040) // Funcția va reveni "a"

Sarcini frecvente atunci când lucrați cu rânduri

Combinarea șirului

Pentru a combina mai multe linii (concatenate), este suficient să utilizați operatorul de adăugare.

"Linia 1" + "Linia 2" // Rezultatul de pliere a două linii va fi "șir 1 linia 2"

Tip conversie

Pentru a converti tipul într-un șir, de exemplu, o referință la elementul director, numărul și așa mai departe, este suficient să utilizați funcția "ROW ()". Funcțiile similare cu "COPLP ()" vor converti, de asemenea, variabilele în șir, dar imediat cu tăierea caracterelor nesemnificative.

Rând (1000) // returnează "1.000"

Rețineți că atunci când convertiți un număr într-un șir, programul a adăugat automat un spațiu care separă o mie. Pentru a evita acest lucru, puteți utiliza următoarele structuri:

Rust (linia (1000), simboluri. NPP, "") // returnați "1000"

Rând (format (1000, "cg \u003d")) // retur "1000"

Citate în șir

Destul de des, va trebui să vă ocupați de necesitatea de a specifica într-o cotație variabilă a șirului. Poate fi ca un text de interogare scris în configurator și doar o variabilă. Pentru a rezolva această sarcină, trebuie doar să instalați două caractere de citate.

Titlu \u003d rând ("LLC" "Horn și Hooves" - Aceasta este noi! ") // reține" Rog și Hortal LLC "- aceasta este noi!"

Multi-linie, transfer rând

Pentru a crea un text multi-linie, este suficient să adăugați la acesta pentru a transfera șirul la acesta (simboluri. PS).

Multi-linecext \u003d "prima linie" + simboluri. FS + "al doilea șir"

Cum să eliminați lacunele

Pentru a elimina lacunele din dreapta sau din stânga, puteți utiliza funcția "COPLP ()" (precum și "Sokrel ()" și "Cropp ()"):

IntervalBesProelov \u003d Coolp ("Multe litere") // Funcția va returna valoarea "Multe litere"

Dacă după transformarea numărului în șirul pe care trebuie să-l eliminați lacune inseparabileProfitați de următorul design:

SretBeBones \u003d Rust (string (99999), simboluri. NPP, "") // reține "99999"

De asemenea, programatorii se bucură adesea de următorul design, ceea ce vă permite să ștergeți sau să înlocuiți toate spațiile variabilei de text la un alt simbol:

Stringbezf Belts \u003d Rust ("PR și V E", ",", ") // reține" hi "

Comparația de șiruri între ei

Puteți compara termenele limită în semnul obișnuit al egalității. În comparație, se ia în considerare registrul.

"Bună ziua" \u003d "Bună ziua" // va reveni o minciună
"Bună ziua" \u003d "Bună ziua" // returnați adevărul
"Bună ziua" \u003d "La revedere" // va reveni o minciună

Mecanisme de lucru cu rânduri în cereri 1C puțin. În primul rând, liniile pot fi pliate. În al doilea rând, puteți lua un substring din șir. În al treilea rând, liniile pot fi comparate, inclusiv modelul. Este probabil tot ce puteți face cu rândurile.

String de adăugare

Pentru rânduri pliabile, operația "+" este utilizată în interogare. Puteți adăuga numai șiruri de lungime limitată.

Alegeți "Nume:" + contrapartide. Promovare ca coloană1 din director. Contrină ca contrapartide în cazul în care contrapartidele. Link \u003d & link

Funcție substring

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

Analog Mediu () Funcție modelul obiectului. Funcția substringului () poate fi aplicată pe datele unui tip de șir și vă permite să alocați un fragment <Строки> Începând cu numărul simbolului <НачальнаяПозиция> (caracterele din rând sunt numerotate de la 1) și lungime <Длина> Simboluri. Rezultatul calculului funcției are un tip de șir de lungime variabilă, iar lungimea va fi considerată nelimitată dacă <Строка> are o lungime și un parametru nelimitat <Длина> Nu este o constantă sau depășește 1024.

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

Atenţie! Folosind funcția de substring () Pentru a aduce șirurile de lungime nelimitată la lungimea limitată, nu se recomandă șirurile de lungime. În loc de ea, este mai bine să utilizați funcționarea de a aduce tipul de exprimare ().

Funcția ca.

Dacă trebuie să vă asigurați că recuzită de șir corespund anumitor criterii pe care le comparăm:

Alegeți contrapartidele. Numirea ca o coloană1 din cartea de referință. Contribuția ca contrapartide în cazul în care contrapartidele. Nume \u003d Gazprom

Și dacă aveți nevoie de mai multă comparație cunning? Nu numai la egalitate sau inegalitate, ci despre similitudinea unui anumit șablon? Este doar pentru aceasta, este creată o funcție.

Cum ar fi - operatorul verifică șirul pe modelul similar. Analog ca în SQL.

Operatorul vă permite să comparați valoarea expresiei specificată în partea stângă, cu șirul șablonului specificat în partea dreaptă. Valoarea expresiei trebuie să aibă un tip de șir. Dacă valoarea expresiei satisface șablonul - rezultatul operatorului va fi adevăr, altfel - o minciună.

Următoarele caractere din șirul șablonului sunt service și fac altceva decât simbolul șirului:

  • % (procent): o secvență care conține orice număr de caractere arbitrare;
  • _ (subliniere): un simbol arbitrar;
  • [...] (în paranteze pătrate unul sau mai multe caractere): orice caracter unic din paranteze pătrate enumerate în interiorul pătratului. Listele pot apărea intervale, de exemplu A-Z, adică un simbol arbitrar inclus în intervalul, inclusiv capetele gamei;
  • [^ ...] (în paranteze pătrate, pictograma de negare urmată de una sau mai multe caractere): orice singur caracter, cu excepția celor enumerate în pictograma negației.

Orice alt caracter înseamnă și nu transportă nici o sarcină suplimentară. Dacă unul dintre personajele enumerate ar trebui să fie scris ca el însuși, atunci el trebuie să precede<Спецсимвол>. De sine<Спецсимвол> (orice simbol adecvat) este definit în același operator după cuvinte cheie Specialist.

Partea 1. Metode (26).

1.1. Metode de bază (10). Independent, construit pe algoritmii lor simpli.

Încă () (adăugați la caracterele specificate din dreapta la stânga).

Page_intre () (Inversiune - Simboluri în dreapta din stânga).

Page_koda () (coduri de simbol prin "," și o matrice cu coduri)

Page_simol () (linia de la coduri prin "," sau de la o matrice cu coduri)

PressiveMivers () (înlocuirea unor caractere altora).

Pagina_ismassive () (linia de la gama de fragmente prin separator)

Page_night () (căutați substanting (inclusiv dreapta) cu decret. Numărul de intrare).

Page_NETIGR () (căutați un grup de caractere incluse în setul de caractere specificat)

Page_nighting () (căutați un număr, inclusiv în partea dreaptă cu numărul de intrare specificat)

Page_ Interpret () (într-o matrice, conform sintaxei stabilite)

1.2. Metode derivate (12). De fapt, aceasta este utilizarea a patru algoritmi generalizați (a se vedea partea 2)

Page_) () (de la început și de la sfârșitul liniei, nu "frică de" personaje non-rele.

Page_nighty () (căutați substring (inclusiv fără înregistrarea registrului și a dreptului) cu Decretul care intră în intrare).

Prețurile () (Căutare (inclusiv (cu excepția registrului și a dreptului) și înlocuiți substraturile de substring).

Pagencons () (o bucată de șir între intrarea separator specificată (stânga sau dreapta)).

Priva Remover () (înlocuire în linia sursă "Slice" la șirul specificat).

Page_vMassiv () (între intrarea separatoare specificată (inclusiv în partea dreaptă și fără registru).

Page_Senetoslogs () (Split "Hard" la substring, cu o cratimă).

Pagina_penetposlov () (împărțit "încet" la substring)

() ("Tăiat" la substringul lungimilor specificate)

Pr_tsokrl () (înlocuiți leul. Un grup de caractere "reduse" pe "șirul de înlocuire"

P_SOCP () (Înlocuiți drepturile. Un grup de caractere "reduse" pe "șirul de înlocuire"

PR_Sokrs () (Înlocuiți în mijlocul unui grup de caractere "reduse" la "Rândul de înlocuire"

Page_stiver (expansiune la decret. Lungime prin creșterea numărului de caractere specificate)

1.3 Metode detaliate (3). "Pregătirea" șirurilor cu transfer la un tabel cu informații detaliate.

() (În tabel în funcție de sistemul de separatoare imbricate).

(Într-un tabel conform unui filtru multi-nivel).

Pagina_tabbone (într-o masă cu numere și fragmente între ele).

Partea 2. Metode generalizate de algoritmi (3).

Pagina_name () (Metode "Găsire" și "Înlocuire").

Page_fragments () ("felie" metode, "înlocuit," wamissive "," blubvch ").

Page_sokr () ("Sokrel", "COPP", "Sokres", "Expand".

Page_match () (metode "transferuri", "transferuri", "tăiate").

Partea 3. Funcția universală.

Acesta este un fel de interfață software condiționată care permite

aplicați mai multe metode la șir. Implementat în formular

funcționează cu șapte parametri ("demo" construit pe această funcție):

Pagina_ (metode, aspecte, intrare, param1, param2, lungime_producție, DOP VODE)

Parametrii:

- "Metode" - câteva "combinate" și (sau o metodă "monopol"

(coduri sau nume de pulverizare unice, pot fi prin ",")

- "ATTAMIES" - câteva opțiuni "combinate" și (sau (sau) "monopol"

Metoda "monopol" (coduri sau titluri cu un singur pulverizare);

- "login" - linie sau o matrice sau o masă de valori;

- "PARAM1" - un șir de căutare, înlocuire, separatoare, filtre;

- "PARAM2" - un șir de înlocuire sau simboluri;

- "lungime_neor_position" - 1 numere printr-un separator sau o matrice cu numere;

- "Post DOP" - un număr sau un șir sau o matrice sau o masă de valori;

Nume și / sau coduri unice de metode de grinzi, precum și numerele din

(Lungime_enumber_position) poate fi în orice registru și separat

oricare dintre următoarele separatoare: ",:".

Partea 4. Câteva exemple.

Esențial \u003d (pagina_nighting (vhstroka)<>Nedefinit);

Predicat \u003d (pagina_nightigr (vhstroka, "+ 0123456789")\u003e 0);

Există o peretitate \u003d (Pr_Natigr (VKSTR, PR_ Interpret ("LL")\u003e 0);

Există indicatori \u003d (pagina_nantigr (BHSTR, "+ la ROGU.0R9")\u003e 0);

Non-Tyographic \u003d (PR_NETIGR ("- L-L-P-P-P-Z-C"))\u003e 0);

Partea 5. Concluzie.

Unde poate că a trecut de-a lungul liniei. A doua trecere este de obicei fragmentată. Nu am folosit funcția de caracteristică încorporată ().

Funcții încorporate: Lion (), dreapta () Media (), Sondin ()

- (poziționarea și primirea unei părți a liniei - toate sunt "rapide").

Implementat în versiunea 8.3.6.1977.

Am extins un set de funcții concepute pentru a lucra cu rânduri. Am făcut-o pentru a vă oferi instrumente mai avansate pentru parsarea datelor de șir. Noi caracteristici vor fi convenabile și utile în sarcinile tehnologice pentru analizarea textului. În sarcinile asociate analizei text, care conține date într-o formă formatată. Aceasta poate fi analiza unor fișiere primite de la echipament sau, de exemplu, o analiză a jurnalului tehnologic.

Toate acțiunile care efectuează noi caracteristici pe care le puteți efectua înainte. Cu ajutorul algoritmilor mai mult sau mai puțin complexi scrise în limba încorporată. Prin urmare, noile caracteristici nu vă oferă câteva oportunități fundamentale noi. Cu toate acestea, vă permit să reduceți numărul de cod, să faceți codul mai ușor și de înțeles. Și, în plus, vă permit să accelerați implementarea acțiunilor. Deoarece caracteristicile implementate în platforma funcționează, desigur, mai repede decât un algoritm similar scris în limba încorporată.

Funcția de formatare a starului ()

Această caracteristică înlocuiește parametrii din șir. Necesitatea unei astfel de transformări apare adesea, de exemplu, atunci când afișează mesaje de avertizare. Sintaxa acestei caracteristici este după cum urmează:

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

<Шаблон> - Acesta este un șir în care doriți să înlocuiți reprezentarea parametrilor.

<Значение1> , ... <Значение10> - Aceștia sunt parametrii (maximizați zece), care trebuie înlocuiți în șir.

Pentru a specifica un loc specific în șablonul în care trebuie să se efectueze substituția, trebuie să utilizați marcatorii de vizualizare% 1, ...% 10. Numărul de markeri implicați în șablon și numărul de parametri care conțin valori trebuie să se potrivească.

De exemplu, rezultatul executării unui astfel de operator:

va fi un șir:

Eroare în datele din linia 2 (tipul necesar)

Funcția de lucru cu șiruri de string ()

Această caracteristică compară două linii fără înregistrare. De exemplu, deci:

Aceeași acțiune pe care ați putea-o realiza înainte de a utiliza obiectul comparanului:

Cu toate acestea, utilizarea unei noi funcții pare mai simplă. Și în afară de aceasta, funcția, în contrast cu obiectul de comparație, lucrează în client slabși în clientul web.

Funcțiile de lucru cu rânduri sunt rutare (), stronckant ()

Aceste funcții sunt determinate dacă șirul începe cu substringul specificat, dacă șirul substratului specificat se termină. Algoritmul acestor funcții este ușor de implementat în limba încorporată, dar prezența lor vă permite să scrieți un cod mai curat și înțeles. Și lucrează mai repede.

De exemplu, este convenabil să le utilizați în instrucțiune dacă:

Funcții de lucru cu șiruri de caractere (), plug ()

Aceste funcții separă șirul de pe partea în funcție de separatorul specificat. Sau, dimpotrivă, conectați mai multe rânduri într-una, inserarea separatorului selectat între ele. Acestea sunt convenabile de a crea sau analiza jurnalele, revista tehnologică. De exemplu, înregistrarea unui jurnal tehnologic pe care îl puteți dezasambla cu ușurință pe părți adecvate pentru analiza ulterioară:

Funcția de lucru cu Stront String ()

În loc de cea veche funcție, găsiți () am implementat optiune nouacare are caracteristici suplimentare:

  • Căutați în direcții diferite (de la început, de la sfârșit);
  • Căutați din poziția specificată;
  • Căutați înregistrarea cu numărul specificat (al doilea, al treilea etc.).

De fapt, duplică capacitățile vechiului funcției. Deci, pentru a menține compatibilitatea cu modulele compilate în versiunile mai vechi. O funcție veche de găsit () este recomandată nu mai utilizează.

Mai jos este un exemplu utilizând noi capabilități de căutare. Căutarea în direcția opusă este convenabilă atunci când aveți nevoie de ultimul fragment al șirului formalizat, de exemplu, numele complet Fișier în adresa URL. Și căutarea din poziția specificată ajută la cazurile în care aveți nevoie pentru a căuta într-un fragment bine-cunoscut și nu pe tot parcursul rândului.