Keresse meg az értéket az 1c sorban. Mi a gyors keresés

01.11.2019 Programok

Ebben a cikkben az 1C Enterprise 8 gyorskereső funkciójáról fogok beszélni. Mi történt gyors keresés? Nagyon egyszerű. A gyorskeresés az 1C rekordok nagy listáiban való navigálás egyik módja. Ezek lehetnek dokumentumok listái, könyvtárak, nyilvántartások - minden, ami táblázatokban szerepel.

Mi az a gyorskeresés?

Az 1C Enterprise dokumentumok gyorskeresési funkciója rendkívül kényelmes, és lehetővé teszi, hogy ne görgessen át hatalmas mennyiségű adatot (például a görgetősáv használatával), hanem azonnal a kívánt helyre ugorjon a listában. Sajnos az 1C Enterprise 8 (beleértve az 1C Accounting 8-at is) kezdő felhasználói eleinte nem használják a gyorskeresési lehetőségeket, inkább manuálisan görgetik a dokumentumok listáit (és Nagyon nagy). Ez a cikk segít megérteni a gyorskeresést az 1C-ben.

Először is meg kell jegyezni, hogy a felügyelt űrlapokra épülő 1C Enterprise 8 konfigurációkban a gyorskeresés másképp működik, mint a előző verziók 1C. Ezért külön megvizsgáljuk a gyorskeresés használatát ellenőrzött formákés a közönségesekben.

Gyors keresés az 1C Accounting 8.2-ben

Az 1C Accounting 8.0-tól 8.2-ig terjedő verzióiban Ez a funkció kifejezetten a átmenet a lista kívánt részére. Például nézze meg az ábrán látható számlatükör ablakot.


Egy bizonyos sor kiemelve jelenik meg az ablakban. Ügyeljen a finom csíkos háromszögre, amelyre a piros nyíl mutat. Más Windows-programokhoz hasonlóan, ahol vannak listák (például az Intézőben), ennek a jelölőnek (háromszögnek) a helyzete határozza meg a lista egészének rendezését - A jelölő melyik oszlopba kerül, a teljes lista az adott oszlop szerint lesz rendezve. Az ábrán a jelölő a Kód oszlopban található, ezért a számlatükörben szereplő számlák kód szerint lesznek rendezve.

A marker áthelyezhető egyik oszlopból a másikba, ha rákattint a kívánt oszlopra ( a HEADING rovatban!) az egérrel. Ha a jelölő már az aktuális oszlopban van, akkor a kattintással a rendezés iránya az ellenkezőjére változik (azaz nagyról kicsire vagy fordítva). Ez minden esetben szokásos viselkedés Windows programok. Mi ennek a markernek a sajátossága az 1C Enterprise-ban, és hogyan kapcsolódik a gyorskereséshez?

Az 1C Enterprise 8 listákban a gyors keresést az az oszlop végzi, amelyben a marker található. Ebben az esetben a számlatükör gyorskeresése történik a Kód oszlop segítségével.

Volt egy fontos része a cikknek, de JavaScript nélkül nem látható!

Hogyan kell használni a gyorskeresést 1C-ben? Könnyen! Csak kezdje el beírni, hogy mit szeretne EZBEN az oszlopban, azaz hol van a jelző. A fenti ábra példájában meg kell adni a számlaszámot. Például meg szeretné keresni a 50 Készpénz számlát. Ebben az esetben írja be ( Nem kell sehova kattintani!) 50-es számot a billentyűzetről, és ha ebben az oszlopban van fiók ezzel a számmal (és természetesen van ilyen), akkor a lista erre a sorra gördül, és maga a sor lesz kiemelve. Az eredmény az alábbi számlatükör képernyőképen látható.

weboldal_

A szöveg, amelyre a nyíl mutat nem kell utána mosni- magától eltűnik.

A fenti példában, ha elkezdi beírni a „Pénztár” szót, az ablak alján lévő szöveg kerül beírásra, majd törlésre. Ez azért történik, mert amint Rajt a beírt gyorskeresési karakterlánc már nem egyezik legalább egy sor elejével ebben az oszlopban, az 1C Enterprise arra a következtetésre jut, hogy a keresett karakterlánc nem található, és automatikusan törli. Ennek köszönhetően Két szabályt kell emlékezni.

