Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • në shtëpi
  • Gabimet
  • 1c kërkoni një kusht në një grup. Shembuj të pyetjeve për të punuar me drejtoritë hierarkike

1c kërkoni një kusht në një grup. Shembuj të pyetjeve për të punuar me drejtoritë hierarkike

Në këtë artikull, ne duam të diskutojmë me ju gjithçka 1c funksionet e gjuhës së pyetjes, si dhe konstruktet e gjuhës pyetëse... Cili është ndryshimi midis një funksioni dhe një konstruksioni? Funksioni thirret me kllapa dhe parametra të mundshëm në to, dhe ndërtimi shkruhet pa kllapa. Pa dyshim të gjitha ndërtimet 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 janë të zbatueshme për fushat e pyetjeve, dhe disa janë gjithashtu të zbatueshme në kushte.

1c funksionet e gjuhës së pyetjes

Që nga përshkrimi i qartë 1c funksionet e gjuhës së pyetjesështë shumë më pak e zakonshme sesa përshkrimi i strukturave, vendosëm të fillojmë të shikojmë saktësisht funksionet. Tani le t'i hedhim një vështrim secilit 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 të tipit "Date".

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

Shembull përdorimi:

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

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

Shembull përdorimi:

Query.Text = "ZGJIDH | DIFFERENCA E DATËS (DATA KOHA (2015, 4, 17), DATA KOHA (2015, 2, 1), DITA) | SI Numri i ditëve";

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 = "ZGJIDH // element të paracaktuar | VLERË (Direktori. Monedhat. Dollarë) AS Dollar, // lidhje bosh | VLERA (Dokument.Incoming GoodsService.EmptyLink) SI në hyrje, // vlerë e numëruar | VALUE (Enumeration.Personi juridik . Individual) AS Individual, // llogari e paracaktuar | VLERA (Plani i llogarive. Vetë-mbështetës. Materialet) AS Llogaria_10 ";

4. Funksioni SELECT- para nesh është një analog i konstruksionit IF që përdoret në kod, vetëm ky përdoret në kërkesat 1C.

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

Shembull përdorimi:

Kërkesë.Teksti = // nëse shuma është më shumë se 7500, atëherë duhet të ketë një zbritje prej 300 rubla, // kështu që nëse kushti aktivizohet, funksioni // kthen shumën - 300 // përndryshe, kërkesa thjesht do të ktheni shumën "PERZGJEDH | ZGJIDH | KUR Faturat TCH. Shuma > 7500 | PAS PM Fatura. Shuma - 300 | TJETËR Fatura PM. Shuma | FUND AS Shuma e Zbritur | NGA | Dokumenti. Pranimi i MallraveShërbime;Mallrat "ASPM.

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.Registrator LINK Document.Fature | PASTAJ EXPRESS (Sales.Registrar AS Document.Shpense) | ELSE SELECT | WHEN Sales.Registrator LINKPRESS.N Shitjet.Regjistruesi AS Dokument.Realizimi) | FUND | ... | FUND SI Numër | NGA | Regjistri i grumbullimit.Blerjet AS Blerjet ";

Ekziston edhe një variant i përdorimit të funksionit EXPRESS në fushat e llojeve të përziera, ku gjenden ato? Shembulli më i thjeshtë është "Regjistruesi" për çdo regjistër. Pra, pse duhet të specifikojmë 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ë specifikoni 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 | Referenca.Nomenklatura AS Nomenklaturë";

6. Funksioni ISNULL(drejtshkrimi alternativ IS NULL) - 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ë, pasi krahasimi me tipin NULL vlerësohet gjithmonë në 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ç të brendshmeve).

Request.Text = // Zgjidhni të gjithë artikullin dhe gjendjen në të // 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 | Nom.Ref, | ËSHTË NULL (Artikujt në magazina. Bilanci | FROM | Drejtoria. Nomenklatura AS Nomenklaturë | LEFT JOIN Regjistri i akumulimit. ProduktetNë magazina. Mbetet AS ProdukteNë magazina

7. Funksioni PRESENT- ju lejon të merrni një pamje të fushës së kërkesës.

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

Shembull përdorimi:

Query.Text = "ZGJIDH | PËRFAQËSIM (Banesa të lira. Bilanci. Nomenklaturë) AS Nomenklaturë, | PREZANTIM (Balanca të lira. Balanca. Magazina) AS Magazina, | Balanca të lira.

Ndërtimet në gjuhën e pyetjeve 1c

Më lart kemi shqyrtuar me ju 1c funksionet e gjuhës së pyetjes, tani është koha për të marrë parasysh ndërtime në gjuhën pyetëse 1c, ato nuk janë më pak të rëndësishme dhe të dobishme, le të fillojmë.

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

Shembull përdorimi:

Kërkesë.Tekst = // nëse lloji i vlerës së regjistruesit është një dokument që merr, // atëherë kërkesa do të kthejë "Faturën e mallrave", përndryshe "Shitje e mallrave" "ZGJIDH | ZGJEDH Konsumi "" | FUND SI LLOJ Lëvizje | NGA | Regjistri i akumulimit. Gjendjet e mallrave në magazina AS balancat ";

2. Ndërtimi MIDIS- ky operator kontrollon nëse vlera është në intervalin e specifikuar.

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

Shembull përdorimi:

Kërkesë.Text = // merrni të gjithë nomenklaturën, kodi i së cilës shtrihet në intervalin nga 1 deri në 100 "ZGJEDHJE | Nomenklatura.Ref | 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 transmetuar (vargjet, tabelat e vlerave, etj. mund të kalohen si listë). Operatori IN HIERARCHY ju lejon të shikoni hierarkinë (shembull i përdorimit të Planit të Llogarive).

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

Shembull përdorimi:

Kërkesë.Tekst = // zgjidhni të gjitha nënllogaritë e llogarisë "ZGJIDH | Vetë-mbështetës. Lidh llogarinë AS | NGA | Plani i llogarive. Vetë-mbështetës AS Vetëmbështetës | KU | Vetëmbështetës. Referenca NË VLERËN E HIERARKISË (Plani i llogaritë. Vetëmbështetëse.Mallrat)";

4. Ndertim LIKE- ky funksion na lejon të krahasojmë një varg me një model vargu.

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

Opsionet e modelit të vargut:

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

Një personazh arbitrar.

[...] - çdo karakter i vetëm, ose një sekuencë karakteresh të renditura brenda kllapave katrore. Vargjet mund të specifikohen në numërim, për shembull, a-z, të cilat tregojnë një karakter arbitrar të përfshirë në diapazonin, duke përfshirë skajet e diapazonit.

[^ ...] - çdo karakter i vetëm, ose një sekuencë karakteresh të renditura brenda kllapave katrore, me përjashtim të atyre të renditur pas shenjës së mohimit.

Shembull përdorimi:

Kërkesë.Text = // 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 [TT ] abur% "" ";

5. Dizajni LEJOHET- ky operator ju lejon të zgjidhni vetëm ato regjistrime nga baza e të dhënave në të cilat thirrësi ka të drejtë të lexojë. 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 | Kontraktorët.Lidhja | NGA | Drejtoria.Contractors AS Contractors";

6. Ndertim TE NDRYSHME- ju lejon të zgjidhni regjistrime në të cilat nuk ka regjistrime të përsëritura.

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

Shembull përdorimi:

Kërkesa.Text = // zgjedh regjistrimet për të cilat lexuesi ka të drejta "ZGJEDH TË NDRYSHME | Kontraktorët. Emri | NGA | Drejtoria. Kontraktorët AS Kontraktorë";

Gjithashtu, Construction VARIOUS mund të përdoret me operatorin e AUTORIZUAR dhe operatorë të tjerë.

Shembull përdorimi:

Kërkesa.Text = // zgjedh rekorde të ndryshme për të cilat lexuesi ka të drejtat "ZGJIDH TË LEJUARA TË NDRYSHME | Kontraktorët. Emri | NGA | Drejtoria. Kontraktorët AS Kontraktorë";

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

Sintaksa: E PARA<число>

Shembull përdorimi:

Kërkesë.Tekst = // zgjidhni 4 numrat e parë GTE nga direktoria "ZGJEDH PARË 4 | Numrat GTD. Lidhje | NGA | Referenca. Numrat GTD AS Numrat GTD";

8. DIZAJN 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 = "SELECT | Balancat e lira. Balancat. Nomenklatura, | Balancat e lira. Balancat. Magazina, | Balancat e lira. Balancat. Në magazinë

9. Dizajni POROSI NGA- porosit të dhënat sipas një fushe të caktuar. Nëse fusha është një lidhje, atëherë kur vendosni flamurin POROSIT AUTO Renditja do të kryhet nga prezantimi i lidhjes, nëse flamuri është i fikur, atëherë lidhjet renditen sipas përparësisë së adresës së lidhjes në memorie.

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

Shembull përdorimi:

Request.Text = "ZGJIDH | Balancat e lira

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

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

Shembull përdorimi:

Kërkesë.Text = "ZGJIDH | ProdukteNë magazina. Nomenklatura AS Nomenklaturë, | ProdukteNë magazina. Magazina, | SHUMË (ProdukteNë magazina. Në magazinë) SI magazinë | NGA | Regjistri i grumbullimit.

11. DUKE DIZAJNIM- ju lejon të aplikoni një funksion agregat në një kusht të përzgjedhjes së të dhënave, të ngjashme me konstruksionin WHERE.

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

Shembull përdorimi:

Kërkesë.Text = // zgjedh rekorde të grupuara ku fusha në magazinë është më e madhe se 3 "ZGJIDHJE | ProdukteNë magazina. MallratNë magazina.Nomenklatura, | MallratNë magazina.Magazina | | KANE | SHUMA (MallratNë magazinat në magazinë)> 3 ";

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

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

Shembull përdorimi:

Request.Text = "ZGJIDH | Tz.Emri OS, | Tz.Numri i dosjes, | Tz.codeOS, | Tz.Term, | Tz.Type | POST Data .KodOS ";

13. Ndërtimi KU- ju lejon të vendosni një kusht në çdo fushë përzgjedhjeje. Vetëm të dhënat që plotësojnë kushtin do të përfshihen në rezultat.

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

Shembull përdorimi:

Kërkesa.Text = // zgjedh të gjitha rekordet për të cilat Kompensimi mbetet<>0 dhe // SummaDlyaRaschKompOstatok> 100 "SELECT | KompensatsiyaRPOstatki.Kontragent, | KompensatsiyaRPOstatki.Rebenok, | KompensatsiyaRPOstatki.KompensatsiyaOstatok, | KompensatsiyaRPOstatki.SummaDlyaRaschKompOstatok | VENDOSENI DannyeTz | FROM | RegistrNakopleniya.KompensatsiyaRP.Ostatki KompensatsiyaRPOstatki SI | KU | KompensatsiyaRPOstatki.KompensatsiyaOstatok<>0 | Dhe Kompensimi për bilancin. AmountFor CalculateCompOut balance> 100 ";

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

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

