1s 8 är liknande i begäran. Liknar frågevillkoren. Använda "gilla"-operatorn

Låt oss titta på syftet och användningen av den villkorliga operatören GILLA(eng. GILLA) i 1C frågespråk i exempel.

Snabb passage

Syfte

Kontrollera om strängvärdet i begäran matchar det angivna mönstret - returnerar ett booleskt värde (TRUE eller FALSE).

  • Kontrollen är falloberoende.
  • Frågan använder tabellindex – inte relaterade till fulltextsökindex.
  • Det kan ta lång tid att färdigställa med stora bord.
  • Strängar med obegränsad längd bör konverteras med funktionen SUBSTRING

Användningsplatser

  • I villkoren för operatören WHERE
  • I designvillkoren VAL NÄR<>DÅ AVSLUTA "" ANNAT ""
  • I urvalsfält (till exempel: Name LIKE &ParameterSimilar to StringSuitable)

Beskrivning av syntaxen för LIKE-operatorn

Operatörsparametern måste vara en sträng: den kan anges som en konstant eller skickas som en begäranparameter.

Bokstaven (maskerna) som listas nedan kan användas tillsammans eller separat.

Exakt strängspecifikation

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Keys.Name LIKNANDE till "1" // Motsvarar Keys.Name ="1"

Resultat:

% är en bokstavlig betydelse ett godtyckligt antal tecken

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Keys.Name LIKE "%"

Resultat: valfri 10 artiklar

_ (understreck): bokstavlig matchning av ett tecken

Exempel #1:

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Keys.Name LIKE "_"

Exempel #2: börjar med valfritt tecken, följt av "1" och sedan valfritt tecken

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Nycklar.Namn SOM LIKNAR "_1%"

Resultat:

(ett eller flera tecken inom hakparenteser)

  • Varje bokstav som matchar ett tecken används som ett ELLER.
    Det är acceptabelt att ange ett intervall, till exempel a-z,0-5, vilket betyder ett godtyckligt tecken från det angivna intervallet

Exempel

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Keys.Name SOM LIKNAR "[l]%"

Resultat: 10 som börjar med "l" eller "z"

Exempel: börjar med 5,6,7

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Keys.Name LIKE "%"

Resultat:

[^] (inom hakparenteser finns ett flykttecken ^ följt av ett eller flera tecken)

Motsvarar alla tecken (_) förutom de som anges ()

Exempel

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Nycklar.Namn SOM LIKNAR "8.[^012]%"//inkluderar inte 8.0,8.1,8.2

Resultat: alla börjar med "8." exklusive de angivna

SPECIAL CHARACTER - kommando för att specificera de tecken som registrerats ovan i begäran

Som tjänstesymbol är det tillåtet att använda minst: #,~,/,\

Exempel:

VÄLJ de första 10
Nycklar.Namn
FRÅN
Directory.Keys AS Keys
VAR
Keys.Name SOM "#_" SPECIALTECKET "#"

Resultat:

Tillämpbarhet i plattformar

Felaktiga parametrar LIKE<>

  • Parametern är inte godkänd strängtyp: till exempel siffran 1 istället för strängen "1"
  • Ett fält av icke-strängtyp jämförs med en giltig mask (till exempel en länk) eller vid anslutning kontrolleras inte värdet för IsNUL

Var uppmärksam på feltexten där frågan visas:

Nycklar.Namn LIKNANDE<>&L

Ibland uppstår en situation när du i 1C 8.3 eller 8.2 behöver göra ett urval, till exempel från en katalog med alla element som har ordet "glaze" i sitt namn. Eller, från katalogen, välj alla entreprenörer vars efternamn innehåller ordet "Ivan". Kontrollera i allmänhet något strängvärde.

För detta ändamål finns det en operatör i 1C-frågorna 8.3 och 8.2 - "Liknande". Det används, respektive, under följande förhållanden:

Få 267 videolektioner på 1C gratis:

Hur använder man mallar i 1C-frågor?

För att skapa ett urvalsvillkor måste du skicka en viss mall som parameter. För att skapa en mall finns det så kallade servicesymboler.

Tecknet "%" tillåter till exempel valfri sekvens av godtyckliga tecken:

Det finns andra specialtecken:

  • % (procent) - tillåter valfri sekvens av godtyckliga tecken;
  • _ (understreck) - vilket enskilt tecken som helst;
  • […] – ett godtyckligt tecken från de som anges inom parentes. Förutom att lista tecken kan du använda intervall. Exempel: a-o;
  • [^...] – samma som den föregående, men omvänt. Tecknet "^" betyder negation.

Operatör TYCKA OM låter dig jämföra strängtypsdata i en fråga som finns till vänster om operatorn med strängtypdata som finns till höger om operatorn. Resultatet av jämförelsen utvärderas till Sant eller Falskt, så jämförelsen kan användas som ett villkor.

För operatören TYCKA OM Det finns specialtjänsttecken som inte uppfattas som en sträng:

  • "%" procentsymbol: indikerar närvaron av valfritt antal godtyckliga tecken i en sträng
  • "[...]" ett eller flera tecken inom hakparenteser: indikerar närvaron av någon (enskild) av de listade tecknen. Dessutom kan ett antal tecken anges (till exempel)
  • "_" understreck: indikerar närvaron av ett godtyckligt tecken
  • "[^...]" negationstecken: anger närvaron av ett enda tecken utöver de som anges inom hakparenteser