Az 1C Enterprise 8-ban a sor elején gyorskeresés történik, azaz. egy oszlopban a beírt szövegnek ennek az oszlopnak az egyik sorának elejével egyezését keresi.
Ez egy fontos ajánláshoz vezet: a könyvtárakba való adatbevitelnél az elemeket úgy nevezze el, hogy azok egy gyorskereséssel kényelmesen megtalálhatóak legyenek. Például jobb, ha a partner nevét „Cégnév LLC”-ként írja be, mint „Cégnév LLC”. És még inkább, ne használjon idézőjeleket és egyéb felesleges szimbólumokat a névben (a Név mező kitöltéséről beszélünk az űrlapokon).

Ha elkezd beírni a szöveget, és az törlődik, akkor amit keresel, az nincs ebben az oszlopban! Ebben az esetben ellenőrizze a beviteli nyelvet, valamint azt az oszlopot, amelyben a gyorskeresés végrehajtásra kerül. Gyakori hiba— rossz oszlop van kiválasztva. Például a jelölő a Kód oszlopban van beállítva, és a keresés a fiók neve alapján történik.

Gyors keresés az 1C Accounting 8.3-ban

Most pedig nézzük meg, miben különbözik a gyorskeresés az 1C Enterprise 8.3 verzióban. A használat nagymértékben hasonlít a 8.2-es verzióhoz, de van egy lényeges különbség, amit érdemes megjegyezni.

Az 1C Accounting 8.3-ban, valamint a kezelt űrlapok bármely más konfigurációjában (ugyanaz új felület), szűrőként működik. Egyszerűen fogalmazva, a gyorskereső funkció eredményeként a lista része bujkál.

Most megtudjuk, hogyan kell ezt használni. Először nézze meg az alábbi képernyőképet az 1C Accounting 8.3 számlatükör ablakáról.

weboldal_

Amint látja, ugyanaz a marker van az egyik oszlopban. A keresés abban az oszlopban is megtörténik, amelybe a marker telepítve van. Mindez változatlan marad. Ha azonban elkezdi beírni a szöveget (a példában a számlaszámot), akkor a következő történik.

weboldal_

Amint látja, a keresőablak egyszerűen automatikusan megnyílt. Ugyanez az ablak nyílik meg, ha az ablak eszköztárán a keresés gombra kattint (az ábrán aláhúzva). Ennek eredményeként, ha rákattint a Keresés gombra a keresőablakban (a képen a legördülő menü mögött van elrejtve), vagy egyszerűen csak Entert, a következő eredményt kapja.

weboldal_

Ebből egyértelmű, hogy gyorskeresés az 1C Accounting 8.3-ban egyszerűen láthatóvá teszi a lista azon részét, amely megfelel a keresési feltételeknek. Ilyenkor a Keresés gomb eltűnik, helyette egy kereszttel ellátott lencse jelenik meg (az ábrán aláhúzva), kattintásra a lista visszatér a kezdeti állapot(ebben az esetben a gyorskeresés eredményeként talált sor kiemelve marad).

A gyors keresés másik fontos jellemzője az 1C Accounting 8.3-ban— nem a sor elején keres egy egyezést, mint a 8.2-es verzióban, hanem az oszlopban lévő sorok bármely részével egyezést keres. Így ha a partnert „Cégnév LLC”-nek nevezi el, és a keresés során kezdi el beírni a „Cégnév LLC”-t, akkor a sor továbbra is megtalálható!

Következtetések levonása

Így az 1C Accounting 8.2-ben és a korábbi verziókban a gyorskeresés célja, hogy a listát a kívánt sorra görgesse, az 1C Accounting 8.3-ban pedig a gyorskeresés normál szűrőként működik, elrejti a lista azon részét, amelyre nincs szüksége.

Az 1C 8.3 sorai az 1C beépített nyelvben primitív típusú értékeket képviselnek Vonal. Értékek ebből a típusból tetszőleges hosszúságú Unicode karakterláncot tartalmaznak. A karakterlánc típusú változók idézőjelek közé zárt karakterek halmaza.

Példa 1. Hozzunk létre egy karakterlánc-változót szöveggel.

StringVariable = "Szia világ!";

Függvények karakterláncokkal való munkavégzéshez 1s-ben 8.3

BAN BEN ez a szekció A fő funkciókat megadjuk, amelyek lehetővé teszik az 1c sorok megváltoztatását, vagy a bennük lévő információk elemzését.

Erősség

Erősség(<Строка>) . A paraméterként átadott karakterláncban található karakterek számát adja vissza.

2. példa. Számoljuk meg a karakterek számát a „Hello world!” sorban.

String = "Helló világ!"; Karakterek száma = StrLength(String); Jelentés(Számkarakterek);

A kód végrehajtásának eredménye a sorban lévő karakterek száma lesz: 11.

AbbrL

