Kapcsolatok

Új funkciók a karakterláncokkal való munkához. Új funkciók a karakterláncokkal való munkavégzéshez Funkciók a karakterláncok kezeléséhez az 1c-ben

Jegyzetek a szemüvegen keresztül

2014.08.18. Új funkciók a karakterláncokkal való munkához

Megvalósítva a 8.3.6.1977 verzióban.

Bővítettük a karakterláncokkal való együttműködésre tervezett függvények körét. Ezt annak érdekében tettük, hogy fejlettebb eszközöket biztosítsunk a karakterlánc-adatok elemzéséhez. Az új funkciók kényelmesek és hasznosak lesznek a szövegelemzés technológiai feladataiban. A formázott formában adatokat tartalmazó szöveg elemzésével kapcsolatos feladatokban. Ez lehet a berendezéstől kapott egyes fájlok elemzése, vagy például egy technológiai napló elemzése.

Minden olyan műveletet végrehajthat, amely korábban új funkciókat hajt végre. Beépített nyelven írt többé-kevésbé bonyolult algoritmusok használata. Ezért az új funkciók nem adnak alapvetően új képességeket. Lehetővé teszik azonban a kód mennyiségének csökkentését, valamint a kód egyszerűbbé és érthetőbbé tételét. Ezenkívül lehetővé teszik a műveletek végrehajtásának felgyorsítását. Mert a platformban megvalósított funkciók természetesen gyorsabban működnek, mint egy hasonló, beépített nyelven írt algoritmus.

Formázási függvény StrTemplate()

Ez a függvény a paramétereket karakterláncba helyettesíti. Ilyen átalakítás szükségessége gyakran felmerül, például figyelmeztető üzenetek megjelenítésekor. Ennek a függvénynek a szintaxisa a következő:

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

<Шаблон>- ez az a karakterlánc, amelybe be kell cserélni a paraméterreprezentációkat.

<Значение1> , ... <Значение10>- ezek olyan paraméterek (maximum tíz), amelyek reprezentációit be kell cserélni a karakterláncba.

Ahhoz, hogy a sablonban egy adott helyet jelezzen, ahol a helyettesítést el kívánja végezni, olyan jelölőket kell használnia, mint a %1, ... %10. A sablonban szereplő markerek számának és az értékeket tartalmazó paraméterek számának meg kell egyeznie.

Például egy ilyen operátor végrehajtásának eredménye:

lesz egy sor:

Adathiba a 2. sorban (dátumtípus szükséges)

StrCompare() karakterláncokkal való munkavégzésre szolgáló függvény

Ez a függvény két karakterláncot hasonlít össze a kis- és nagybetűk megkülönböztetése nélkül. Például így:

Ugyanezt a műveletet korábban is végrehajthatja az objektum használatával Értékek összehasonlítása:

Az új funkció használata azonban egyszerűbbnek tűnik. És ezen kívül egy függvény, szemben egy objektummal Értékek összehasonlítása, vékony kliensben és webkliensben is működik.

Függvények a StrStartsWith(), StrEndsAt() karakterláncokkal való munkához

Ezek a függvények határozzák meg, hogy egy karakterlánc egy megadott részkarakterlánccal kezdődik-e, vagy egy karakterlánc egy megadott részkarakterlánccal végződjön. Ezeknek a függvényeknek az algoritmusát nem nehéz beágyazott nyelven megvalósítani, de jelenlétük lehetővé teszi, hogy tisztább és érthetőbb kódokat írjunk. És gyorsabban dolgoznak.

Például kényelmes használni őket az operátorban Ha:

StrDivide(), StrConnect() karakterláncokkal végzett munka függvényei

Ezek a függvények egy karakterláncot részekre osztanak egy meghatározott határoló használatával. Vagy fordítva, több sort egyesítenek egybe, beillesztve közéjük a kiválasztott elválasztót. Kényelmesek naplók és technológiai naplók létrehozásához vagy elemzéséhez. Például egy technológiai naplóbejegyzést egyszerűen elemezhet további elemzésre alkalmas részekre:

StrFind() karakterláncokkal való munkavégzésre szolgáló függvény

