Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Gabimet
  • Shkruani vlerën në kërkesën 1s 8.2. Si të merrni llojin (llojin) e një dokumenti në një kërkesë? SHTYP sipas kërkesës

Shkruani vlerën në kërkesën 1s 8.2. Si të merrni llojin (llojin) e një dokumenti në një kërkesë? SHTYP sipas kërkesës

1C ju lejon të thjeshtoni ndjeshëm kontabilitetin ose thjesht të menaxhoni çdo organizatë, qoftë një dyqan i vogël apo një ndërmarrje e madhe. Programi është një sistem i madh i menaxhimit të bazës së të dhënave. Për të mos u hutuar në të gjithë këtë, duhet të jeni në gjendje të kryeni veprime të ndryshme të thjeshta dhe të kuptoni thelbin. Më pas, do të kuptoni se si të kontrolloni llojin e vlerës në një kërkesë në 1C, si dhe çfarë janë ato në përgjithësi, si dhe si të bëni dallimin midis tyre.

Llojet e vlerave

1C: Ndërmarrja ka përfshirë një funksion të veçantë në versionet e reja (platforma 8.2). Duke përdorur atë, ju mund të shtoni ndonjë parametër të veçantë për çdo emër ose element të sistemit të të dhënave. Kjo është bërë për ta bërë sistemin më të lehtë për t'u modifikuar dhe shtuar elementë të rinj. Ky funksion quhet "Lloji i vlerës".

Në fakt, ky është një nga konceptet bazë që përmbajnë shumica e gjuhëve të programimit. Duke përdorur atë, ju mund të klasifikoni të dhëna të ndryshme. Për shembull: datat, numrat, vargjet, lidhjet. Këto janë vetëm klasifikime bazë. Mund të ketë shumë më tepër prej tyre. Le të themi, nëse futni informacione për qytetet në sistemin tuaj, mund të përdorni: kontinentin, vendin, rajonin, etj.

Ekzaminimi

Ju mund të kontrolloni një fushë të veçantë duke përdorur një gjuhë pyetjesh. Ose më mirë funksionet e tij: LLOJI VLERA. Kjo do të thotë, nëse duam të zbulojmë se çfarë lloj informacioni përmban qeliza e interesit, duhet të përdorim komandën.

VALUE TYPE (Vlera) = TYPE (varg)

Në shembullin e mësipërm, ne përcaktuam llojin më të thjeshtë duke përdorur komandën. Një shembull tjetër i vërtetimit të kërkesës:

Dokumentacioni

Ka mjaft lloje; përdoruesit mund të mjaftohen me ato fillestare ose të futin të tyren për të përmirësuar bazën e informacionit. Ja disa prej tyre.

  • DocumentLink. Përdoret për ruajtjen e përshtatshme të referencave për objekte të ndryshme brenda pjesëve të tjera të sistemit.
  • DocumentObject - redaktimi i dokumenteve.
  • DocumentSelection - renditja e objekteve nga baza e të dhënave.

Për më tepër, ekzistojnë terma të veçantë që karakterizojnë çdo të dhënë:

  • formë;
  • linjë;
  • boolean;
  • numri;
  • data e;
  • grup;
  • kutia e kontrollit;
  • Foto.

Këto janë vetëm disa prej tyre. Çdo objekt mund të jetë vetëm diçka nga kjo listë. Boolean është një parametër i veçantë që merr dy vlera: true ose false. Ekzistojnë gjithashtu etiketa speciale që ju lejojnë të rregulloni kërkesën: kur, ku, si, ndryshe, etj. Ata vendosin algoritmin e sjelljes së programit. 1C dallohet nga fakti se këto fjalë këtu, si çdo gjë tjetër, mund të futen në Rusisht.

Është e rëndësishme të kuptohet se e gjithë kjo do të perceptohet nga fillestarët dhe jo-profesionistët si shkrim-lexim kinez. Për të kuptuar se për çfarë po flasim dhe për të përdorur në mënyrë efektive 1C, duhet të dini bazat e programimit. Në përgjithësi, kontrollimi i llojit në një kërkesë në programin 1C do të jetë mjaft i lehtë në krahasim me veprimet e tjera.

Le të shohim pjesën tjetër tani.

Funksionet për të punuar me vargje në pyetjet 1C

Ka pak funksione dhe operatorë për të punuar me të dhënat e vargut në pyetjet 1C.

Së pari, vargjet në pyetje mund të shtohen. Për ta bërë këtë, përdorni operatorin "+":

Kërkesë. Teksti = "ZGJIDH
" "Linjë: " " + Burimi.Emri
;

Së dyti, ju mund të zgjidhni një pjesë të linjës. Për ta bërë këtë, përdorni funksionin NËNSTRUKSIONI. Funksioni është i ngjashëm me gjuhën e integruar 1C. Ka tre parametra:

  1. Vargu burimor.
  2. Numri i karakterit me të cilin duhet të fillojë linja e zgjedhur.
  3. Personazhet.