AbbrL(<Строка>) . A nem szignifikáns karaktereket a karakterlánc első jelentős karakterétől balra vágja.
Kisebb karakterek:

  • hely;
  • nem törő tér;
  • táblázatosítás;
  • kocsi vissza;
  • soros fordítás;
  • az űrlap (oldal) fordítása.

3. példa: Távolítson el minden szóközt a "világ!" sor bal oldaláról. és add hozzá a „Hello” sort.

String = Rövidítés("világ!"); String = "Hello"+String; Jelentés(karakterlánc);

A kód végrehajtásának eredményeként megjelenik a „Hello world!” sor a képernyőn.

Rövidítve

Rövidítés(<Строка>) . A nem szignifikáns karaktereket levágja a karakterlánc első jelentős karakterétől jobbra.

Példa 4. Űrlap a „Helló” és a „béke!” sorokból. a „Hello world!” mondat.

Line = Rövidítés("Helló ")+" "+ Rövidítés("világ!"); Jelentés(karakterlánc);

AbbrLP

AbbrLP(<Строка>) . Levágja a nem szignifikáns karaktereket a karakterlánc első jelentős karakterétől jobbra, és a nem jelentős karaktereket a karakterlánc első jelentős karakterétől balra. Ez a funkció gyakrabban használják, mint az előző kettőt, mivel univerzálisabb.

5. példa: Távolítsa el a jelentéktelen karaktereket a partner nevéből a bal és a jobb oldalon.

Counterparty = Könyvtárak. Counterparties.Find By Details("TIN", "0777121211"); AccountObject = Account.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

egy oroszlán

Egy oroszlán(<Строка>, <ЧислоСимволов>) . Lekéri a karakterlánc első karaktereit, a karakterek száma a paraméterben van megadva Karakterek száma.

6. példa Engedjük be a szerkezetet Munkavállaló tartalmazza az alkalmazott kereszt-, vezeték- és családnevét. Szerezzen be egy karakterláncot vezetéknévvel és kezdőbetűkkel.

NévInitial = Lev(Alkalmazott.Név, 1); Apanév kezdőbetűje = Oroszlán(Alkalmazott. Apanév, 1); FullName = Alkalmazott.Vezetéknév + " " + Keresztnév kezdeti + "." + Középső kezdőbetű + ".";

Jobb

Jobb(<Строка>, <ЧислоСимволов>) . Lekéri a karakterlánc utolsó karaktereit, a paraméterben megadott számú karaktert Karakterek száma. Ha a megadott számú karakter meghaladja a karakterlánc hosszát, akkor a teljes karakterláncot a rendszer visszaadja.

7. példa: Írjon egy dátumot „ééééhhnn” formátumban egy karakterláncváltozó végére, szerezzen be egy karakterláncot a dátummal, és alakítsa át típussá dátum.

Karakterlánc = " Az aktuális dátum: 20170910"; StringDate = Jogok(String, 8); Date = Date(StringDate);

szerda

Szerda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Lekér egy részkarakterláncot a paraméterként átadott karakterláncból Vonal, attól a karaktertől kezdve, amelynek száma a paraméterben van megadva InitialNumberés a paraméterbe átadott hossz Karakterek száma. A sorban lévő karakterek számozása 1-től kezdődik. Ha a paraméterben InitialNumber nullánál kisebb vagy azzal egyenlő érték van megadva, akkor a paraméter az 1 értéket veszi fel. Ha a paraméter Karakterek száma nincs megadva, akkor a sor végéig tartó karakterek kerülnek kiválasztásra.

Példa 8. Hagyja, hogy a kilencedik pozíciótól induló karakterlánc-változó tartalmazza a régiókódot, ezt kell beszerezni és külön sorba írni.

String = "Régió: 99 Moszkva"; Régió = Átlag(karakterlánc, 9, 2);

PageFind

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Megkeresi a megadott részkarakterláncot egy karakterláncban, és a talált részkarakterlánc első karakterének pozíciószámát adja vissza. Nézzük meg ennek a függvénynek a paramétereit:

  • Vonal. Forrás karakterlánc;
  • Alkarakterlánc keresése. Keresés részstring;
  • Keresési irány. Megadja a karakterláncban lévő részkarakterlánc keresésének irányát. Értékeket vehet fel:
    • Keresési irány. Kezdettől;
    • Search.End Direction;
  • Kezdő pozíció. Megadja azt a pozíciót a karakterláncban, ahol a keresés kezdődik;
  • Előfordulások száma. Megadja a keresett részkarakterlánc előfordulási számát a forráskarakterláncban.

