1c práca s príkladmi reťazcov. Nové funkcie pre prácu so strunami

Reťazec je jedným z primitívnych dátových typov v 1C: Enterprise 8. Premenné s typom riadok obsahovať text.

Hodnoty typových premenných riadok sú uzavreté v dvojitých úvodzovkách. Je možné pridať niekoľko premenných tohto typu.

Per1 = "Slovo 1";
Per2 = "Slovo 2";
Per3 = Per1 + "" + Per2;

Nakoniec Per3 bude znamenať „ Slovo 1 Slovo 2 ″.

Systémy 1C: Enterprise 8 navyše poskytujú funkcie na prácu so reťazcami. Uvažujme o hlavných:

Zadajte reťazec (<Строка>, <Подсказка>, <Длина>, <Многострочность>) — funkcia je určená na zobrazenie dialógového okna, v ktorom môže užívateľ zadať hodnotu variabilný typ Riadok... Parameter <Строка> je povinný a obsahuje názov premennej, do ktorej bude zapísaný reťazec zapísaný. Parameter <Подсказка> voliteľný je názov dialógového okna. Parameter <Длина> voliteľné, označuje maximálnu dĺžku vstupného reťazca. Predvolená hodnota je nula, čo znamená neobmedzenú dĺžku. Parameter <Многострочность> voliteľné. Určuje režim zadávania pre viacriadkový text: True-zadávanie viacriadkového textu s oddeľovačmi riadkov; False - zadanie jednoduchého reťazca.

Reťazec je možné zadať a zadať mu kód znaku Unicode:

Symbol (<КодСимвола>) — kód sa zadáva ako číslo.

Písmeno = symbol (1103); // SOM

K dispozícii je tiež inverzná funkcia, ktorá vám umožní zistiť kód znaku.

SymbolCode (<Строка>, <НомерСимвола>) — vráti zadané číslo znaku Unicode ako číslo.

Funkcie prevodu prípadov:

BReg (<Строка>) - skonvertuje všetky znaky v reťazci na veľké písmená.

HPreg (<Строка>) - prevádza všetky znaky v reťazci na malé písmená.

Treg (<Строка>) - prevádza všetky znaky v reťazci na veľké písmená. To znamená, že prvé písmená vo všetkých slovách sa prevedú na veľké písmená a ostatné písmená sa prevedú na malé písmená.

Funkcie na vyhľadávanie a nahrádzanie znakov v reťazci:

Nájsť(<Строка>, <ПодстрокаПоиска>) - nájde číslo znaku výskytu vyhľadávacieho podreťazca. Napríklad:

Nájsť („Reťazec“, „Dobre“); // 4

Nájsť (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) - zistí číslo znaku výskytu hľadaného podreťazca, číslo výskytu je uvedené v zodpovedajúcom parametri. V tomto prípade vyhľadávanie začína znakom, ktorého číslo je uvedené v parametri Počiatočná pozícia. Hľadať je možné od začiatku alebo od konca reťazca. Napríklad:

Number4 Occurrences = StrFind ( "Obranná schopnosť", "o", Hľadať smer. Od začiatku, 1, 4); // 7

PRmeňte (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) - vyhľadá všetky výskyty vyhľadávacieho podreťazca v pôvodnom reťazci a nahradí ho náhradným podreťazcom.

StrReplace („Reťazec“, „Dobre“, „“); // Stránka

Prázdny riadok (<Строка>) - skontroluje v reťazci významné znaky. Ak neexistujú žiadne významné znaky alebo žiadne znaky, hodnota sa vráti Pravda... Inak - Lež.

StrPočet výskytov (<Строка>, <ПодстрокаПоиска>) - vypočíta počet výskytov podreťazca vyhľadávania v pôvodnom reťazci.

StrPočet výskytov ( „Študuj, študuj a znova študuj“, „študovať“, „“); // 3

