Funkce pro nalezení poslední položky v účetnictví 1C. Funkce převodu malých a velkých písmen

Řádky v 1C 8.3 ve vestavěném jazyce 1C představují hodnoty primitivního typu Čára. Hodnoty tohoto typu obsahují řetězec Unicode libovolné délky. Proměnné typu řetězec jsou sady znaků uzavřených v uvozovkách.

Příklad 1. Vytvořme řetězcovou proměnnou s textem.

StringVariable = "Ahoj světe!";

Funkce pro práci s řetězci v 1s 8.3

Tato část poskytuje hlavní funkce, které vám umožňují měnit řádky v 1c nebo analyzovat informace v nich obsažené.

StrLength

StrLength(<Строка>) . Vrátí počet znaků obsažených v řetězci předaném jako parametr.

Příklad 2. Spočítejme počet znaků v řádku „Ahoj světe!“

String = "Ahoj světe!"; Počet znaků = StrLength(String); Report(NumberCharacters);

Výsledkem provedení tohoto kódu bude zobrazení počtu znaků v řádku: 11.

AbbrL

AbbrL(<Строка>) . Ořízne nevýznamné znaky vlevo od prvního významného znaku v řetězci.
Vedlejší postavy:

  • prostor;
  • nerozbitný prostor;
  • tabelování;
  • návrat vozíku;
  • překlad řádků;
  • překlad formuláře (stránky).

Příklad 3. Odstraňte všechny mezery z levé strany řádku "svět!" a přidejte k němu řádek „Ahoj“.

String = Zkratka("svět!"); String = "Ahoj"+String; Report(String);

Výsledkem provedení tohoto kódu bude zobrazení řádku „Ahoj světe!“ na obrazovce.

Zkráceno

Zkratka(<Строка>) . Ořízne nevýznamné znaky vpravo od prvního významného znaku v řetězci.

Příklad 4. Formulář z řádků „Ahoj“ a „mír!“ frázi "Ahoj světe!"

Řádek = Zkratka("Ahoj ")+" "+ Zkratka("svět!"); Report(String);

AbbrLP

AbbrLP(<Строка>) . Ořízne nevýznamné znaky vpravo od prvního významného znaku v řetězci a také ořízne nevýznamné znaky vlevo od prvního významného znaku v řetězci. Tato funkce se používá častěji než předchozí dvě, protože je univerzálnější.

Příklad 5. Odstraňte nepodstatné znaky vlevo a vpravo ve jménu protistrany.

Protistrana = Adresáře. Protistrany.Find By Details("TIN", "0777121211"); AccountObject = Account.GetObject(); Název objektu protistrany = AbbrLP(Název objektu protistrany); AccountObject.Write();

Lev

Lev(<Строка>, <ЧислоСимволов>) . Získá první znaky řetězce, počet znaků je zadán v parametru Počet znaků.

Příklad 6. Vpusťte strukturu Zaměstnanec obsahovat jméno, příjmení a patronyma zaměstnance. Získejte řetězec s příjmením a iniciálami.

JménoPočáteční = Lev(Jméno zaměstnance, 1); Patronymická iniciála = Lev(Zaměstnanec. Patronymika, 1); CeléJméno = Employee.LastName + " " + Iniciála jména + "." + Střední iniciála + ".";

Že jo

Že jo(<Строка>, <ЧислоСимволов>) . Získá poslední znaky řetězce, počet znaků zadaný v parametru Počet znaků. Pokud zadaný počet znaků překročí délku řetězce, vrátí se celý řetězec.

Příklad 7. Nechte na konec řetězcové proměnné napsat datum ve formátu „rrrrmmdd“, získejte řetězec s datem a převeďte jej na typ datum.

String = "Aktuální datum: 20170910"; StringDate = Rights(String, 8); Datum = Datum(StringDate);

středa