9. példa A „Hello world!” sorban. Határozza meg az "és" karakter utolsó előfordulásának helyét.

PositionNumber = StrFind("Szervusz világ!", "és", SearchDirection.End); Jelentés(Pozíciószám);

A kód végrehajtásának eredményeként megjelenik az „és” szimbólum utolsó előfordulásának száma: 9.

VReg

VReg(<Строка>) . Az 1s8-ban megadott karakterlánc összes karakterét nagybetűvé alakítja.

10. példa: Alakítsa át a "hello world!" karakterláncot. nagybetűsre.

StringVreg = VReg("helló világ!"); Jelentés(StringVreg);

A kód végrehajtásának eredményeként megjelenik a „HELLO WORLD!” sor.

NReg

NReg(<Строка>) . A megadott karakterlánc összes karakterét 1s 8-ban kisbetűvé alakítja.

11. példa: Alakítsa át a "HELLO WORLD!" kisbetűsre.

StringNreg = NReg("HELLO VILÁG!"); Jelentés(StringVreg);

A kód végrehajtásának eredményeként megjelenik a „hello world!” sor.

Treg

Treg(<Строка>) . A karakterláncot a következőképpen alakítja át: minden szó első karakterét nagybetűvé, a szó többi karakterét kisbetűvé alakítja.

Példa 12. Do először nagybetűvel szavak betűi a „hello világ!” sorban.

StringTreg = TReg("helló világ!"); Jelentés(StringTreg);

A kód végrehajtásának eredményeként megjelenik a „Hello World!” sor.

Szimbólum

Szimbólum(<КодСимвола>) . Unicod kódja alapján kap egy karaktert.

13. példa: Adjon hozzá bal és jobb oldalt a „Hello World!” sorhoz. szimbólum ★

StringWithStars = Szimbólum("9733")+"Helló világ!"+Szimbólum("9733"); Jelentés(StringWithStars);

A kód végrehajtásának eredményeként megjelenik a „★ Hello World!★” sor.

Szimbólum kód

SymbolCode(<Строка>, <НомерСимвола>) . A Unicode karakterkódot az első paraméterben megadott karakterláncból kéri le, amely a második paraméterben megadott helyen található.

14. példa: Keresse meg a „Hello World!” sor utolsó karakterének kódját.

String = "Hello World!"; KarakterKód = KarakterKód(karakterlánc, StrLength(String)); Értesítés (Karakterkód);

A kód végrehajtásának eredményeként megjelenik a „!” szimbólumkód. - 33.

Üres sor

Üres sor (<Строка>) . Ellenőrzi, hogy a karakterlánc csak jelentéktelen karakterekből áll-e, azaz üres-e.

15. példa Ellenőrizze, hogy egy három szóközből álló karakterlánc üres-e.

Empty = EmptyString(" "); Jelentés(Üres);

A kód végrehajtásának eredményeként megjelenik az „Igen” szó (egy logikai értékű karakterlánc kifejezés Igaz).

Oldalcsere

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Megkeresi a keresési részkarakterlánc összes előfordulását a forráskarakterláncban, és lecseréli a helyettesítő karakterláncra.

16. példa A „Hello World!” sorban. cserélje ki a „béke” szót a „barátok” szóra.

String = StrReplace("Hello World!", "World", "Barátok"); Jelentés(karakterlánc);

A kód végrehajtásának eredményeként megjelenik a „Hello Friends!” sor.

StrNumberLines

StrNumberRow(<Строка>) . Lehetővé teszi egy többsoros karakterláncban lévő sorok számának megszámlálását. Menni új sor 1s 8-ban a szimbólumot használják PS(újsor karakter).

17. példa Határozza meg a sorok számát a szövegben:
"Első sor
Második sor
Harmadik sor"

Number = StrNumberString("Első sor"+Karakterek.PS +"Második sor"+Szimbólumok.PS +"Harmadik sor"); Jelentés(szám);

A kód végrehajtásának eredménye a sorok számának megjelenítése a szövegben: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . A többsoros karakterláncban lévő sort a száma alapján kapja meg. A sorszámozás 1-től kezdődik.

18. példa: Szerezze be a szöveg utolsó sorát:
"Első sor
Második sor
Harmadik sor"

Szöveg = "Első sor" + Szimbólumok. PS + "Második sor" + Szimbólumok. PS + "Harmadik sor"; UtolsóRow = StrGetRow(Szöveg, StrNumberLines(Szöveg)); Jelentés(LastLine);

A kód végrehajtásának eredménye a „Harmadik sor” sor megjelenítése lesz.

