Panašus į užklausos sąlygas. Panašios užklausos sąlygose Operatorius panašus į 1c užklausą

Nepaisant visų trūkumų, teksto lauko paieška vis dar yra viena populiariausių. Styginių duomenų tipus galime rasti visur – tokiu formatu gali būti saugomi vardai, sąskaitų numeriai, adresai, taip pat kita informacija. Užklausose integruota 1C kalba kūrėjų patogumui naudojamas specialus operatorius „LIKE“. Tai viena iš dažniausiai naudojamų komandų, todėl be išsamių jos sintaksės ir galimybių žinių programuotojui bus sunku dirbti.

Naudojant operatorių LIKE

Prieš naudodami bet kurį operatorių praktiškai, turite aiškiai suprasti jo paskirtį, taikymo vietas ir sintaksę. „LIKE“ naudojimo 1C užklausoje tikslas yra patikrinti, ar tenkinama sąlyga, pateikta kaip šablonas. Grąžinama vertė yra Būlio tipo – tiesa arba klaidinga – nurodanti, ar nurodyta sąlyga yra teisinga. Patinka operatorius gali būti naudojamas keliose užklausos vietose:

  • Sąlygų bloke, pažymėtame raktažodžiu „KUR“;
  • Kuriant „Pasirinkimas, kai tada kitaip pabaiga“;
  • Tiesiogiai pasirinkimo laukuose, kaip laukų palyginimo rezultatas.

Patvirtinimo sintaksė visada yra ta pati ir susideda iš 3 nuorodų. Kairėje yra tikrinama teksto reikšmė, tada pats operatorius „LIKE“, o dešinėje – tikrinamas šablonas. Norėdami greitai ir lengvai sukurti šablonus, yra specialūs simboliai, palengvinantys kūrimą:

  1. „%“ yra bet kokių savavališko ilgio simbolių seka. Naudojamas ieškant atskirų žodžių ar skaičių eilutėje;
  2. „_“ – bet koks vienas simbolis. Skirta nurodyti vieno simbolio buvimą;
  3. „[...]“ yra simbolių seka, kurią galima palyginti su simboliu eilutėje. Tokio modelio pagalba patikrinama, ar jis atitinka bet kurį iš skliausteliuose išvardytų simbolių. Taip pat galite nurodyti skaičių arba raidžių diapazoną ([a-g], );
  4. „[^...]“ yra priešingas modelis nei ankstesnis. Patikrintas skirtumas tarp eilutėje nurodyto ir skliausteliuose nurodyto simbolio.

Norėdami geriau suprasti ir suprasti teisingų šablonų kūrimo principus, pažvelkime į keletą pavyzdžių, su kuriais dažnai susiduria kūrėjų gyvenime. Pirmasis yra tada, kai iš nomenklatūros katalogo turime pasirinkti visus elementus, kurių pavadinimuose yra žodis „CUTTER“. Šiuo atveju užklausos sąlygose turime naudoti LIKE:

SELECT Nomenklatūra.Pavadinimas AS Pavadinimas FROM Katalogas.Nomenklatūra AS Nomenklatūra WHERE Nomenklatūra.Pavadinimas PANAŠUS į "% CUTTER%"

Jei pašalinsime abu „%“ simbolius, užklausoje bus rodomas produktas, kurio pavadinimas visiškai atitinka nurodytą kabutėse. Jei paliksime šabloną „CUTTER%“ arba „% CUTTER“, rezultatas bus elementų, kurie atitinkamai baigiasi arba prasideda tam tikru simbolių deriniu, sąrašas.


Pažvelkime į problemą, kuri gali suklaidinti naujokus programuotojus, kurie nežino užklausos sintaksės. Tarkime, kad reikia rasti visus elementus, kurių pavadinimuose yra simbolis „%“. Ypač tais atvejais, kai reikia ieškoti rezervuotų simbolių, yra operatorius „specialusis simbolis“. #,\,/,~ ir kiti simboliai gali būti naudojami kaip specialus simbolis, po kurio bet kokie rezervuoti simboliai tiesiog žymės ženklą.