Om du behöver ange ett av ovanstående specialtecken för jämförelse, måste du använda nyckelordet "SPECIAL SYMBOL"

Funktioner för användning med olika DBMS

IBM DB2"Endast en parameter kan placeras till höger om SIMILAR-operatorn. De enda jokertecken som är "_" (understreck betyder vilket tecken som helst) och "%" (procent som betyder en sekvens av alla tecken).
Om du använder en DBMS " PostgreSQL" eller " Oracle Database"Specialtecken "hakparenteser [...]" accepteras endast om de anges i texten i begäran, och skickas INTE som en parameter till begäran.

I fildatabasen kommer specialtecken därför alltid att uppfattas på samma sätt, och olika beroende på vilket DBMS som används i klient-serverversionen.

Exempel: välj produkter som innehåller symbolen "%" i namnet

VÄLJ | Ref.länk |FRÅN | Katalog Nomenklatur HUR Ref | VAR | Ref.Name SOM "%\%" SPECIALTECKEN "\"

Exempel: välj produkter vars namn börjar med ordet "Tank"

VÄLJ | Ref.länk |FRÅN | Katalog Nomenklatur HUR Ref | VAR | Ref.Name SOM LIKNAR "Bak%"

Exempel: välj produkter vars namn slutar med ett nummer

VÄLJ | Ref.länk |FRÅN | Katalog Nomenklatur HUR Ref | VAR | Ref.namn SOM LIKNAR "%"

SIMILAR-operatorn i en fråga kontrollerar strängvärden från tabeller för likhet med ett mönster.
Den används enligt följande: strängen som ska kontrolleras placeras till vänster om denna operator och mönstret placeras till höger.

Efter kontroll returnerar den True eller False; följaktligen används den aktivt under förhållanden.
Följande servicetecken används för att skapa en mall:

  • % (procent) - en sekvens som innehåller valfritt antal godtyckliga tecken
  • _ (understreck) - ett godtyckligt tecken
  • […] (ett eller flera tecken inom hakparenteser) - vilket enstaka tecken som helst inom hakparenteserna
    Också förutom olika karaktärer du kan använda intervall, till exempel a-z(A-z), vilket betyder att det finns ett godtyckligt tecken som ingår i intervallet, inklusive ändarna av intervallet.
  • [^...] (inom hakparenteser ett negationstecken följt av ett eller flera tecken) - vilket enstaka tecken som helst förutom de som anges efter negationstecknet

De återstående symbolerna används för sitt avsedda syfte.
Om det är nödvändigt att överföra ett av ovanstående tjänstecken som en symbol, måste det föregås av<Спецсимвол>. Jag själv<Спецсимвол>(valfri lämplig symbol) definieras i samma uttalande efter nyckelord SPECIELL SYMBOL.
Till exempel betyder mönstret "%ABV[abvg]\_abv%" SPECIALTECKET "\" en delsträng som består av en sekvens av tecken:
bokstäverna A; bokstäverna B; bokstäverna B; en siffra; en av bokstäverna a, b, c eller d; understryka; bokstäverna a; bokstäverna b; bokstäver v.
Dessutom kan denna sekvens föregås av en godtycklig uppsättning tecken.

Procedur Välj AgreementContainingInNameText(mText)
//I begäran kommer vi att använda en mall som "%" + mText + "%" Request = New Request; Query.SetParameter("Namn", "%" + Text + "%"); Request.Text = "VÄLJ | Avtal. Länk, | Avtal. Ägare | FRÅN | Katalog. Motpartsavtal AS Avtal | | VAR | Avtal. Namn LIKNANDE & Namn"; Result = Query.Run(); Selection = Result.Select(); Report("Avtal som innehåller i namnet: " + mText + " har följande motparter"); While Selection.Next() Cycle Report("Motpart: " + Selection. Owner + "; Avtal: " + Selection. Link EndIf; EndProcedure

43
NULL – saknade värden. Ej att förväxla med nollvärde! NULL är inte ett tal, är inte lika med ett mellanslag, en tom referens eller Odefinierad. NULL är ett typbildande värde, dvs. det finns en typ NULL och ett enda värde av denna typ. NULL... 26
För att generera och exekvera frågor till databastabeller i 1C-plattformen används ett speciellt objekt för programmeringsspråket Query. Detta objekt skapas genom att anropa New Request-konstruktionen. Bekväm begäran... 18
Artikeln ger användbara tekniker när du arbetar med 1C v.8.2-frågor, samt information som inte är så välkänd om frågespråket. Jag försöker inte ge en fullständig beskrivning av frågespråket, utan vill bara uppehålla mig vid... 12
Jag stod inför uppgiften att välja alla betalningsdokument och gruppera dem efter dokumenttyp! Efter att ha tittat igenom alla boenden och kommunala tjänster och internet insåg jag det enkel väg få dokumenttyp finns inte i begäran:(Jag var tvungen...