PageNumberOccurrences

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) . A megadott részkarakterlánc előfordulásának számát adja vissza egy karakterláncban. A funkció megkülönbözteti a kis- és nagybetűket.

19. példa Határozza meg, hányszor jelenik meg a „c” betű a „Lines in 1s 8.3 and 8.2” sorban, függetlenül a kis- és nagybetűtől.

Line = "Sorok az 1s 8.3-ban és 8.2-ben"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "C"); Jelentés(Előfordulások száma);

A kód végrehajtásának eredménye az előfordulások számának kijelzése lesz: 2.

PageStartsWith

StrStartsWith(<Строка>, <СтрокаПоиска>) . Ellenőrzi, hogy az első paraméterben átadott karakterlánc a második paraméterben szereplő karakterlánccal kezdődik-e.

20. példa Határozza meg, hogy a kiválasztott partner TIN-je 1-gyel kezdődik-e. Engedje meg a változót Ügyfél Ügyfelek.

TIN = Partner.TIN; StartsUNits = StrStartsWith(TIN, "1"); If Egységekkel kezdődik Then //Az Ön kódja EndIf;

PageEndsOn

StrEndsWith(<Строка>, <СтрокаПоиска>) . Ellenőrzi, hogy az első paraméterben átadott karakterlánc a második paraméterben lévő karakterláncra végződik-e.

21. példa Határozza meg, hogy a kiválasztott partner TIN-je 2-re végződjön-e. Hagyja be a változót Ügyfél egy címtárelemre való hivatkozás kerül tárolásra Ügyfelek.

TIN = Partner.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Az Ön kódja EndIf;

PageSplit

StrDivide(<Строка>, <Разделитель>, <ВключатьПустые>) . Egy karakterláncot részekre bont a megadott határoló karakterek használatával, és a kapott karakterláncokat egy tömbbe írja. Az első paraméter a forrás karakterláncot tárolja, a második a határolót tartalmazó karakterláncot, a harmadik pedig azt jelzi, hogy kell-e üres karakterláncokat írni a tömbbe (alapértelmezés szerint Igaz).

22. példa. Legyen egy karakterláncunk, amely számokat tartalmaz „;” szimbólummal elválasztva, és kapjunk egy számtömböt a karakterláncból.

Karakterlánc = "1; 2; 3"; Tömb = StrDivide(karakterlánc, ";"); For Count = 0 by Array.Quantity() - 1 Cycle Attempt Array[Count] = Szám(AbbrLP(Tömb[Szám])); Kivételtömb[Sch] = 0; EndAttemptsEndCycle;

A végrehajtás eredményeként egy 1-től 3-ig terjedő számokat tartalmazó tömb keletkezik.

PageConnect

StrConnect(<Строки>, <Разделитель>) . Az első paraméterből álló karakterláncok tömbjét olyan karakterláncgá alakítja, amely a második paraméterben megadott határolóval elválasztva a tömb összes elemét tartalmazza.

23. példa: Az előző példa számtömbjének felhasználásával kapja meg az eredeti karakterláncot.

For Account = 0 By Array.Quantity() - 1 Cycle Tömb[Act] = String(Tömb[Act]); EndCycle; Sor = StrConnect(tömb, "; ");

Otthoni jegyzetek a szemüvegen keresztül

2013.02.07. Keresés karakterlánc szerint

A 8.3.3.641 verzióban implementálva.

Komolyan javítottuk a vonalbevitelt. Ehhez egy új, hatékony keresési mechanizmust kellett megvalósítanunk a beviteli mezőben. Most már gyorsan át tudja dolgozni az adatbázisban található több millió rekordot.

Elemeztük azokat a keresési feladatokat, amelyekkel a felhasználók találkoznak. Elvégeztük a platformon elérhető, különböző keresési algoritmusokat használó mechanizmusok „auditálását”. Ennek eredményeként a vonali bemenet teljesen új képességeket kapott.

Mostantól a felhasználók a címben bárhol kereshetnek, nem csak a sor elején. Használhatják a teljes szöveges keresést, és akár háttérmunkával is végezhetnek keresést. Annak érdekében, hogy a teljes szöveges keresés hatékonyan működjön soronkénti bevitel esetén, tovább optimalizáltuk a keresőt és javítottuk a teljesítményét.

Összegyűjtöttük azokat az új tulajdonságokat, amelyek lehetővé teszik a bevitel soronkénti testreszabását a konfigurációs objektum szerkesztő ablak külön lapján:

Például megadhatja, hogy a keresés a karakterláncban bárhol történjen, ne csak az elején:

Ezután a felhasználó bármilyen szótöredéket beírhat, nem csak azokat a karaktereket, amelyekkel a keresett karakterlánc kezdődik:

A teljes szöveges keresés használatát sor beírásakor egy külön tulajdonság engedélyezi:

A teljes szöveges kereséssel a felhasználók gyorsan megtalálhatják a releváns adatokat nagy mennyiségű adat között, például a névben található szavak bármelyikének használatával:

Több ismert szó használatával is kereshetnek. A befejezetlen szavakat a rendszer automatikusan kiegészíti a lehetséges kombinációkkal:

Ha nagy az adatmennyiség, akkor mindkét esetben megadhatja, hogy a keresést háttérfeladat segítségével végezze:

Ezután a beviteli mező mellett egy animált kép jelenik meg a felhasználók számára, hasonlóan ahhoz a képhez, amely akkor jelenik meg, amikor a jelentés a háttérben fut:

  • ha a beviteli mezőben használt objektum várhatóan nem tartalmaz nagy mennyiségű adatot, akkor javasoljuk, hogy bárhol engedélyezze a karakterlánc-keresést;
  • ha nagy mennyiségű adatot terveznek egy objektumban, akkor:
    • Javasoljuk a teljes szöveges és a háttérben történő keresés engedélyezését;
    • ugyanakkor a karakterlánc-keresést is bárhol használhatjuk, de a háttérkereséssel és lehetőleg a teljes szöveges kereséssel együtt; így a legtöbb keresés teljes szöveges kereséssel történik.

Szükség esetén újradefiniálhatja az összes felsorolt ​​tulajdonságot az alkalmazásmegoldás végrehajtása során.

Az ügyfélen - az ügyfél beviteli mező eseménykezelőiben Automatikus kiválasztás És EndInputText :

A szerveren - annak az objektumnak a kezelő moduljában, amelynek adatait keresik. Az eseménykezelőben ProcessingReceiveSelectionData :

Természetesen ezen a helyen, a szerveren nem lehet felülírni a keresés végrehajtásának módját "Közvetlenül" vagy "Háttérmunka" . Mert a kódvégrehajtás már átkerült a szerverre.

Sziasztok
Ma megkérték, hogy implementációs dokumentum nyomtatásánál ne jelenítsem meg a dokumentum előtagot, a következőképpen oldottam meg a problémát.

StrReplace(Szám, Lev(Szám, 3), "" );

Amikor belenéztem a szintaktikai asszisztensbe, annyira megtetszett, hogy írni akartam róla stringekkel dolgozik az 1C:Enterprise-ben.

Az 1C-ben szereplő karakterlánc primitív adattípusra utal.

Ha megnézi az 1C súgót, a következő leírást fogjuk látni a String típusról:
Az ilyen típusú értékek tetszőleges hosszúságú Unicode karakterláncot tartalmaznak.
Ha saját szavait használod a húrokról, akkor működni fog. A karakterlánc egy állandó, amely különböző karakterekből áll, mindig idézőjelekkel körülvéve.

Vonal beállítása
Üdvözlet = "Üdvözlöm utas";

A tipikus konfigurációkban a többsoros vonalakat leggyakrabban a „|” függőleges elválasztó használatával hozzák létre:
String = "Többsoros
|string
|írni
|szöveg";

A karakterláncon belüli idézőjelet dupla idézőjelek határozzák meg.
String = ""Szöveg idézőjelben"";

A karakterláncokon sok művelet van (keresés a karakterláncon belül, az elsők meghatározása stb.), jobb, ha megnézzük a Syntax Assistant-t.
Szintaxis segítő - Általános leírása beépített nyelv -> beépített függvények -> karakterláncokkal végzett munka függvényei.

Függvények a húrokkal való munkavégzéshez

Íme egy rövid összefoglaló a karakterláncokkal való munkavégzés funkcióiról:

VReg(<Строка>) — A függvény a karakterlánc összes karakterét nagybetűvé alakítja.

SymbolCode(<Строка>, <НомерСимвола>) – A függvény megkapja a megadott számú helyen lévő karakter kódját, amely a továbbított karakterláncban található.

Egy oroszlán(<Строка>, <ЧислоСимволов>) – A függvény kiválasztja a karakterlánc első bal oldali karaktereit.

Megtalálja(<Строка>, <ПодстрокаПоиска>) — A függvény a keresési karakterlánc előfordulását részstringként találja meg a forrás karakterláncban.

NReg(<Строка>) — A függvény a karakterlánc összes karakterét kisbetűvé alakítja.