Shembull përdorimi:

Kërkesë.Text = "ZGJIDH | Zgjidhjet. Marrëveshja e Kontraktorit. Lloji i Marrëveshjes SI Lloji i Marrëveshjes, | Zgjidhjet. ;

Në figurë janë rrethuar grupimet që janë formuar gjatë ekzekutimit të pyetësorit, më i larti i përket seksionit TË PËRGJITHSHËM dhe i dyti në fushën ContractorAgreementContract Type.

Referencat 1C - një objekt i specializuar i pemës së meta të dhënave, i cili shërben për të ruajtur informacione statike të një natyre referimi. Për shembull, në konfigurimet tipike, mund të shihni pamjet e mëposhtme:, Nomenklatura, Punonjësit, Asetet fikse, etj. Informacioni në librat e referencës, si rregull, nuk ndryshon shpesh. Librat e referencës përdoren më tej në pothuajse të gjitha objektet e kontabilitetit si një seksion kontabiliteti ose informacion referimi.

Më poshtë do të shqyrtojmë vendosjen dhe dizajnimin e librit të referencës nga konfiguruesi duke përdorur shembullin e librit të referencës "Nomenklatura".

Skeda e përgjithshme

Në skedën "Të përgjithshme" mund të specifikoni emrin, sinonimin, paraqitjen e objekteve, përshkrimin e qëllimit.

Skeda e hierarkisë së referencës

Këtu vendoset hierarkia e librit të referencës.

Ekzistojnë dy lloje të hierarkisë në 1C 8.3 - " grupe dhe elemente"dhe" elementet". Ai ndryshon në atë që në rastin e parë, prindi (dosja) mund të jetë vetëm një dosje (grup), dhe në rastin e dytë, prindi mund të jetë gjithashtu një element.

"Vendosni grupet në krye" - flamuri është përgjegjës për shfaqjen e grupeve në formën e një liste.

Gjithashtu në cilësimet, mund të kufizoni numrin e grupeve në hierarkinë e drejtorisë me cilësimet përkatëse.

Skeda e pronarëve

Një direktori mund të jetë në vartësi të një drejtorie tjetër. Nga pikëpamja e konfigurimit të 1C 8.3, kjo do të thotë që atributi "Owner" bëhet i detyrueshëm për elementin vartës. Një shembull i një lidhjeje të tillë midis drejtorive në konfigurimet standarde "Nomenklatura - Njësitë e masës", "Kundërpalët - Kontratat e Kundërpalëve".

Objektet e mëposhtme të meta të dhënave mund të jenë gjithashtu pronarë të një drejtorie:,.

Skeda e të dhënave

Merrni mësime video 267 1C falas:

Skeda më e rëndësishme nga këndvështrimi i një programuesi. Detajet e librit të referencës tregohen në të.

Libri i referencës ka një grup detajesh standarde që nuk janë redaktuar nga programuesi 1C 8.2, një listë e tyre mund të shihet duke klikuar butonin "Detajet standarde":

Unë do të ndalem në secilën në më shumë detaje:

  • Ky grup- një atribut i tipit boolean që tregon nëse është një grup apo një element. E disponueshme vetëm në referencën hierarkike. Shënim, vlera e kësaj ndryshore nuk mund të ndryshohet në modalitetin 1C: Enterprise.
  • Kodi- atribut, tip numër ose varg (zakonisht varg). Numri i caktuar nga sistemi automatikisht. Zakonisht llogaritet si (kodi i mëparshëm + 1). Unë rekomandoj përdorimin e llojit të vargut, sepse renditja e vlerave numerike nuk është bërë siç pritej. Mund të përdoret si një pamje referimi në një listë dhe në fushat e hyrjes. Zakonisht përdoret për të kërkuar një artikull ndërsa shkruani me varg. Nëse keni nevojë të hiqni fushën e Kodit, specifikoni zero në gjatësinë e rreshtit.
  • Emri- Atributi i kërkuar, lloji i vargut. Gjatësia maksimale e rreshtit është 150 karaktere. Mund të përdoret si një pamje referimi në një listë dhe në fushat e hyrjes. Zakonisht përdoret për të kërkuar një artikull ndërsa shkruani me varg. Nëse duhet të hiqni fushën Emri, specifikoni zero në gjatësinë e rreshtit.
  • Prindi- një atribut i llojit ReferenceLink.<ИмяТекущегоСправочника>... E disponueshme vetëm në referencën hierarkike. Tregon prindin epror në hierarki. Nëse Elementi ose Grupi ndodhet në rrënjën e drejtorisë, specifikohet vlera e Drejtorisë.<ИмяТекущегоСправочника>.EmptyRef.
  • Pronari- lidhje me elementin-pronar të elementit (grupit) aktual të katalogut. Në dispozicion vetëm në librin e referencës vartëse 1C.
  • Shenja e fshirjes- një atribut boolean. Përgjegjës për shfaqjen e "shenjës së fshirjes" në sistem. Një element i shënuar për fshirje konsiderohet i papërdorshëm, por lëvizjet e vjetra në dokumente mund të mbeten në të.
  • Lidhje- fusha e llojit të vargut. Ky atribut ruan një identifikues unik të objektit - GUID. Ajo që ne shohim në sistem në ekranin vizual nën emrin "lidhje" është vetëm një paraqitje e objektit. E pamundur për të ndryshuar.
  • E paracaktuar- shkruani boolean, tregon nëse elementi është i paracaktuar, më shumë për këtë më vonë. E pamundur për të ndryshuar.

Skeda "Të dhënat" tregon gjithashtu pamjen e referencës në sistem, deri në versionin 8.2.16 pamja mund të jetë vetëm një Kod ose një Emër. Në versionet më të fundit të platformës (duke filluar nga 8.3), pamja mund të përshkruhet në mënyrë të pavarur në modulin e menaxherit duke përdorur mbajtësin "ViewGetProcessing".

Skeda e numërimit

Këtu mund të specifikoni cilësimet e librit të referencës për sa i përket numërimit. Rekomandohet të përdorni numërimin automatik. Kontrolli i unike është një flamur që ndihmon, nëse është e nevojshme, për ta bërë kodin unik. Nëse, me grupin e flamurit, përpiqeni të shkruani një artikull drejtorie me një kod jo unik, në 1C do të merrni mesazhin "Kodi i drejtorisë është bërë jo unik".

Një seri kodesh - përcakton se si të numëroni drejtorinë, mund të futni numërimin e drejtorisë në kontekstin e pronarit. Për shembull, pala tjetër "Brirët dhe thundrat" do të ketë numërimin e vet të kontratave - "1, 2, 3" e kështu me radhë.

Skeda e Formave

Formularët për referencë janë përshkruar këtu. Nëse konfigurimi hapet si në modalitetin normal ashtu edhe në atë të menaxhuar, atëherë do të ketë dy skeda me forma si parazgjedhje: "kryesore" dhe "shtesë" - të ndryshme për një aplikacion të rregullt dhe të menaxhuar.

Në këtë faqe ekziston një pronë e rëndësishme e librit të referencës - "". Ky është një funksion shumë i përshtatshëm i 1C 8, i cili lejon, kur plotësoni të dhënat në fushën e hyrjes, të mos hyni në drejtori, por të shkruani emrin, kodin, etj. dhe zgjidhni artikullin e dëshiruar nga lista rënëse. Duket kështu:

Skeda tjetër

Në skedën, mund të merrni akses të shpejtë në modulet kryesore të librit të referencës - moduli i objektit dhe moduli i menaxherit.

Ju gjithashtu mund të përcaktoni një listë të artikujve të paracaktuar të katalogut në faqe. Këta janë artikuj që nuk mund të fshihen në modalitetin e ndërmarrjes. Elementët e paracaktuar mund të aksesohen drejtpërdrejt në konfigurues me emër, për shembull: Drejtoritë, Nomenklatura, Shërbimi.

Kjo skedë përcakton gjithashtu mënyrën e bllokimit - automatik ose i kontrolluar. Duke përdorur kërkimin e tekstit të plotë, si dhe informacionin e referencës në lidhje me librin e referencës, i disponueshëm në modalitetin 1C: Enterprise.

Gjuha e pyetjes në 1C 8 është një analog i thjeshtuar i "gjuhës së programimit të strukturuar" të mirënjohur (siç quhet shpesh SQL). Por në 1C përdoret vetëm për leximin e të dhënave, modeli i të dhënave të objektit përdoret për të ndryshuar të dhënat.

Një tjetër ndryshim interesant është sintaksa ruse. Edhe pse, në fakt, ju mund të përdorni ndërtime në gjuhën angleze.

Shembull i kërkesës:

ZGJIDH
Bankat. Emri,
Bankat.CorrLlogaria
NGA
Drejtoria Bankat AS Bankat

Kjo kërkesë do të na lejojë të shohim informacione për emrin dhe llogarinë korrespondente të të gjitha bankave që ekzistojnë në bazën e të dhënave.

Gjuha e pyetjes është mënyra më e thjeshtë dhe më efikase për të marrë informacion. Siç mund ta shihni nga shembulli i mësipërm, në gjuhën e pyetjes duhet të apeloni me emrat e meta të dhënave (kjo është një listë e objekteve të sistemit që përbëjnë konfigurimin, domethënë drejtoritë, dokumentet, regjistrat, etj.).

Përshkrimi i konstruksioneve të gjuhës së pyetjes

Struktura e pyetjeve

Për të marrë të dhënat, mjafton të përdorni konstruksionet "SELECT" (select) dhe "FROM" (nga). Kërkesa më e thjeshtë duket si kjo:

SELECT * FROM Directories.Nomenklatura

Ku "*" nënkupton përzgjedhjen e të gjitha fushave të tabelës, dhe Referencat. Nomenklatura është emri i tabelës në bazën e të dhënave.

Le të shohim një shembull më kompleks dhe të përgjithshëm:

ZGJIDH
<ИмяПоля1>SI<ПредставлениеПоля1>,
Shuma (<ИмяПоля2>) SI<ПредставлениеПоля2>
NGA
<ИмяТаблицы1>SI<ПредставлениеТаблицы1>
<ТипСоединения>PËRBËRJA<ИмяТаблицы2>SI<ПредставлениеТаблицы2>
AKTIV<УсловиеСоединениеТаблиц>

KU
<УсловиеОтбораДанных>

NGARKONI NGA
<ИмяПоля1>

NDAJ SIPAS
<ИмяПоля1>

REZULTATET
<ИмяПоля2>
AKTIV
<ИмяПоля1>

