1s húrok összeadása. Új karakterlánc-függvények

Kevés mechanizmus létezik a karakterláncokkal való munkavégzésre az 1C lekérdezésekben. Először is hozzá lehet adni karakterláncokat. Másodszor, egy részkarakterlánc kivehető egy karakterláncból. Harmadszor, a karakterláncok összehasonlíthatók, beleértve a mintákat is. Körülbelül ennyit tehetsz a húrokkal.

Húr kiegészítés

A "+" operátor karakterláncok hozzáadására szolgál a lekérdezésben. Csak korlátozott hosszúságú karakterláncokat adhat hozzá.

SELECT "Név: " + Vállalkozók.Név AS Oszlop1 FROM Directory.Contractors AS Vállalkozók WHERE Contractors.Reference = &Referencia

Substring függvény

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

Az Environment() függvény analógja az objektummodellből. A Substring() függvény karakterlánc típusú adatokra alkalmazható, és lehetővé teszi egy töredék kiválasztását <Строки> , szám karakterrel kezdődik <НачальнаяПозиция> (a karakterlánc karakterei 1-től vannak számozva) és hossza <Длина> karakterek. A függvényértékelés eredménye változó hosszúságú karakterlánc típusú, és a hossz korlátlannak számít, ha <Строка> korlátlan hossza és paramétere van <Длина> nem állandó és nem nagyobb, mint 1024.

Ha a karakterlánc hossza kisebb, mint a második paraméterben megadott, akkor a függvény üres karakterláncot ad vissza.

Figyelem! A SUBSTRING() függvény használata a korlátlan hosszúságú karakterláncok korlátozott hosszúságú karakterláncokká alakításához nem ajánlott. Ehelyett jobb az EXPRESS() cast operátort használni.

Funkció hasonló

Ha meg kell győződnünk arról, hogy a string attribútum megfelel bizonyos feltételeknek, összehasonlítjuk:

SELECT Counterparties.Name AS Column1 FROM Directory.Counterparties AS Counterparts WHERE Counterparties.Name = "Gazprom"

De mi van akkor, ha finomabb összehasonlításra van szükség? Nem csak az egyenlőségért vagy az egyenlőtlenségért, hanem egy bizonyos mintához való hasonlóságért? Pontosan erre jött létre a LIKE funkció.

LIKE – Operátor, amely ellenőrzi, hogy egy karakterlánc hasonló-e egy mintához. A LIKE analógja SQL-ben.

A LIKE operátor lehetővé teszi a tőle balra megadott kifejezés értékének összehasonlítását a jobb oldalon megadott sablon karakterlánccal. A kifejezés értékének karakterlánc típusúnak kell lennie. Ha a kifejezés értéke megegyezik a sablonnal, akkor az operátor eredménye TRUE, ellenkező esetben HAMIS.

A sablon karakterláncának következő karakterei szolgáltatáskarakterek, és jelentésük eltér a karakterlánc karakterétől:

  • % (százalék): tetszőleges számú karaktert tartalmazó sorozat;
  • _ (aláhúzás): egy tetszőleges karakter;
  • […] (egy vagy több karakter szögletes zárójelben): bármely, szögletes zárójelben szereplő karakter. A felsorolás tartalmazhat tartományokat, például a-z, ami a tartományon belül bármely karaktert jelent, beleértve a tartomány végeit is;
  • [^…] (szögletes zárójelben egy tagadójel, amelyet egy vagy több karakter követ): Bármely egyedi karakter, kivéve a tagadójel után felsoroltakat.

Minden más szimbólum önmagát jelenti, és nem hordoz semmilyen további terhelést. Ha a felsorolt ​​karakterek valamelyikét önmagának kell írni, akkor ezt meg kell előznie<Спецсимвол>. Magamat<Спецсимвол>(bármely megfelelő karakter) után ugyanabban az utasításban van definiálva kulcsszó KÜLÖNLEGES SZIMBÓLUM.

A Looking Glass jegyzetei

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ó munkavégzés funkcióinak 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.

Az új funkciók által végrehajtott összes műveletet korábban is elvégezhette. Beágyazott nyelven írt többé-kevésbé bonyolult algoritmusok segítségével. Ezért az új funkciók nem adnak alapvetően új lehetőségeket. Lehetővé teszik azonban a kód mennyiségének csökkentését, egyszerűbbé és érthetőbbé teszik a kódot. 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ó, a 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>)

<Шаблон>az a karakterlánc, amelyben a paraméterreprezentációkat helyettesíteni kell.

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