Kërkesë. Teksti= "ZGJIDH
SUBSTRING ("
"Linjë: " ", 4, 3) SI Rezultat"; // Rezultati: ok

Funksioni ISNULL

NULL është një lloj i veçantë i të dhënave në platformën 1C: Enterprise. Është gjithashtu vlera e vetme e mundshme e këtij lloji. NULL mund të shfaqet në pyetje në disa raste: kur lidhni burimet e pyetjeve, nëse një vlerë përkatëse nuk u gjet në një nga tabelat; kur aksesoni detajet e një objekti që nuk ekziston; nëse NULL është specifikuar në listën e fushave të pyetjeve (për shembull, kur kombinohen rezultatet e përzgjedhjes nga disa tabela), etj.

Sepse NULL nuk është as null, as vargu bosh, as edhe një vlerë E pacaktuar, shpesh është e dobishme ta zëvendësoni atë me disa lloj të dhënash më të dobishme. Kjo është ajo për të cilën është krijuar funksioni. ISNULL.

Ka dy parametra:

  1. Vlera që kontrollohet.
  2. Vlera me të cilën do të zëvendësohet parametri i parë nëse rezulton të jetë NULL.

Kërkesë. Teksti= "ZGJIDH
ISNULL(Source.Remainder, 0) AS Remainder"
; // Nëse rezultati i kërkesës është pjesa e mbetur e fushës = NULL,
// atëherë do të zëvendësohet me 0 dhe ju mund të kryeni veprime matematikore me të

Funksione PERFORMANCA Dhe LIDHJE HYRJE

Këto funksione janë krijuar për të marrë paraqitje të vargjeve të vlerave të ndryshme. Kjo do të thotë, ata konvertojnë referencat, numrat, booleans, etj. në tekst të thjeshtë. Dallimi midis tyre është se funksioni PERFORMANCA konverton çdo lloj të dhënash në tekst (string) dhe funksion LIDHJE HYRJE- vetëm lidh, dhe kthen vlerat e mbetura siç janë, të pa konvertuara.

Kërkesë. Teksti= "ZGJIDH
PËRFAQËSIMI (E VËRTETË) SI Boolean,
PËRFAQËSIMI (4) SI Numër,
PËRFAQËSIMI (Burimi.Lidhja) AS Link,
PERFAQESIMI(DATATIME(2016,10,07)) SI Date"
;
// Boolean = "Po", Numri = "4", Lidhja = "Dokumenti i urdhrit të marrjes së parave të gatshme nr... nga..."
// Data="07.10.2016 0:00:00"

Kërkesë. Teksti= "ZGJIDH
REFERENCA E PËRFAQËSIMIT (E VËRTETË) SI Boolean,
PËRFAQËSIMI REFERENCA (4) SI NUMR
PRESENTINGLINK(Source.Link) AS Lidhje,
REFERENCA PËRFAQËSIMI(DATA TIME(2016,10,07)) AS Data"
;
// Boolean = E VËRTETË, Numri = 4, Lidhja = "Dokumenti i urdhrit të marrjes së parave të gatshme Nr.... nga..."
// Data=07.10.2016 0:00:00

Funksione LLOJI Dhe LLOJI VLERAT

Funksioni LLOJI kthen llojin e të dhënave të platformës 1C: Enterprise.

Kërkesë. Teksti= "ZGJIDH
LLOJI (Numri)
LLOJI (vargu),
LLOJI (Dokument. Urdhër shpenzimi në para)"
;

Funksioni LLOJI VLERAT kthen llojin e vlerës që i ka kaluar.

Kërkesë. Teksti= "ZGJIDH
LLOJI I VLERAVE (5) SI Numër,
LLOJI ("
"Linjë" ") AS String,
LLOJI (Burimi.Lidhja) AS Referenca
Nga Drejtoria.Burimi AS Burimi"
;
//Number=Numër, String=String, Directory = DirectoryLink.Burimi

Këto funksione janë të përshtatshme për t'u përdorur, për shembull, kur duhet të zbuloni nëse një fushë e marrë në një kërkesë është një vlerë e një lloji. Për shembull, le të marrim informacionin e kontaktit të palëve nga regjistri i informacionit të Informacionit të Kontaktit (kontaktet e jo vetëm palëve, por edhe organizatave, individëve, etj. ruhen atje):

Kërkesë. Teksti= "ZGJIDH

NGA

KU
VALUES TYPE(ContactInformation.Object) = TYPE(Directory.Counterparties)"
;

Funksioni KUPTIMI

Funksioni Kuptimi ju lejon të përdorni objektet e konfigurimit 1C drejtpërdrejt në një kërkesë, pa përdorur .

Le t'i shtojmë edhe një kusht shembullit të mëparshëm. Ju duhet vetëm të merrni numrat e telefonit të palëve tuaja.

Kërkesë. Teksti= "ZGJIDH
KontaktInformacion.Hyrje
NGA
Regjistri i informacionit Informacioni i kontaktit SI Informacioni i kontaktit
KU
VALUES TYPE(ContactInformation.Object) = TYPE (Directory.Counterparties)
AND ContactInfo.Type = VALUE (Enum.ContactInfoTypes.Phone)"
;

Duhet të theksohet se ky funksion mund të përdoret vetëm me vlera të paracaktuara, d.m.th. me vlera që mund të aksesohen drejtpërdrejt nga konfiguruesi. Kjo është, funksioni KUPTIMI nuk mund të përdoret me elementet e direktoriumit të krijuar nga përdoruesit, por mund të punojë me numërime, me elementë të paracaktuar të drejtorisë, me vlera EmptyLink.

Operatori LIDHJE

Operatori LIDHJEështë krijuar për të kontrolluar vlerat e kthyera nga një kërkesë për të parë nëse ato i përkasin një lloji specifik referimi. E njëjta detyrë mund të realizohet duke përdorur funksionet LLOJI Dhe LLOJI VLERAT(të cilat kanë një shtrirje më të gjerë dhe u diskutuan më lart).

Për shembull, detyra e zgjedhjes së informacionit të kontaktit për palët mund të zgjidhet në këtë mënyrë:

Kërkesë. Teksti= "ZGJIDH
KontaktInformacion.Hyrje
NGA
Regjistri i informacionit Informacioni i kontaktit SI Informacioni i kontaktit
KU
ContactInformation.Direktoria e lidhjes së objekteve.Counterparties"
;

Operatori EXPRESS

Operatori EXPRESS përdoret në pyetjet 1C në dy raste:

  • kur duhet të ndryshoni karakteristikat e një lloji primitiv;
  • kur duhet të ktheni një fushë me një lloj të dhënash të përbërë në një fushë me një lloj të vetëm.

Llojet primitive të të dhënave përfshijnë: numër, varg, datë, boolean. Disa nga këto lloje të të dhënave kanë karakteristika shtesë. Lloji Numri ka gjatësi dhe saktësi, tip Linjë - gjatësi ose të pakufizuar.

Operatori EXPRESS ju lejon të ndryshoni jo llojin e të dhënave, por karakteristikat shtesë. Për shembull, ai mund të kthejë një varg me gjatësi të pakufizuar në një varg me gjatësi të kufizuar. Kjo mund të jetë e dobishme nëse ju duhet të gruponi rezultatet e pyetjeve sipas një fushe të tillë. Ju nuk mund të gruponi sipas fushave me një gjatësi të pakufizuar, kështu që ne e konvertojmë atë në një varg me gjatësi 200 karaktere.

Kërkesë. Teksti= "ZGJIDH
SASIA (Mbërritja e mallrave dhe shërbimeve të ndryshme. Lidhje) AS Lidhje
NGA
Dokument Pranimi i Mallrave dhe Shërbimeve SI Marrja e Mallrave dhe Shërbimeve
GRUP NGA
EXPRESS(Marrja e Mallrave dhe Shërbimeve. Komenti SI RRESHT (200))"
;

Në disa raste, pyetjet për fushat me një lloj të dhënash të përbërë mund të mos përpunohen në mënyrë optimale nga platforma 1C. Kjo rezulton në kohë më të gjata të pyetjeve, kështu që mund të jetë e dobishme të konvertohet paraprakisht një lloj i përbërë në një lloj të vetëm.

Kërkesë. Teksti= "ZGJIDH
EXPRESS(Lëvizja e Qarkullimit të Mallrave. Porosi SI Dokument. Porosi Klienti).Data SI Data e porosisë,
Lëvizja e Qarkullimit të Mallrave.Nomenklatura
NGA
Regjistro Akumulimet.Lëvizja e Mallrave.Qirja AS Lëvizja e MallraveQurtimi
KU
Lëvizja e Mallrave Qarkullim.Dokumenti LINK Porosit.Urdhri Klienti"
;

Operatorët ZGJEDHJA Dhe ËSHTË NULL

Operatori ZGJEDHJA të ngjashme me operatorin NËSE në gjuhën e integruar 1C, por ka funksionalitet disi të reduktuar.

Le të themi se duam të marrim informacionin e kontaktit nga regjistri i informacionit të Informacionit të Kontaktit dhe, në të njëjtën kohë, të tregojmë në një fushë të veçantë kërkese nëse i përket një pale apo një individi.

Kërkesë. Teksti= "ZGJIDH
Informacioni i Kontaktit. Hyrje,
ZGJEDHJA
WHEN VALUES TYPE (Informacioni i Kontaktit. Objekt) = TYPE (Direktoria. Kundërpalët)
PASTAJ"
Kundërpartia "
ZGJEDHJE TJETËR
WHEN VALUES TYPE(Informacion Kontakti. Objekti) = TYPE (Direktori. Individët)
PASTAJ"
Individual"
TJETER "Dikush tjeter" "
FUND
FUND SI PRONAR
NGA
Regjistri i Informacionit. Informacioni i Kontaktit AS Informacioni i Kontaktit"
;

Siç mund të shihet nga shembulli, në dizajn ZGJEDHJA ka gjithmonë një kusht pas fjalës KUR; vlera e aplikuar nëse kushti është i vërtetë pas fjalës PASTAJ dhe vlera e aplikuar nëse kushti nuk plotësohet, pas fjalës PER Ndryshe. Të tre elementët e dizajnit ZGJEDHJA janë të detyrueshme. Hiq elementin PER Ndryshe, në të njëjtën mënyrë si kur përdorni operatorin NËSE në gjuhën e integruar 1C, është e pamundur. Gjithashtu nga operatori ZGJEDHJA nuk ka asnjë analog të dizajnit TJETER NESE, por ju mund të investoni një ZGJEDHJA në një tjetër, siç u bë në shembullin tonë.

Operatori ËSHTË NULL përdoret në dizajn ZGJEDHJA për të krahasuar një fushë pyetëse me tipin NULL.

Kërkesë. Teksti= "ZGJIDH
ZGJEDHJA
KUR VLERA ËSHTË NULL atherë 0
TJETËR Kuptimi
FUND"
;

Përveç kësaj, operatori ËSHTË NULL mund të përdoret në kushtet e pyetjes, të tilla si në një fjali KU.

Në këtë artikull ne duam të diskutojmë gjithçka me ju Funksionet e gjuhës së pyetjeve 1C, dhe konstruktet e gjuhës pyetëse. Cili është ndryshimi midis funksionit dhe dizajnit? Funksioni thirret me kllapa dhe parametra të mundshëm në to, dhe konstrukti shkruhet pa kllapa. Pa dyshim të gjitha strukturat dhe funksionet e gjuhës së pyetjeve 1C e bëjnë procesin e marrjes së të dhënave fleksibël dhe shumëfunksional. Këto funksione dhe konstruksione zbatohen për fushat e kërkesave, dhe disa zbatohen gjithashtu për kushtet.

1C Funksionet e gjuhës së pyetjes

Sepse një përshkrim i qartë Funksionet e gjuhës së pyetjeve 1Cështë shumë më pak e zakonshme sesa përshkrimet e strukturave, vendosëm të fillojmë të shikojmë funksionet. Tani le të shohim secilën veç e veç, duke përshkruar qëllimin, sintaksën dhe shembullin e përdorimit, kështu:

1. Funksioni DATA KOHA- ky funksion krijon një fushë konstante me tipin "Date".

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

Shembull përdorimi:

2. Funksioni DATE DIFFERENCE- kthen diferencën midis dy datave në një nga dimensionet (viti, muaji, ditë, orë, minutë, sekondë). Matja kalohet si parametër.

Sintaksë: NDRYSHIM(<Дата1>, <Дата2>, <Тип>)

Shembull përdorimi:

Query.Text = "ZGJIDH | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Qty.Days";

3. Funksioni VALUE- vendos një fushë konstante me një rekord të paracaktuar nga baza e të dhënave; gjithashtu mund të merrni një lidhje boshe të çdo lloji.

Sintaksa: VALUE(<Имя>)

Shembull përdorimi:

Request.Text = "ZGJEDH //element të paracaktuar | VLERË(Direktori. Monedhat.Dollar) AS Dollar, //lidhje bosh | VLERË(Dokument. Pranimi i Mallrave dhe Shërbimeve. EmptyLink) SI Faturë, //Vlera e transferimit | VLERË(Transferim . Individ ligjor. Individual) AS Individual, //llogari e paracaktuar | VLERA(Skema e llogarive. Vetë-mbështetëse. Materialet) AS Llogaria_10" ;

4. Funksioni SELECT- ne kemi para nesh një analog të konstruksionit IF, i cili përdoret në kod, vetëm ky përdoret në pyetjet 1C.

Sintaksë: ZGJEDHJE KUR<Выражение>PASTAJ<Выражение>PER Ndryshe<Выражение>FUND

Shembull përdorimi:

Kërkesë.Tekst = //nëse shuma është më shumë se 7500, atëherë duhet të ketë një zbritje prej 300 rubla, //pra, nëse kushti aktivizohet atëherë funksioni //kthehet Shuma - 300 //përndryshe kërkesa do të kthehet thjesht Shuma "ZGJIDH | ZGJIDH | KUR TCReceipts.Shuma > 7500 | PASTAJ TCReceipts.Shuma - 300 | TJETER TCReceipts.Shuma | FUND AS ShumaMe Zbritje |NGA | Dokumenti. Pranimi i MallraveShërbimet.TCReceipts.

5. Funksioni EXPRESS- ju lejon të shprehni një fushë konstante me një lloj specifik.

Sintaksë: EXPRESS (Emri i fushës AS Lloji Emri)

Shembull përdorimi:

Query.Text = "ZGJIDH TË NDRYSHME | Sales.Registrar.Number, | ZGJEDH | WHEN Sales.Regjistrues LINK Document.Consumable | TEN EXPRESS(Sales.Registrar AS Document.Consumable) | TJETER ZGJEDHJE | WHEN Sales.Registrar LINK Dokumentacioni | PASTAJ EXPRESS(Shitjet.Regjistruesi AS Dokument.Implementimi) | FUND | ... | FUND SI Numër | NGA | Regjistro Akumulimet. Blerjet AS Blerjet";

A ka një mundësi tjetër për përdorimin e funksionit EXPRESS në fushat e llojeve të përziera, ku ndodhin ato? Shembulli më i thjeshtë është "Regjistruesi" për çdo regjistër. Pra, pse mund të na duhet të kualifikojmë llojin në regjistrues? Le të shqyrtojmë situatën kur zgjedhim fushën "Numër" nga regjistruesi, nga cila tabelë do të zgjidhet numri? Përgjigja e saktë e të gjithëve! Prandaj, që pyetja jonë të funksionojë shpejt, duhet të specifikojmë një lloj të qartë duke përdorur funksionin EXPRESS

Shembull përdorimi:

Query.Text = "ZGJIDH | EXPRESS(Nomenklatura.Komenti AS Rreshti(300)) AS Koment, | EXPRESS(Nomenklatura.Shuma AS Numër(15,2)) AS Shuma |NGA | Drejtoria.Nomenklatura SI Nomenklaturë";

6. Funksioni ISNULL(drejtshkrimi alternativ ISNULL) - nëse fusha është e tipit NULL, atëherë ajo zëvendësohet me parametrin e dytë të funksionit.

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

Shembull përdorimi:

Gjithashtu vini re se është e këshillueshme që GJITHMONË të zëvendësohet lloji NULL me ndonjë vlerë, sepse krahasimi me tipin NULL kthen gjithmonë FALSE edhe nëse krahasoni NULL me NULL. Më shpesh, vlerat NULL formohen si rezultat i bashkimit të tabelave (të gjitha llojet e lidhjeve përveç atyre të brendshme).

Query.Text = //Zgjidh të gjithë artikullin dhe bilancet e tij //nëse nuk ka bilanc në ndonjë artikull, atëherë do të ketë një fushë //NULL e cila do të zëvendësohet me vlerën 0 "SELECT | Nr. Link, | ISNULL (ProduktetInStockRemains.InStockRemaining, 0) AS Remainder | NGA | Drejtoria.Nomenklatura AS Nr.

7. Funksioni PËRFAQËSIMI- ju lejon të merrni një paraqitje të fushës së kërkesës.

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

Shembull përdorimi:

Query.Text = "ZGJIDH | PËRFAQËSIM (FreeRemainingRemains. Nomenklaturë) AS Nomenklaturë, | PËRFAQËSIM (FreeRemainingRemaining. Warehouse) AS Magazinë, | FreeRemainingRemaining.InStockRemaining |FROM |RemainingRemainingAslirë"

Ndërton në gjuhën e pyetjeve 1C

Ne diskutuam me ju më lart Funksionet e gjuhës së pyetjeve 1C, tani është koha për të marrë në konsideratë ndërton në gjuhën e pyetjeve 1C, ato nuk janë më pak të rëndësishme dhe të dobishme, le të fillojmë.

1. LINK për ndërtim- është një operator logjik për kontrollimin e një lloji referimi. Më shpesh haset kur kontrolloni një fushë të një lloji kompleks kundrejt një lloji specifik. Sintaksë: LIDHJE<Имя таблицы>

Shembull përdorimi:

Kërkesë.Text = //nëse lloji i vlerës së regjistruesit është Dokumenti Marrja, //atëherë pyetësori do të kthejë "Pranimin e mallrave", përndryshe "Shitjet e mallrave" "ZGJEDH | ZGJIDH | KUR të mbeten. Regjistruesi LINK Dokumenti. Pranimi i Mallrave dhe Shërbimet | MË POSHTË ""Faturim" | TJETER ""Konsum" | FUND SI Lloji i Lëvizjes | NGA | Regjistri i akumulimit. Produktet e mbetura në magazina AS Mbetet" ;

2. Dizajni MES- ky operator kontrollon nëse vlera është brenda intervalit të caktuar.

Sintaksë: NDËRMJET<Выражение>DHE<Выражение>

Shembull përdorimi:

Kërkesë.Text = //merr të gjithë nomenklaturën, kodi i së cilës është në intervalin nga 1 deri në 100 "ZGJEDHJE | Nomenklatura.Lidhja |FROM | Drejtoria.Nomenklatura AS Nomenklaturë | WHERE | Nomenklatura.Kodi MES 1 DHE 100" ;

3. Ndërtimi B dhe B HIERARKI- kontrolloni nëse vlera është në listën e transferuar (vargjet, tabelat e vlerave, etj. mund të transferohen si listë). Operatori IN HIERARCHY ju lejon të shikoni hierarkinë (një shembull i përdorimit të Grafikut të Llogarive).

Sintaksë: NË(<СписокЗначений>), NË HIERARKI (<СписокЗначений>)

Shembull përdorimi:

Kërkesë.Tekst = //zgjidh të gjitha nënllogaritë e llogarisë "ZGJIDH | Vetë-mbështetës. Lidh AS Llogari | NGA | Grafik i llogarive. Vetë-mbështetës AS Vetëmbështetës | KU | Vetëmbështetës. Lidhja NË VLERËN E HIERARKISË (Grafik i Llogaritë. Vetëmbështetëse. Mallrat)";

4. Dizajni I ngjashem- Ky funksion na lejon të krahasojmë një varg me një model vargu.

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

Opsionet e modelit të rreshtit:

% - një sekuencë që përmban çdo numër karakteresh arbitrare.

Një personazh arbitrar.

[...] - çdo karakter i vetëm ose sekuencë karakteresh të listuara brenda kllapave katrore. Numërimi mund të specifikojë vargjet, për shembull a-z, që do të thotë një karakter arbitrar i përfshirë në interval, duke përfshirë skajet e diapazonit.

[^...] - çdo karakter i vetëm ose sekuencë karakteresh të listuara brenda kllapave katrore, përveç atyre të listuara pas shenjës së mohimit.

Shembull përdorimi:

Pyetje.Teksti = //gjeni të gjithë nomenklaturën që përmban rrënjën TABUR dhe fillon //ose me një shkronjë të vogël ose të madhe t "ZGJEDHJE | Nomenklatura. Lidhje | NGA | Drejtoria. Nomenklatura AS Nomenklaturë | WHERE | Produkte. Emri LIKE "" [Tt ]abur%""" ;

5. Dizajni LEJOHET- ky operator ju lejon të zgjidhni vetëm ato regjistrime nga baza e të dhënave për të cilat thirrësi ka leje leximi. Këto të drejta janë konfiguruar në nivelin e regjistrimit (RLS).

Sintaksë: LEJOHET shkruhet pas fjalës kyç SELECT

Shembull përdorimi:

Request.Text = "ZGJIDHET E LEJUARA | Kundërpalët. Lidhje | NGA | Drejtoria. Kundërpalët AS Kundërpalët";

6. Dizajni I NDRYSHEM- ju lejon të zgjidhni regjistrime në të cilat nuk ka regjistrime të kopjuara.

Sintaksë: NDRYSHME shkruhet pas fjalës kyç SELECT

Shembull përdorimi:

Request.Text = //zgjedh regjistrimet për të cilat lexuesi ka të drejta "ZGJEDHJE TË NDRYSHME | Kundërpalët. Emri | NGA | Drejtoria. Kundërpalët AS Kundërpalët" ;

Gjithashtu, ndërtimi i NDRYSHËM mund të përdoret me operatorin LEJUAR dhe operatorë të tjerë.

Shembull përdorimi:

Request.Text = //zgjedh rekorde të ndryshme për të cilat lexuesi ka të drejta "ZGJIDHNI TË LEJUARA TË NDRYSHME | Kundërpalët. Emri | NGA | Drejtoria. Kundërpalët AS Kundërpalët";

7. Dizajni i PARË- zgjedh numrin e rekordeve të specifikuara në parametër nga rezultati i pyetjes.

Sintaksa: E PARA<число>

Shembull përdorimi:

Kërkesë.Text = //zgjidhni 4 numrat e parë CCD nga direktoria "SELECT FIRST 4 | Numrat CCD. Lidhja | NGA | Drejtoria. Numrat CCD AS Numrat CCD";

8. Dizajni PËR NDRYSHIM- ju lejon të kyçni një tabelë, funksionon vetëm në transaksione (e rëndësishme vetëm për bravat automatike).

Sintaksë: PËR NDRYSHIM<НаименованиеТаблицы>

Shembull përdorimi:

Query.Text = "ZGJIDH | Mbetjet e lira. Nomenklatura, | Mbetjet e lira. Magazina, | Mbetjet e lira. Mbeten në magazinë | NGA | Regjistri i akumulimeve. Mbetjet e lira. Mbetjet AS Mbetjet e lira Regjistrimi i akumulimit | PËR NDRYSHIM | Mbetjet e lira. Mbetjet";

9. Dizajni me porosi- organizon të dhënat sipas një fushe të caktuar. Nëse fusha është një lidhje, atëherë kur vendosni flamurin AUTO POROSI Renditja do të ndodhë sipas paraqitjes së lidhjes; nëse flamuri është i fikur, atëherë lidhjet renditen sipas vjetërsisë së adresës së lidhjes në memorie.

Sintaksë: NDAJ SIPAS<НаименованиеПоля>AUTO POROSI

Shembull përdorimi:

Query.Text = "ZGJIDH | Mbetjet e lira. Nomenklatura AS Nomenklaturë, | Mbetjet e lira. Mbetjet AS Magazine, | Mbetjet e lira. Në magazinë të mbetura | NGA | Regjistro akumulimet. Mbetjet e lira. Mbetjet AS të mbetura të lira BORDERY | | Nomenklatura | AUTO ORDER VANIE";

10. Dizajn GRUPI NGA- përdoret për të grupuar vargjet e pyetjeve sipas fushave specifike. Fushat numerike duhet të përdoren me çdo funksion agregat.

Sintaksë: GRUP NGA<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Shembull përdorimi:

Query.Text = "ZGJIDH | ArtikujtNë magazinat.Nomenklatura AS Nomenklaturë, | ArtikujtNë Magazinat.Depo, | SUM(ArtikujtNë magazinat.Në magazinë) AS INSTOK |NGA | Regjistro akumulimet.Artikujt në magazinat AS.ArtikujtNë magazinat AS tMagazina ah.Depo" ;

11. Design HAVING- ju lejon të aplikoni një funksion agregat në një kusht të përzgjedhjes së të dhënave, të ngjashme me ndërtimin WHERE.

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

Shembull përdorimi:

Query.Text = //zgjedh rekorde të grupuara ku fusha InStock është më e madhe se 3 "ZGJIDH | ItemsInStocks.Nomenklatura AS Nomenklaturë, | ItemsInStocks.Magazina, | SUM(ItemsInStocks.InStock) AS INSTOCK GRUPI SIPAS | ProduktetNë magazina.Nomenklatura, | ProduktetNë magazina.Magazina | |E DISPONUESHME | SHUMA(ProduktetNë magazina.Në magazinë) > 3" ;

12. Ndërtimi INDEKSI NGA- përdoret për indeksimin e fushës së pyetjes. Një pyetje me indeksim kërkon më shumë kohë për t'u përfunduar, por shpejton kërkimin nëpër fushat e indeksuara. Mund të përdoret vetëm në tabela virtuale.

Sintaksë: INDEKSI NGA<Поле1, ... , ПолеN>

Shembull përdorimi:

Query.Text = "ZGJIDH | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | VEND të DhënatT | FROM | &Ts AS Ts | | INDEKSI NGA | Ts.NameOS, | Ts .CodeOS";

13. Dizajn KU- ju lejon të vendosni një kusht në çdo fushë përzgjedhjeje. Rezultati do të përfshijë vetëm regjistrime që plotësojnë kushtin.

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

Shembull përdorimi:

Query.Text = //zgjidhen të gjitha rekordet me CompensationRemaining<>0 dhe //ShumaPër Kompensimin e Mbetur > 100 "ZGJIDH | KompensimiRPPOmbetet.Kontraparta, |KompensimiRPPermbet.Fëmija, | KompensimiRPËmbetjet. KompensimiRPËmbetjet, | KompensimiRPORËMBAJTAT.ShumaPër KompensiminRPOE mbetura.ShumaPër KompensiminRPOE mbetët.ShumaPër KompensiminRPOEmbetjet.ShumaPër KompensiminRPOE mbetët.ShumaPër KompensiminRPOEmbetjet.ShumaPër KompensiminRPOE mbetej. RPRmbetet | WHERE |KompensimiPPOE mbetur. Kompensimi Mbetet<>0 | Dhe CompensationRPORemains.AmountForCalcCompRemaining> 100" ;

14. REZULTATET E projektimit... TË PËRGJITHSHME- përdoret për të llogaritur totalet; dizajni specifikon fushat me të cilat do të llogariten totalet dhe do të aplikohen funksionet agregate në fushat totale. Kur përdorni totalet për secilën fushë pas ndërtimit TOTAL, të dhënat grupohen. Ekziston një konstrukt opsional i PËRGJITHSHËM; përdorimi i tij siguron gjithashtu grupim shtesë. Ju do të shihni një shembull të rezultatit të kërkesës më poshtë.

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

Shembull përdorimi:

Kërkesë.Text = "ZGJIDH | Llogaritjet. Marrëveshja e kundërpalës. Lloji i marrëveshjes SI Lloji i kontratës, | Llogaritjet. Marrëveshja e kundërpalës AS Kontratë, | Llogaritjet. Kundërpala, | Llogaritjet. Shuma e bilancit të shlyerjes së ndërsjellë SI Bilanci | NGA | Regjistri i akumulimeve. reciproke Shlyerje ME Kundërpalët. Gjendjet SI Llogaritje | TOTALI | SHUMË (Balanca) | Softuer | E PËRGJITHSHME, | Lloji i Marrëveshjes";

Figura përshkruan grupimet që u formuan gjatë ekzekutimit të kërkesës, pjesa e sipërme i referohet seksionit TË PËRGJITHSHËM dhe e dyta në fushën Lloji i marrëveshjes së marrëveshjes së palës.

Kërkesë . Teksti = "ZGJIDH | Storage Units.Link |NGA | Directory.usStorageUnits SI të përdorëStorageUnits // Shembulli 1: krahasimi me një vlerë boolean të zbrazët: | KU | StorageUnits.AllowSelectionFromReserveZone = False // Shembulli 2. por nëse ky Boolean është i përcaktuar, atëherë është më mirë kështu: // kushti për një Boolean negativ: | KU | JO njësi ruajtjeje. Lejo zgjedhjen nga zona rezervë // Shembulli 3. përzgjedhja e bazuar në gjendjen e një fushe boshe që ka llojin "direktoria e një lloji specifik" | KU | StorageUnits.ActiveSelectionArea = VALUE(Directory.usSelectionArea.EmptyRef) // Shembulli 3a. përzgjedhja e bazuar në gjendjen e një fushe boshe që ka llojin "dokument i një lloji specifik" | KU | OurInformationRegister.Document = VALUE(Document.OurDocument.EmptyLink) // Shembulli 3b. përzgjedhja e bazuar në gjendjen e një fushe boshe që ka llojin "dokumente të llojeve të ndryshme" ( fushë e përbërë) | KU | (OurInformationRegister.Document = VALUE(Document.OurDocument1.EmptyLink) | OSE OurInformationRegister.Document = VLERA(Document.OurDocument2.EmptyLink) | OSE... (etj. - ne renditim në mënyrë sekuenciale kushtet për të gjitha llojet e mundshme të kësaj fushe) ) // Shembulli 4. ose anasjelltas, nëse duhet të zgjidhni një vlerë të mbushur të llojit "string", atëherë kushti do të ndihmojë: |KU | Njësia e ruajtjes. Emri > """" // Shembulli 5. nëse keni nevojë të zgjidhni dokumente të një lloji specifik, me një lloj të dhënash të përbërë, për shembull, në regjistrin "RunningTasks", burimi "Task" ka një lloj të përbërë, midis vlerave të të cilit dokumenti "Përzgjedhja" është e mundur | KU | EXPRESS(Information RegisterExecutedTasks.Task AS Document.Selection) LINK Document.Selection // Shembulli 5a. Një shembull tjetër i ngjashëm kur duhet të zgjidhni dokumente të një lloji specifik | ZGJEDHJA | KUR TË SHPREHET (ag Korrespondenca e Dokumenteve. DocumentBU AS Document. Marrja e Mallrave dhe Shërbimeve) LINK Dokumenti. Pranimi i Mallrave dhe Shërbimeve | PASTAJ ""Marrja e Mallrave dhe Shërbimeve"" | KUR TË SHPREHET (ag Korrespondenca e Dokumenteve. DocumentBU AS Document. Shitjet e Mallrave dhe Shërbimeve) Dokumenti LINK. Shitjet e Mallrave dhe Shërbimeve | PASTAJ ""Shitjet e mallrave dhe shërbimeve"" | TJETER """" | FUND AS Pamje dokumenti // Shembulli 6. përzgjedhja sipas kushtit të një vlere të pacaktuar: | KU | SavedSettings.Përdoruesi = I PADAFINUAR // Shembulli 7. përzgjedhja sipas llojit të lëvizjes "Incoming" e regjistrit të akumulimit, "Shpenzime" - në mënyrë të ngjashme): | KU | RegProductsInRetail.MovementType = VALUE(MovementTypeAccumulation.Incoming) // Shembulli 8. Si të tregoni në një kërkesë që nuk ka nevojë të ekzekutoni kërkesën (për shembull, ju duhet të ktheni në mënyrë programore, në varësi të disa kushteve, një rezultat të kërkesës bosh - Request.Text = StrReplace(Request.Text, "WHERE Doc.Link = &DocumentLink" , "KU ËSHTË GËNJESHTA");). Për ta bërë këtë, thjesht shtoni kushtin "Ku është e rreme". Nga rruga, pavarësisht nga vëllimi i të dhënave të kërkuara në mostër, një kërkesë e tillë do të ekzekutohet në çast. |KU ËSHTË GËNJESHTA // Shembulli 9. Kontrollimi që rezultati i pyetjes përmban të dhëna: Nese joKërkesë.Ekzekutoni().Bosh() Pastaj // Shembulli 10. përzgjedhja e bazuar në një datë boshe: | KU | tbStrings.CancellationDate = DATETIME(1, 1, 1)

Në këtë artikull do të analizojmë mundësitë e konvertimit të tipit në gjuhën e pyetjeve 1C, të cilat ofrohen nga funksioni "Express".
Le të shohim disa opsione për përdorimin e këtij funksioni.
Dhe opsioni i parë është rrumbullakimi i numrave.

Për ta bërë këtë, duhet të përdorni funksionin Express në formatin e mëposhtëm:

shpreh (<Число>si numër (<ДлинаЧисла>,<Точность>))

Ku:
Numri- fusha që duhet të rrumbullakoset
Gjatësia Numrat- gjatësia maksimale e numrit
Saktësia- saktësia e rrumbullakimit të numrave

Parametrat si gjatësia ashtu edhe saktësia duhet të jenë numra të plotë pozitivë.
Shikoni se si funksionon ky funksion në imazhin më poshtë.

Rasti i dytë i përdorimit është derdhja e fijeve. Shumë shpesh, konfigurimet përdorin vargje me gjatësi të pakufizuar, gjë që imponon disa kufizime. Për shembull, ne nuk mund të krahasojmë vargjet me gjatësi të pakufizuar.
Në pyetjen më poshtë, fusha FullName është e tipit string me gjatësi të pakufizuar dhe kjo pyetje nuk do të funksionojë.

Në mënyrë që ai të funksionojë, është e nevojshme të konvertohet një fushë me gjatësi të pakufizuar në një varg me një gjatësi të caktuar; kjo bëhet duke përdorur funksionin Express në formatin e mëposhtëm:

shpreh (<Строка>si varg (<ДлинаСтроки>)

Ku
Gjatësia e linjës– gjatësia maksimale në të cilën do të reduktohet vargu.
Le të ripunojmë pyetjen: në kusht do të konvertojmë një varg të pakufizuar në një varg me një gjatësi të caktuar. Atëherë nuk do të ketë gabime.

Le të shqyrtojmë opsionin e fundit dhe, do të thoja, më të rëndësishëm për zbatimin e tij: kur punoni me fusha të një lloji të përbërë.
Më poshtë janë dy pyetje që përdorin fusha të përbëra. E para është e gabuar dhe e dyta është e saktë.

Ato. Kur ju duhet të merrni një fushë të një lloji kompleks, merrni gjithmonë vlerën e kësaj fushe vetëm pasi të keni hedhur llojin duke përdorur funksionin Express. Në këtë rast, dokumentet dhe librat e referencës do të kenë formatin e mëposhtëm:

shpreh (<Документ>si Dokument.<ИмяТаблицы>)
shpreh (<Справочник>si Drejtori.< ИмяТаблицы >)
.

Ku
Emri i tabelës- emri i objektit në .

Përdorni gjithmonë funksionin Express kur punoni me lloje të përbëra, ai optimizon shumë pyetjen.

Nëse jeni ende duke "notuar" në ndërtimet e gjuhës së pyetjes, dhe madje edhe pyetjet më të thjeshta ju shkaktojnë vështirësi, atëherë unë ju rekomandoj kursin tim "Pyetje në 1C nga fillestari në profesionist". Ku këto dhe shumë çështje të tjera diskutohen më në detaje.

Çfarë është e veçantë për këtë kurs:
Kursi është krijuar për ata që nuk janë të njohur me gjuhën e pyetjeve në 1C;
Materiali arsimor është i shtruar mirë dhe i lehtë për t'u mësuar;
Disa dhjetëra mësime;
Shembuj të dobishëm praktik;
Të gjitha mësimet janë paraqitur në gjuhë të qartë dhe të thjeshtë

Për lexuesit e mi, kupon zbritje 25%: hrW0rl9Nnx

Përpiqem të publikoj artikuj të ndryshëm interesantë falas dhe video mësime sa më shpesh të jetë e mundur. Prandaj, do të jem shumë i lumtur nëse e mbështesni projektin tim duke transferuar ndonjë shumë:

Ju mund të transferoni çdo shumë drejtpërdrejt:
Yandex.Money - 410012882996301
Paratë në ueb - R955262494655

Bashkohuni me grupet e mia.

Artikujt më të mirë mbi këtë temë