Në këtë pyetje, ne zgjedhim të dhënat e fushave "Emri i fushës1" dhe "Emri i fushës1" nga tabelat "Emri i tabelës1" dhe "Emri i tabelës", caktojmë sinonime në fushat duke përdorur operatorin "AS", i bashkojmë ato sipas një "Kushti i tabelës" të caktuar. gjendje.

Nga të dhënat e marra zgjedhim vetëm të dhëna që plotësojnë kushtin nga "WHERE" "Kushti i të dhënave" Më pas grupojmë pyetjen sipas fushës "Emri i fushës1" ndërsa mbledhim "Emri i fushës2". Krijojmë totale për fushën "Emri i fushës1". dhe fushën përfundimtare "Emri i fushës2".

Hapi i fundit është renditja e kërkesës duke përdorur ndërtimin ORDER BY.

Ndërtime të përgjithshme

Le të shqyrtojmë ndërtimet e përgjithshme të gjuhës së pyetjes 1C 8.2.

E PARËn

Duke përdorur këtë operator, mund të merrni numrin n të regjistrimeve të para. Rendi i hyrjeve përcaktohet nga rendi në kërkesë.

ZGJIDHNI 100 TË PARË
Bankat. Emri,
Bankat.Kodi AS BIK
NGA
Drejtoria Bankat AS Bankat
NDAJ SIPAS
bankat.

Kërkesa do të marrë 100 hyrjet e para të drejtorisë "Bankat", të renditura sipas alfabetit.

LEJOHET

Ky dizajn është i rëndësishëm për të punuar me një mekanizëm. Thelbi i mekanizmit është të kufizojë leximin (dhe veprimet e tjera) tek përdoruesit për regjistrime specifike në tabelën e bazës së të dhënave, dhe jo tabelën në tërësi.

Nëse një përdorues përpiqet të lexojë të dhënat që janë të paarritshme për të me një kërkesë, ai do të marrë një mesazh gabimi. Për të shmangur këtë, duhet të përdorni konstruksionin "LEJUAR", domethënë kërkesa do të lexojë vetëm të dhënat e lejuara për të.

ZGJEDHJE TË LEJUARA
Informacione Shtesë Store.Link
NGA
Referenca.Ruajtja e Informacionit Shtesë

TE NDRYSHME

Përdorimi i "DIFFERENT" do t'ju lejojë të përjashtoni vargjet e kopjuara nga futja e rezultatit të pyetjes 1C. Dyfishimi do të thotë që të gjitha fushat e kërkesës përputhen.

ZGJIDHNI 100 TË PARË
Bankat. Emri,
Bankat.Kodi AS BIK
NGA
Drejtoria Bankat AS Bankat

Tabela e zbrazët

Ky konstrukt përdoret rrallë për të kombinuar pyetje. Kur bashkoheni, mund të jetë e nevojshme të specifikoni një tabelë të mbivendosur bosh në një nga tabelat. Operatori "EmptyTable" është thjesht i përshtatshëm për këtë.

Shembull nga ndihma 1C 8:

ZGJIDH Referencën.Numrin, TABELA BASHKE. (Num, Tov, Sasia) AS Përbërja
NGA Dokumenti.Shpenzimet
KOMBINI TË GJITHA
ZGJIDH Referencën.Numrin, Përbërjen. (Numri i linjës, artikulli, sasia)
NGA Dokumenti.Dokumenti i faturës.Fatura.Përmbajtja. *

ËSHTË NULL

Një veçori shumë e dobishme që shmang shumë gabime. YesNULL () ju lejon të zëvendësoni vlerën NULL me atë të dëshiruar. Përdoret shumë shpesh në teste për praninë e një vlere në tabelat e bashkuara, për shembull:

ZGJIDH
NomenklaturaRef.Ref.
Ka NULL (Bilanci i artikullit. Bilanci i sasisë, 0) AS Bilanci i sasisë
NGA


Mund ta përdorni në një mënyrë tjetër. Për shembull, nëse për secilën rresht nuk dihet se në cilën tabelë ekziston vlera:

ËSHTË NULL (InvoiceInvoiceReceived.Date, InvoiceInvoiced.Date)

AS është një operator që na lejon të caktojmë një emër (sinonim) në një tabelë ose fushë. Ne pamë një shembull përdorimi më lart.

Këto konstruksione janë shumë të ngjashme - ato ju lejojnë të merrni një paraqitje të vargut të vlerës së dëshiruar. Dallimi i vetëm është se PËRFAQËSIMI konverton çdo vlerë në një lloj vargu, dhe PËRFAQËSIMI REFERENCA konverton vetëm vlerat e referencës. PËRFAQËSIMI I REFERENCAVE rekomandohet të përdoret në pyetjet e sistemit të përbërjes së të dhënave për optimizim, përveç nëse, sigurisht, fusha e të dhënave të referencës është planifikuar të përdoret në filtra.

ZGJIDH
Shiko (Lidhje), // rreshtin, për shembull "Raport paraprak nr. 123 datë 10/10/2015
Përfaqësimi (shenja e fshirjes) AS Teksti i shenjës së fshirjes, // vargu, "Po" ose "Jo"
ReferencaPërfaqësimi (Shënimi i fshirjes) AS Fshirja Mark Boolean // Boolean, e vërtetë ose e gabuar
NGA
Dokument.Raport paraprak

EXPRESS

Express ju lejon të konvertoni vlerat e fushës në llojin e dëshiruar të të dhënave. Ju mund të konvertoni një vlerë ose në një lloj primitiv ose një lloj referimi.

Express për llojin e referencës përdoret për të kufizuar llojet e kërkuara të të dhënave në fushat e një lloji kompleks, që shpesh përdoret për të optimizuar performancën e sistemit. Shembull:

EXPRESS (Tabela e kostos.Nënkonto1 AS Referencë. Artikujt e kostos) .Lloji i VeprimtarisëPër Kontabilitetin e Kostos Tatimore

Për llojet primitive, ky funksion përdoret shpesh për të kufizuar numrin e karaktereve në fushat me gjatësi të pakufizuar (fusha të tilla nuk mund të krahasohen me). Për të shmangur gabimin " Parametra të pavlefshëm në operacionin e krahasimit. Ju nuk mund të krahasoni fushat
gjatësi të pakufizuar dhe fusha të llojeve të papajtueshme
", Është e nevojshme të shprehen këto fusha si më poshtë:

EXPRESS (Komenti SI Rreshti (150))

NDRYSHIM

Merrni mësime video 267 1C falas:

Një shembull i përdorimit të IS NULL në një kërkesë 1C:

ZGJIDHNI NGA
Spr
LEFT JOIN Regjistrohu akumulimi.ProduktetNë magazina.Left AS RemainingGoods
Nomenclature SoftwareRef.Ref = ImplementedCommentsComponentsRemains.Nomenklature
KU ËSHTË BILANCI I MALLRAVE.Sasia Bilanci ËSHTË NULL

Lloji i të dhënave në një pyetës mund të përcaktohet si më poshtë: duke përdorur funksionet TYPE () dhe TYPE (), ose duke përdorur operatorin logjik REFERENCA. Të dy funksionet janë të ngjashme.

Vlerat e paracaktuara

Përveç përdorimit të parametrave të kaluar në kërkesat në gjuhën e pyetjeve 1C, mund të përdorni vlera të paracaktuara ose. Për shembull, numërimet, kërkimet e paracaktuara, grafikët e llogarive, e kështu me radhë.Për këtë përdoret konstrukti "Vlera ()".

Shembull përdorimi:

WHERE Nomenclature.NomenclatureType = Vlera (Directory.NomenclatureType.Product)

WHERE Counterparties.Lloji i informacionit të kontaktit = Vlera (Numërimi. Informacioni i kontaktit. Lloji. Telefoni)

KU Balancat e llogarisë.Llogaria = Vlera (Plani i Llogarive. Vetë-mbështetës.Fitimet Humbje)

Lidhjet

Ekzistojnë 4 lloje të lidhjeve: LARTË, E DREJTË, KOMPLETE, E BRENDSHME.

BASHKOHUNI Majtas dhe Djathtas

Lidhjet përdoren për të lidhur dy tabela sipas një kushti specifik. Veçori në NGJYJA E LEJTË në atë që marrim të plotë tabelën e parë të specifikuar dhe lidhim tabelën e dytë sipas kushteve. Fushat e tabelës së dytë që nuk mund të lidheshin me kusht plotësohen me vlerën I PAVLEFSHËM.

Për shembull:

Ai do të kthejë të gjithë tabelën e Kundërpalëve dhe do të plotësojë fushën "Banka" vetëm në ato vende ku do të plotësohet kushti "Kontrapalët. Emri = Bankat. Emri". Nëse kushti nuk plotësohet, do të vendoset fusha Bankë I PAVLEFSHËM.

NGJYJA E DJATHTË në gjuhën 1C absolutisht e njëjta gjë Lidhja LEFT, me përjashtim të një ndryshimi - në LIDHJA E DREJTË Tabela "kryesore" është e dyta, jo e para.

LIDHJE E PLOTË

LIDHJE E PLOTË ndryshon nga e majta dhe e djathta në atë që shfaq të gjitha regjistrimet nga dy tabela, bashkon vetëm ato që mund t'i bashkojë sipas kushteve.

Për shembull:

NGA

LIDHJE E PLOTË
Drejtoria Bankat AS Bankat

AKTIV

Gjuha e pyetjes do t'i kthejë të dyja tabelat plotësisht vetëm nëse plotësohet kushti i bashkimit të rekordeve. Ndryshe nga bashkimi majtas/djathtas, është e mundur që NULL-të të shfaqen në dy fusha.

LIDHJE E BRENDSHME

LIDHJE E BRENDSHME ndryshon nga ai i plotë në atë që shfaq vetëm ato regjistrime që mund të lidhen me kushtin e specifikuar.

Për shembull:

NGA
Drejtoria Kontraktorët AS Klientë

LIDHJE E BRENDSHME
Drejtoria Bankat AS Bankat

AKTIV
Klientët.Emri = Bankat.Emri

Kjo kërkesë do të kthejë vetëm linjat në të cilat banka dhe pala tjetër kanë të njëjtin emër.

Shoqatat

Konstruksioni COMBINE and COMBINE ALL kombinon dy rezultate në një. ato. rezultati i kryerjes së dy do të "bashkohet" në një, të përbashkët.

Kjo do të thotë, sistemi funksionon në të njëjtën mënyrë si zakonisht, vetëm për një tabelë të përkohshme.

Si të përdorni SOFTWARE INDEX

Megjithatë, ka një pikë që duhet mbajtur parasysh. Ndërtimi i një indeksi në një tabelë të përkohshme kërkon gjithashtu kohë për t'u përfunduar. Prandaj, këshillohet të përdorni konstruksionin "" vetëm nëse dihet me siguri se nuk do të ketë 1-2 regjistrime në tabelën e përkohshme. Përndryshe, efekti mund të jetë i kundërt - performanca nga fushat e indeksuara nuk kompenson kohën e ndërtimit të indeksit.