SELECT Nomenklatūra.Pavadinimas AS Pavadinimas FROM Katalogas.Nomenklatūra AS Nomenklatūra WHERE Nomenklatūra.Pavadinimas PANAŠUS į "%#%" SPECIALUS CHARACTER "#"

Jei paieškoje reikia naudoti parametrą, užklausoje esantis kintamasis su parametru PANAŠAS naudojamas naudojant pridėjimą. Atminkite, kad parametras turi būti eilutės tipo arba turėsite jį konvertuoti į eilutę užklausoje. Tai gana sudėtinga operacija, todėl geriau ją atmesti iš anksto.

SELECT Nomenklatūra.Pavadinimas AS Pavadinimas FROM Katalogas.Nomenklatūra AS Nomenklatūra WHERE Nomenklatūra.Pavadinimas PANAŠUS į "%" + &name + "%"

Funkcija PANAŠAS yra taikoma visose platformos versijose, pradedant nuo 8, ir dėl jos pritaikomumo 1C kūrėjai nenorės jos keisti. Žinoma, teksto paieška visada priklauso nuo įvesto vardo tikslumo, tačiau ji vis tiek išlieka viena dažniausių. Šiuo atžvilgiu profesionalūs 1C kūrėjai turi ištirti PANAŠŲ naudojimą su visais jo niuansais.