A régi funkció helyett Megtalálja()Új funkciót vezettünk be, amely további képességekkel rendelkezik:

  • Keresés különböző irányokba (az elejétől, a végétől);
  • Keresés egy megadott pozícióból;
  • Meghatározott számú előfordulás keresése (második, harmadik stb.).

Valójában megkettőzi a régi funkció képességeit. Ez a régebbi verziókban lefordított modulokkal való kompatibilitás fenntartása érdekében történik. Régi funkció Megtalálja() Nem ajánlott újra használni.

Az alábbiakban egy példa látható az új keresési lehetőségek használatára. A fordított keresés akkor hasznos, ha szüksége van egy formalizált karakterlánc utolsó részére, például a teljes fájlnévre az URL-ben. És a megadott pozícióból történő keresés segít azokban az esetekben, amikor egy ismert töredékben kell keresni, és nem a teljes sorban.

Megvalósítva a 8.3.6.1977 verzióban.

Bővítettük a karakterláncokkal való együttműködésre tervezett függvények körét. Ezt annak érdekében tettük, hogy fejlettebb eszközöket biztosítsunk a karakterlánc-adatok elemzéséhez. Az új funkciók kényelmesek és hasznosak lesznek a szövegelemzés technológiai feladataiban. A formázott formában adatokat tartalmazó szöveg elemzésével kapcsolatos feladatokban. Ez lehet a berendezéstől kapott egyes fájlok elemzése, vagy például egy technológiai napló elemzése.

Minden olyan műveletet végrehajthat, amely korábban új funkciókat hajt végre. Beépített nyelven írt többé-kevésbé bonyolult algoritmusok használata. Ezért az új funkciók nem adnak alapvetően új képességeket. Lehetővé teszik azonban a kód mennyiségének csökkentését, valamint a kód egyszerűbbé és érthetőbbé tételét. Ezenkívül lehetővé teszik a műveletek végrehajtásának felgyorsítását. Mert a platformban megvalósított funkciók természetesen gyorsabban működnek, mint egy hasonló, beépített nyelven írt algoritmus.

Formázási függvény StrTemplate()

Ez a függvény a paramétereket karakterláncba helyettesíti. Ilyen átalakítás szükségessége gyakran felmerül, például figyelmeztető üzenetek megjelenítésekor. Ennek a függvénynek a szintaxisa a következő:

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

<Шаблон>- ez az a karakterlánc, amelybe be kell cserélni a paraméterreprezentációkat.

<Значение1> , ... <Значение10>- ezek olyan paraméterek (maximum tíz), amelyek reprezentációit be kell cserélni a karakterláncba.

Ahhoz, hogy a sablonban egy adott helyet jelezzen, ahol a helyettesítést el kívánja végezni, olyan jelölőket kell használnia, mint a %1, ... %10. A sablonban szereplő markerek számának és az értékeket tartalmazó paraméterek számának meg kell egyeznie.

Például egy ilyen operátor végrehajtásának eredménye:

lesz egy sor:

Adathiba a 2. sorban (dátumtípus szükséges)

StrCompare() karakterláncokkal való munkavégzésre szolgáló függvény

Ez a függvény két karakterláncot hasonlít össze a kis- és nagybetűk megkülönböztetése nélkül. Például így:

Ugyanezt a műveletet korábban is végrehajthatja az Érték-összehasonlítás objektum használatával:

Az új funkció használata azonban egyszerűbbnek tűnik. Ezen túlmenően a funkció az Érték-összehasonlítás objektumtól eltérően vékony kliensben és webes kliensben is működik.

Függvények a StrStartsWith(), StrEndsAt() karakterláncokkal való munkához

Ezek a függvények határozzák meg, hogy egy karakterlánc egy megadott részkarakterlánccal kezdődik-e, vagy egy karakterlánc egy megadott részkarakterlánccal végződjön. Ezeknek a függvényeknek az algoritmusát nem nehéz beágyazott nyelven megvalósítani, de jelenlétük lehetővé teszi, hogy tisztább és érthetőbb kódokat írjunk. És gyorsabban dolgoznak.

Például kényelmesen használhatók az If utasításban:

StrDivide(), StrConnect() karakterláncokkal végzett munka függvényei

Ezek a függvények egy karakterláncot részekre osztanak egy meghatározott határoló használatával. Vagy fordítva, több sort egyesítenek egybe, beillesztve közéjük a kiválasztott elválasztót. Kényelmesek naplók és technológiai naplók létrehozásához vagy elemzéséhez. Például egy technológiai naplóbejegyzést egyszerűen elemezhet további elemzésre alkalmas részekre:

StrFind() karakterláncokkal való munkavégzésre szolgáló függvény

A régi Find() függvény helyett egy új függvényt implementáltunk, amely további képességekkel rendelkezik:

  • Keresés különböző irányokba (az elejétől, a végétől);
  • Keresés egy megadott pozícióból;
  • Meghatározott számú előfordulás keresése (második, harmadik stb.).

Valójában megkettőzi a régi funkció képességeit. Ez a régebbi verziókban lefordított modulokkal való kompatibilitás fenntartása érdekében történik. Javasoljuk, hogy többé ne használja a régi Find() függvényt.

Az alábbiakban egy példa látható az új keresési lehetőségek használatára. A fordított keresés akkor hasznos, ha szüksége van egy formalizált karakterlánc utolsó részére, például a teljes fájlnévre az URL-ben. És a megadott pozícióból történő keresés segít azokban az esetekben, amikor egy ismert töredékben kell keresni, és nem a teljes sorban.

Az 1C 8.3 sorai az 1C beépített nyelvben primitív típusú értékeket képviselnek Vonal. Az ilyen típusú értékek 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

Ez a rész tartalmazza azokat a fő funkciókat, 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 szereplő 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. Ezt a funkciót 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.

String = "Jelenlegi dátum: 20170910"; StringDate = Jogok(karakterlánc, 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(<Строка>) . Az 1s8-ban megadott karakterlánc összes karakterét 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.

12. példa: Írd nagybetűvel a „hello world!” sorban lévő szavak első betűit.

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. Ha 1s 8-ban új sorra szeretne lépni, használja a szimbólumot 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 tömb összes elemét tartalmazza a második paraméterben megadott határolóval elválasztva.

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, "; ");

A programozási nyelvek alapvető képességei általában a számokkal és karakterláncokkal való munkavégzést foglalják magukban. Általában ezek a szolgáltatások a fordítókódba vannak bekódolva (vagy a programozási nyelv „alap” osztályai vannak megvalósítva).

Az 1C-ben magában a platformban van programozva a karakterláncokkal való munka képessége. Ma megvizsgáljuk az 1C karakterláncokkal való munkavégzés jellemzőit a programokban a beépített 1C nyelven.

Vonalérték 1C

1. Kezdjük a legegyszerűbbel. Változó létrehozása és állandó karakterlánc-érték hozzárendelése így néz ki az 1C-ben:

Változó = "Szia, világ!";

Ha egy idézőjel karaktert kell megadnia egy állandó 1C karakterlánc értékben, akkor meg kell dupláznia ""

Változó = "Szia, világ"!;

2. Az 1C sortörés egyszerre kétféleképpen adható meg. Az első a | szimbólum használata

Változó = "Szia!
| világ! ";

A második a Symbols rendszer felsorolását használja. Lehetővé teszi 1C sortörések és egyéb nem nyomtatható karakterek, például TAB hozzáadását.

Változó = "Hello" + Symbols.PS + "béke!";

3. Az 1C konfigurációi nem csak egy nyelvre (orosz, angol vagy másik) fejleszthetők, hanem egyidejűleg több nyelvre is. Ebben az esetben az 1C ablak alján az aktuálisan használt nyelv kerül kiválasztásra.

A nyelvek listája az Általános/Nyelvek ág konfigurációs ablakában található. Minden nyelvnek van egy rövid azonosítója, mint pl ru vagy eng.

Nyilvánvaló, hogy egy ilyen konfiguráció programozásakor az 1C vonalak többnyelvűek is lehetnek. Ehhez létre lehet hozni egy ilyen 1C sort az átmenő megadásával; lehetőségek nyelvi azonosító szerint:

Változó = "ru=""Szia világ! ""; hu=""Szia világ! """;

Ha az így kialakított 1C sort szokás szerint használod, akkor az lesz ami benne van írva. Ahhoz, hogy a rendszer két lehetőségre bontsa, és a kívántat használja, az НStr() függvényt kell használnia:

//kétnyelvű konfigurációk esetén helyes
Jelentés(NStr(Változó));

1C vonaltípusú kellékek

Az attribútum egy mező az 1C könyvtárban/dokumentumban. Az 1C nyelvű programban lévő változóktól abban különbözik, hogy az attribútumhoz pontosan meg van adva a típusa (szám, 1C karakterlánc stb.). Ha fel kell frissítenie az emlékezetét a kellékről, nézze meg a leckét.

Ha megadja az attribútum típusát - 1C sor, akkor ezenkívül meg kell adnia a paramétereket.

Az 1C sorok korlátlan hosszúságúak (hosszúság = 0) és korlátozott hosszúságúak, jelezve a karakterek pontos számát. A korlátlan hosszúságú 1C sorok külön SQL táblában vannak tárolva, így használatuk kevésbé produktív, mint a korlátozottak.

Éppen ezért a korlátlan hosszúságú 1C húrok használatának megvannak a maga korlátai - nem lehet mindenhol használni őket. Például nem megengedett dokumentumszámként, hivatkozási kódként vagy mérésként.

Munka 1C húrokkal

Az 1C platform számos beépített funkcióval rendelkezik a húrokkal való munkavégzéshez.

  • AbbrLP ("Hihetetlen, de igaz!")
    Eltávolítja a felesleges szóközöket az 1C sorból. Bármilyen típus 1C karakterláncsá alakítására is használható (például számok).
  • Változó = "Vasya" + AbbrLP(" plusz") + "Olya"; //lesz "Vasya plus Olya"
    Példa több 1C karakterlánc érték összegzésére. Az eredmény egy sor 1C lesz.
  • Változó = Lev("Zene", 2); //"Mu" lesz
    Változó = Közepes("Zene", 2, 2); //lesz "fenyegetés"
    Változó = Jogok("Zene", 2); //lesz "ka"
    Különféle lehetőségek egy részkarakterlánc 1C karakterláncból való beszerzésére.
  • Változó = Find("Zene", "zy"); //3 lesz
    Keressen egy részkarakterláncot az 1C karakterláncban, az 1. karakterrel kezdve.
  • Változó = StrLength("Zene"); //6 lesz
    Az 1C sorban lévő karakterek számát adja vissza.
  • Report("Hello") //az 1C ablak alján lévő üzenetablakban
    Alert("Hello") //felugró párbeszédpanel
    Status("Hello") //az állapotkijelző sorban a bal alsó sarokban
    .

Tárgyak bevitele az 1C sorba

Mint tudják, a strukturált információk cseréjének legnépszerűbb formátuma jelenleg az XML. Még az MS Office Word és Excel legújabb verziója is ebbe a formátumba menti a fájlokat (docx és xlsx, módosítsa a kiterjesztést zip-re, megnyitja archiválóban).

Az 1C adatcserére szolgáló platform számos lehetőséget kínál, amelyek közül a fő szintén az XML.

1. A legegyszerűbb módszer az Abreviation() vagy String() függvény használata. Használhatja a REPRESENTATION() függvényt a kérés törzsében. Műveletük eredménye ugyanaz - bármilyen 1C objektum karakterlánc reprezentációját generálják a felhasználó számára.

Egy könyvtár esetében alapértelmezés szerint ez lesz a neve. Dokumentum esetén – a dokumentum neve, száma és dátuma.

2. Bármely 1C objektum (korlátozásokkal) konvertálható XML-be és fordítva. Az átalakítási folyamatot szerializálásnak nevezik.

StringViewXml = XMLString(Érték); //XML lekérése 1C értékből
Value1C = XMLVérték(Típus("Könyvtárlink.Nómenklatúra"),TípusStringXml); //az 1C értéket az XML karakterláncból kapja meg, meg kell adnia a fogadni kívánt 1C típust