ZGJIDH
Normat e monedhësSliceLast.Valuta AS Valuta,
Normat e monedhësFliceFundi.Kursi
Normat e valutës POST
NGA
Regjistri i informacionit. Normat e monedhës.Fetë e fundit (& Periudha,) AS Normat e monedhësFlici i fundit
INDEKSI NGA
Monedha
;
ZGJIDH
Çmimet
ÇmimetNomenklaturat .Çmimi,
ÇmimetNomenklaturat, Valuta,
Normat e monedhës.
NGA
Regjistri i informacionit.NomenklaturaÇmimet.Feja e Fundit (& Periudha,
Nomenklatura B (& Nomenklatura) DHE Lloji i Çmimit = & Lloji i Çmimit) SI Çmimet
LEFT UNION Normat e monedhës AS normat e valutave
SIPAS Normat Nomenklatura.Valuta = Normat Valuta.Valuta

Grupimi

Gjuha e pyetjeve 1C ju lejon të përdorni funksione të veçanta agregate kur gruponi rezultatet e pyetjeve. Grupimi mund të përdoret gjithashtu pa funksione agregate për të "eliminuar" dublikatat.

Funksionet e mëposhtme janë në dispozicion:

Shuma, Numri, Numri i të ndryshmeve, Maksimumi, Minimumi, Mesatarja.

Shembulli # 1:

ZGJIDH
Shitja e mallrave, shërbimeve, mallrave, nomenklaturës,
SHAMJA (Shitje e Mallrave, Shërbimeve, Mallrave. Sasia) SI Sasi,
SHITJA (Shitja e MallraveShërbimetMallrat.Shuma) AS Shuma
NGA

NGARKONI NGA
Realizimi i MallraveShërbimetMallrat.Nomenklatura

Kërkesa merr të gjitha linjat me mallra dhe i përmbledh ato sipas sasisë dhe sasisë në kontekstin e artikullit.

Shembulli nr. 2

ZGJIDH
Bankat, Kodi,
SASIA (Banka TË NDRYSHME.Lidhja) SI Sasi Dyfish
NGA
Drejtoria Bankat AS Bankat
NGARKONI NGA
Kodi i bankave

Ky shembull do të shfaqë një listë të BIC-ve në drejtorinë "Bankat" dhe do të tregojë se sa dublikatë ekzistojnë për secilën prej tyre.

Rezultatet

Totalet janë një mënyrë për të marrë të dhëna nga një sistem hierarkik. Për fushat përmbledhëse, mund të përdoren funksionet agregate, si për grupimet.

Një nga mënyrat më të njohura për të përdorur totalet në praktikë është fshirja e mallrave në grup.

ZGJIDH




NGA
Dokument.Realizimi iMallraveShërbimet.Mallrat AS Shitja eMallraveShërbimetMallrat
NDAJ SIPAS

REZULTATET
SUM (sasia),
SUM (Shuma)
AKTIV
Nomenklatura

Rezultati i pyetjes do të jetë hierarkia e mëposhtme:

Përmbledhje e përgjithshme

Nëse dëshironi të merrni totalet për të gjitha "totalet", përdorni operatorin "GENERAL".

ZGJIDH
Realizimi i MallraveShërbimetMallrat Nomenklatura AS Nomenklatura,
Realizimi i MallraveShërbimetMallrat.Link AS Document,
Realizimi i mallrave, shërbimeve, mallrave Sasia AS Sasi,
Shitja e MallraveShërbimetMallrat.Shuma AS Shuma
NGA
Dokument.Realizimi iMallraveShërbimet.Mallrat AS Shitja eMallraveShërbimetMallrat
NDAJ SIPAS
Implementimi i MallraveShërbimetMallrat.Lidhja.Data
REZULTATET
SUM (sasia),
SUM (Shuma)
AKTIV
JANË TË PËRBASHKËT,
Nomenklatura

Si rezultat i ekzekutimit të pyetjes, marrim rezultatin e mëposhtëm:

Në të cilin niveli i parë i grupimit është grumbullimi i të gjitha fushave të kërkuara.

Renditja

Operatori ORDER BY përdoret për të renditur rezultatin e pyetjes.

Renditja për llojet primitive (varg, numër, boolean) ndjek rregullat e zakonshme. Për fushat e llojeve të referencës, renditja ndodh nga përfaqësimi i brendshëm i lidhjes (identifikues unik), dhe jo nga kodi ose nga përfaqësimi i lidhjes.

ZGJIDH

NGA
Referenca.Nomenklatura AS Nomenklatura
NDAJ SIPAS
Emri

Kërkesa do të shfaqë një listë me emrat e katalogut të listës së aksioneve, të renditur sipas alfabetit.

Porositja automatike

Rezultati i një pyetjeje pa renditje është një grup rreshtash i paraqitur në mënyrë kaotike. Zhvilluesit e platformës 1C nuk garantojnë daljen e vargjeve në të njëjtën sekuencë kur ekzekutojnë të njëjtat pyetje.

Nëse keni nevojë të shfaqni të dhënat e tabelës në një rend të qëndrueshëm, duhet të përdorni konstruksionin "Autoorder".

ZGJIDH
Emri i nomenklaturës AS Emri
NGA
Referenca.Nomenklatura AS Nomenklatura
POROSIT AUTO

Tabelat virtuale

Tabelat virtuale në 1C janë një veçori unike e gjuhës së pyetjeve 1C, e cila nuk gjendet në sintaksa të tjera të ngjashme. Tabela virtuale është një mënyrë e shpejtë për të marrë informacionin e profilit nga regjistrat.

Secili nga llojet e regjistrave ka grupin e vet të tabelave virtuale, të cilat mund të ndryshojnë në varësi të cilësimeve të regjistrit.

  • një prerje e së parës;
  • një prerje e kësaj të fundit.
  • mbetjet;
  • revolucione;
  • bilancet dhe qarkullimet.
  • lëvizjet nga nënkonto;
  • revolucione;
  • RPM Dt Kt;
  • mbetjet;
  • bilancet dhe qarkullimet
  • nënkonto.
  • bazë;
  • të dhëna grafike;
  • periudha aktuale e vlefshmërisë.

Për një zhvillues zgjidhje, të dhënat merren nga një tabelë (virtuale), por në fakt, platforma 1C merr nga shumë tabela, duke i shndërruar ato në formën e dëshiruar.

ZGJIDH
ProduktetNë magazina Bilancet dhe qarkullimet.Nomenklatura,
ProduktetNë magazina, bilancet dhe qarkullimi.Sasia Bilanci fillestar,
MallratNë magazina Bilancet dhe Qarkullimet.Sasia Qarkullimi,
MallratNë magazina BilancetDhe Qarkullimi.Numri Të ardhurat,
Mallrat Në magazina Bilancet dhe Qarkullimet. Sasia Konsumi,
ProduktetNë MagazinaBilanciDhe Xhiro.Sasia Bilanci përfundimtar
NGA
Regjistri i Akumulimit.MallratNë magazina.Bilanci DHE Qarkullimet AS MallratNë magazinatBilanci dhe qarkullimi

Një pyetje e tillë ju lejon të merrni shpejt një sasi të madhe të dhënash.

Parametrat e tabelës virtuale

Një aspekt shumë i rëndësishëm i punës me tabela virtuale është përdorimi i parametrave. Parametrat e tabelës virtuale - parametra të specializuar për përzgjedhje dhe akordim.

Për tabela të tilla, konsiderohet e gabuar përdorimi i përzgjedhjes në konstruktin "WHERE". Përveç faktit që kërkesa bëhet jo optimale, është e mundur të merren të dhëna të pasakta.

Një shembull i përdorimit të parametrave të tillë:

Regjistri i akumulimit. Produktet në magazina. Mbetjet dhe qarkullimet (& Periudha e fillimit, & Periudha e Fundit, Muaji, Lëvizjet dhe Kufijtë e Periudhës, Nomenklatura = & Nomenklatura e dëshiruar)

Algoritmi i tabelave virtuale

Për shembull, tabela virtuale më e përdorur e tipit "Reziduals" ruan të dhëna nga dy tabela fizike - balancat dhe lëvizjet.

Kur përdorni një tabelë virtuale, sistemi kryen manipulimet e mëposhtme:

  1. Ne marrim vlerën e llogaritur më të afërt për sa i përket datës dhe dimensioneve në tabelën totale.
  2. "Shto" shumën nga tabela e lëvizjes në shumën nga tabela totale.


Veprime të tilla të thjeshta mund të përmirësojnë ndjeshëm performancën e sistemit në tërësi.

Duke përdorur Query Builder

Konstruktori i pyetjeve- një mjet i integruar në sistemin e ndërmarrjes 1C, i cili lehtëson shumë zhvillimin e pyetjeve në bazën e të dhënave.

Konstruktori i pyetjeve ka një ndërfaqe mjaft të thjeshtë, intuitive. Megjithatë, le të hedhim një vështrim më të afërt në përdorimin e konstruktorit të pyetjeve.

Konstruktori i tekstit të pyetjes niset nga menyja e kontekstit (me butonin e djathtë të miut) në vendin e duhur në kodin e programit.

Përshkrimi i konstruktorit të pyetjeve 1C

Le të hedhim një vështrim më të afërt në secilën skedë të dizajnit. Përjashtim bën skeda Ndërtues, e cila është një temë për një diskutim tjetër.

Tabela Tabelat dhe Fushat

Kjo skedë specifikon burimin e të dhënave dhe fushat që dëshironi të shfaqni në raport. Në fakt, ndërtimet ZGJIDHNI .. NGA janë përshkruar këtu.

Burimi mund të jetë një tabelë fizike e bazës së të dhënave, tabela e regjistrit virtual, tabela të përkohshme, pyetje të ndërlidhura, etj.

Në menunë e kontekstit të tabelave virtuale, mund të vendosni parametrat e tabelës virtuale:

Skeda e lidhjeve

Skeda përdoret për të përshkruar lidhjet e disa tabelave, krijon konstruksione me fjalën LIDHJE.

Skeda e grupimit

Në këtë skedë, sistemi ju lejon të gruponi dhe përmbledhni fushat e kërkuara të rezultatit të tabelës. Përshkruan përdorimin e ndërtimeve GRUPI NGA, SHUMË, MINIMUM, MESATAR, MAKSIMUM, SASI, NUMRI I NDRYSHME.

Skeda e kushteve

Përgjegjës për gjithçka që shkon në tekstin e kërkesës pas ndërtimit WHERE, pra për të gjitha kushtet e vendosura në të dhënat e marra.