43
NULL – trūksta reikšmių. Negalima painioti su nuline verte! NULL nėra skaičius, nelygu tarpas, tuščia nuoroda arba neapibrėžta. NULL yra tipą formuojanti reikšmė, t.y. yra tipas NULL ir viena šio tipo reikšmė. NULL... 26
Norėdami generuoti ir vykdyti duomenų bazių lentelių užklausas 1C platformoje, naudojamas specialus užklausos programavimo kalbos objektas. Šis objektas sukuriamas iškviečiant naujos užklausos konstrukciją. Patogus prašymas... 18
Straipsnyje pateikiami naudingi metodai dirbant su 1C v.8.2 užklausomis, taip pat informacija, kuri nėra taip gerai žinoma apie užklausos kalbą. Nebandau pateikti išsamaus užklausos kalbos aprašymo, bet noriu pasilikti tik prie... 12
Susidūriau su užduotimi atrinkti visus mokėjimo dokumentus ir sugrupuoti pagal dokumentų tipus! Peržiūrėjęs visas būsto ir komunalines paslaugas bei internetą supratau, kad nėra lengvo būdo gauti dokumento tipą užklausoje: (Turėjau...

Pažiūrėkime į sąlyginio operatoriaus paskirtį ir naudojimą PATINKA (angl. LIKE) 1C užklausos kalba pavyzdžiuose.

Greitas praėjimas

Tikslas

Patikrinkite, ar eilutės reikšmė užklausoje atitinka nurodytą šabloną – grąžina Būlio reikšmę (TRUE arba FALSE).

  • Čekis nepriklauso nuo bylos.
  • Užklausoje naudojami lentelės indeksai, nesusiję su viso teksto paieškos indeksais.
  • Tai gali užtrukti ilgai, kol bus sudarytos didelės lentelės.
  • Neriboto ilgio eilutės turėtų būti konvertuojamos naudojant funkciją SUBSTRING

Naudojimo vietos

  • Operatoriaus WHERE sąlygomis
  • Projektavimo sąlygose PASIRINKTI KADA<>TADA PABAIGA "" KITA ""
  • Pasirinkimo laukuose (pavyzdžiui: pavadinimas LIKE ¶metras, panašus į StringSuitable)

Operatoriaus LIKE sintaksės aprašymas

Operatoriaus parametras turi būti eilutė: jis gali būti nurodytas kaip konstanta arba perduodamas kaip užklausos parametras.

Žemiau išvardyti literalai (kaukės) gali būti naudojami kartu arba atskirai.

Tiksli eilutės specifikacija

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Keys.Name, PANAŠUS į "1" // Atitinka Keys.Name ="1"

Rezultatas:

% yra pažodinė reikšmė, bet koks bet kokių simbolių skaičius

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Keys.name LIKE "%"

Rezultatas: bet kurie 10 prekių

_ (pabraukimas): pažodinis, atitinkantis bet kurį simbolį

1 pavyzdys:

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Keys.Pavadinimas LIKE "_"

2 pavyzdys: pradedant bet kokiu simboliu, po kurio seka „1“, o tada bet kuriais simboliais

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Raktai. Pavadinimas PANAŠUS į „_1%“

Rezultatas:

(vienas ar daugiau simbolių laužtiniuose skliaustuose)

  • Kiekvienas pažodinis žodis, atitinkantis bet kurį simbolį, naudojamas kaip ARBA.
    Priimtinas nurodyti diapazoną, pvz., a-z,0-5, reiškiantį savavališką simbolį iš nurodyto diapazono

Pavyzdys

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Raktai. Pavadinimas PANAŠUS į „[l]%“

Rezultatas: 10 prasidedančių raidėmis "l" arba "z"

Pavyzdys: pradedant nuo 5,6,7

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Keys.name LIKE "%"

Rezultatas:

[^] (laužtiniuose skliaustuose yra išskyrimo simbolis ^, po kurio yra vienas ar daugiau simbolių)

Atitinka bet kurį simbolį (_), išskyrus nurodytus ()

Pavyzdys

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Raktai. Pavadinimas PANAŠUS į "8.[^012]%"//neįtraukite 8.0, 8.1, 8.2

Rezultatas: viskas prasideda "8". išskyrus nurodytus

SPECIAL CHARACTER - komanda, skirta nurodyti aukščiau užklausoje užregistruotus simbolius

Kaip paslaugos simbolį priimtina naudoti bent: #,~,/,\

Pavyzdys:

PASIRINKITE pirmus 10
Raktai.Vardas
NUO
Directory.Keys AS raktai
KUR
Raktai. Pavadinimas LIKE "#_" SPECIALUS SIEBENTAS "#"

Rezultatas:

Taikymas platformose

Netinkami parametrai LIKE<>

  • Perduotas ne eilutės tipo parametras: pavyzdžiui, skaičius 1 vietoj eilutės "1"
  • Ne eilutės tipo laukas lyginamas su galiojančia kauke (pvz., nuoroda) arba jungiantis nepatikrinama IsNUL reikšmė

Atkreipkite dėmesį į klaidos tekstą, kuriame rodomas klausimas:

Raktai.Vardas PANAŠUS<>&L

Šiame straipsnyje norime viską aptarti su jumis 1C užklausų kalbos funkcijos, ir užklausos kalbos konstrukcijos. Kuo skiriasi funkcija ir dizainas? Funkcija iškviečiama su skliaustais ir galimais parametrais juose, o konstrukcija rašoma be skliaustų. Neabejotinai visos 1C užklausų kalbos struktūros ir funkcijos kad duomenų gavimo procesas būtų lankstus ir daugiafunkcinis. Šios funkcijos ir konstrukcijos taikomos užklausų laukams, o kai kurios taip pat taikomos sąlygoms.

1C užklausų kalbos funkcijos

Nes aiškus aprašymas 1c užklausos kalbos funkcijos yra daug rečiau nei struktūrų aprašymai, nusprendėme pradėti žiūrėti į funkcijas. Dabar pažvelkime į kiekvieną atskirai, apibūdindami jo paskirtį, sintaksę ir naudojimo pavyzdį, taigi:

1. Funkcija DATA LAIKAS- ši funkcija sukuria pastovų lauką, kurio tipas yra „Data“.

Sintaksė: DATA LAIKAS (<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>)

Naudojimo pavyzdys:

2. Funkcija DATE DIFFERENCE- grąžina skirtumą tarp dviejų datų viename iš matmenų (metai, mėnuo, diena, valanda, minutė, sekundė). Matavimas perduodamas kaip parametras.

Sintaksė: DIFFERENCEDATE(<Дата1>, <Дата2>, <Тип>)

Naudojimo pavyzdys:

Query.Text = "SELECT | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Dienų skaičius";

3. Funkcija VALUE- nustato pastovų lauką su iš anksto nustatytu įrašu iš duomenų bazės, taip pat galite gauti bet kokio tipo tuščią nuorodą.

Sintaksė: VALUE(<Имя>)

Naudojimo pavyzdys:

Request.Text = "SELECT //iš anksto apibrėžtą elementą | VERTĖ (Katalogas. Valiutos. Doleris) AS doleris, //tuščia nuoroda | VERTĖ (Dokumentas. Prekių ir paslaugų gavimas. EmptyLink) AS kvitas, //pervedimo vertė | VERTĖ (Pervedimas) . Juridinis asmuo) Asmuo, //iš anksto nustatyta sąskaita VERTĖ (Sąskaitų planas. Savarankiška apskaita. Medžiaga) AS sąskaita_10" ;

4. SELECT funkcija- prieš mus yra IF konstrukcijos analogas, kuris naudojamas kode, tik šis naudojamas 1C užklausose.

Sintaksė: PASIRINKTI KADA<Выражение>TADA<Выражение>KITAIP<Выражение>GALAS

Naudojimo pavyzdys:

Request.Text = //jei suma yra didesnė nei 7500, tada turėtų būti 300 rublių nuolaida, //taigi, jei sąlyga suveikia, funkcija //grąžina Suma - 300 //kitaip užklausa tiesiog grąžins sumą "PASIRINKITE | PASIRINKTI | KAI TCR kvitai.Suma > 7500 | TAD TKRkvitai.Suma - 300 | KITAI TCRkvitai.Suma | PABAIGTI AS Suma Su nuolaida | NUO |

5. EXPRESS funkcija- leidžia išreikšti pastovų lauką tam tikru tipu.

Sintaksė: EXPRESS (lauko pavadinimas AS tipo pavadinimas)

Naudojimo pavyzdys:

Query.Text = "PASIRINKITE ĮVAIRIUS | Pardavimas.Regitros numeris, | PASIRINKTI | KAI Pardavimai.Registruotojo NUORODOS dokumentas.Išlaidos | THEN EXPRESS(Pardavimas.Regitras AS dokumentas.Išlaidos) | ELSE SELECT | WHEN Pardavimas.Regitros nuorodos dokumentas.Įdiegimas | THEN EXPRESS(Pardavimas.Registras AS dokumentas.Įgyvendinimas) |. END AS Numeris Akumuliacinis registras, Pirkimai";

Ar yra kita galimybė naudoti funkciją EXPRESS mišrių tipų laukuose, kur jie atsiranda? Paprasčiausias pavyzdys yra bet kurio registro „Regitras“. Taigi kodėl mums gali reikėti kvalifikuoti tipą registratoriuje? Panagrinėkime situaciją, kai iš registratoriaus pasirenkame lauką „Skaičius“, iš kurios lentelės bus pasirinktas skaičius? Teisingas visų atsakymas! Todėl, kad mūsų užklausa veiktų greitai, turėtume nurodyti aiškų tipą naudodami funkciją EXPRESS

Naudojimo pavyzdys:

Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Katalogas.Nomenklatūra AS Nomenklatūra";

6. ISNULL funkcija(alternatyvi rašyba ISNULL) – jei laukas yra NULL tipo, tada jis pakeičiamas antruoju funkcijos parametru.

Sintaksė: ISNULL(<Поле>, <ПодставляемоеЗначение>)

Naudojimo pavyzdys:

Taip pat atkreipkite dėmesį, kad NULL tipą patartina VISADA pakeisti kokia nors reikšme, nes palyginimas su tipu NULL visada grąžina FALSE, net jei lyginate NULL su NULL. Dažniausiai NULL reikšmės susidaro dėl lentelių sujungimo (visų tipų sujungimai, išskyrus vidinius).

Query.Text = //Pasirinkite visą prekę ir jos likučius //jei kurioje nors prekėje nėra likučio, bus laukas //NULL, kuris bus pakeistas reikšme 0 "SELECT | No. Link, | ISNULL (ProductsInStockRemaining, 0) KAIP Likę |. Katalogas.Nomenklatūra AS Nr. |.Kairysis Sandėliuose.Prekės AS PrekėsSandėliuoseLikusių namų numeriai;

7. ATSTOVAVIMO funkcija- leidžia gauti užklausos lauko vaizdą.

Sintaksė: SPEKTAKLIS(<НаименованиеПоля>)

Naudojimo pavyzdys:

Query.Text = "SELECT | ATSTOVYMAS(FreeRemainingRemains.Nomenclature) AS nomenklatūra, | ATSTOVYMAS(FreeRemaining.Warehouse) AS Sandėlis, | FreeRemainingRemaining.InStockRemaining |NUO |Akumuliacijos Registras.LikusiasLikęs;Likęs

Konstrukcijos 1C užklausos kalba

Mes su jumis aptarėme aukščiau 1C užklausų kalbos funkcijos, dabar laikas pagalvoti konstrukcijas 1C užklausos kalba, jie ne mažiau svarbūs ir naudingi, pradėkime.

1. Statybos LINK- yra loginis operatorius, skirtas patikrinti nuorodos tipą. Dažniausiai susiduriama tikrinant kompleksinio tipo lauką su konkrečiu tipu. Sintaksė: LINK<Имя таблицы>

Naudojimo pavyzdys:

Request.Text = //jei fiksatoriaus vertės tipas yra dokumentas Kvitas, //tada užklausa pateiks "Prekių gavimas", kitu atveju "Prekių pardavimas" "SELECT | SELECT | WHEN Remaining.Registr LINK Dokumentas.Prekių gavimasPaslaugos | TAD ""Kvitas"

2. Dizainas TARP- šis operatorius patikrina, ar reikšmė yra nurodytame diapazone.

Sintaksė: TARP<Выражение>IR<Выражение>

Naudojimo pavyzdys:

Request.Text = //gauti visą nomenklatūrą, kurios kodas yra intervale nuo 1 iki 100 "SELECT | Nomenclature.Link | FROM | Directory.Nomenclature AS Nomenklatūra | WHERE | Nomenklatūra.Kodas NUO 1 IR 100" ;

3. B ir B konstrukcijos HIERARCHIJA- patikrinkite, ar reikšmė yra perduodamame sąraše (masyvus, verčių lenteles ir kt. galima perkelti kaip sąrašą). Operatorius IN HIERARCHY leidžia peržiūrėti hierarchiją (sąskaitų plano naudojimo pavyzdys).

Sintaksė: IN(<СписокЗначений>), HIERARCHIJOJE(<СписокЗначений>)

Naudojimo pavyzdys:

Request.Text = //pasirinkite visas paskyros subsąskaitas "SELECT | Savarankiškas. Susieti AS paskyrą | IŠ Sąskaitos.

4. Dizainas PANAŠUS- Ši funkcija leidžia palyginti eilutę su eilutės raštu.

Sintaksė: KAIP "<ТекстШаблона>"

Eilučių modelio parinktys:

% – seka, turinti bet kokį skaičių atsitiktinių simbolių.

Vienas savavališkas simbolis.

[...] – bet koks vienas simbolis arba simbolių seka, nurodyta laužtiniuose skliaustuose. Sąrašas gali nurodyti diapazonus, pvz., a-z, o tai reiškia savavališką simbolį, įtrauktą į diapazoną, įskaitant diapazono galus.

[^...] – bet koks atskiras simbolis arba simbolių seka, nurodyta laužtiniuose skliaustuose, išskyrus tuos, kurie išvardyti po neigimo ženklo.

Naudojimo pavyzdys:

Query.Text = //raskite visą nomenklatūrą, kurioje yra šaknis TABUR ir kuri prasideda //mažąja arba didžiąja raide t "SELECT | Nomenklatūra. Nuoroda | FROM | Katalogas. Nomenklatūra AS Nomenklatūra | WHERE | Produktai. Pavadinimas PATINKA "" [Tt ]abur%""" ;

5. Dizainas LEIDŽIAMAS- šis operatorius leidžia iš duomenų bazės pasirinkti tik tuos įrašus, kuriems skambinantysis turi leidimą skaityti. Šios teisės sukonfigūruotos įrašo lygiu (RLS).

Sintaksė: ALOWED rašomas po raktinio žodžio SELECT

Naudojimo pavyzdys:

Request.Text = "PASIRINKITE LEIDŽIAMUS | Sandorio šalis. Nuoroda | IŠ | Katalogas. Sandorio šalys KAIP sandorio šalys";

6. Dizainas ĮVAIRUS- leidžia pasirinkti įrašus, kuriuose nėra pasikartojančių įrašų.

Sintaksė: VARIOUS rašomas po raktinio žodžio SELECT

Naudojimo pavyzdys:

Request.Text = //parenka įrašus, į kuriuos skaitytojas turi teises "PASIRINKTI ĮVAIRIUS | Counterparties.Name |FROM | Katalogas. Sandorio šalys AS Counterparties" ;

Taip pat ĮVAIRINGA konstrukcija gali būti naudojama su LEIDŽIAMU operatoriumi ir kitais operatoriais.

Naudojimo pavyzdys:

Request.Text = //parenka įvairius įrašus, į kuriuos skaitytojas turi teises "SELECT ALOWED VARIOUS | Counterparties.Name | FROM | Directory. Counterparties AS Counterparties";

7. Dizainas PIRMA- iš užklausos rezultato pasirenka parametre nurodytą įrašų skaičių.

Sintaksė: FIRST<число>

Naudojimo pavyzdys:

Request.Text = //pasirinkite pirmuosius 4 CCD numerius iš katalogo "SELECT FIRST 4 | CCD Numbers. Link | FROM | Directory. CCD Numbers AS CCD Numbers";

8. Dizainas POKYČIAMS- leidžia užrakinti lentelę, veikia tik operacijose (aktualu tik automatiniams užraktams).

Sintaksė: DĖL POKYČIŲ<НаименованиеТаблицы>

Naudojimo pavyzdys:

Query.Text = "SELECT | Laisvos likučio likučiai. Nomenklatūra, | Laisvos likučio likučiai. Sandėlis, | Laisvos likučio likučiai. Likę sandėlyje | FROM | Kaupimų registras. Nemokami likučiai. Likučiai, kaip nemokami likučiai Likučiai | PAKEITIMAI Registras | Laisvi likučiai“;

9. Dizainas UŽSAKYTI PAGAL- tvarko duomenis pagal tam tikrą lauką. Jei laukas yra nuoroda, tada nustatant vėliavėlę AUTOMATINIS UŽSAKYMAS Rūšiavimas vyks pagal nuorodos atvaizdavimą, jei vėliavėlė išjungta, tada nuorodos rūšiuojamos pagal nuorodos adreso atmintyje senumą.

Sintaksė: RŪŠIUOTI PAGAL<НаименованиеПоля>AUTOMATINIS UŽSAKYMAS

Naudojimo pavyzdys:

Query.Text = "SELECT | Nemokami likučiai. Nomenklatūra AS Nomenklatūra, | Nemokami likučiai. Sandėlis AS Sandėlis, | Laisvos likučio likučiai. Sandėlyje Likę | NUO | Registruoti sankaupas. Nemokami likučiai. Likę AS Free Remaining Remainings BY | |. Nomenklatūra |. AUTOMATINIS UŽSAKYMO SKAITYMAS";

10. Dizainas GROUP BY- naudojamas sugrupuoti užklausos eilutes pagal konkrečius laukus. Skaitiniai laukai turi būti naudojami su bet kokia agregato funkcija.

Sintaksė: GRUPUOTI PAGAL<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Naudojimo pavyzdys:

Query.Text = "SELECT | ProductsInWarehouses.Nomenclature AS Nomenclature, | ProductsInWarehouses.Warehouse, | SUM(GoodsInWarehouses.Stock) AS SANTYKOS |IŠ | RegistruotiSandėliuose esantys gaminiai AS ProduktaiNėra sandėlių |Sandėliuose | .Sandėlis“;

11. Dizainas TURIMAS- leidžia duomenų atrankos sąlygai taikyti agregavimo funkciją, panašią į WHERE konstrukciją.

Sintaksė: TURIMAS<агрегатная функция с условием>

Naudojimo pavyzdys:

Query.Text = //parenka sugrupuotus įrašus, kuriuose InStock laukas yra didesnis nei 3 "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK |NUO | Registruokitės GRUPĖ |. ProduktaiSandėliuose. Produktai Sandėliuose |.

12. Statyba INDEX BY- naudojamas užklausos lauko indeksavimui. Užklausa su indeksavimu užtrunka ilgiau, bet pagreitina paiešką indeksuotuose laukuose. Galima naudoti tik virtualiose lentelėse.

Sintaksė: INDEKSO PAGAL<Поле1, ... , ПолеN>

Naudojimo pavyzdys:

Request.Text = "SELECT | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS, | Ts .CodeOS";

13. Dizainas KUR- leidžia nustatyti sąlygą bet kuriems pasirinkimo laukams. Rezultatas apims tik sąlygą atitinkančius įrašus.

Sintaksė: KUR<Условие1 ОператорЛогСоединения УсловиеN>

Naudojimo pavyzdys:

Query.Text = //pasirinkti visi įrašai su CompensationRemaining<>0 ir //AmountFor CalcCompRemaining > 100 "SELECT | KompensacijaRPORPalieka.Sandorio šalis, |AtlyginimasRPORlieka.Vaikas, | KompensacijaRPORlieka.Atlyginimas, | KompensacijaRPORlieka.SumaForCalcCompRemains.Accumul.AccumulsPFROM |AmountForCalcCompRemains | Likusi kompensacija |KUR |AtlyginimasRPORlieka.Atlyginimas<>0 | Ir CompensationRPORemains.AmountForCalcCompRemaining> 100" ;

14. Dizaino REZULTATAI... BENDRA- naudojamas sumoms apskaičiuoti, projekte nurodomi laukai, pagal kuriuos bus skaičiuojamos sumos ir sumoms taikomos agreguotos funkcijos. Kai naudojate kiekvieno lauko sumas pagal TOTAL konstrukciją, duomenys sugrupuojami. Yra neprivaloma konstrukcija GENERAL, jos naudojimas taip pat suteikia papildomą grupavimą. Žemiau pamatysite užklausos rezultato pavyzdį.

Sintaksė: REZULTATAI<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>BY<ОБЩИЕ> <Поле1, ... , ПолеN>

Naudojimo pavyzdys:

Request.Text = "SELECT | Skaičiavimai. Sandorio šalies sutartis. Sutarties tipas AS Sutarties tipas, | Skaičiavimai. Sandorio šalies sutartis AS Sutartis, | Skaičiavimai. Sandorio šalis, | Skaičiavimai. Tarpusavio atsiskaitymo likučio suma AS likutis | NUO | Kaupimų registras. Abipusė Atsiskaitymas SU sandorio šalimis Skaičiavimai |. SUMA | BENDRA, |

Paveikslėlyje pateikiamos grupuotės, kurios buvo suformuotos vykdant užklausą, viršutinė skirta skyriui BENDRA, o antrajame lauke Sandorio šalies sutarties tipas.

Kartais susidaro situacija, kai 1C 8.3 arba 8.2 reikia pasirinkti, pavyzdžiui, iš visų elementų, kurių pavadinime yra žodis „glazūra“, katalogo. Arba iš katalogo pasirinkite visus rangovus, kurių pavardėse yra žodis „Ivanas“. Apskritai patikrinkite kai kurias eilutės reikšmę.

Šiuo tikslu 1C užklausose 8.3 ir 8.2 yra operatorius - „Panašus“. Jis naudojamas atitinkamai tokiomis sąlygomis:

Gaukite 267 vaizdo įrašų pamokas 1C nemokamai:

Kaip naudoti šablonus 1C užklausose?

Norėdami sugeneruoti pasirinkimo sąlygą, kaip parametrą turite perduoti tam tikrą šabloną. Norėdami sukurti šabloną, yra vadinamieji paslaugų simboliai.

Pavyzdžiui, simbolis „%“ leidžia naudoti bet kokią savavališkų simbolių seką:

Yra ir kitų specialiųjų simbolių:

  • % (procentas) – leidžia bet kokią savavališkų simbolių seką;
  • _ (pabraukimas) – bet koks vienas simbolis;
  • […] – vienas savavališkas simbolis iš tų, kurie išvardyti skliausteliuose. Be simbolių sąrašo, galite naudoti diapazonus. Pavyzdys: a-o;
  • [^...] – toks pat kaip ir ankstesnis, tik atvirkščiai. „^“ ženklas reiškia neigimą.


 

Gali būti naudinga perskaityti: