Kapcsolatok

A szintaxis hasonló az 1c kérelemhez. Hasonló a lekérdezési feltételekhez. Az operátor szintaxis leírása hasonló a

43
NULL – hiányzó értékek. Nem tévesztendő össze a nulla értékkel! A NULL nem szám, nem egyenlő szóközzel, üres hivatkozással vagy Undefined. A NULL típusképző érték, azaz. létezik egy NULL típusú és egyetlen ilyen típusú érték. NULLA... 26
Az 1C platformon az adatbázistáblák lekérdezésének generálásához és végrehajtásához a Query programozási nyelv speciális objektumát használják. Ez az objektum a New Request konstrukció meghívásával jön létre. Kényelmes kérés... 18
A cikk hasznos technikákat kínál az 1C v.8.2 lekérdezésekhez, valamint olyan információkat, amelyek nem annyira ismertek a lekérdezési nyelvről. Nem próbálok teljes leírást adni a lekérdezési nyelvről, hanem csak a... 12
Azzal a feladattal álltam szemben, hogy minden fizetési bizonylatot ki kell választani, és bizonylattípus szerint csoportosítani! Átnéztem az összes lakás- és kommunális szolgáltatást és az internetet, és rájöttem, hogy nincs egyszerű módja annak, hogy a kérelemben szereplő Dokumentumtípust megkapjam: (Kell...

Minden hiányosság ellenére a szövegmezős keresés még mindig az egyik legnépszerűbb. String adattípusokat mindenhol találunk - nevek, számlaszámok, címek, valamint egyéb információk tárolhatók ebben a formátumban. A beépített 1C nyelvű lekérdezésekben a fejlesztők kényelme érdekében egy speciális „LIKE” operátort használnak. Ez az egyik leggyakrabban használt parancs, így szintaxisának és képességeinek alapos ismerete nélkül nehéz lesz a programozónak dolgoznia.

A LIKE operátor használatával

Mielőtt bármilyen operátort a gyakorlatban használna, világosan meg kell értenie annak célját, alkalmazási helyeit és szintaxisát. A „LIKE” 1C kérésben való használatának célja a sablonként bemutatott feltétel kielégítésének ellenőrzése. A visszatérési érték logikai típusú – igaz vagy hamis –, amely jelzi, hogy a megadott feltétel igaz-e. A LIKE operátor több helyen is használható egy lekérdezésben:

  • A „HOL” kulcsszóval jelölt feltételblokkban;
  • A Choice When Then Other End tervezésében;
  • Közvetlenül a kiválasztási mezőkben, a mező összehasonlítás eredményeként.

Az ellenőrző szintaxis mindig ugyanaz, és 3 hivatkozásból áll. A bal oldalon az ellenőrzött szövegérték, majd maga a „LIKE” operátor, a jobb oldalon pedig az ellenőrzött sablon látható. A sablonok gyors és egyszerű létrehozásához speciális szimbólumok vannak, amelyek megkönnyítik a fejlesztést:

  1. A „%” tetszőleges hosszúságú karakterek sorozata. Egyedi szavak vagy számok keresésére szolgál egy karakterláncban;
  2. „_” – tetszőleges karakter. Egyetlen karakter jelenlétének jelzésére szolgál;
  3. A „[...]” egy karaktersorozat, amelyet össze lehet hasonlítani egy karakterláncban található karakterrel. Egy ilyen minta segítségével a zárójelben szereplő karakterek egyezését ellenőrizzük. Megadhat egy szám- vagy betűtartományt is ([a-g], );
  4. A „[^...]” az előzővel ellentétes minta. A sorban megadott karakterek és a zárójelben szereplő karakterek közötti különbség ellenőrzésre kerül.

A helyes sablonok létrehozásának elveinek jobb megértése és megértése érdekében nézzünk meg néhány példát, amelyekkel gyakran találkozhatunk a fejlesztők életében. Az első, amikor ki kell választanunk a nómenklatúra könyvtárából az összes olyan elemet, amelyek nevében a „CUTTER” szó szerepel. Ebben az esetben a LIKE-ot kell használnunk a lekérdezési feltételekben:

SELECT Nomenclature.Name AS Név FROM Directory.Nomenclature AS Nomenclature WHERE Nomenclature.Name HASONLÓ ehhez: "% CUTTER%"

Ha mindkét „%” szimbólumot eltávolítjuk, akkor a lekérdezésben olyan termék jelenik meg, amelynek neve teljesen megegyezik az idézőjelben megadottal. Ha elhagyjuk a „CUTTER%” vagy „% CUTTER” sablont, akkor az eredmény egy listát kap, amely egy adott karakterkombinációval végződő, illetve kezdődő elemekből áll.


Nézzünk meg egy problémát, amely megzavarhatja a kezdő programozókat, akik nem ismerik a lekérdezés szintaxisát. Tegyük fel, hogy meg kell találnia az összes olyan elemet, amelyek nevében a „%” szimbólum szerepel. Különösen olyan esetekben, amikor lefoglalt karaktereket kell keresnie, van egy „speciális karakter” operátor. A #,\,/,~ és más karakterek speciális karakterként használhatók, ami után a fenntartott karakterek egyszerűen jelet jelölnek.

SELECT Nomenclature.Name AS Név FROM Directory.Nomenclature AS Nomenclature WHERE Nomenclature.Name HASONLÓ ehhez: "%#%" SPECIAL CHARACTER "#"

Ha a keresésben paramétert kell használni, akkor a lekérdezésben a HASONLÓ paraméterrel rendelkező változót a rendszer az összeadás használatával használja. Ne feledje, hogy a paraméternek karakterlánc típusúnak kell lennie, különben a kérésben karakterláncra kell konvertálnia. Ez egy meglehetősen bonyolult művelet, és jobb, ha előre kizárja.

SELECT Nomenclature.Name AS Név FROM Directory.Nomenclature AS Nomenclature WHERE Nomenclature.Name HASONLÓ ehhez: "%" + &name + "%"

A HASONLÓ funkció a platform minden verziójában alkalmazható, 8-tól kezdve, és az alkalmazhatósága miatt az 1C fejlesztői nem akarnak változtatni rajta. Természetesen a szöveges keresés mindig a beírt név pontosságától függ, de továbbra is az egyik leggyakoribb. Ebben a tekintetben a professzionális 1C fejlesztőknek tanulmányozniuk kell a HASONLÓ használatát annak minden árnyalatával együtt.

MINT- Operátor egy karakterlánc mintához való hasonlóságának ellenőrzésére. A LIKE analógja SQL-ben.
Operátor MINT lehetővé teszi a tőle balra megadott kifejezés értékének összehasonlítását a jobb oldalon megadott minta karakterlánccal. A kifejezés értékének string típusúnak kell lennie. Ha a kifejezés értéke megegyezik a mintával, az operátor eredménye IGAZ lesz, ellenkező esetben - FALSE.
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, a szögletes zárójelben szereplő karakter
A felsorolás tartalmazhat tartományokat, például a-z, ami egy tetszőleges karaktert jelent a tartományban, 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 más karakter, amely nem szerepel a tagadójel után
Minden más szimbólum önmagát jelenti, és nem hordoz semmilyen további terhelést.
Ha a felsorolt ​​karakterek közül egyet önmagának kell írni, akkor ezt meg kell előznie<Спецсимвол>. Magamat<Спецсимвол>(bármely megfelelő karakter) ugyanabban az utasításban van definiálva a SPECIAL CHARACTER kulcsszó után.
Például, „%ABV[abvg]\_abv%” minta KÜLÖNLEGES KARAKTER A „\” egy karaktersorozatból álló részsztringet jelent:
A betűk; B betűk; B betűk; egy számjegy; az a, b, c vagy d betűk egyike; aláhúzás; a betűk; b betűk; betűk v.
Ezenkívül ezt a sorozatot tetszőleges karakterkészlet előzheti meg.

Példák a felhasználásra:
Code 1C v 8.x Eljárás BankEndTextInput (elem, szöveg, érték, szabványos feldolgozás)
StandardProcessing = False;
//Lekérdezés a kereséssel, például "%" + mintával<Текст введенный пользователм в поле ввода> + "%"
Request = Új kérés;
Query.SetParameter("Név", "%" + Szöveg + "%");
Query.Text = "VÁLASZTÁS
| Bankok.Link
|FROM
| Directory.Banks HOGYAN Bankok
|HOL
| Banks.Name HASONLÓ &Név";

Eredmény = Query.Run();
Selection = Eredmény.Select();
Ha Eredmény.Empty() Akkor
//Nincs találat. Itt megjeleníthetsz üzenetet vagy csinálhatsz mást :)
Másképp
//Nézd meg az eredményeket
tzResults = Eredmény.Unload();
//Készítsen egy olyan értéklistát, amely tartalmazza a talált elemeket.
Érték = Új értéklista();
Value.LoadValues(tzResults.UnloadColumn("Link"));
endIf;
Vége eljárás

Szükséges, hogy az „Alapértelmezett szerződések” csak a Főszerződés neveit tartalmazzák stb.:
Kód 1C v 8.x választás
Ha a név HASONLÍT a „Megállapodás száma”-hoz, akkor a „Szerződés száma” // Bármely „Szerződésszámmal” kezdődő sor megfelelő
Ha a név HASONLÍT a "Fő megállapodás%[^А-яЁе"+Symbol(33)+"-"+Symbol(126)+"№"""+Szimbólumok.PS+Szimbólumok.Tab+Szimbólumok.PF+Szimbólumok .NPP+ Symbols.VTab+"]%", majd "Default Contracts" // Bármely "Main Contract" karakterrel kezdődő sor megfelelő
Egyébként "egyéb"
Vége, mint egyfajta szerződés

Az oldalról vett információ



Tetszett a cikk? Oszd meg