Skeda e avancuar

Tab Për më tepërështë e mbushur me të gjitha llojet e parametrave që janë shumë të rëndësishëm. Le të shqyrtojmë secilën nga vetitë.

Grupimi Marrja e të dhënave:

  • Së pari N- një parametër që kthen vetëm N regjistrime në pyetje (operatori FIRST)
  • Asnjë përsëritje- siguron veçantinë e të dhënave të marra (operatori NDRYSHE)
  • E lejuar- ju lejon të zgjidhni vetëm ato regjistrime që sistemi ju lejon të zgjidhni duke marrë parasysh (ndërtimi LEJOHET)

Grupimi Lloji i kërkesës përcakton se çfarë lloji i pyetjes do të jetë: marrja e të dhënave, krijimi i një tabele të përkohshme ose shkatërrimi i një tabele të përkohshme.

Më poshtë është një flamur Blloko të dhënat e marra për ndryshime të mëvonshme... Kjo ju lejon të aktivizoni mundësinë e vendosjes së një bllokimi të të dhënave, i cili siguron sigurinë e të dhënave që nga momenti kur ato lexohen për t'u ndryshuar (e rëndësishme vetëm për modalitetin Automatik të kyçjeve, struktura PËR NDRYSHIM).

Sindikatat / Skeda e pseudonimeve

Në këtë skedë të projektuesit të pyetjeve, mund të vendosni aftësinë për të kombinuar tabela dhe pseudonime të ndryshme (HOW ndërtimi). Tabelat tregohen në të majtë. Nëse vendosni flamujt përpara tabelës, do të përdoret konstruksioni UNION, përndryshe - UNION ALL (të dy metodat ndryshojnë). Ana e djathtë tregon korrespondencën e fushave në tabela të ndryshme, nëse nuk specifikohet asnjë përputhje, pyetja do të kthehet NULL.

Skeda e porosisë

Këtu specifikoni rendin e renditjes së vlerave (ORDER BY) - në zbritje (DESCENT) ose në rritje (RETURN).

Ekziston edhe një flamur interesant - Porositja automatike(ne kerkese - AUTO POROSIT). Si parazgjedhje, sistemi 1C shfaq të dhënat në një rend "kaotik". Nëse vendosni këtë flamur, sistemi do t'i renditë të dhënat sipas të dhënave të brendshme.

Skeda e paketës së pyetjeve

Në skedën e projektuesit të pyetjeve, mund të krijoni të reja, dhe gjithashtu ta përdorni si navigim. Në tekstin e kërkesës, paketat ndahen me simbolin ";" (presje).

Butoni i pyetjeve në Ndërtuesin e pyetjeve

Në këndin e poshtëm të majtë të konstruktorit të pyetjes ka një buton Query, me të cilin mund të shikoni tekstin e pyetjes në çdo kohë:

Në këtë dritare, ju mund të bëni rregullime në kërkesë dhe ta ekzekutoni atë.


Duke përdorur tastierën e pyetjeve

Konsola e pyetjeve është një mënyrë e lehtë dhe e përshtatshme për të korrigjuar pyetjet komplekse dhe për të marrë informacion shpejt. Në këtë artikull unë do të përpiqem të përshkruaj se si të përdoret Query Console dhe të jap një lidhje për të shkarkuar Query Console.

Le të hedhim një vështrim më të afërt në këtë mjet.

Shkarkoni 1C Query Console

Para së gjithash, për të filluar me Query Console, duhet ta shkarkoni nga diku. Proceset zakonisht ndahen në dy lloje - forma të kontrolluara dhe të rregullta (ose, ndonjëherë, ato thirren në 8.1 dhe 8.2 / 8.3).

Unë u përpoqa t'i kombinoja këto dy pamje në një përpunim - në mënyrën e kërkuar të funksionimit, hapet forma e kërkuar (në modalitetin e kontrolluar, tastiera funksionon vetëm në modalitetin e trashë).

Përshkrimi i tastierës së pyetjeve 1C

Le të fillojmë të shikojmë konsolën e pyetjeve me një përshkrim të panelit kryesor të përpunimit:

Në kokën e tastierës së pyetjeve, mund të shihni kohën e ekzekutimit të pyetjes së fundit me saktësi milisekonda, kjo ju lejon të krahasoni konstruksione të ndryshme për sa i përket performancës.

Grupi i parë i butonave në shiritin e komandës është përgjegjës për ruajtjen e kërkesave aktuale në një skedar të jashtëm. Kjo është shumë e përshtatshme, gjithmonë mund të ktheheni në shkrimin e një pyetjeje komplekse. Ose, për shembull, mbani një listë të shembujve tipikë të ndërtimeve të caktuara.

Në të majtë, në fushën Query, mund të krijoni pyetje të reja dhe t'i ruani ato në një strukturë peme. Grupi i dytë i butonave është vetëm përgjegjës për menaxhimin e listës së kërkesave. Me të, ju mund të krijoni, kopjoni, fshini, zhvendosni një kërkesë.

  • Ekzekutonihetim- ekzekutim i thjeshtë dhe marrja e rezultatit
  • Run paketën- ju lejon të shikoni të gjitha kërkesat e ndërmjetme në grupin e kërkesave
  • Shikimi i tabelave të përkohshme- ju lejon të shihni rezultatet që kthehen nga pyetjet e përkohshme në tabelë

Parametrat e kërkesës:

Ju lejon të vendosni parametrat aktualë për kërkesën.

Në dritaren e parametrave të pyetjes, sa vijon është interesante:

  • Butoni Merr nga kërkesa automatikisht gjen të gjithë parametrat në kërkesën për lehtësinë e zhvilluesit.
  • Flamuri Parametra uniformë për të gjitha kërkesat- kur instalohet, përpunimi i tij nuk pastron parametrat kur kalon nga një kërkesë në një kërkesë në listën e përgjithshme të kërkesave.

Cakto parametrin si një listë vlerashështë shumë e thjeshtë, kur zgjidhni një vlerë parametri, shtypni butonin për të pastruar vlerën (kryq), sistemi do të ofrojë të zgjidhni një lloj të dhënash, ku duhet të zgjidhni "Lista e vlerave":

Gjithashtu në panelin e sipërm ka një buton për thirrjen e cilësimeve të konsolës së pyetjeve:

Këtu mund të specifikoni opsionet për pyetjet e ruajtjes automatike dhe opsionet për ekzekutimin e një pyetjeje.

Teksti i pyetjes futet në fushën e pyetjes së konsolës. Kjo mund të bëhet nga një grup i thjeshtë testimi i pyetjeve ose duke thirrur një mjet të veçantë - projektuesin e pyetjeve.

Konstruktori i pyetjeve 1C 8 thirret nga menyja e kontekstit (butoni i djathtë i miut) kur klikoni në fushën e hyrjes:

Gjithashtu në këtë meny ka funksione të tilla të dobishme si pastrimi ose shtimi i karaktereve të ndërprerjes së linjës ("|") në kërkesë, ose marrja e kodit të kërkesës në një formë kaq të përshtatshme:

Kërkesë = Kërkesë e re;
Kërkesë.Text = "
| ZGJIDH
| Monedhat.Lidhje
| NGA
| Drejtoria Monedhat AS Valuta ”;
QueryResult = Query.Run ();

Në fushën e poshtme të tastierës së pyetjeve, shfaqet fusha e rezultatit të pyetjes, për të cilën është krijuar ky përpunim:



Gjithashtu, tastiera e pyetjeve, përveç listës, mund të shfaqë të dhëna në formën e një peme - për pyetjet që përmbajnë totale.

Optimizimi i pyetjeve

Një nga pikat më të rëndësishme në rritjen e produktivitetit të 1C Enterprise 8.3 është optimizimikërkesat... Kjo pikë është gjithashtu shumë e rëndësishme kur kalimi i certifikimit... Më poshtë do të flasim për arsyet tipike të punës jooptimale të pyetjeve dhe metodave të optimizimit.

Zgjedhjet në tabelën virtuale duke përdorur konstruksionin WHERE

Është e nevojshme të aplikohen filtra në detajet e tabelës virtuale vetëm përmes parametrave BT. Në asnjë rast nuk duhet të përdorni ndërtimin WHERE për përzgjedhje në një tabelë virtuale, ky është një gabim i madh nga pikëpamja e optimizimit. Në rastin e përzgjedhjes duke përdorur WHERE, në fakt, sistemi do të marrë TË GJITHA regjistrimet dhe vetëm atëherë do të zgjedhë ato të nevojshme.

E DREJTË:

ZGJIDH

NGA
Regjistri i akumulimit. Zgjidhjet e ndërsjella me DeponentëtOrganizatat. Bilancet (
,
Organizimi = & Organizimi
Dhe Individual = & Individual) SI Marrëveshje të ndërsjella me organizatat deponuese

JO si duhet:

ZGJIDH
Zgjidhjet e ndërsjellaMe DeponentëtOrganizatatBilanci.Bilanci i shumës
NGA
Regjistri i Akumulimit.Vendosjet e ndërsjellaMe DeponentOrganizatat.Bilanci (,) AS Vendbanime të ndërsjella me DeponentOrganizatatBilanci
KU
VendbanimetMe DeponentOrganizatatBilanci.Organizimi = & Organizimi
Dhe zgjidhjet e ndërsjella me deponuesitOrganizatatBilanci.Personale = & Individët

Marrja e vlerës së një fushe të tipit kompleks përmes një pike

Kur merr të dhëna të një lloji të përbërë në një pyetje përmes një pike, sistemi bashkohet me një bashkim të majtë saktësisht aq tabela sa ka lloje të mundshme në fushën e tipit të përbërë.

Për shembull, është shumë e padëshirueshme që optimizimi t'i referohet fushës së regjistrimit të regjistrit - regjistruesi. Regjistruesi ka një lloj të dhënash të përbërë, duke përfshirë të gjitha llojet e mundshme të dokumenteve që mund të shkruajnë të dhëna në regjistër.

JO si duhet:

ZGJIDH
Vendosja e regjistrimeve.Regjistruesi.Data,
Set Rekordesh.Numri
NGA
Regjistri i Akumulimit.ProduktetOrganizatat AS SetRecords

Kjo është, në fakt, një kërkesë e tillë nuk do t'i referohet një tabele, por 22 tabelave të bazës së të dhënave (ky regjistër ka 21 lloje regjistruesish).

E DREJTA:

ZGJIDH
ZGJEDHJA
WHEN GoodsOrg.Lidhja e Regjistruesit Dokument.Realizimi i MallraveShërbimet
PASTAJ EXPRESS (GoodsOrg.Dokumenti i Regjistruesit AS.Realizimi i MallraveShërbimet) .Data
WHEN GoodsOrg.Lidhja e Regjistruesit Dokument.Ardhja e MallraveShërbimet
PASTAJ EXPRESS (GoodsOrg.Dokumenti i Regjistruesit AS. Arritja e MallraveShërbimet) .Data
FUND SI DATE,
ProdukteOrg.Sasia
NGA
Regjistri i Akumulimit.ProduktetOrg