3. Az 1C platform saját módszere van arra, hogy bármilyen 1C objektumot karaktersorozattá alakítson. Az 1C 7.7-es verzióról költözött. Ezt a formátumot más programok nem értik, de más 1C megérti, ami megkönnyíti az 1C adatbázisok közötti cserét.

Sor = ValueInRowInt(Érték1C); //lekéri az 1C karakterláncot az 1C értékből
ValueVFile("C:\Sajátfájl.txt", Érték1C); //egy másik lehetőség, az 1C értékből kapunk egy fájlt egy mentett karakterlánccal
Érték1C = ValueFromStringInt(String); //vissza az 1C sorból
Érték1C = ÉrtékFájl("C:\Sajátfájl.txt"); //vissza a fájlból

1C sorok szerkesztése az űrlapon

Amellett, hogy 1C nyelvű programban 1C karakterláncokkal dolgozom, természetesen szeretném, ha a felhasználó szerkeszthetné azokat. Erre több lehetőség is kínálkozik:

1. A legegyszerűbb módja egy 1C vonal beléptetésének kérése. Ezt a módszert az 1C programozás tanításakor használják; az életben sokkal ritkábban használják (de használják!).

Változó = "";
Row = EnterValue(Változó, "Írja be a teljes nevet");

2. Egy 1C objektum (könyvtár/dokumentum) vagy űrlap részleteinek (lásd) megjelenítéséhez leggyakrabban egy beviteli mezőt használnak. Ez a leggyakoribb eszköz az 1C-ben a felhasználó számára a szerkesztőmezők kezeléséhez.

3. A beviteli mező lehetőségei bővíthetők (lásd a beviteli mező tulajdonságait, kattintson rá jobb gombbal, további részletek):

  • Jelölőnégyzet Többsoros szerkesztési mód
  • Speciális szerkesztés jelölőnégyzet (akkor érhető el, ha az előző jelölőnégyzet be van jelölve)
  • Jelszó mód jelölőnégyzet (lásd).

4. Ha a beviteli mező összes képessége nem elég Önnek, van beépített szerkesztő. Az űrlaphoz való hozzáadásához hozzá kell adni egy Szöveges dokumentum mezőt az Űrlap/Beszúrás vezérlője menühöz. Tulajdonságaiban megadhatja annak működési módját – az Extension tulajdonságot.

Szöveges dokumentummező nem társítható közvetlenül adatokhoz. Az űrlap OnOpen() eseménykezelőjébe függvényt kell írni (lásd:

Űrlapelemek.ElemNévSzövegDokumentumField.SetText(StringValue); //itt a ValueString az a szöveg, amelyet például az attribútumból kapunk

És a mentéskezelőben - például a Mentés gombban - adjon hozzá egy mentést:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ÉrtékAz itt található sor az az attribútum, ahová az értéket mentjük

5. Az 1C 8.2.11-es verziójában a felügyelt űrlapokon egy új lehetőség jelent meg az 1C vonal megjelenítésére - a Formátumozott dokumentum mező.


Hasonlóan a szöveges dokumentum mezőjéhez, ezt megnyitáskor be kell állítani, és a program segítségével saját kezűleg menteni kell.

  • Abban az 1C objektumban, amelynek formáját hozzuk létre (könyvtár, dokumentum, feldolgozás stb.) - adjon hozzá egy attribútumot Value Storage típussal
  • Az OnReadOnServer() függvényben az attribútumból állítjuk be a szöveget

    //itt az Attribútum az 1C objektum hozzáadott attribútuma
    //itt a FormattedDocument a szerkesztendő űrlap mezőjének neve
    &A szerveren

    FormattedDocument = CurrentObject.Attributes.Get();
    Az eljárás vége

  • A BeforeWritingOnServer() függvényben vagy a gomb segítségével írjuk ki a szöveget a mezőből

    &A szerveren
    Eljárás ReadingOnServer(CurrentObject) során
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Az eljárás vége

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 idézőjelek közé vannak zárva. 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, a bemeneti karakterlánc maximális hosszát mutatja. 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



Tetszett a cikk? Oszd meg