Jobb(<Строка>, <ЧислоСимволов>) – Ez a függvény abban különbözik a Left függvényektől, hogy a karakterlánc jobb oldalán lévő utolsó karaktereket választja ki.

Üres sor (<Строка>) — A függvény ellenőrzi, hogy a karakterláncban vannak-e jelentős karakterek.

Szimbólum(<КодСимвола>) — A függvény a karakterkódot a karaktert tartalmazó sztringgé alakítja.

AbbrL(<Строка>) — A függvény levágja a jelentéktelen karaktereket a karakterlánc első jelentős karakterétől balra.

AbbrLP(<Строка>) — A függvény levágja a nem szignifikáns karaktereket a sor első jelentős karakterétől balra, és a szóközöket a sor utolsó jelentős karakterétől jobbra.

Rövidítés(<Строка>) — A függvény levágja a jelentéktelen karaktereket a karakterlánc utolsó jelentős karakterétől jobbra.

Szerda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — A funkció kiválaszt egy karaktersorozatot, a karakterrel kezdve<НачальныйНомер>, teljes szám<ЧислоСимволов>.

Erősség(<Строка>) — A függvény lekéri a sorban lévő karakterek számát.

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — A függvény megkeresi a keresési részkarakterlánc összes előfordulását a forráskarakterláncban, és lecseréli a helyettesítő karakterláncra.

StrGetString(<Строка>, <НомерСтроки>) - A függvény többsoros karakterláncot kap szám szerint.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) — A függvény kiszámítja a keresési részkarakterlánc előfordulásának számát a forráskarakterláncban.

StrNumberRow(<Строка>) — A függvény megszámolja a többsoros karakterlánc sorainak számát. A többsoros karakterláncban a sorokat újsor választja el.

Treg(<Строка>) — A függvény a karakterláncot nagybetűvé alakítja. Ez azt jelenti, hogy minden szó első karakterét a rendszer átalakítja a cím nagybetűssé, vagy nagybetűssé, ha nincs megadva a karakterhez. A fennmaradó karakterek kisbetűvé alakulnak.

Írja be: Konverziók
Az adattípusok explicit konvertálásához azonos nevű függvények vannak azzal az adattípussal, amelyre az átalakítás történik: String(<Значение>)

StringFromNumbs = String(szám);

Mindezeket a funkciókat részletesen leírja a Syntax Assistant; a cikkben leírtam, hogyan segíthet a Syntax Assistant egy kezdő programozónak.

Példák húrokkal való munkára

Szám konvertálása karakterláncra és vissza.

Az év karakterlánc-ábrázolásához használja a Formátum funkciót.

Év = Formátum(JelenlegiDátum(), "DF=yyyy") // Év = "2012"

Szám karakterláncsá alakításához csoportelválasztó karakter beszúrása nélkül ( nem törő tér), alkalmaznia kell a Formátum függvényt a BH=0 paraméterrel:

Szám = 2012. sor = Formátum(szám, "NH=0" ); //String = "2012"

Karakterlánc Nincs szóköz.

A karakterlánc az egyik primitív adattípus az 1C:Enterprise 8 rendszerekben. A típussal rendelkező változók vonal szöveget tartalmaznak.

Írja be a változó értékeket vonaláll dupla idézőjelek. Több ilyen típusú változó is hozzáadható.

Per1 = "1. szó" ;
Per2 = "2. szó" ;
Per3 = Per1 + " " + Per2;

Végül is Per3 azt fogja jelenteni " Szó 1 Szó 2″.

Ezenkívül az 1C:Enterprise 8 rendszerek funkciókat biztosítanak a karakterláncokkal való munkavégzéshez. Nézzük a főbbeket:

EnterString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — a függvény egy párbeszédpanel megjelenítésére szolgál, amelyben a felhasználó megadhatja egy típusú változó értékét Vonal. Paraméter <Строка> kötelező, és tartalmazza annak a változónak a nevét, amelybe a beírt karakterláncot írjuk. Paraméter <Подсказка> opcionális – ez a párbeszédpanel címe. Paraméter <Длина> opcionális, műsorok maximális hossza bemeneti karakterlánc. Alapértelmezés szerint nulla, ami korlátlan hosszúságot jelent. Paraméter <Многострочность> választható. Meghatározza a többsoros szövegbeviteli módot: True – többsoros szövegbevitel sorelválasztókkal; False – írjon be egy egyszerű karakterláncot.

Megadhat egy karakterláncot, ha ismeri a karakterkódot a Unicode-ban:

Szimbólum(<КодСимвола>) — a kód számként kerül beírásra.