Ose opsioni i dytë është të shtoni një informacion të tillë në mbështetëse, për shembull, në rastin tonë, shtoni datën.

E DREJTA:

ZGJIDH
ProduktetOrganizatat.Data,
ProdukteOrganizatat.Numri
NGA
Regjistri i Akumulimit.Mallrat e Organizatave AS Mallrat e Organizatave

Nënpyetje në gjendje të bashkuar

Për optimizim, është e papranueshme përdorimi i nënpyetjeve në kushtet e bashkimit, kjo ngadalëson ndjeshëm pyetjen. Këshillohet përdorimi i VT në raste të tilla. Për t'u lidhur, duhet të përdorni vetëm metadata dhe objekte BT, duke i indeksuar më parë ato nga fushat e lidhjes.

JO si duhet:

ZGJIDH…

nyja e majte (
ZGJIDH NGA REGJISTRI I INFORMACIONIT.Limitet
KU…
NGARKONI NGA ...
) ON…

E DREJTA:

ZGJIDH…
Kufijtë e POST-it
NGA Regjistri i Informacionit.Limitet
KU…
NGARKONI NGA ...
INDEKSI NGA…;

ZGJIDH…
NGA Dokumenti.Realizimi i MallraveShërbimet
Limitet e BASHKIMIT LEFT
ON…;

Bashkimi i të dhënave me tabela virtuale

Ka situata kur sistemi nuk funksionon në mënyrë optimale kur bashkohet me një tabelë virtuale me të tjerët. Në këtë rast, për të optimizuar performancën e pyetjes, mund të provoni të vendosni tabelën virtuale në tabelën e përkohshme, duke kujtuar të indeksoni fushat e bashkuara në pyetjen e përkohshme të tabelës. Kjo për faktin se VT-të shpesh përmbahen në disa tabela fizike të DBMS, si rezultat, bëhet një nënpyetje për zgjedhjen e tyre dhe problemi është i ngjashëm me pikën e mëparshme.

Përdorimi i filtrave në fusha të pa indeksuara

Një nga gabimet më të zakonshme kur shkruani pyetje është përdorimi i kushteve në fusha jo të indeksuara, kjo bie ndesh rregullat e optimizimit të pyetjeve. DBMS nuk mund ta kryejë pyetjen në mënyrë optimale nëse në pyetje imponohet filtrimi sipas fushave jo të indeksuara. Nëse merret një tabelë e përkohshme, është gjithashtu e nevojshme të indeksohen fushat e bashkimit.

Duhet të ketë një indeks të përshtatshëm për çdo kusht. Një indeks që plotëson kërkesat e mëposhtme është i përshtatshëm:

  1. Indeksi përmban të gjitha fushat e listuara në kusht.
  2. Këto fusha janë të vendosura në fillim të indeksit.
  3. Këto zgjedhje janë në një rresht, d.m.th., vlerat që nuk përfshihen në kushtin e pyetjes nuk janë "të lidhura" midis tyre.

Nëse DBMS nuk gjen indekset e sakta, atëherë e gjithë tabela do të skanohet - kjo do të ketë një ndikim shumë negativ në performancën dhe mund të çojë në bllokim të zgjatur të të gjithë grupit të të dhënave.

Përdorimi i logjikës OSE në kushte

Kjo është e gjitha, ky artikull mbuloi bazat e aspekteve të optimizimit të pyetjeve që duhet të dijë çdo ekspert 1C.

Një kurs video falas shumë i dobishëm për zhvillimin dhe optimizimin e pyetjeve, rekomandoj shumë për fillestarët dhe jo vetëm!

Kujdes! Ky është një version hyrës i mësimit, materialet e të cilit mund të jenë të paplota.

Identifikohu si student

Identifikohu si student për të aksesuar materialet shkollore

1C 8.3 gjuha e pyetjeve për programuesit fillestarë: operatorët BETWEEN dhe B

Operatori logjik BETWEEN

Operatori NDËRMJET ju lejon të kontrolloni nëse është vlera e përfshirë shprehja e specifikuar në të majtë të saj në diapazonin e specifikuar në të djathtë ( së bashku me kufijtë e diapazonit, domethënë përfshirëse).

Kështu, në vend të

Nëse, përkundrazi, është e nevojshme të zgjidhni të gjithë ushqimin, përmbajtja kalorike e të cilave nuk përfshihet në gamë, atëherë forma e mëposhtme e mohimit do të jetë e përshtatshme (u shfaq një grimcë JO):

Operatori NDËRMJET mund të aplikohet në më shumë sesa vetëm vargje numerike. Ajo funksionon mirë edhe me datat:

Operatori logjik B

Kontrolloni për një ndeshje me një nga të listuarit

Operatori V ju lejon të kontrolloni nëse a përputhet vlera shprehja e specifikuar në të majtë të saj, me një nga vlerat përshkruar në të djathtë.

Kështu, në vend të

mund të shkruhet më konciz

Dhe rezultati do të jetë i njëjtë:

Nëse, përkundrazi, është e nevojshme të zgjidhni të gjithë ushqimin, ngjyra e të cilave nuk përkon me ndonjë vlerë nga lista, atëherë forma e mëposhtme e mohimit është e përshtatshme (u shfaq një grimcë JO):

Kontrollimi nëse një vlerë përputhet me një nga rezultatet e pyetjes

Supozoni se duhet të zgjedhim nga baza vetëm ato ngjyra që janë të pranishme në përshkrimin e ushqimit. Kështu, në listën e përzgjedhur, për shembull, ngjyra e zezë nuk duhet të jetë e pranishme, pasi nuk ka ushqim të zi në bazën tonë të të dhënave. Po lexoni një version hyrës të mësimit, janë gjetur mësimet e plota.

Një nga opsionet se si mund të bëhet kjo është përdorimi i operatorit boolean V, në të djathtë të së cilës do të ketë një nënpyetje që zgjedh emrat e ngjyrave nga të gjitha hyrjet në drejtori Ushqimi:

ZGJIDHni Emrin NGA Drejtoria. Artikulli i ngjyrave WHERE IN (ZGJIDHni artikullin me ngjyra NGA ushqimi i referencës)

Si një digresion, do të përmend se nga një kërkesë e brendshme është e mundur të hyni në fushat e një kërkese të jashtme.

Përsëri, për këtë formë operatori V, përdorimi i një grimce është gjithashtu i disponueshëm JO përballë tij.

Kontrollimi i anëtarësimit sipas hierarkisë për libra referencë

Për drejtoritë, kontrolli mund të kryhet edhe për anëtarësimin në hierarki.

Së pari, le të shohim një shembull të një drejtorie hierarkike. Hapni drejtorinë "Qytetet" në bazën tonë të të dhënave:

Ju lutemi vini re se elementet e tij janë të ndryshëm nga drejtoritë e tjera ( Ushqimi, Ngjyrat, Shije) nga prania e dosjeve të verdha. Kjo grupet e drejtorive.

Grupet ndryshojnë nga elementët e rregullt në atë që të tjerët mund të përfshijnë grupe dhe elemente. Ashtu si dosjet përfshijnë dosje dhe skedarë të tjerë.

Për të parë përmbajtjen e një grupi, klikoni dy herë mbi të:

Për të ngjitur një nivel, klikoni dy herë grupin përsëri:

Kështu, një direktori hierarkike mund të përmbajë elementë të rregullt (për shembull, Rio de Janeiro, Salvador) dhe grupe (për shembull, Brazil, Indi). Po lexoni një version hyrës të mësimit, janë gjetur mësimet e plota.

Çdo element (qoftë një grup ose një element i rregullt) mund të ketë një prind. Për shembull, prindi i elementit Rio de Janeiro është grupi Brazil:

Dhe kjo është e vërtetë sepse Rio de Janeiro është pjesë e grupit Brazil në hierarkinë e drejtorive:

Tani le të shkruajmë një pyetje që do të kërkojë grupin e vendit të zgjedhur dhe të gjithë elementët e qytetit të përfshirë në të.

Vini re se ampersand (&) shfaqet para emrit CountryGroup në tekstin e pyetjes. Emrat me ampersand njihen automatikisht nga sistemi si parametra që duhet të specifikohen përpara se të ekzekutohet kërkesa.

Pasi ta fusim këtë kërkesë në tastierë dhe të shtypim butonin "Run" për ta përditësuar, do të jemi në gjendje të vendosim këtë parametër:

Zgjidhni grupin "Rusia" si vlerën e tij (butoni Zgjidh):

Nëse tani shtypim butonin "Run", rezultati i pyetjes do të jetë si më poshtë:

Rezultati i pyetjes përfshin vetë grupin (Rusi) dhe të gjithë elementët që janë pjesë e tij (Perm, Krasnoyarsk dhe Voronezh).

Nëse në vend të Rusisë, zgjidhni "Brazil", rezultati do të jetë si më poshtë:

Kështu, rezultati i operatorit NË HIERARKI do të jetë E VËRTETË nëse vlera e shprehjes në të majtë është një referencë për një element fjalori dhe përfshihet në grupin e vlerave në të djathtë (Brazil) ose hierarkikisht i përket një grupi të përfshirë në këtë grup (Sao Paulo, Rio de Janeiro, Salvador).

Rezultati i pyetjes mund të përdoret gjithashtu si një grup vlerash për t'u kontrolluar. Në këtë rast, në të djathtë të operatorit V ju duhet të specifikoni një përshkrim të kërkesës:

Për operatorin NË HIERARKI përdorimi i grimcave është gjithashtu i disponueshëm JO përballë tij.

Merrni testin

Filloni testin

1. Operatori logjik BETWEEN kontrollon vlerën

2. Shprehja Boolean 1 MES 1 DHE 1

3. Shprehja Boolean 1 JO MES 2 DHE 2

4. Operatori logjik B kontrollon

5. Operatori logjik B ju lejon të kontrolloni

Lista është një atribut integral i shfaqjes së informacionit në çdo konfigurim të krijuar në platformën 1C: Enterprise 8.1. Për punë efektive me lista që përmbajnë një sërë të dhënash, programet e bazuara në platformën 1C: Enterprise 8.1 janë të pajisura me mekanizma të përshtatshëm dhe të fuqishëm për zgjedhjen dhe renditjen. V.V. Peshkimi, kompania 1C.


Oriz. një

Listat