Středa(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Získá podřetězec z řetězce předaného jako parametr Čára, počínaje znakem, jehož číslo je uvedeno v parametru PočátečníNumber a délka předaná do parametru Počet znaků.Číslování znaků v řádku začíná od 1. Je-li v parametru PočátečníNumber je zadána hodnota menší nebo rovna nule, pak má parametr hodnotu 1. Pokud je parametr Počet znaků není zadáno, vyberou se znaky až do konce řádku.

Příklad 8. Nechte řetězcovou proměnnou začínající na deváté pozici obsahovat kód regionu, měli byste jej získat a napsat na samostatný řádek.

String = "Region: 99 Moskva"; Oblast = Avg(String, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Vyhledá zadaný podřetězec v řetězci a vrátí číslo pozice prvního znaku nalezeného podřetězce. Podívejme se na parametry této funkce:

  • Čára. Zdrojový řetězec;
  • Hledat podřetězec. Hledat podřetězec;
  • Směr hledání. Určuje směr hledání podřetězce v řetězci. Může nabývat hodnot:
    • Search Direction.From Start;
    • Směr hledání. Konec;
  • Počáteční pozice. Určuje pozici v řetězci, na které začíná hledání;
  • Počet výskytů. Určuje číslo výskytu hledaného podřetězce ve zdrojovém řetězci.

Příklad 9. V řádku „Ahoj světe!“ Určete polohu posledního výskytu znaku „a“.

PositionNumber = StrFind("Ahoj světe!", "and", SearchDirection.End); Report(PositionNumber);

Výsledkem provedení tohoto kódu bude zobrazení čísla posledního výskytu symbolu „a“: 9.

VReg

VReg(<Строка>) . Převede všechny znaky v zadaném řetězci v 1s8 na velká písmena.

Příklad 10: Převeďte řetězec "ahoj světe!" na velká písmena.

StringVreg = VReg("ahoj světe!"); Report(StringVreg);

Výsledkem provedení tohoto kódu bude zobrazení řádku „HELLO WORLD!“

NReg

NReg(<Строка>) . Převede všechny znaky zadaného řetězce v 1s 8 na malá písmena.

Příklad 11: Převeďte řetězec "HELLO WORLD!" na malá písmena.

StringNreg = NReg("AHOJ SVĚTE!"); Report(StringVreg);

Výsledkem provedení tohoto kódu bude zobrazení řádku "ahoj světe!"

Treg

TReg(<Строка>) . Převede řetězec následovně: první znak každého slova se převede na velká písmena, zbývající znaky slova se převedou na malá písmena.

Příklad 12: První písmena slov v řádku „ahoj světe“ pište velkými písmeny!

StringTreg = TReg("ahoj světe!"); Report(StringTreg);

Výsledkem provedení tohoto kódu bude zobrazení řádku „Ahoj světe!“

Symbol

Symbol(<КодСимвола>) . Získá znak pomocí kódu Unicod.

Příklad 13. Přidejte doleva a doprava do řádku „Ahoj světe!“ symbol ★

StringWithStars = Symbol("9733")+"Ahoj světe!"+Symbol("9733"); Report(StringWithStars);

Výsledkem provedení tohoto kódu bude zobrazení řádku „★Hello World!★“

Kód symbolu

Kód symbolu(<Строка>, <НомерСимвола>) . Získá kód znaku Unicode z řetězce zadaného v prvním parametru umístěného na pozici zadané ve druhém parametru.

Příklad 14. Zjistěte kód posledního znaku v řádku „Ahoj světe!“

String = "Ahoj světe!"; CharacterCode = CharacterCode(String, StrLength(String)); Upozornit(Kód znaku);

Výsledkem provedení tohoto kódu bude zobrazení kódu symbolu „!“ - 33.

Prázdný řádek

Prázdný řádek (<Строка>) . Kontroluje, zda se řetězec skládá pouze z nepodstatných znaků, tedy zda je prázdný.

Příklad 15. Zkontrolujte, zda je řetězec sestávající ze tří mezer prázdný.

Empty = EmptyString(" "); Report(Empty);

Výsledkem provedení tohoto kódu bude zobrazení slova „Ano“ (řetězcový výraz logické hodnoty Skutečný).

PageReplace

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Najde všechny výskyty hledaného podřetězce ve zdrojovém řetězci a nahradí jej náhradním podřetězcem.

Příklad 16. V řádku „Ahoj světe!“ nahraďte slovo „Mír“ slovem „Přátelé“.

String = StrReplace("Ahoj světe!", "Svět", "Přátelé"); Report(String);

Výsledkem provedení tohoto kódu bude zobrazení řádku „Ahoj přátelé!“

StrNumberLines

StrNumberRow(<Строка>) . Umožňuje spočítat počet řádků ve víceřádkovém řetězci. Chcete-li přejít na nový řádek za 1 s 8, použijte symbol PS(znak nového řádku).

Příklad 17. Určete počet řádků v textu:
"První řada
Druhý řádek
Třetí řádek"

Číslo = StrNumberString("První řádek"+Znaky.PS +"Druhý řádek"+Symboly.PS +"Třetí řádek"); Zpráva(číslo);

Výsledkem provedení tohoto kódu bude zobrazení počtu řádků v textu: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Získá řádek ve víceřádkovém řetězci podle jeho čísla. Číslování řádků začíná od 1.

Příklad 18. Získejte poslední řádek v textu:
"První řada
Druhý řádek
Třetí řádek"

Text = "První řádek" + Symboly. PS + "Druhý řádek" + Symboly. PS + "Třetí řádek"; LastRow = StrGetRow(Text, StrNumberLines(Text)); Zpráva(Poslední řádek);

Výsledkem provedení tohoto kódu bude zobrazení řádku „Třetí řádek“.

PageNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . Vrátí počet výskytů zadaného podřetězce v řetězci. Funkce rozlišuje malá a velká písmena.

Příklad 19. Určete, kolikrát se písmeno „c“ objeví v řádku „Řádky v 1s 8.3 a 8.2“, bez ohledu na velikost písmen.

Řádek = "Řádky v 1s 8,3 a 8,2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Report(NumberOccurrences);

Výsledkem provedení tohoto kódu bude zobrazení počtu výskytů: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Zkontroluje, zda řetězec předaný v prvním parametru začíná řetězcem v druhém parametru.

Příklad 20. Určete, zda DIČ vybrané protistrany začíná číslem 1. Nechte v proměnné Protistrana Protistrany.

DIČ = Protistrana.TIN; StartsUNits = StrStartsWith(TIN, "1"); If Začíná jednotkami Then //Váš kód EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Zkontroluje, zda řetězec předaný v prvním parametru končí řetězcem v druhém parametru.

Příklad 21. Určete, zda DIČ vybrané protistrany končí číslem 2. Nechte v proměnné Protistrana je uložen odkaz na prvek adresáře Protistrany.

DIČ = Protistrana.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Váš kód EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Rozdělí řetězec na části pomocí zadaných oddělovacích znaků a zapíše výsledné řetězce do pole. První parametr ukládá zdrojový řetězec, druhý obsahuje řetězec obsahující oddělovač a třetí udává, zda mají být do pole zapsány prázdné řetězce (ve výchozím nastavení Skutečný).

Příklad 22. Mějme řetězec obsahující čísla oddělená symbolem „;“, získáme z řetězce pole čísel.

Řetězec = "1; 2; 3"; Pole = StrDivide(String, ";"); For Count = 0 By Array.Quantity() - 1 Cyklus pokusů Array[Count] = Number(AbbrLP(Array[Count])); Pole výjimek[Sch] = 0; EndAttemptsEndCycle;

V důsledku provedení bude získáno pole s čísly od 1 do 3.

PageConnect

StrConnect(<Строки>, <Разделитель>) . Převede pole řetězců z prvního parametru na řetězec obsahující všechny prvky pole oddělené oddělovačem zadaným ve druhém parametru.

Příklad 23. Pomocí pole čísel z předchozího příkladu získejte původní řetězec.

Pro účet = 0 Podle Array.Quantity() - 1 cyklus Pole[Act] = String(Array[Act]); EndCycle; Řádek = StrConnect(Array, "; ");

V tomto článku vám řeknu o funkci rychlého vyhledávání 1C Enterprise 8. Co je rychlé vyhledávání? Velmi jednoduché. Rychlé vyhledávání je jedním ze způsobů, jak procházet velké seznamy záznamů 1C. Mohou to být seznamy dokumentů, adresáře, registry - vše, co je uvedeno v tabulkách.

Co je rychlé vyhledávání?

Funkce rychlého vyhledávání v dokumentech 1C Enterprise je mimořádně pohodlná a umožňuje vám neprocházet obrovským množstvím dat (například pomocí posuvníku), ale okamžitě přejít na požadované místo v seznamu. Bohužel začínající uživatelé 1C Enterprise 8 (včetně 1C Accounting 8) zpočátku nevyužívají možnosti rychlého vyhledávání a raději procházejí seznamy dokumentů ručně (a mohou být Velmi velký). Tento článek vám pomůže pochopit použití rychlého vyhledávání v 1C.

Nejprve je třeba poznamenat, že v konfiguracích 1C Enterprise 8 postavených na spravovaných formulářích funguje rychlé vyhledávání jinak než v předchozích verzích 1C. Proto si zvlášť rozebereme použití rychlého vyhledávání ve spravovaných formulářích a v běžných.

Rychlé vyhledávání v 1C účetnictví 8.2

Ve verzích 1C Accounting od 8.0 do 8.2 Tato funkce je určena speciálně pro přechod do požadované části seznamu. Podívejte se například na okno účtové osnovy zobrazené na obrázku.


V okně je zvýrazněn určitý řádek. Věnujte pozornost jemnému trojúhelníku pruhů, na který ukazuje červená šipka. Stejně jako v jiných programech Windows, kde jsou seznamy (například v Průzkumníku), poloha této značky (trojúhelníku) určuje řazení seznamu jako celku - Ve kterém sloupci je značka umístěna, bude celý seznam seřazen podle tohoto sloupce. Na obrázku je značka ve sloupci Kód, proto budou účty v účtovém rozvrhu seřazeny podle kódu.

Značku lze přesunout z jednoho sloupce do druhého kliknutím na požadovaný sloupec ( ve sloupci HEADING!) pomocí myši. Pokud je značka již v aktuálním sloupci, pak kliknutím změníte směr řazení na opačný (tj. z velkého na malý nebo naopak). Toto je standardní chování pro jakýkoli program Windows. Jaká je zvláštnost této značky v 1C Enterprise a jak souvisí s rychlým vyhledáváním?

Rychlé vyhledávání v seznamech 1C Enterprise 8 se provádí podle sloupce, ve kterém se nachází značka. V tomto případě proběhne rychlé vyhledání v účtovém rozvrhu pomocí sloupce Kód.

Byla tam důležitá část článku, ale bez JavaScriptu to není vidět!

Jak používat rychlé vyhledávání v 1C? Snadno! Začněte psát, co chcete najít v TOMTO sloupci, tj. kde je značka. V příkladu na obrázku výše musíte zadat číslo účtu. Například chcete najít účet 50 Hotovost. V tomto případě zadejte ( Není třeba nikam klikat!) číslo 50 z klávesnice a pokud je v tomto sloupci účet s tímto číslem (a samozřejmě tam nějaký je), tak se seznam posune na tento řádek a řádek samotný se zvýrazní. Výsledek je zobrazen na níže uvedeném snímku účtové osnovy.

webová stránka_

Text, na který šipka ukazuje, je není třeba se poté mýt- zmizí sám od sebe.

Pokud ve výše uvedeném příkladu začnete psát slovo „Pokladna“, text ve spodní části okna bude vložen a poté vymazán. To se děje proto, že jakmile Start zadaný řetězec rychlého vyhledávání již neodpovídá začátku alespoň jednoho řádku v tomto sloupci, 1C Enterprise dojde k závěru, že hledaný řetězec nebyl nalezen a automaticky jej vymaže. Kvůli tomuhle Je třeba pamatovat na dvě pravidla.

V 1C Enterprise 8 se provádí rychlé vyhledávání na začátku řádku, tzn. ve sloupci se hledá shoda zadaného textu se začátkem jednoho z řádků tohoto sloupce.
Z toho plyne důležité doporučení: při zadávání dat do adresářů pojmenujte prvky tak, aby je bylo možné pohodlně najít pomocí rychlého vyhledávání. Například je lepší napsat jméno protistrany jako „Firm Name LLC“ než „Firm Name LLC“. A co víc, neměli byste v názvu používat uvozovky a další zbytečné symboly (hovoříme o vyplňování pole Jméno ve formulářích).

Pokud začnete psát text a vymaže se, to, co hledáte, není v tomto sloupci! V tomto případě zkontrolujte vstupní jazyk a také sloupec, ve kterém se rychlé vyhledávání provádí. Typickou chybou je výběr špatného sloupce. Značka je například nastavena ve sloupci Kód a vyhledávání se provádí podle názvu účtu.

Rychlé vyhledávání v 1C účetnictví 8.3

Nyní se podívejme, jak se liší rychlé vyhledávání ve verzi 1C Enterprise 8.3. Použití je do značné míry podobné verzi 8.2, ale je třeba si pamatovat jeden zásadní rozdíl.

V 1C Accounting 8.3, stejně jako v jakýchkoli jiných konfiguracích na spravovaných formulářích (stejné nové rozhraní), funguje jako filtr. Jednoduše řečeno, v důsledku funkce rychlého vyhledávání součástí seznamu úkryt.

Nyní zjistíme, jak toho využít. Nejprve se podívejte na níže uvedený snímek obrazovky účetní osnovy 1C Accounting 8.3.

webová stránka_

Jak vidíte, stejná značka je v jednom ze sloupců. Vyhledávání se také provádí ve sloupci, ve kterém je značka nainstalována. Toto vše zůstává nezměněno. Pokud však začnete zadávat text (v příkladu číslo účtu), stane se následující.

webová stránka_

Jak vidíte, okno vyhledávání se jednoduše otevřelo automaticky. Úplně stejné okno se otevře, pokud kliknete na tlačítko hledání na panelu nástrojů okna (na obrázku je podtrženo). Výsledkem je, že když kliknete na tlačítko Najít ve vyhledávacím okně (skrytém za rozbalovací nabídkou na obrázku) nebo jednoduše Enter, získáte následující výsledek.

webová stránka_

Z toho je jasné, že rychlé vyhledávání v 1C Accounting 8.3 jednoduše ponechává viditelnou část seznamu, která splňuje podmínky vyhledávání. V tomto případě tlačítko Najít zmizí a místo něj se objeví čočka s křížkem (na obrázku podtržená), po kliknutí se seznam vrátí do původního stavu (řádek nalezený jako výsledek rychlého hledání zůstane zvýrazněn) .

Další důležitá funkce rychlého vyhledávání v 1C Accounting 8.3— shoda se nehledá na začátku řádku jako ve verzi 8.2, ale shoda se hledá pro shodu s jakoukoli částí řádků ve sloupci. Pokud tedy pojmenujete protistranu „Firm Name LLC“ a při vyhledávání začnete zadávat „Firm Name LLC“, bude řádek stále nalezen!

Vyvozování závěrů

Rychlé vyhledávání v 1C Accounting 8.2 a starších verzích je tedy určeno k posouvání seznamu na požadovaný řádek a v 1C Accounting 8.3 funguje rychlé vyhledávání jako běžný filtr a skrývá část seznamu, kterou nepotřebujete.

Domácí poznámky z přes zrcadlo

02/07/2013 Vyhledávání podle řetězce

Implementováno ve verzi 8.3.3.641.

Výrazně jsme vylepšili linkový vstup. K tomu jsme museli implementovat nový výkonný vyhledávací mechanismus ve vstupním poli. Nyní může rychle procházet miliony záznamů obsažených v databázi.

Analyzovali jsme vyhledávací úlohy, se kterými se uživatelé setkávají. Provedli jsme „audit“ mechanismů dostupných na platformě, které využívají různé vyhledávací algoritmy. V důsledku toho získal řádkový vstup zcela nové možnosti.

Nyní mohou uživatelé vyhledávat kdekoli v názvu, nejen na začátku řádku. Mohou používat fulltextové vyhledávání a dokonce provádět vyhledávání pomocí úlohy na pozadí. Abychom zajistili, že fulltextové vyhledávání funguje efektivně pro zadávání řádků po řádcích, dále jsme optimalizovali vyhledávač a zlepšili jeho výkon.

Shromáždili jsme všechny nové vlastnosti, které vám umožňují přizpůsobit vstup po řádku na samostatné kartě okna pro úpravy konfiguračního objektu:

Můžete například určit, že vyhledávání bude provedeno kdekoli v řetězci, nikoli pouze na začátku:

Poté může uživatel zadat libovolné fragmenty slov, nejen ty znaky, kterými hledaný řetězec začíná:

Použití fulltextového vyhledávání při zadávání řádku umožňuje samostatná vlastnost:

Pomocí fulltextového vyhledávání mohou uživatelé rychle najít relevantní data mezi velkými objemy dat pomocí libovolného ze slov obsažených například v názvu:

Mohou také vyhledávat pomocí několika známých slov. Nedokončená slova budou automaticky doplněna o možné kombinace:

Pokud je množství dat velké, pak v obou případech můžete určit, že vyhledávání má být provedeno pomocí úlohy na pozadí:

Poté se vedle vstupního pole pro uživatele zobrazí animovaný obrázek, podobný obrázku, který se zobrazí, když sestava běží na pozadí:

  • pokud se neočekává, že objekt, který je použit ve vstupním poli, bude obsahovat velké množství dat, pak doporučujeme povolit vyhledávání řetězců kdekoli;
  • pokud je v objektu naplánováno velké množství dat, pak:
    • Doporučujeme povolit fulltextové vyhledávání a vyhledávání na pozadí;
    • zároveň můžete kdekoli použít i řetězcové vyhledávání, ale ve spojení s prohledáváním na pozadí a nejlépe s fulltextovým vyhledáváním; takže většina vyhledávání se provádí pomocí fulltextového vyhledávání.

Všechny uvedené vlastnosti můžete v případě potřeby předefinovat během provádění aplikačního řešení.

Na klientovi - v obslužných rutinách událostí vstupního pole klienta Autovýběr A EndInputText :

Na serveru - v modulu správce objektu, jehož data jsou prohledávána. V obsluze události Zpracování ReceiveSelectionData :

Na tomto místě na serveru samozřejmě nemůžete přepsat způsob, jakým se vyhledávání provádí "Přímo" nebo "Základní práce" . Protože spuštění kódu již bylo přeneseno na server.

Ahoj všichni
Dnes mě požádali, abych nezobrazoval předponu dokumentu při tisku prováděcího dokumentu, problém jsem vyřešil následovně.

StrReplace(Číslo, Lev(Číslo, 3), "" );

Když jsem se podíval do asistenta syntaxe, tak se mi to líbilo, že jsem o tom chtěl psát práce s řetězci v 1C:Enterprise.

Řetězec v 1C odkazuje na primitivní datový typ.

Pokud se podíváte do nápovědy 1C, uvidíme následující popis typu String:
Hodnoty tohoto typu obsahují řetězec Unicode libovolné délky.
Pokud použijete vlastní slova o strunách, bude to fungovat. Řetězec je konstanta skládající se z různých znaků, vždy obklopených uvozovkami.

Nastavení čáry
Pozdrav = "Ahoj cestující";

Víceřádkové čáry v typických konfiguracích se nejčastěji vytvářejí pomocí svislého oddělovače „|“:
String = "Víceřádkový
|řetězec
| napsat
|text";

Uvozovky v řetězci jsou určeny dvojitými uvozovkami.
String = ""Text v uvozovkách"";

Operací s řetězci je mnoho (hledání uvnitř řetězce, určování prvních atd.), lepší je podívat se na Syntax Assistant.
Syntax Helper - Obecný popis vestavěného jazyka -> vestavěné funkce -> funkce pro práci s řetězci.

Funkce pro práci s řetězci

Zde je stručný přehled funkcí pro práci s řetězci:

VReg(<Строка>) — Funkce převede všechny znaky v řetězci na velká písmena.

Kód symbolu(<Строка>, <НомерСимвола>) – Funkce přijme kód znaku umístěného v přenášeném řetězci na pozici se zadaným číslem.

Lev(<Строка>, <ЧислоСимволов>) – Funkce vybere první levé znaky řetězce.

Nalézt(<Строка>, <ПодстрокаПоиска>) — Funkce najde výskyt hledaného řetězce jako podřetězec ve zdrojovém řetězci.

NReg(<Строка>) — Funkce převede všechny znaky v řetězci na malá písmena.

Že jo(<Строка>, <ЧислоСимволов>) – Tato funkce se liší od funkcí Left v tom, že vybírá poslední znaky zprava od řetězce.

Prázdný řádek (<Строка>) — Funkce kontroluje řetězec na přítomnost významných znaků.

Symbol(<КодСимвола>) — Funkce převede kód znaku na řetězec obsahující znak.

AbbrL(<Строка>) — Funkce ořízne nevýznamné znaky nalevo od prvního významného znaku v řetězci.

AbbrLP(<Строка>) — Funkce ořízne nevýznamné znaky vlevo od prvního významného znaku v řádku a mezery vpravo od posledního významného znaku v řádku.

Zkratka(<Строка>) — Funkce ořízne nevýznamné znaky vpravo od posledního významného znaku v řetězci.

Středa(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Funkce vybere řetězec znaků počínaje znakem<НачальныйНомер>, celkový počet<ЧислоСимволов>.

StrLength(<Строка>) — Funkce získá počet znaků v řádku.

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Funkce najde všechny výskyty hledaného podřetězce ve zdrojovém řetězci a nahradí jej náhradním podřetězcem.

StrGetString(<Строка>, <НомерСтроки>) - Funkce získá víceřádkový řetězec podle čísla.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — Funkce vypočítá počet výskytů hledaného podřetězce ve zdrojovém řetězci.

StrNumberRow(<Строка>) — Funkce počítá počet řádků ve víceřádkovém řetězci. Ve víceřádkovém řetězci jsou řádky odděleny novými řádky.

TReg(<Строка>) — Funkce převede řetězec na velikost písmen. To znamená, že první znak každého slova se převede na velká písmena v názvu nebo na velká písmena, pokud pro daný znak není zadáno velké písmeno. Zbývající znaky jsou převedeny na malá písmena.

Typ Konverze
Pro explicitní převod datových typů existují funkce stejného názvu s datovým typem, na který převod probíhá: String(<Значение>)

StringFromNumbers = String(číslo);

Všechny tyto funkce jsou podrobně popsány v Syntax Assistant, jak může Syntax Assistant pomoci začínajícímu programátorovi jsem popsal v článku.

Příklady práce se strunami

Převod čísla na řetězec a zpět.

Chcete-li získat řetězcovou reprezentaci roku, použijte funkci Formát.

Year = Format(CurrentDate(), "DF=yyyy") // Year = "2012"

Chcete-li převést číslo na řetězec bez vložení znaku pro oddělování skupiny (nedělitelná mezera), musíte použít funkci Formát s parametrem NG=0:

Číslo = 2012 Řádek = Formát(Číslo, "NH=0" ); //String = "2012"

Řetězec Bez mezer.

Existuje několik mechanismů pro práci s řetězci v dotazech 1C. Nejprve lze přidat řádky. Za druhé, můžete vzít podřetězec z řetězce. Za třetí, řetězce lze porovnávat, a to i podle vzoru. To je asi vše, co se dá se strunami dělat.

Přidání řetězce

K přidání řádků do dotazu se používá operace „+“. Můžete přidat pouze řetězce omezené délky.

SELECT "Název: " + Protistrany. Název AS Sloupec 1 FROM Adresář. Protistrany AS Protistrany WHERE Protistrany. Odkaz = &Odkaz

Funkce podřetězec

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

Analoga funkce Environment() z objektového modelu. Funkci Substring() lze použít na data řetězce a umožňuje vybrat fragment <Строки> , počínaje číslem znaku <НачальнаяПозиция> (znaky v řádku jsou číslovány od 1) a délka <Длина> postavy. Výsledek výpočtu funkce má typ řetězce proměnné délky a délka bude považována za neomezenou, jestliže <Строка> má neomezenou délku a parametry <Длина> není konstantní nebo větší než 1024.

Pokud je délka řetězce menší než zadaná v druhém parametru, funkce vrátí prázdný řetězec.

Pozornost! Použití funkce SUBSTRING() k převodu řetězců neomezené délky na řetězce omezené délky se nedoporučuje. Místo toho je lepší použít operátor přetypování EXPRESS().

Funkce podobná

Pokud se potřebujeme ujistit, že atribut řetězce splňuje určitá kritéria, porovnáme jej:

VYBERTE protistrany. Název AS Sloupec 1 FROM Adresář. Protistrany AS Protistrany WHERE Protistrany. Název = "Gazprom"

Ale co když potřebujete jemnější srovnání? Nejen rovnost nebo nerovnost, ale podobnost s určitým vzorem? Přesně k tomu byla vytvořena funkce PODOBNÁ.

LIKE — Operátor pro kontrolu podobnosti řetězce se vzorem. Analog LIKE v SQL.

Operátor SIMILAR umožňuje porovnat hodnotu výrazu zadaného vlevo od něj s řetězcem vzoru zadaným vpravo. Hodnota výrazu musí být typu string. Pokud se hodnota výrazu shoduje se vzorem, výsledek operátoru bude TRUE, jinak bude FALSE.

Následující znaky v řetězci šablony jsou servisní znaky a mají jiný význam než znak řetězce:

  • % (procenta): sekvence obsahující libovolný počet libovolných znaků;
  • _ (podtržítko): jeden libovolný znak;
  • […] (jeden nebo více znaků v hranatých závorkách): jakýkoli jednotlivý znak uvedený v hranatých závorkách. Výčet může obsahovat rozsahy, například a-z, což znamená libovolný znak zahrnutý v rozsahu, včetně konců rozsahu;
  • [^...] (v hranatých závorkách znaménko negace následované jedním nebo více znaky): jakýkoli jednotlivý znak jiný než ty, které jsou uvedeny za znaménkem negace.

Jakýkoli jiný symbol znamená sám sebe a nenese žádnou další zátěž. Pokud je třeba jeden z uvedených znaků zapsat jako samotný, pak mu musí předcházet<Спецсимвол>. Moje maličkost<Спецсимвол>(jakýkoli vhodný znak) je definován ve stejném příkazu za klíčovým slovem SPECIAL CHARACTER.