Šablóna stránky (<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — nahradí parametre do reťazca číslom. Reťazec musí obsahovať substitučné značky vo formáte: "% 1 ..% N". Značky sú číslované od 1. Ak je hodnota parametra Nedefinované, sa nahradí prázdny reťazec.

Šablóna stránky ( "Parameter 1 =% 1, parameter 2 =% 2", "1" , "2" ) ; // Parameter 1 = 1, Parameter 2 = 2

Funkcie prevodu reťazcov:

Lev(<Строка>, <ЧислоСимволов>) - vráti prvé znaky reťazca ako prvé.

Správny (<Строка>, <ЧислоСимволов>) - vráti posledné znaky reťazca.

Streda (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - vráti reťazec dĺžky<ЧислоСимволов>počnúc postavou<НачальныйНомер>.

AbbrL (<Строка>) skráti nepodstatné znaky naľavo od prvého významného znaku v reťazci.

Skratka (<Строка>) - odreže nevýznamné znaky napravo od posledného významného znaku v reťazci.

SocrLP (<Строка>) - odreže nevýznamné znaky naľavo od prvého významného znaku v riadku a napravo od posledného významného znaku v riadku.

StrGetString (<Строка>, <НомерСтроки>) - získa reťazec viacriadkového reťazca podľa čísla.

Ďalšie funkcie:

StrLength (<Строка>) - vráti počet znakov v reťazci.

StrNumber of Lines (<Строка>) - vráti počet riadkov vo viacriadkovom reťazci. Riadok sa považuje za nový, ak je od predchádzajúceho riadka oddelený znakom nového riadka.

Porovnať (<Строка1>, <Строка2> ) - porovnáva dva reťazce, nerozlišuje malé a veľké písmená. Funkcia funguje rovnako ako objekt Porovnanie hodnôt... Vrátené:

  • 1 - ak je prvý riadok väčší ako druhý
  • -1 - ak je druhý riadok väčší ako prvý
  • 0 - ak sú reťazce rovnaké

Porovnať („Prvý riadok“, „Druhý riadok“); // 1

Typ "String" sa nachádza vo všetkých programovacích jazykoch. Je to primitívne a v 1C existuje mnoho funkcií na prácu s ním. V tomto článku sa na to pozrieme bližšie rôzne cesty práca s typmi reťazcov v 1C 8.3 a 8.2 na príkladoch.

Riadok

Aby bolo možné premennú akéhokoľvek druhu previesť na reťazec, existuje funkcia s rovnakým názvom „String ()“. Vstupným parametrom bude samotná premenná, ktorej reťazcové zobrazenie sa má získať.

Reťazec (False) // vráti „nie“
Reťazec (12345) // vráti „12 345“
Reťazec (CurrentDate ()) // 21. 7. 2017 11:55:36 ″

Na reťazec je možné previesť nielen primitívne typy, ale aj ďalšie, napríklad prvky príručiek, dokumentov.

SocrLP, SocrL, SocrP

Vstupnými parametrami týchto funkcií je premenná typu reťazca. Funkcie odstraňujú nepodstatné znaky (medzery, návraty vozíka a ďalšie): z ľavej a pravej strany, iba z ľavej strany, respektíve iba z pravej strany.

AbbrLP („Medzery na oboch stranách budú odstránené“) // „Medzery na oboch stranách budú odstránené“
Skrátené („Medzery na oboch stranách budú odstránené“) // „Medzery na ľavej strane budú odstránené“
Skratka („Medzery na oboch stranách budú odstránené“) // „Medzery napravo budú odstránené“

Leo, v stredu

Tieto funkcie vám umožňujú orezať časť reťazca. Funkcia "Lion ()" vráti časť reťazca z ľavej strany určenej dĺžky. Funkcia "Right ()" je rovnaká, ale orezanie sa vykonáva vpravo. Funkcia "Med ()" vám umožňuje určiť číslo znaku, z ktorého bude reťazec vybraný, a jeho dĺžku.

Lion („Reťazcová premenná“, 4) // vráti „Stro“
Vpravo („Reťazcová premenná“, 7) // vráti „premennú“
Streda ("Reťazcová premenná", 2, 5) // vráti "troco"

Dĺžka popruhu

Funkcia určuje počet znakov, ktoré sú obsiahnuté v reťazcovej premennej.

StrLength ("Word") // výsledok vykonania bude číslo 5

Nájsť

Funkcia umožňuje vyhľadať časť reťazca v akejkoľvek reťazcovej premennej. Návratovou hodnotou bude číslo, ktoré ukazuje pozíciu začiatku nájdeného reťazca. Ak sa nenájde žiadna zhoda, vráti sa nula.

Upozorňujeme, že vo vyhľadávaniach sa rozlišujú malé a veľké písmena. Ak pôvodný reťazec obsahuje viac ako jeden výskyt podreťazca vyhľadávania, funkcia vráti začiatok prvého výskytu.

Nájdite („jeden, dva, jeden, dva, tri“, „dva“) // funkcia vráti číslo 6

Prázdny riadok

Použitie tejto funkcie vám umožňuje určiť, či je reťazec prázdny. Nepodstatné znaky, akými sú medzera, návrat na vozík a ďalšie, sa ignorujú.

EmptyString ("Pupkin Vasily Ivanovich") // funkcia vráti hodnotu False
Funkcia EmptyString ("") // vráti hodnotu True

VReg, NReg, Treg

Tieto funkcie sú veľmi užitočné pri porovnávaní a prevode reťazcových premenných. Breg () vráti pôvodný reťazec na veľké písmená, HPreg () na malé písmená a TPreg () ho naformátuje tak, že prvý znak každého jednotlivého slova bude veľký a všetky nasledujúce budú malé.

Vreg ("GENERAL DIRECTOR") // návratová hodnota - "GENERAL DIRECTOR"
НReg („GENERAL DIRECTOR“) // návratová hodnota - „generálny riaditeľ“
TREG („GENERAL DIRECTOR“) // návratová hodnota - „generálny riaditeľ“

PageReplace

Táto funkcia je analogické s náhradou v textové editory... Umožňuje vám nahradiť jeden znak alebo sadu znakov iným v reťazcových premenných.

StrReplace ("červená, biela, žltá", ",", ";") // vráti "červenú; Biely; žltá"

StrNumberStrings

Táto funkcia vám umožňuje určiť počet riadkov oddelených návratmi vozíka v textovej premennej.

Smyčka v nižšie uvedenom príklade prejde tromi kruhmi, pretože funkcia RowNumber vráti 3:

Pre ind = 1 podľa StrNumber of Lines ("String1" + Symbols.PS + "String2" + Symbols.PS + "String3") Loop
<тело цикла>
Koniec cyklu;

StrGetString

Táto funkcia pracuje s viacriadkovým textom rovnako ako predchádzajúci. Umožňuje vám získať konkrétny reťazec z textovej premennej.

StrGetString ("String1" + symboly.PS + "String2" + symboly.PS + "String3", 2) // vráti "String2"

StrPočet výskytov

Funkcia počíta počet výskytov znaku alebo podreťazca vo vyhľadávacom reťazci.

Riadok príloh ("a; b; c; d;", ​​";") // funkcia vráti číslo 4

Symbol a kód symbolu

Tieto funkcie vám umožňujú získať znak podľa jeho kódu Unicode, ako aj určiť tento kód podľa samotného znaku.

SymbolCode ("A") // funkcia vráti číslo 1 040
SymbolCode (1040) // funkcia vráti „A“

Časté úlohy pri práci so strunami

Reťaziace reťazce

Na zreťazenie viacerých reťazcov (na vykonanie zreťazenia) stačí použiť operátor sčítania.

„Riadok 1 ″ +“ Riadok 2 ″ // výsledkom pridania dvoch riadkov bude „Riadok 1 Riadok 2“

Konverzia typu

Na prevod typu na reťazec, napríklad odkazu na položku slovníka, čísla a podobne, stačí použiť funkciu „String ()“. Funkcie ako „Skratka ()“ tiež premenia premenné na reťazec, ale okamžite so skrátením nepodstatných znakov.

Reťazec (1000) // vráti „1000“

Upozorňujeme, že pri prevode čísla na reťazec program automaticky pridal medzeru oddeľujúcu tisíc. Aby ste tomu zabránili, môžete použiť nasledujúce konštrukcie:

StrReplace (String (1000), Characters.NPP, "") // vráti "1000"

Reťazec (formát (1000, "CHG =")) // vráti "1000"

Citáty v reťazci

Pomerne často sa budete musieť vysporiadať s potrebou zadať úvodzovky v reťazcovej premennej. Môže to byť buď text požiadavky napísaný v konfigurátore, alebo len premenná. Na vyriešenie tohto problému stačí nastaviť dve úvodzovky.

Title = String ("LLC" Rohy a kopytá "" - to sme my! ") // vráti" LLC "Rohy a kopytá" - to sme my! "

Viac riadkov, zlom riadka

Aby ste vytvorili viacriadkový text, stačí doň pridať znaky zalomenia riadka (Symbols.PS).

MultilineText = "Prvý riadok" + Symboly. PS + "Druhý riadok"

Ako odstrániť medzery

Na odstránenie medzier napravo alebo naľavo môžete použiť funkciu „Skratka ()“ (ako aj „Skratka ()“ a „Skratka ()“):

StringNoSpaces = AbbreviatedLP ("Mnoho písmen") // funkcia vráti hodnotu "Mnoho písmen"

Ak po konverzii čísla na reťazec potrebujete odstrániť medzery, použite nasledujúcu konštrukciu:

StringNoSpaces = StrReplace (String (99999), Characters.NPP, "") // vráti "99999"

Programátori tiež často používajú nasledujúcu konštrukciu, ktorá vám umožňuje odstrániť alebo nahradiť všetky medzery textovej premennej iným znakom:

StringNoSpaces = StrReplace ("vitajte", "", "") // vráti "ahoj"

Porovnávanie reťazcov navzájom

Termíny je možné porovnať s obvyklým znamienkom rovnosti. Porovnanie rozlišuje veľké a malé písmena.

"Hello" = "ahoj" // vráti hodnotu False
"Hello" = "Hello" // vráti True
"Hello" = "Zbohom" // vráti hodnotu False

Reťazce v 1C 8.3 vo vstavanom jazyku 1C predstavujú hodnoty primitívneho typu Riadok... Hodnoty tohto typu obsahujú reťazec Unicode ľubovoľná dĺžka... Premenné typu reťazec sú množinou znakov uzavretých v úvodzovkách.

Príklad 1. Vytvoríme reťazcovú premennú s textom.

StringVariable = "Ahoj svet!";

Funkcie pre prácu s reťazcami v 1c 8.3

V tejto časti budú uvedené hlavné funkcie, ktoré vám umožnia zmeniť riadky v bode 1c alebo analyzovať informácie v nich obsiahnuté.

Dĺžka popruhu

StrLength (<Строка>) ... Vráti počet znakov obsiahnutých v reťazci odovzdanom v parametri.

Príklad 2. Spočítajme počet znakov v reťazci „Hello world!“

Reťazec = „Hello world!“; Počet znakov = StrLength (reťazec); Správa (počet znakov);

Výsledkom vykonania tohto kódu bude zobrazenie počtu znakov v reťazci: 11.

Skratka

AbbrL (<Строка>) ... Skráti nepodstatné znaky naľavo od prvého významného znaku v reťazci.
Vedľajšie postavy:

  • priestor;
  • neporušený priestor;
  • tabuľka;
  • návrat vozňa;
  • riadkový preklad;
  • preklad formulára (stránky).

Príklad 3. Odstráňte všetky medzery z ľavej strany riadku „svet!“ a pripevnite k nemu reťazec „Ahoj“.

Reťazec = skrátený („mier!“); String = "Ahoj" + Reťazec; Správa (reťazec);

Výsledkom vykonania tohto kódu bude výstup riadka „Hello world!“

Skratka

Skratka (<Строка>) ... Skráti nepodstatné znaky napravo od prvého významného znaku v reťazci.

Príklad 4. Formulár „Ahoj“ a „Svet!“ veta „Ahoj svet!“

Reťazec = skrátený („Ahoj“) + „„ + skrátený („svet!“); Správa (reťazec);

SokrLP

SocrLP (<Строка>) ... Skráti nevýznamné znaky napravo od prvého významného znaku v reťazci a tiež skráti nepodstatné znaky naľavo od prvého významného znaku v reťazci. Táto funkcia sa používa častejšie ako predchádzajúce dve, pretože je univerzálnejšia.

Príklad 5. V mene protistrany odstráňte nepodstatné znaky vľavo a vpravo.

Protistrana = Directories.Contractors.NaytiPoRequisite ("INN", "0777121211"); CounterpartyObject = Counterparty.GetObject (); CounterpartyObject.Name = ShortLP (CounterpartyObject.Name); CounterpartyObject.Write ();

Lev

Lev(<Строка>, <ЧислоСимволов>) ... Získa prvé znaky reťazca, počet znakov je určený v parametri Počet postáv.

Príklad 6. Vpustite do štruktúry Zamestnanec obsahovať meno, priezvisko a priezvisko zamestnanca. Získajte reťazec s priezviskom a iniciálami.

InitialName = Leo (Employee.Name, 1); Patronymic Initial = Leo (Zamestnanec, Patronymic, 1); FullName = Employee.Sername + "" + InitialName + "." + Patronymic Initial + ".";

Správny

Správny (<Строка>, <ЧислоСимволов>) ... Získa posledné znaky reťazca, počet znakov je určený v parametri Počet postáv. Ak zadaný počet znakov presahuje dĺžku reťazca, vráti sa celý reťazec.

Príklad 7. Predpokladajme, že koniec reťazcovej premennej obsahuje dátum vo formáte „rrrrmmdd“, získajte reťazec s dátumom a skonvertujte ho na typ dátum.

Reťazec = " Aktuálny dátum: 20170910 "; StringDate = Right (String, 8); Date = Date (StringDate);

Streda

Streda (<Строка>, <НачальныйНомер>, <ЧислоСимволов>) ... Získa podreťazec z reťazca odovzdaného ako parameter Riadok, začínajúc znakom, ktorého číslo je uvedené v parametri Počiatočné číslo a dĺžka odovzdaná parametru Počet postáv.Číslovanie znakov v riadku začína od 1. Ak je v parametri Počiatočné číslo je zadaná hodnota, ktorá je menšia alebo rovná nule, potom parameter preberá hodnotu 1. Ak je parameter Počet symbolov nie je zadané, potom sú vybraté znaky až do konca riadka.

Príklad 8. Predpokladajme, že reťazcová premenná začínajúca od deviatej pozície obsahuje kód oblasti, mali by ste ho dostať a napísať ho do samostatného riadka.

Riadok = "Kraj: 99 Moskva"; Kraj = stred (riadok, 9, 2);

Vyhľadávanie

Nájsť (<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) ... Vyhľadá zadaný podreťazec v reťazci, vráti číslo pozície prvého znaku nájdeného podreťazca. Zvážte parametre tejto funkcie:

  • Riadok... Zdrojový reťazec;
  • SubstringSearch... Hľadaný podreťazec;
  • Hľadať smer... Určuje smer hľadania podreťazca v reťazci. Môže mať hodnoty:
    • Hľadať smer. Od začiatku;
    • Hľadať smer.;
  • Počiatočná pozícia... Špecifikuje pozíciu v reťazci, od ktorého sa začína vyhľadávanie;
  • Počet vstupov... Určuje počet výskytov požadovaného podreťazca v pôvodnom reťazci.

Príklad 9. V riadku „Hello world!“ určiť polohu posledného výskytu symbolu „a“.

PositionNumber = StrNayti („Ahoj svet!“, „A“, DirectionSearch.End); Správa (číslo pozície);

Výsledkom vykonania tohto kódu bude zobrazenie čísla posledného výskytu symbolu „a“: 9.

VReg

BReg (<Строка>) ... Skonvertuje všetky znaky zadaný reťazec za 1 s 8 na veľké písmená.

Príklad 10. Preveďte reťazec „ahoj svet!“ na veľké písmená.

StringBreg = BReg („ahoj svet!“); Report (StringVreg);

Výsledkom vykonania tohto kódu bude zobrazenie riadka „AHOJ SVET!“

Nreg

HPreg (<Строка>) ... Skonvertuje všetky znaky v zadanom reťazci za 1 s 8 na malé písmená.

Príklad 11. Skonvertujte reťazec „AHOJ SVET!“ na malé písmená.

StringNreg = НReg („AHOJ SVET!“); Report (StringVreg);

Výsledkom vykonania tohto kódu bude výstup riadka „ahoj svet!“

Treg

Treg (<Строка>) ... Reťazec sa skonvertuje nasledovne: prvý znak každého slova sa prevedie na veľké písmená, zvyšné znaky slova sa prevedú na malé písmená.

Príklad 12. Začnite veľkým písmenom prvých písmen slov v reťazci „ahoj svet!“

StringTreg = Treg („ahoj svet!“); Report (StringTreg);

Výsledkom vykonania tohto kódu bude zobrazenie riadka „Hello World!“

Symbol

Symbol (<КодСимвола>) ... Získa znak podľa kódu Unicod.

Príklad 13. Doplníme vľavo a vpravo v riadku „Hello World!“ symbol ★

StringWithStars = Symbol ("9733") + "Ahoj svet!" + Symbol ("9733"); Report (StringWithStars);

Výsledkom vykonania tohto kódu bude výstup riadka „★ Hello World! ★“

Kód symbolu

SymbolCode (<Строка>, <НомерСимвола>) ... Získa kód znaku Unicode z reťazca uvedeného v prvom parametri, ktorý sa nachádza na pozícii určenej v druhom parametri.

Príklad 14. Zistite kód posledného znaku v „Hello World!“

Reťazec = „Hello World!“; CharacterCode = CharacterCode (String, StrLength (String)); Report (SymbolCode);

Výsledkom vykonania tohto kódu bude zobrazenie symbolového kódu „!“ - 33.

Prázdny riadok

Prázdny riadok (<Строка>) ... Kontroluje, či reťazec obsahuje iba nepodstatné znaky, to znamená, či je prázdny.

Príklad 15. Skontrolujte, či je reťazec pozostávajúci z troch medzier prázdny.

Empty = EmptyString (""); Report (prázdny);

Výsledkom vykonania tohto kódu bude zobrazenie slova „Áno“ (reťazcové vyjadrenie logickej hodnoty Pravda).

PageReplace

PRmeňte (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) ... Nájde všetky výskyty vyhľadávacieho podreťazca v pôvodnom reťazci a nahradí ho náhradným podreťazcom.

Príklad 16. V riadku „Hello World!“ nahradiť slovo „mier“ slovom „priatelia“.

String = StrReplace („Hello World!“, „World“, „Friends“); Správa (reťazec);

Výsledkom vykonania tohto kódu bude zobrazenie riadku „Ahoj priatelia!“

StrNumberStrings

StrNumber of Lines (<Строка>) ... Počíta počet riadkov vo viacriadkovom reťazci. Ísť do Nový riadok v 1s 8 sa používa symbol PS(znak posuvu riadka).

Príklad 17. Určte počet riadkov v texte:
"Prvá línia
Druhý riadok
Tretí riadok "

Číslo = StrNumberStrings ("Prvý riadok" + Symboly.PS + "Druhý riadok" + Symboly.PS + "Tretí riadok"); Správa (číslo);

Výsledkom vykonania tohto kódu bude zobrazenie počtu riadkov v texte: 3

StrGetString

StrGetString (<Строка>, <НомерСтроки>) ... Získa reťazec vo viacriadkovom reťazci podľa jeho čísla. Číslovanie riadkov začína od 1.

Príklad 18. Získajte posledný riadok v texte:
"Prvá línia
Druhý riadok
Tretí riadok "

Text = "Prvý riadok" + Symboly.PS + "Druhý riadok" + Symboly.PS + "Tretí riadok"; LastString = StrGetString (Text, StrNumberLines (Text)); Report (LastLine);

Výsledkom vykonania tohto kódu bude zobrazenie riadku „Tretí riadok“.

StrPočet výskytov

StrPočet výskytov (<Строка>, <ПодстрокаПоиска>) ... Vráti počet výskytov zadaného podreťazca v reťazci. Táto funkcia rozlišuje veľké a malé písmena.

Príklad 19. Určte, koľkokrát sa písmeno „c“ objaví v riadku „Riadky za 1 s 8,3 a 8,2“ bez ohľadu na jeho prípad.

Riadok = "Riadky za 1 s 8,3 a 8,2"; Number of Occurrences = StrNumber of Occurrences (Vreg (String), "S"); Správa (počet výskytov);

Výsledkom vykonania tohto kódu bude zobrazenie počtu výskytov: 2.

Stránka začína na

Stránka začína s (<Строка>, <СтрокаПоиска>) ... Skontroluje, či reťazec odovzdaný v prvom parametri začína reťazcom v druhom parametri.

Príklad 20. Zistite, či sa DIČ vybranej protistrany začína číslom 1. Vpíšte premennú Protistrana Dodávatelia.

DIČ = Counterparty.INN; Začína sUnits = StrZačína na (INN, "1"); Ak sa začne Jednotky potom // Váš kód EndIf;

PageEnds With

PageEnds With (<Строка>, <СтрокаПоиска>) ... Skontroluje, či reťazec odovzdaný v prvom parametri končí reťazcom v druhom parametri.

Príklad 21. Určte, či sa DIČ vybranej protistrany končí číslicou 2. Zapíšte premennú Protistrana uloží sa odkaz na položku adresára Dodávatelia.

DIČ = Counterparty.INN; Končí dvoma = Str končí (INN, "2"); If Ends WithDouble Then // Váš kód EndIf;

PageSplit

StrSplit (<Строка>, <Разделитель>, <ВключатьПустые>) ... Rozdelí reťazec na časti na základe zadaných znakov oddeľovača a zapíše výsledné reťazce do poľa. Prvý parameter ukladá pôvodný reťazec, druhý obsahuje reťazec obsahujúci oddeľovač, tretí určuje, či sa majú do poľa zapísať prázdne reťazce (štandardne Pravda).

Príklad 22. Predpokladajme, že máme reťazec obsahujúci čísla oddelené „;“, získajte z reťazca pole čísel.

Reťazec = "1; 2; 3"; Pole = StrSplit (reťazec, ";"); Pre RV = 0 podľa poľa.Množstvo () - pole pokusu o 1 cyklus [Rd] = číslo (AbbrLP (pole [Rd])); Pole výnimiek [Сч] = 0; Koniec pokusov Koniec slučky;

V dôsledku vykonania sa získa pole s číslami od 1 do 3.

StrConnect

StrConnect (<Строки>, <Разделитель>) ... Skonvertuje pole reťazcov z prvého parametra na reťazec obsahujúci všetky prvky poľa oddelené oddeľovačom určeným v druhom parametri.

Príklad 23. Pomocou poľa čísel z predchádzajúceho príkladu získajte pôvodný reťazec.

Pre odkaz = 0 podľa poľa.Množstvo () - 1 cyklus poľa [odkaz] = reťazec (pole [odkaz]); Koniec cyklu; Reťazec = StrConnect (Array, ";");

Existuje niekoľko mechanizmov na prácu so reťazcami v dotazoch 1C. Najprv je možné pridať riadky. Za druhé, z reťazca môžete odobrať podreťazec. Po tretie, reťazce je možné porovnávať, a to aj podľa vzoru. To je asi všetko, čo môžete so strunami robiť.

Reťazenie reťazcov

Na pridanie reťazcov do dotazu sa používa operácia „+“. Zložiť je možné iba struny obmedzenej dĺžky.

VYBERTE "Názov:" + Protistrany. Názov AS Stĺpec1 Z adresára. Protistrany AS Protistrany KDE Protistrany. Link = & Link

Funkcia podreťazca

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

Analóg funkcie Med () z objektový model... Funkciu Substring () je možné použiť na údaje typu reťazca a umožňuje vám vybrať fragment <Строки> počnúc číslom znaku <НачальнаяПозиция> (znaky v reťazci sú očíslované od 1) a dĺžka <Длина> postavy. Výsledok vyhodnotenia funkcie má typ reťazca s premennou dĺžkou a dĺžka bude považovaná za neobmedzenú, ak <Строка> má neobmedzenú dĺžku a parametre <Длина> nie je konštantný alebo presahuje 1024.

Ak je dĺžka reťazca menšia ako je uvedené v druhom parametri, funkcia vráti prázdny reťazec.

Pozor! Použitie funkcie SUBSTRING () na prevod reťazcov neobmedzenej dĺžky na reťazce obmedzenej dĺžky sa neodporúča. Je lepšie použiť operáciu prenášania ako EXPRESS ().

Funkcia ako

Ak sa potrebujeme uistiť, že reťazcový atribút spĺňa určité kritériá, porovnáme ho:

VYBERTE zmluvné strany. Názov AS Stĺpec1 Z adresára. Protistrany AS Protistrany KDE Protistrany. Názov = "Gazprom"

Ale čo keď chcete zložitejšie porovnanie? Nielen rovnosť alebo nerovnosť, ale ako určitý vzor? Presne na to bola vytvorená funkcia LIKE.

LIKE - Operátor na kontrolu reťazca ako vzoru. Analóg LIKE v SQL.

Operátor LIKE vám umožňuje porovnať hodnotu výrazu určeného naľavo od neho s reťazcom šablóny uvedeným vpravo. Hodnota výrazu musí byť typu string. Ak sa hodnota výrazu zhoduje so vzorom, operátor bude mať za následok TRUE, inak - FALSE.

Nasledujúce znaky v reťazci šablóny sú servisné znaky a majú iný význam ako reťazcový znak:

  • % (percento): sekvencia obsahujúca ľubovoľný počet ľubovoľných znakov;
  • _ (podčiarkovník): jeden ľubovoľný znak;
  • […] (V hranaté zátvorky jeden alebo viac znakov): akýkoľvek jeden znak uvedený v hranatých zátvorkách. Výčet môže obsahovať rozsahy, napríklad a-z, čo znamená ľubovoľný znak zahrnutý v rozsahu vrátane koncov rozsahu;
  • [^…] (V hranatých zátvorkách znak negácie, za ktorým nasleduje jeden alebo viac znakov): akýkoľvek jeden znak, okrem znakov uvedených za znakom negácie.

Akýkoľvek iný symbol znamená sám seba a nemá žiadny ďalší význam. Ak je potrebné napísať jeden z uvedených znakov ako seba, musí mu predchádzať znak<Спецсимвол>... Ja sám<Спецсимвол>(ľubovoľný zodpovedajúci znak) je definovaný v rovnakom príkaze ako kľúčové slovoŠPECIÁLNY SYMBOL.