Me cilat lista hasin përdoruesit? Këto mund të jenë lista dokumentesh në revistat përkatëse. Pothuajse çdo direktori e mbushur me të dhëna paraqitet në formën e një liste, e cila, si rregull, ka një hierarki (grupe-dosje ose elementë vartës). Shpesh, për të zgjedhur një element, programi gjeneron lista automatikisht ose duke iu bindur logjikës së përcaktuar nga zhvilluesit.

Pothuajse në të gjitha listat, mund të përdorni mekanizmat e përzgjedhjes (nëse nuk është e ndaluar në mënyrë eksplicite nga zhvilluesi) dhe renditje të ndryshme (Fig. 1). Në program, këta mekanizma janë të lidhur pazgjidhshmërisht me njëri-tjetrin. Le të shqyrtojmë se si t'i përdorim ato në mënyrë korrekte dhe efektive.

Oriz. një

Mekanizmi i renditjes

Për çfarë shërben mekanizmi i renditjes? Së pari, ajo, siç sugjeron emri, ju lejon të renditni listën sipas kriterit të dëshiruar.

Së dyti, platforma 1C: Enterprise 8.1 përdor në mënyrë aktive mekanizmin e kërkimit të shpejtë. Ky mekanizëm ju lejon të gjeni shpejt elementin e kërkuar në çdo listë duke shtypur karakteret e para (Fig. 2). Por në listat dinamike (për shembull, një listë e artikujve të katalogut ose një listë dokumentesh), kërkimi i shpejtë funksionon vetëm në kushtet sipas të cilave klasifikimi është i disponueshëm.

Oriz. 2

Ju mund të shikoni të gjitha detajet e listës së disponueshme për renditje duke hapur dritaren "Filtro and sort". Kjo dritare është zakonisht e disponueshme në panelin e veprimeve (Fig. 3) ose në menynë e kontekstit të listës që hapet me butonin e djathtë të miut (Fig. 4). Në dritaren "Përzgjedhja dhe renditja", shkoni te skeda "Sorting", e cila tregon të gjitha detajet e disponueshme me të cilat klasifikimi është i mundur.

Oriz. 3

Oriz. 4

Figura 3 tregon se lista e dokumenteve "Shitjet e mallrave dhe shërbimeve" mund të renditet sipas dy atributeve: "Data" dhe "Numri". Sidoqoftë, përmbajtja e informacionit të dritares së renditjes nuk kufizohet vetëm në këtë. Këtu mund të shihni se çfarë klasifikimi është aktivizuar aktualisht (pjesa e majtë e dritares) dhe një listë e të gjitha kushteve të disponueshme për renditje (pjesa e djathtë). Ju gjithashtu mund të personalizoni renditjen e dëshiruar dhe renditjen e tij. Ju lutemi vini re: atributi aktual i renditjes do të shënohet në listë me një simbol të veçantë - një shigjetë që tregon drejtimin e renditjes. Tre shembuj të renditjes së ndryshme (përfshirë të kombinuar) dhe se si shfaqet në listë janë paraqitur në Figurën 5.

Oriz. 5

Vini re se shembulli më poshtë ilustron mundësinë e përdorimit të renditjes së kombinuar (njëkohësisht nga disa atribute). Në rastin tonë, kjo është renditja sipas datës në rend zbritës (datat më të vjetra në fund) dhe sipas numrave në rend rritës (numrat më të mëdhenj në fund).

Në secilën listë, mund të ruani veçmas renditjen e dëshiruar. Mjafton të aktivizoni kutinë e kontrollit "Përdorni këtë cilësim të renditjes kur hapni" dhe klikoni "OK". Sistemi do të kujtojë cilësimin dhe herën tjetër që të hapni këtë listë, do të vendosë renditjen e ruajtur.

Ju mund ta renditni shpejt listën sipas atributit të kërkuar duke klikuar në kokën me emrin e këtij atributi.

Për shembull, në rastin tonë, mund të klikoni në atributin "Data" (do të aktivizohet renditja e datave në rend rritës dhe mund të përdorni një kërkim të shpejtë sipas datës) ose në atributin "Numër" (rendimi sipas numrave në rend rritës do të ndizet, pas së cilës mund të kërkoni shpejt sipas numrit). Është gjithashtu e lehtë të përmbysësh renditjen - thjesht klikoni përsëri në të njëjtin atribut në kokën e listës.

Mekanizmi i përzgjedhjes

Përzgjedhja është një mekanizëm i fuqishëm i platformës "1C: Enterprise 8.1", i cili ju lejon të punoni në mënyrë efektive me listat, edhe nëse ato përmbajnë më shumë se një duzinë ose qindra mijëra elementë. Për të filluar, le të shqyrtojmë funksionimin e mekanizmit të përzgjedhjes në rastin e përgjithshëm.

Pothuajse kudo ku ka një listë (zakonisht në formën e një tabele), mund të përdorni mekanizmin e përzgjedhjes, i cili aktivizohet ose nga butoni përkatës në shiritin e veprimit ose në menynë e ndjeshme ndaj kontekstit të listës (Fig. 3 dhe 4). Nëse përzgjedhja është e mundur për listën e kërkuar, do të hapet dritarja "Filter and Sort". Ai do të shfaqë të gjitha llojet e mundshme të kërkesave të disponueshme për përzgjedhje. Lista e elementeve të disponueshme të përzgjedhjes varet nga vendi ku do të përdoret kjo përzgjedhje. Në përgjithësi, duhet të gjeni një ose disa elementë të nevojshëm për zgjedhjen, të specifikoni vlerat dhe të aktivizoni kombinimin e konfiguruar të kritereve.

Lista e kushteve të mundshme për një lloj të caktuar përzgjedhjeje varet nga lloji i elementeve të përdorura në të. Për shembull, për numrat dhe datat, do të jeni në gjendje të specifikoni vargjet, për vargjet - kërkoni për një nënvarg (kushtet "Përmban" / "Nuk përmban"), dhe për elementët e drejtorisë - plotësimi i listave dhe analizimi i hierarkisë.

Nëse specifikoni disa kritere përzgjedhjeje në të njëjtën kohë, lista do të shfaqë vetëm ato artikuj që plotësojnë të gjitha kriteret e specifikuara.

Mekanizmat e përzgjedhjes dhe renditjes sipas shembujve

Le të përpiqemi të zgjidhim disa probleme në bazën e të dhënave demo ("Kontabiliteti i Ndërmarrjeve", botimi 1.6). Për shembull, le të shfaqim dokumentet e krijuara për palën tjetër "Simon dhe Shuster LLC" në revistën "Dokumentet e blerësve". Le të bëjmë një rezervë menjëherë që do të përshkruajmë rregullat dhe logjikën e përzgjedhjes, standarde për platformën 1C: Enterprise 8.1, pa iu referuar ndonjë konfigurimi specifik dhe aftësive shtesë të shërbimit të zbatuara në të.

Pra, ne hapim ditarin e dokumenteve "Dokumentet e blerësve". Në gjendjen standarde, pa përzgjedhjen e aktivizuar, të gjitha dokumentet e të gjithë blerësve shfaqen në ekran (edhe në bazën e të dhënave demo duhen më shumë se një faqe).

Duhet të shikojmë shpejt të gjitha dokumentet e palës tjetër "Simon & Shuster LLC". Detyra zbatohet si më poshtë - hapet një dritare përzgjedhjeje, në elementin "Contractor", nga direktoria zgjidhet pala tjetër "Simon and Shuster LLC" (Fig. 6) dhe shtypet "OK". Problemi është zgjidhur (fig. 7).

Oriz. 6

Oriz. 7

Për të përdorur shpejt përzgjedhjen e kërkuar, mjafton që menjëherë të filloni të zgjidhni kriterin e kërkuar. Nuk ka nevojë të kontrolloni kutinë pranë përzgjedhjes së përdorur. Programi do ta bëjë vetë pasi të specifikohet kriteri i nevojshëm. Mund të aplikoni shpejt kriteret e përzgjedhjes së personalizuar duke shtypur kombinimin e tastit Ctrl + Enter *.

Ju lutemi vini re gjithashtu se kur specifikoni vlerat në elementët e përzgjedhjes (në shembullin tonë, palës tjetër "Simon & Shuster LLC"), në shumicën e rasteve do të funksionojë mekanizmi i përzgjedhjes së shpejtë, i cili është i përhapur në platformën 1C: Enterprise 8.1. Në shembullin tonë, mjaftonte të shkruani karakteret e para të emrit të palës tjetër ose kodin e saj direkt në fushën e vlerës së përzgjedhjes, shtypni Enter ose Tab dhe sistemi automatikisht do të "merrte me mend" elementin e kërkuar të drejtorisë.

Mbani në mend se përzgjedhja e shpejtë përshpejton zgjedhjen e vlerave që ju njihni. Përdoreni atë kudo që të jetë e mundur.

Tani do të shfaqim një listë artikujsh, emrat e të cilëve përmbajnë fjalën "Çajni". Për ta bërë këtë, hapni librin e referencës "Nomenklatura", telefononi dritaren e përzgjedhjes, zgjidhni kushtin e krahasimit "Përmban" në elementin "Emri" dhe specifikoni fjalën e kërkuar (Fig. 8).

Oriz. tetë

Lloji i krahasimit "Përmban" nuk u zgjodh rastësisht. Është ai që ju lejon të gjeni fjalën e dëshiruar (ose një pjesë të saj) kudo në emër të nomenklaturës. Nëse lini llojin e krahasimit "E barabartë", lista do të shfaqë vetëm ato artikuj të nomenklaturës që janë emërtuar saktësisht ashtu siç është shkruar pyetja. Dhe nuk ka të tillë në bazën tonë demo (d.m.th., asnjë element i vetëm nuk do të shfaqet).

Meqenëse artikulli ka atributin "Emri i plotë" në demobasin tonë, ai është i pranishëm në listën e përzgjedhjeve të disponueshme si një artikull i veçantë. Megjithatë, vetëm "Përmban" / "Nuk përmban" janë të disponueshme si kushte krahasimi. Arsyeja është se atributi "Emri i plotë" në bazën tonë të të dhënave demo është një varg me gjatësi të pakufizuar.

Nëse kërkoni jo me emër, por me emër të plotë, është më mirë të zgjidhni përdorimin e përzgjedhjes me emër. Përndryshe, zgjedhja do të përdoret si me emër ashtu edhe me emër të plotë, gjë që mund të mos jetë gjithmonë e nevojshme (Fig. 9).

Oriz. 9

Për lehtësinë e punës me elementët e drejtorisë gjatë përdorimit të filtrave, është më mirë të fikni përkohësisht shfaqjen e hierarkisë (Fig. 10).

Oriz. 10

Si detyrë e tretë, le të shohim vetëm dokumentet "Shitjet e mallrave dhe shërbimeve" në revistën e dokumenteve "Dokumentet e blerësve". Zgjidhja e këtij problemi do të tregojë veçantinë e një prej llojeve të përzgjedhjes të disponueshme vetëm në revistat e dokumenteve.