Egy adott hely megadásához a sablonban, ahol a helyettesítést el kívánja végezni, %1, ... %10 formátumú jelölőket kell használnia. 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)

String függvény StrCompare()

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

Ugyanezt a műveletet elvégezheti az objektum használata előtt Értékek összehasonlítása:

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

String függvények StrBeginsC(), StrEndsTo()

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épített nyelven megvalósítani, de jelenlétükkel tisztább és érthetőbb kódokat írhatunk. És gyorsabban dolgoznak.

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

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

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

StrFind() karakterláncokkal végzett munka függvénye

A régi funkció helyett Megtalálja() megvalósítottuk új funkció, amely további funkciókkal rendelkezik:

  • Keresés különböző irányokba (az elejétől, a végétől);
  • Keresés a megadott pozícióból;
  • Keressen előfordulást a következővel: megadott szám(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 visszafelé keresés akkor hasznos, ha egy formalizált karakterlánc utolsó darabjára van szüksége, például egy URL-ben lévő fájl teljes nevére. A megadott pozícióból való keresés pedig segít azokban az esetekben, amikor egy ismert töredékben kell keresni, nem pedig a teljes karakterláncban.

A String típus minden programozási nyelvben megtalálható. Primitív, és az 1C-ben sok funkció van a vele való munkához. Ebben a cikkben közelebbről megvizsgáljuk különböző módokon dolgozzon a karakterlánctípusokkal az 1C 8.3 és 8.2 példákban.

Vonal

Bármilyen típusú változó karakterláncsá konvertálásához létezik az azonos nevű "String ()" függvény. A bemeneti paraméter maga a változó lesz, amelynek karakterlánc-reprezentációját kell megkapni.

String(False) // "Nem"-et ad vissza
String(12345) // „12 345”-et ad vissza
Karakterlánc(AktuálisDátum()) //"2017.07.21. 11:55:36"

Nemcsak primitív típusok, hanem egyéb, például könyvtárak és dokumentumok elemei is karakterláncsá konvertálhatók.

Rövidítve LP, rövidítve L, rövidítve P

Ezeknek a függvényeknek a bemeneti paraméterei karakterlánc típusú változók. A függvények eltávolítják a jelentéktelen karaktereket (szóközök, kocsivisszaadások stb.): bal és jobb oldalról, csak balról, illetve csak jobbról.

abbrl("A kétoldali szóközök el lesznek távolítva") // "A kétoldali szóközök el lesznek távolítva"
abbr("A kétoldali szóközök el lesznek távolítva") // "A bal oldali szóközök el lesznek távolítva"
abbr(" A két oldalon lévő szóközök el lesznek távolítva ") // "A jobb oldali szóközök el lesznek távolítva"

Leo, jobbra, középen

Ezek a függvények lehetővé teszik egy karakterlánc egy részének levágását. A Lion() függvény a karakterlánc bal oldalán lévő, megadott hosszúságú részét adja vissza. A "Right()" függvény hasonló, de a vágás a jobb oldalon történik. A "Sze()" függvény lehetővé teszi annak a karakterszámnak a meghatározását, amelyből a karakterláncot kiválasztja, és annak hosszát.

Lion("String változó", 4) // a "Stro" értéket adja vissza
Right("String változó", 7) // a "változót" adja vissza
avg("String változó", 2, 5)// a "troco"-t adja vissza

Erősség

A függvény határozza meg a karakterlánc változóban található karakterek számát.

StrLength("Word") // a végrehajtás eredménye 5 lesz

megtalálja

A függvény lehetővé teszi a karakterlánc egy részének keresését egy karakterlánc változóban. A visszatérési érték egy szám lesz, amely a talált karakterlánc elejének pozícióját jelzi. Ha nem található egyezés, nullát ad vissza.

Vegye figyelembe, hogy a keresés megkülönbözteti a kis- és nagybetűket. Ha a keresési részkarakterlánc egynél több előfordulása van az eredeti karakterláncban, a függvény az első előfordulás elejét adja vissza.

Find("egy, kettő, egy, kettő, három", "kettő") // a függvény a 6-os számot adja vissza

Üres sor

Ennek a függvénynek a használata lehetővé teszi annak meghatározását, hogy egy karakterlánc üres-e. A jelentéktelen karaktereket, például a szóközt, a kocsi visszatérését és másokat a rendszer nem veszi figyelembe.

EmptyString("Vasily Ivanovich Pupkin") // a függvény False értéket ad vissza
EmptyString(" ") // a függvény True értéket ad vissza

VReg, NReg, TReg

Ezek a függvények nagyon hasznosak a karakterlánc-változók összehasonlításakor és konvertálásakor. A "Vreg()" visszaadja az eredeti karakterláncot nagybetűvel, a "HReg()" kisbetűvel, a "TReg()" pedig úgy formázza vissza, hogy minden egyes szó első karaktere nagybetűs legyen, és minden további karakter kisbetűs legyen.

VReg("GENERAL DIRECTOR") // visszatérési érték - "GENERAL DIRECTOR"
HReg("GENERAL DIRECTOR") // visszatérési érték - "CEO"
TReg("GENERAL IRECTOR") // visszatérési érték - "General Director"

StrReplace

Ez a funkció analóg a behelyettesítéssel szövegszerkesztők. Lehetővé teszi, hogy egy karaktert vagy karakterkészletet helyettesítsen egy másikkal a karakterlánc-változókban.

StrReplace("piros, fehér, sárga", ",", ";") // "piros; fehér; sárga"

StrNumberRows

A függvény lehetővé teszi, hogy meghatározza a kocsivisszajelzéssel elválasztott sorok számát egy szöveges változóban.

Az alábbi példában a hurok három körön megy keresztül, mert az StrNumberRows függvény a 3-as értéket adja vissza:

Ind \u003d 1, StrNumber of Lines ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") hurok
<тело цикла>
EndCycle;

StrGetString

Ez a funkció ugyanúgy működik többsoros szöveggel, mint az előző. Lehetővé teszi, hogy egy szöveges változóból egy adott karakterláncot kapjon.

StrGetString("Karakterlánc1" + Szimbólumok.PS + "Karakterlánc2" + Szimbólumok.PS + "Karakterlánc3", 2) // "Line2"-t adja vissza

StrNumberOccurrences

A függvény megszámolja egy karakter vagy részkarakterlánc előfordulásának számát a keresett karakterláncban.

StrNumberInstallations("a;b;c;d; ", ";") // a függvény a 4-es számot adja vissza

Szimbólum és SymbolCode

Ezek a függvények lehetővé teszik, hogy egy karaktert Unicode kódja alapján kapjon meg, valamint maga a karakter határozza meg ezt a kódot.

SymbolCode("A") // a függvény az 1 040 számot adja vissza
SymbolCode(1040) // a függvény "A"-t ad vissza

Gyakori feladatok húrokkal való munka során

Karakterlánc összefűzése

Több karakterlánc összefűzéséhez (összefűzéséhez) egyszerűen használja az összeadás operátort.

"1. sor" + "2. sor" //két sor hozzáadásának eredménye "1. sor 2. sor"

Típus konverzió

Ahhoz, hogy egy típust karakterláncsá alakítsunk, például egy szótári elemre való hivatkozást, egy számot stb., elegendő a „String ()” függvény használata. Az olyan függvények, mint a "ShortLP()" szintén karakterláncokká alakítják a változókat, de azonnal levágják a jelentéktelen karaktereket.

String(1000) // az "1000" értéket adja vissza

Kérjük, vegye figyelembe, hogy egy szám karakterláncsá alakításakor a program automatikusan hozzáad egy szóközt, amely elválasztja az ezret. Ennek elkerülése érdekében a következő struktúrákat használhatja:

StrReplace(String(1000),Karakterek.NPP,"") // az "1000" értéket adja vissza

String(Format(1000,"CH=")) // értéke "1000"

Idézetek egy karakterláncban

Gyakran meg kell küzdenie azzal, hogy egy karakterlánc-változóba idézőjeleket kell tenni. Ez lehet a konfigurátorban írt kérés szövege, vagy csak egy változó. A probléma megoldásához mindössze két idézőjel karaktert kell beállítania.

Header = String("A Horns and Hooves LLC mi vagyunk!") // visszatér a "Roga and Hooves LLC mi vagyunk!"

Többsoros, sortörés

Többsoros szöveg létrehozásához elegendő sortörés karaktereket (Symbols.PS) hozzáadni.

MultilineText = "Első sor" + Karakterek.PS + "Második sor"

Hogyan távolítsuk el a szóközöket

A jobb vagy bal oldali szóközök eltávolításához használhatja a "Stretch()" (valamint a "Scrpt()" és "ScreenP()") függvényt:

StringWithoutSpaces = ShortLP(" Sok betű ") // a függvény a "Sok betű" értéket adja vissza

Ha egy szám karakterláncsá alakítása után el kell távolítania a nem törő szóközöket, használja a következő konstrukciót:

StringWithoutSpaces = StrReplace(String(99999),Karakterek.NPP,"") // "99999"-et adja vissza

Ezenkívül a programozók gyakran használják a következő konstrukciót, amely lehetővé teszi a szöveges változó minden szóközének eltávolítását vagy helyettesítését egy másik karakterrel:

StringWithoutSpaces = StrReplace(" hello", " " ,"") // a "hello" kifejezést adja vissza

A húrok összehasonlítása egymással

Összehasonlíthatja a kifejezéseket a szokásos egyenlőségjellel. Az összehasonlítás megkülönbözteti a kis- és nagybetűket.

"hello" = "hello" // hamis értéket ad vissza
"Hello" = "Hello" // True értékkel tér vissza
"Hello" = "Viszlát" // a False értéket adja vissza

A string az egyik primitív adattípus az 1C:Enterprise 8 rendszerekben. Típusú változók vonal szöveget tartalmaznak.

Változóértékek típusa vonal idézőjelek közé vannak zárva. Több változó ebből a típusbólösszecsukható.

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

Végül is Per3 számítani fog" Szó 1 Szó 2″.

Ezenkívül az 1C:Enterprise 8 rendszerek funkciókat biztosítanak a karakterláncokkal való munkavégzéshez. Fontolja meg 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 a párbeszédpanel címe. Paraméter <Длина> opcionális, a bemeneti karakterlánc maximális hosszát jelzi. Az alapértelmezett 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.

Egy karakterlánc beírható, és a Unicode karakterkód ismeretében:

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

Letter= Symbol(1103 ) ; // I

Van még inverz függvény, amely lehetővé teszi egy karakter 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.

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

Treg(<Строка>) - a karakterlánc összes karakterét nagybetűvé alakítja. Vagyis az összes szó első betűit nagybetűvé, a többi betűt kisbetűvé alakítja.

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

StrFind(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — megkeresi a keresési részstring előfordulásának karakterszámát, az előfordulási szám a megfelelő paraméterben van megadva. Ebben az esetben a keresés attól a karaktertől indul, 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:

Number4 Entry= StrFind( "védekezés", "o" , Keresési irány. Először 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("String" , "szem" , "" ) ; // 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> — számmal helyettesíti a paramétereket a karakterláncban. A karakterláncnak tartalmaznia kell a következő formátumú helyettesítési jelzőket: "%1..%N". A markerek számozása 1-től kezdődik. Ha a paraméter értéke Határozatlan, az üres karakterlánc behelyettesítésre kerül.

StrPattern ( "1. lehetőség = %1, 2. lehetőség = %2", "1" , "2" ) ; // 1. paraméter = 1, 2. paraméter = 2

String konverziós függvények:

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

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

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

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

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

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

StrGetString(<Строка>, <НомерСтроки>) – szám szerint lekéri a többsoros karakterlánc sztringjét.

Más funkciók:

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

StrNumber of Lines(<Строка>) - 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ő sortól.

StrCompare(<Строка1>, <Строка2> ) - érzéketlenül hasonlít össze két karakterlánc kis- és nagybetűket. A függvény objektumként működik É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

A programozási nyelvek alapvető jellemzői általában a számokkal és karakterláncokkal való munka. Általában ezek a szolgáltatások a fordítókódba vannak bekötve (vagy a programozási nyelv "alap" osztályai vannak megvalósítva).

Az 1C-ben a karakterláncokkal való munkavégzés lehetőségeit magában a platformban programozzák. Ma megvizsgáljuk az 1C karakterláncokkal való munkavégzés jellemzőit a beépített 1C nyelvű programokban.

Vonalérték 1C

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

Változó = "Helló világ!";

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

Változó = "Helló, "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 system enum használata. Lehetővé teszi sortörés 1C és egyéb nem nyomtatható karakterek, például TAB hozzáadását.

Változó = "Szia" + Symbols.ps + "béke!";

3. Az 1C konfigurációi nem csak egy nyelvre (orosz, angol vagy más) 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 hu 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 nyelvazonosí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 NStr() függvényt kell használnia:

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

1C vonaltípusú kellékek

A feltétel az 1C címtár / dokumentum mezője. Az 1C nyelvű programban lévő változóktól abban különbözik, hogy típusa pontosan meg van adva az attribútumhoz (szám, 1C karakterlánc stb.). Ha pontosítania kell a kellékeket, nézze meg az oktatóanyagot a webhelyen.

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

Az 1C karakterláncok 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 karakterláncok 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 bizonylatszámként, címtárkódként, mérésként nem lehetséges.

Munkavégzés 1C vonalakkal

A karakterláncokkal való munkához az 1C platform számos beépített funkciója van.

  • AbbrLP ("Hihetetlen, de igaz!")
    Eltávolítja az 1C sorból extra terek. Bármilyen típus 1C karakterláncsá alakítására is használható (például számok).
  • Változó = "Vasya" + Abbrl("plusz") + "Olya"; //"Vasya plus Olya" lesz
    Példa több karakterlánc-érték összegzésére 1C. Az eredmény egy sor 1C.
  • Változó = Oroszlán("Zene", 2); // "Mu" lesz
    Változó = Átlag("Zene", 2, 2); // "ps" lesz
    Változó = Jogok("Zene", 2); // "ka" lesz
    Különféle lehetőségek egy karakterláncból való részkarakterlánc megszerzésére 1C.
  • Változó = Find("Zene", "ps"); //3 lesz
    Keressen egy részkarakterláncot az 1C karakterláncban, az 1. karakterrel kezdve.
  • Változó = StrLength("Zene"); //6 lesz
    Egy 1C karakterlánc karaktereinek számát adja vissza.
  • Notify("Hi") //az 1C ablak alján található üzenetmezőben
    alert("hello") //felugró párbeszédpanel
    Status("Hello") //az állapotkijelző sorban a bal alsó sarokban
    .

Tárgyak bevitele az 1C sorba

Mint ismeretes, jelenleg az XML a legnépszerűbb formátum a strukturált információcserére. Még legújabb verzió KISASSZONY Office Wordés Excel menti a fájlokat ebben a formátumban (docx és xlsx, módosítsa a kiterjesztést zip-re, nyissa meg 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 a ShortLP() vagy String() függvény használata. Használhatja a REPRESENTATION() függvényt a lekérdezés szövegé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.

Az alapértelmezett könyvtár esetében 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.

ViewStringXml = XMLString(Érték); //XML beszerzése az 1C értékből
Value1С = XMLValue(Típus("Katalógushivatkozás.Nómenklatúra"),ViewStringXml); //szerezze le az 1C értéket az XML karakterláncból, meg kell adnia a fogadandó 1C típusát

3. Az 1C platform natív módon bármilyen 1C objektumot karaktersorozattá alakít. Az 1C 7.7-es verzióról költözött. Ezt a formátumot más programok nem értik, de megért egy másik 1C-t, ami megkönnyíti az 1C adatbázisok közötti cserét.

Karakterlánc = ValueInStringInt(Érték1S); //lekéri az 1C karakterláncot az 1C értékből
ValueToFile("C:\Sajátfájl.txt", Érték1C); //egy másik lehetőség, az 1C értékből kapunk egy mentett karakterláncot tartalmazó fájlt
É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 egy 1C 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 az 1C vonal bevitelé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ó = "";
String = EnterValue(Változó, "Írja be a teljes nevet");

2. Az 1C objektum részleteinek (könyvtár / dokumentum) vagy az űrlap részleteinek (lásd) megjelenítéséhez leggyakrabban a beviteli mezőt használják. 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, Jobb klikk rajta, további részletekért):

  • 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 lehetősége nem elegendő Önnek, van beépített szerkesztő. Az űrlaphoz való hozzáadásához hozzá kell adni egy Mezőt az Űrlap / Vezérlő beszúrása menüben szöveges dokumentum. Tulajdonságaiban megadhatja működésének módját - az Extension tulajdonságot.

Szöveges dokumentummező nem kapcsolható közvetlenül adatokhoz. Az OnOpening() form eseménykezelőjébe a következő függvényt kell beírni (lásd ):

FormElements.ElementNameTextDocumentField.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(); //ValueString itt a kellékek, ahova mentjük az értéket

5. Az 1C 8.2.11-es verziójában in kezelt űrlapok, megjelent új lehetőség vonalábrázolás 1C - Formázott dokumentummező.


A szöveges dokumentum mezőjéhez hasonlóan itt is be kell állítani a megnyitáskor, és írni kell, ha a program segítségével saját maga menti a szöveget.

  • Az 1C objektumban, amelynek formáját készítjük (referenciakönyv, dokumentum, feldolgozás stb.) - adjon hozzá egy attribútumot Value Storage típusú
  • Az OnReadOnServer() függvényben állítsa be az attribútum szövegét

    //itt a Requisite az 1C objektum hozzáadott attribútuma
    //itt a FormattedDocument a mező neve a szerkesztési űrlapon
    &A szerveren

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

  • A BeforeWriteOnServer() függvényben vagy a gomb megnyomásával írja be a szöveget a mezőből

    &A szerveren
    Eljárás onReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    Vége eljárás



Betöltés...
Top