Letter= Symbol(1103) ; // I

Van egy inverz függvény is, amely lehetővé teszi egy szimbólum kódjának kiderítését.

SymbolCode(<Строка>, <НомерСимвола>) — a megadott karakter Unicode-számát adja vissza számként.

Kis- és nagybetűk átalakító funkciói:

VReg(<Строка>) — A karakterlánc összes karakterét nagybetűvé alakítja.

NReg(<Строка>) — A karakterlánc összes karakterét kisbetűvé alakítja.

Treg(<Строка>) — a karakterlánc összes karakterét nagybetűvé alakítja. Ez azt jelenti, hogy az összes szó első betűi nagybetűvé, a fennmaradó betűk pedig kisbetűvé alakulnak.

Karakterek keresésének és cseréjének függvényei egy karakterláncban:

Megtalálja(<Строка>, <ПодстрокаПоиска>) — megkeresi a keresési részstring előfordulásának karakterszámát. Például:

Find ("String" , "oké" ) ; 4

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — megkeresi a keresési részstring előfordulásának karakterszámát, az előfordulási számot a megfelelő paraméter jelzi. Ebben az esetben a keresés azzal a karakterrel kezdődik, amelynek száma a paraméterben van megadva Kezdő pozíció. A keresés a karakterlánc elejétől vagy végétől lehetséges. Például:

4. számú előfordulások = Str Find ( "védekezés", "körülbelül" ,Keresési irány. Kezdettől, 1, 4); 7

StrReplace(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) – megkeresi a keresési részkarakterlánc összes előfordulását a forráskarakterláncban, és lecseréli a helyettesítő karakterláncra.

StrReplace ("Karakterlánc" , "oké" , "" ) ; // Oldal

Üres sor (<Строка>) – ellenőrzi, hogy a karakterláncban vannak-e jelentős karakterek. Ha nincsenek jelentős karakterek, vagy egyáltalán nincsenek karakterek, akkor a rendszer az értéket adja vissza Igaz. Másképp - Fekszik.

StrNumberOccurrences(<Строка>, <ПодстрокаПоиска>) – Kiszámítja a keresési részkarakterlánc előfordulásának számát a forráskarakterláncban.

StrNumberOccurrences ( "Tanulj, tanulj és tanulj újra", "tanulmány" , "" ) ; 3

StrTemplate(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — a paramétereket egy karakterláncba szám szerint helyettesíti. A sorban a következő formájú helyettesítési jelzőket kell tartalmaznia: „%1..%N”. A jelölők számozása 1-től kezdődik. Ha a paraméter értéke Határozatlan, egy üres karakterlánc kerül behelyettesítésre.

StrTemplate ( "1. paraméter = %1, 2. paraméter = %2", "1" , "2" ) ; // 1. paraméter = 1, 2. paraméter = 2

String konverziós függvények:

Egy oroszlán(<Строка>, <ЧислоСимволов>) – egy karakterlánc első karaktereit adja vissza.

Jobb(<Строка>, <ЧислоСимволов>) – egy karakterlánc utolsó karaktereit adja vissza.

Szerda(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) – egy hosszúságú karakterláncot ad vissza<ЧислоСимволов>szimbólumtól kezdve<НачальныйНомер>.

AbbrL(<Строка>) levágja a nem szignifikáns karaktereket a karakterlánc első jelentős karakterétől balra.

Rövidítés(<Строка>) — levágja a jelentéktelen karaktereket a sor utolsó jelentős karakterétől jobbra.

AbbrLP(<Строка>) – levágja a jelentéktelen karaktereket a sor első jelentős karakterétől balra és a sor utolsó jelentős karakterétől jobbra.

StrGetString(<Строка>, <НомерСтроки>) – Többsoros karakterláncot kap szám szerint.

Más funkciók:

Erősség(<Строка>) – a karakterláncban lévő karakterek számát adja vissza.

StrNumberRow(<Строка>) – egy többsoros karakterlánc sorainak számát adja vissza. Egy sor akkor tekinthető újnak, ha újsor karakter választja el az előzőtől.

StrCompare(<Строка1>, <Строка2> ) – a kis- és nagybetűket figyelmen kívül hagyva hasonlít össze két karakterláncot. Egy függvény hasonlóan működik, mint egy objektum Értékek összehasonlítása. Visszaküldés:

  • 1 - ha az első sor nagyobb, mint a második
  • -1 - ha a második sor nagyobb, mint az első
  • 0 - ha a karakterláncok egyenlőek

StrCompare("Első sor" , "Második sor" ) ; 1