Hapni revistën "Dokumentet e blerësve" dhe specifikoni dokumentin "Shitja e mallrave dhe shërbimeve" në elementin e përzgjedhjes "Lloji i dokumentit". Vetë programi ofron mundësinë për të zgjedhur një lloj të caktuar dokumenti nga ato të përfshira në këtë revistë. Ekziston edhe një buton personal për këtë në shiritin e veprimit (Fig. 11).

Oriz. njëmbëdhjetë

Ngjashëm me përzgjedhjen sipas llojit të dokumenteve, platforma do të sugjerojë automatikisht elementin e përzgjedhjes "Struktura e vartësisë" nëse marrëdhëniet midis dokumenteve janë konfiguruar në konfigurim.

Le të përpiqemi të shohim në ditarin e dokumenteve "Dokumentet e blerësve" vetëm dokumentet "Faturë" për palët e vendosura në grupin "Blerësit" të librit të referencës. Kjo detyrë është e ngjashme me të parën me të vetmin ndryshim që nuk tregojmë një palë të caktuar, por analizojmë faturat e një grupi të tërë palësh që janë në grupin "Blerësit".

Ka disa mënyra për të zbatuar detyrën. Le të shqyrtojmë më efektivin. Ne hapim revistën "Dokumentet e blerësve", specifikoni dokumentin "Fatura e lëshuar" në elementin e përzgjedhjes "Lloji i dokumentit". Pas kësaj, në elementin e përzgjedhjes "Kontraktori", specifikoni llojin e krahasimit "Në grup". Zgjidhni llojin e vlerës "Llogaritë" dhe hapni formularin për zgjedhjen e palëve. Në të, zgjidhni grupin "Blerësit" (Fig. 12).

Oriz. 12

Ky lloj krahasimi nënkupton që kushti do të plotësohet nga të gjithë elementët e fjalorit që janë në grupin e specifikuar. Për më tepër, edhe nëse ka nëngrupe brenda grupit të specifikuar, të gjithë elementët e vendosur atje do të plotësojnë gjithashtu këtë kriter.

Dhe tani le ta komplikojmë detyrën: do të shikojmë në ditarin e dokumenteve "Dokumentet e blerësve" vetëm dokumentet "Fatura", por në të njëjtën kohë është e nevojshme të shikoni dokumentet si për blerësit ashtu edhe për furnitorët. Ne e zgjidhim atë në mënyrë të ngjashme me atë të mëparshme, me përjashtim të një kriteri përzgjedhjeje të imponuar.

Në aspektin njerëzor, detyra është formuluar si më poshtë: "të afishohen të gjitha dokumentet e nevojshme për të gjithë kontraktorët e vendosur në grupet e drejtorive të blerësve, furnizuesve, furnizuesve për shitje". Mund të zbatohet thjesht - në kushtin e përzgjedhjes "Kontraktori", zgjidhni "Në një grup nga lista" (Fig. 13). Pas kësaj, një mekanizëm për plotësimin e listës bëhet i disponueshëm, në të cilin mund të shtoni grupet (ose elementet) e nevojshme të drejtorisë. Për më tepër, lista mund të plotësohet me dorë. Në analogji me zgjidhjen e problemit të mëparshëm, gjeni grupin e kërkuar dhe zgjidhni atë, duke e përsëritur këtë për çdo artikull të ri në listë. Sidoqoftë, është më e përshtatshme të përdoret një mekanizëm i përshtatshëm përzgjedhjeje që zbatohet automatikisht nga programi. Me ndihmën e përzgjedhjes, është shumë më e lehtë dhe më e shpejtë të plotësoni listën me komponentët e nevojshëm. Pasi të plotësohet lista, klikoni "OK" dhe aktivizoni kriteret e përzgjedhjes së personalizuar. Problemi është zgjidhur.

Oriz. trembëdhjetë

Dallimi midis kushtit të përzgjedhjes "Në një grup nga lista" nga kushti "Në një listë" është se në rastin e parë kushti do të plotësohet për të gjithë elementët e fjalorit që janë ose të treguar në mënyrë eksplicite në listë ose janë brenda grupeve. të specifikuara në listë. Rasti i dytë thjesht i thotë programit të kontrollojë listën kur zgjedh. Kjo do të thotë, nëse specifikoni një grup atje, atëherë vetë grupi do të përfshihet në përzgjedhje (si një element i pavarur i drejtorisë), dhe elementët që përfshihen në të nuk do të plotësojnë kriterin e përzgjedhjes. Ishte gjithashtu e mundur të zgjidhej problemi "kokë më parë" - zgjidhni kushtin "Në listë" dhe, duke përdorur përzgjedhjen, shtoni atje të gjithë elementët që përmbahen në grupet e nevojshme.

Kriteret e përzgjedhjes "Jo në listë" dhe "Jo në grup nga lista" ju lejojnë të specifikoni grupet e kërkuara të të dhënave që nuk duhet të përfshihen në përzgjedhje. Kjo do të thotë, do të ishte e mundur të zgjidhej problemi nga e kundërta - tregoni "Jo në një grup nga lista" dhe shtoni të gjitha grupet e drejtorisë atje, përveç tre atyre të nevojshme (Blerësit, Furnizuesit, Furnizuesit për zbatim) .

Dhe, së fundi, në dokumentin "Shitje mallrash dhe shërbimesh" me numrin TDN00002 në pjesën tabelare, do të shfaqim vetëm artikullin që përmban fjalën "STINOL" në emra. Kjo detyrë do t'ju lejojë të shihni universalitetin e vetë mekanizmit të përzgjedhjes, si dhe sa i larmishëm mund të jetë përdorimi i tij. Detyra bazohet në situata reale, kur, për shembull, ka disa qindra (ose edhe mijëra) rreshta në pjesën tabelare të një faturë dhe ju duhet të analizoni shpejt përbërjen e saj. Në demobasin tonë ekziston një dokument "Shitjet e mallrave dhe shërbimeve" me numrin TDN00002, i cili ka disa rreshta në pjesën tabelare. Përkundër faktit se në dokument nuk ka butona për përdorimin e zgjedhjeve, thirrja e përzgjedhjes është e disponueshme përmes menysë së kontekstit (butoni i djathtë i miut).

Më pas, ne vendosim kriteret e përzgjedhjes në kontekstin e Nomenklaturës. Një pyetje tjetër lind menjëherë - si të zgjidhni "STINOL" nëse kushtet për zgjedhjen e nomenklaturës janë mjaft të kufizuara ("E barabartë", "Jo e barabartë", "Në listë" dhe "Jo në listë" janë të disponueshme). Problemi mund të zgjidhet në kushte të tilla. Ne zgjedhim kushtin "Në listë", hapim dritaren tashmë të njohur për plotësimin e listës, përdorim përzgjedhjen e nomenklaturës (Fig. 14, 1). Lista e nomenklaturës mund të përmbajë një numër të madh elementësh, kështu që ne nuk do të kërkojmë pozicionet e nevojshme me sytë tanë. Le të përdorim përzgjedhjen në listën e nomenklaturës, duke specifikuar kushtin e përzgjedhjes "Përmban" për emrin e artikullit (Fig. 14, 2).

Oriz. 14

Pas kësaj, gjithçka që mbetet është të shtoni artikujt e zgjedhur në listën e përzgjedhjes për dokumentin dhe të aplikoni kriteret e përzgjedhjes.

Karakteristikat e dobishme të zgjedhësit

Le të shqyrtojmë disa pika të tjera që lidhen në një mënyrë ose në një tjetër me zgjedhjen në sistemin 1C: Enterprise 8.1.

Në listat e objekteve të konfigurimit që përdorin lidhjen e datave (për shembull, listat e dokumenteve) dhe në ditarët e dokumenteve, mund të përdorni filtër të shpejtë sipas intervalit të datave. Për ta bërë këtë, thjesht klikoni butonin përkatës "Cilësimet e periudhës" në shiritin e veprimeve (ose zgjidhni në menynë e kontekstit) (Fig. 15). Në këtë mënyrë, ju mund të rregulloni individualisht kriteret për shfaqjen e artikujve sipas datës në secilën listë.

Oriz. 15

Ju mund ta vendosni shpejt filtrimin sipas vlerës në qelizën aktuale të listës duke klikuar butonin "Filtro sipas vlerës në kolonën aktuale" (Fig. 16). Shtypja e këtij butoni do të vendosë zgjedhjen sipas vlerës aktuale në kolonë. Ky funksion funksionon vetëm për ato kolona, ​​sipas kushteve të të cilave mund të vendoset përzgjedhja. Nëse ndonjë përzgjedhje përdoret tashmë në listë, e reja do t'i bashkëngjitet asaj. Për më tepër, butoni bëhet aktiv për këtë kolonë. Ju mund ta anuloni një përzgjedhje të tillë në të njëjtën mënyrë - duke "shtypur" butonin në kolonën përkatëse.

Oriz. gjashtëmbëdhjetë

Një veçori tjetër e dobishme e mekanizmit të përzgjedhjes është mbajtja e historisë së përzgjedhjes (Fig. 17). Programi kujton se cilat zgjedhje janë vendosur, kështu që ju mund të ktheheni shpejt në ndonjë prej tyre duke e zgjedhur thjesht nga lista rënëse. Nga rruga, në dritaren "Filter and Sort", kushtojini vëmendje butonit "Filter" (Fig. 6). Duke klikuar në këtë buton, do të çoheni në një ndërfaqe ku mund të ruani dhe rivendosni cilësimet e filtrit në mënyrë që më vonë të mund të ktheheni në to (Fig. 18).

Oriz. 17

Oriz. tetëmbëdhjetë

Dhe funksioni i fundit është të anuloni të gjitha përzgjedhjet (Fig. 19). Duke shtypur butonin "Çaktivizo përzgjedhjen", të gjitha përzgjedhjet e vendosura në listë çaktivizohen. Një veprim i ngjashëm mund të arrihet duke hapur dritaren "Filter and Sorting" dhe duke hequr zgjedhjen e kutive pranë të gjithë elementëve aktivë.

Oriz. nëntëmbëdhjetë

Programi gjithashtu ka aftësinë për të kërkuar shpejt sipas numrit të dokumentit në listat e dokumenteve ose në revista. Ky funksion quhet me butonin "Kërko me numër" (Fig. 20) dhe ju lejon të gjeni dokumentin e dëshiruar, duke konfiguruar në mënyrë fleksibël parametrat e kërkimit. Dokumentet e gjetura sipas kritereve të përcaktuara shfaqen në pjesën e poshtme të dritares së këtij shërbimi dhe mund të shkoni te dokumenti i kërkuar.

Artikujt kryesorë të lidhur