Mga seksyon ng site
Pinili ng Editor:
- Solar interference, solar flare
- Pagbubukas ng nabigasyon para sa maliliit na sasakyang-dagat Pagbubukas ng nabigasyon para sa maliliit na sasakyang-dagat
- Paano magtrabaho sa GIS GMP program
- Mga halimbawa ng mga query para sa pagtatrabaho sa mga hierarchical na direktoryo
- "1C: Retail": pagdaragdag ng mga item
- Computer shock-absorbing group
- Pagsubok: Limitasyon at pagpapatuloy ng mga function ng ilang mga variable Pagsubok ng mga function ng ilang mga variable
- Paano malalaman kung totoo o na-photoshop ang isang larawan
- Kabataan bilang isang panlipunang grupo, mga tampok ng subculture ng kabataan Impormal na grupo ng kabataan
- Pagtatanghal sa computer science "Microsoft ACCESS database management system" Pagtatanghal sa paksang Microsoft Access
Advertising
Pagpapangkat ayon sa hierarchy sa 1C query. Mga halimbawa ng mga query para sa pagtatrabaho sa mga hierarchical na direktoryo |
Ang query language sa 1C 8 ay isang pinasimple na analogue ng kilalang "structured programming language" (tulad ng mas madalas na tawag dito, SQL). Ngunit sa 1C ito ay ginagamit lamang para sa pagbabasa ng data; ang isang object data model ay ginagamit upang baguhin ang data. Ang isa pang kawili-wiling pagkakaiba ay ang Russian syntax. Bagama't sa katunayan maaari mong gamitin ang mga konstruksyon sa wikang Ingles. Halimbawa ng kahilingan:
Ang kahilingang ito ay magbibigay-daan sa amin na makakita ng impormasyon tungkol sa pangalan at correspondent account ng lahat ng mga bangko na umiiral sa database. Paglalarawan ng mga konstruksyon ng wika ng queryIstraktura ng queryUpang makakuha ng data, sapat na gamitin ang mga konstruksyon na "PUMILI" at "MULA". Ang pinakasimpleng kahilingan ay ganito:
Kung saan ang ibig sabihin ng “*” ay pagpili sa lahat ng field ng table, at Directories.Nomenclature – ang pangalan ng table sa database. Tingnan natin ang isang mas kumplikado at pangkalahatang halimbawa:
Sa query na ito, pipiliin namin ang data ng mga field na "FieldName1" at "FieldName1" mula sa mga table na "TableName1" at "TableName", nagtatalaga ng mga kasingkahulugan sa mga field gamit ang operator na "HOW", at ikinonekta ang mga ito gamit ang isang partikular na kundisyon na "TableConnectionCondition ”. Mula sa natanggap na data, pipili lang kami ng data na tumutugon sa kundisyon mula sa “WHERE” “Data Selection Condition”. Susunod, igrupo namin ang kahilingan ayon sa field na “Field Name1”, habang nagsusuma ng “Field Name2”. Lumilikha kami ng mga kabuuan para sa field "Pangalan ng Field1" at ang huling field na "Pangalan ng Field2". Ang huling hakbang ay ang pag-uri-uriin ang kahilingan gamit ang ORDER BY construct. Mga pangkalahatang disenyoTingnan natin ang mga pangkalahatang istruktura ng 1C 8.2 na wika ng query. UNAn Gamit ang operator na ito, maaari mong makuha ang n bilang ng mga unang tala. Ang pagkakasunud-sunod ng mga tala ay tinutukoy ng pagkakasunud-sunod sa query.
Matatanggap ng kahilingan ang unang 100 entry ng direktoryo ng "Mga Bangko", na pinagsunod-sunod ayon sa alpabeto. PINAPAYAGAN Ang disenyo na ito ay may kaugnayan para sa pagtatrabaho sa mekanismo. Ang kakanyahan ng mekanismo ay upang paghigpitan ang pagbabasa (at iba pang mga aksyon) sa mga gumagamit para sa mga partikular na tala sa isang talahanayan ng database, at hindi ang talahanayan sa kabuuan. Kung sinubukan ng isang user na gumamit ng query para magbasa ng mga record na hindi niya naa-access, makakatanggap siya ng mensahe ng error. Upang maiwasan ito, dapat mong gamitin ang "PINAPAHAYAG" na konstruksyon, ibig sabihin, ang kahilingan ay magbabasa lamang ng mga talaan na pinapayagan dito.
IBA-IBA Ang paggamit ng "DIFFERENT" ay mapipigilan ang mga duplicate na linya sa pagpasok sa resulta ng 1C query. Ang ibig sabihin ng pagdoble ay tumutugma ang lahat ng field ng kahilingan.
EmptyTable Ang konstruksiyon na ito ay bihirang ginagamit upang pagsamahin ang mga query. Kapag sumali, maaaring kailanganin mong tumukoy ng walang laman na nested table sa isa sa mga table. Ang operator na "EmptyTable" ay tama para dito. Halimbawa mula sa tulong ng 1C 8:
AY WALANG BISA Isang napaka-kapaki-pakinabang na tampok na nagbibigay-daan sa iyo upang maiwasan ang maraming mga pagkakamali. Binibigyang-daan ka ng YesNULL() na palitan ang NULL na halaga ng nais. Napakadalas na ginagamit sa pagsuri ng pagkakaroon ng isang halaga sa mga pinagsamang talahanayan, halimbawa:
Maaaring gamitin sa iba pang mga paraan. Halimbawa, kung para sa bawat hilera ay hindi alam kung saang talahanayan umiiral ang halaga:
Ang HOW ay isang operator na nagpapahintulot sa amin na magtalaga ng isang pangalan (kasingkahulugan) sa isang talahanayan o field. Nakita namin ang isang halimbawa ng paggamit sa itaas. Ang mga constructions na ito ay halos magkapareho - pinapayagan ka nitong makakuha ng isang string na representasyon ng nais na halaga. Ang pagkakaiba lang ay ang REPRESENTATION ay nagko-convert ng anumang mga halaga sa isang uri ng string, habang ang REPRESENTATIONREF ay nagko-convert lamang ng mga reference na halaga. REFERENCE REPRESENTATION ay inirerekomenda na gamitin sa data composition system query para sa optimization, maliban kung, siyempre, ang reference data field ay binalak na gamitin sa mga seleksyon.
Ipahayag Pinapayagan ka ng Express na i-convert ang mga halaga ng field sa nais na uri ng data. Maaari mong i-convert ang isang halaga sa alinman sa isang primitive na uri o isang uri ng sanggunian. Ginagamit ang Express para sa isang uri ng sanggunian upang paghigpitan ang hinihiling na mga uri ng data sa mga field ng isang kumplikadong uri, na kadalasang ginagamit upang i-optimize ang pagganap ng system. Halimbawa:
Para sa mga primitive na uri, ang function na ito ay kadalasang ginagamit upang limitahan ang bilang ng mga character sa mga field na walang limitasyong haba (ang mga naturang field ay hindi maihahambing sa). Para maiwasan ang pagkakamali" Di-wastong mga parameter sa pagpapatakbo ng paghahambing. Hindi mo maaaring ihambing ang mga patlang
DIFFERENCEDATE Kumuha ng 267 video lesson sa 1C nang libre: Isang halimbawa ng paggamit ng IS NULL sa isang kahilingan sa 1C:
Ang uri ng data sa isang query ay maaaring matukoy sa pamamagitan ng paggamit ng TYPE() at VALUETYPE() function, o sa pamamagitan ng paggamit ng logical REFERENCE operator. Ang dalawang pag-andar ay magkatulad. Mga paunang natukoy na halaga Bilang karagdagan sa paggamit ng mga naipasa na parameter sa mga query sa 1C query language, maaari kang gumamit ng mga paunang natukoy na halaga o . Halimbawa, ang mga paglilipat, mga paunang natukoy na direktoryo, mga chart ng mga account, at iba pa. Para dito, ginagamit ang "Value()" construct. Halimbawa ng paggamit:
Mga koneksyonMayroong 4 na uri ng koneksyon: KALIWA, TAMA, KUMPLETO, INTERNAL. KALIWA at KANAN NA KONEKSIYON Ang mga pagsali ay ginagamit upang iugnay ang dalawang talahanayan batay sa isang partikular na kundisyon. Tampok kung kailan INIWANG SUMALI ay kinuha namin ang unang tinukoy na talahanayan sa kabuuan nito at may kondisyong itali ang pangalawang talahanayan. Ang mga patlang ng pangalawang talahanayan na hindi maaaring itali ng kundisyon ay puno ng halaga WALA. Halimbawa: Ibabalik nito ang buong table ng Counterparties at punan ang field na "Bank" sa mga lugar lamang kung saan matutugunan ang kundisyon na "Counterparties.Name = Banks.Name". Kung ang kundisyon ay hindi natugunan, ang Bank field ay itatakda sa WALA. RIGHT JOIN sa 1C na wika ganap na katulad KALIWA koneksyon, maliban sa isang pagkakaiba - sa KARAPATAN NG KONEKSIYON Ang "pangunahing" talahanayan ay ang pangalawa, hindi ang una. FULL CONNECTION FULL CONNECTION naiiba mula sa kaliwa at kanan dahil ipinapakita nito ang lahat ng mga talaan mula sa dalawang talahanayan at ikinokonekta lamang ang mga maaari nitong kumonekta sa pamamagitan ng kundisyon. Halimbawa:
Ang wika ng query ay ganap na ibabalik ang parehong mga talahanayan kung ang kundisyon na sumali sa mga tala ay natugunan. Hindi tulad ng kaliwa/kanang pagsali, posibleng lumabas ang NULL sa dalawang field. INNER JOIN INNER JOIN naiiba sa buo dahil ipinapakita lamang nito ang mga talaan na maaaring ikonekta ayon sa isang partikular na kundisyon. Halimbawa:
Ang query na ito ay magbabalik lamang ng mga row kung saan ang bangko at katapat ay may parehong pangalan. Mga asosasyonAng JOIN at JOIN ALL construct ay pinagsasama ang dalawang resulta sa isa. Yung. ang resulta ng pagsasagawa ng dalawa ay "pagsasama-sama" sa isa, karaniwan. Iyon ay, ang sistema ay gumagana nang eksakto kapareho ng mga regular, para lamang sa isang pansamantalang talahanayan. Paano gamitin ang INDEX BY Gayunpaman, ang isang punto ay dapat isaalang-alang. Ang pagbuo ng isang index sa isang pansamantalang talahanayan ay nangangailangan din ng oras upang makumpleto. Samakatuwid, ipinapayong gamitin lamang ang konstruksyon na " " kung alam na tiyak na magkakaroon ng higit sa 1-2 na talaan sa pansamantalang talahanayan. Kung hindi, ang epekto ay maaaring maging kabaligtaran - ang pagganap ng mga na-index na mga patlang ay hindi nagbabayad para sa oras na kinakailangan upang mabuo ang index.
PagpapangkatBinibigyang-daan ka ng 1C query language na gumamit ng mga espesyal na pinagsama-samang function kapag pinapangkat ang mga resulta ng query. Magagamit din ang pagpapangkat nang walang pinagsama-samang mga function para "tanggalin" ang mga duplicate. Ang mga sumusunod na function ay umiiral: Halaga, Dami, Bilang ng iba't ibang, Maximum, Minimum, Average. Halimbawa #1:
Ang kahilingan ay tumatanggap ng lahat ng mga linya na may mga kalakal at nagbubuod ng mga ito ayon sa dami at mga halaga ayon sa item. Halimbawa Blg. 2
Ang halimbawang ito ay magpapakita ng isang listahan ng mga BIC sa direktoryo ng "Mga Bangko" at ipapakita kung gaano karaming mga duplicate ang umiiral para sa bawat isa sa kanila. Mga resultaAng mga resulta ay isang paraan upang makakuha ng data mula sa isang system na may hierarchical na istraktura. Maaaring gamitin ang pinagsama-samang mga function para sa mga field ng buod, tulad ng para sa mga pagpapangkat. Ang isa sa pinakasikat na paraan para magamit ang mga resulta sa pagsasanay ay ang batch write-off ng mga produkto.
Ang resulta ng query ay ang sumusunod na hierarchical: Pangkalahatang resulta Kung kailangan mong makakuha ng mga kabuuan para sa lahat ng "mga kabuuan", gamitin ang operator na "PANGKALAHATANG".
Bilang resulta ng pagsasagawa ng kahilingan, nakukuha namin ang sumusunod na resulta: Kung saan ang 1 antas ng pagpapangkat ay ang pagsasama-sama ng lahat ng kinakailangang field. Nag-aayosAng ORDER BY operator ay ginagamit upang ayusin ang resulta ng isang query. Ang pag-uuri para sa mga primitive na uri (string, numero, boolean) ay sumusunod sa karaniwang mga panuntunan. Para sa mga field ng uri ng reference, ang pag-uuri ay nangyayari sa pamamagitan ng panloob na representasyon ng link (ang natatanging identifier), sa halip na sa pamamagitan ng code o sa pamamagitan ng representasyon ng reference.
Ang kahilingan ay magpapakita ng isang listahan ng mga pangalan sa direktoryo ng nomenclature, na pinagsunod-sunod ayon sa alpabeto. Auto-order Ang resulta ng isang query na walang pag-uuri ay isang magulo na ipinakita na hanay ng mga hilera. Hindi ginagarantiyahan ng mga developer ng 1C platform na ang mga row ay ilalabas sa parehong pagkakasunud-sunod kapag nagsasagawa ng magkaparehong mga query. Kung kailangan mong ipakita ang mga talaan ng talahanayan sa pare-parehong pagkakasunud-sunod, dapat mong gamitin ang Auto-Order construct.
Mga virtual na talahanayanAng mga virtual na talahanayan sa 1C ay isang natatanging tampok ng 1C query language na hindi matatagpuan sa iba pang katulad na mga syntax. Ang isang virtual na talahanayan ay isang mabilis na paraan upang makakuha ng impormasyon ng profile mula sa mga rehistro. Ang bawat uri ng rehistro ay may sariling hanay ng mga virtual na talahanayan, na maaaring mag-iba depende sa mga setting ng rehistro.
Para sa developer ng solusyon, ang data ay kinuha mula sa isang (virtual) na talahanayan, ngunit sa katunayan ang 1C platform ay tumatagal mula sa maraming mga talahanayan, na binabago ang mga ito sa kinakailangang form.
Mga Pagpipilian sa Virtual Table Ang isang napakahalagang aspeto ng pagtatrabaho sa mga virtual na talahanayan ay ang paggamit ng mga parameter. Ang mga parameter ng virtual na talahanayan ay mga espesyal na parameter para sa pagpili at pagsasaayos. Para sa mga naturang talahanayan, itinuturing na hindi tama ang paggamit ng seleksyon sa "WHERE" construction. Bilang karagdagan sa katotohanan na ang query ay nagiging suboptimal, posible na makatanggap ng maling data. Isang halimbawa ng paggamit ng mga parameter na ito: Register of Accumulations. Goods in Warehouses. Balances and Turnovers (& Simula ng Period, & End of the Period, Month, Movements and Borders of the Period, Nomenclature = & Required Nomenclature) Algorithm para sa mga virtual na talahanayan Halimbawa, ang pinakaginagamit na virtual na talahanayan ng uri ng "Nananatili" ay nag-iimbak ng data mula sa dalawang pisikal na talahanayan - mga balanse at paggalaw. Kapag gumagamit ng virtual na talahanayan, ginagawa ng system ang mga sumusunod na manipulasyon:
Gamit ang Query BuilderTagabuo ng Query– isang tool na binuo sa 1C Enterprise system na lubos na nagpapadali sa pagbuo ng mga query sa database. Ang tagabuo ng query ay may medyo simple, madaling gamitin na interface. Gayunpaman, tingnan natin ang paggamit ng query constructor nang mas detalyado. Paglalarawan ng 1C request constructorTingnan natin ang bawat tab ng taga-disenyo nang mas detalyado. Ang pagbubukod ay ang tab na Tagabuo, na isang paksa para sa isa pang talakayan. Tab na Mga Table at FieldTinutukoy ng tab na ito ang data source at mga field na kailangang ipakita sa ulat. Sa esensya, ang mga constructions SELECT.. FROM ay inilarawan dito. Ang pinagmulan ay maaaring isang pisikal na talahanayan ng database, isang virtual na talahanayan ng rehistro, mga pansamantalang talahanayan, mga nested na query, atbp. Sa menu ng konteksto ng mga virtual na talahanayan, maaari kang magtakda ng mga parameter ng virtual na talahanayan: Tab ng mga koneksyonAng tab ay ginagamit upang ilarawan ang mga koneksyon ng ilang mga talahanayan at lumilikha ng mga constructions na may salitang CONNECTION. Tab ng pagpapangkatSa tab na ito, binibigyang-daan ka ng system na ipangkat at ibuod ang mga kinakailangang field ng resulta ng talahanayan. Inilalarawan ang paggamit ng mga construction GROUP BY, SUM, MINIMUM, AVERAGE, MAXIMUM, QUANTITY, NUMBER OF DIFFERENT. Tab ng mga kundisyonResponsable para sa lahat ng lumalabas sa text ng kahilingan pagkatapos ng konstruksyon na WHERE, ibig sabihin, para sa lahat ng kundisyong ipinataw sa natanggap na data. Advanced na tabTab Bukod pa rito puno ng lahat ng uri ng mga parameter na napakahalaga. Tingnan natin ang bawat isa sa mga katangian. Pagpapangkat Pagpili ng mga talaan:
Pagpapangkat Uri ng Kahilingan tinutukoy kung anong uri ng kahilingan ang magiging: pagkuha ng data, paggawa ng pansamantalang talahanayan, o pagsira ng pansamantalang talahanayan. Sa ibaba ay may bandila I-lock ang natanggap na data para sa pagbabago sa ibang pagkakataon. Pinapayagan ka nitong paganahin ang kakayahang magtakda ng pag-lock ng data, na nagsisiguro sa kaligtasan ng data mula sa sandaling ito ay nabasa hanggang sa ito ay nabago (may kaugnayan lamang para sa Automatic locking mode, disenyo PARA SA PAGBABAGO). Tab na Mga Pagsasama/AlyasSa tab na ito ng query designer, maaari mong itakda ang kakayahang sumali sa iba't ibang mga talahanayan at alias (ang HOW construct). Ang mga talahanayan ay ipinahiwatig sa kaliwang bahagi. Kung itatakda mo ang mga flag sa tapat ng talahanayan, ang UNITE construction ang gagamitin, kung hindi - UNITE ALL (mga pagkakaiba sa pagitan ng dalawang pamamaraan). Sa kanang bahagi, ang mga sulat ng mga patlang sa iba't ibang mga talahanayan ay ipinahiwatig; kung ang sulat ay hindi tinukoy, ang query ay magbabalik ng NULL. Tab ng orderTinutukoy nito ang pagkakasunud-sunod kung saan ang mga halaga ay pinagsunod-sunod (ORDER BY) - pababang (DESC) o pataas (ASC). Mayroon ding isang kawili-wiling bandila - Auto-order(sa kahilingan - AUTO ORDERING). Bilang default, ang 1C system ay nagpapakita ng data sa isang "magulong" pagkakasunud-sunod. Kung itatakda mo ang flag na ito, pag-uuri-uriin ng system ang data ayon sa panloob na data. Tab ng Query BatchSa tab na taga-disenyo ng query, maaari kang lumikha ng mga bago, at gamitin din ito bilang isang nabigasyon. Sa text ng kahilingan, ang mga packet ay pinaghihiwalay ng simbolo na “;” (kuwit). Button na "Query" sa taga-disenyo ng querySa ibabang kaliwang sulok ng taga-disenyo ng kahilingan mayroong isang pindutan ng Kahilingan, kung saan maaari mong tingnan ang teksto ng kahilingan anumang oras: Sa window na ito, maaari kang gumawa ng mga pagsasaayos sa kahilingan at isagawa ito. Gamit ang Query ConsoleAng Query Console ay isang simple at maginhawang paraan upang i-debug ang mga kumplikadong query at mabilis na makakuha ng impormasyon. Sa artikulong ito, susubukan kong ilarawan kung paano gamitin ang Query Console at magbigay ng link para i-download ang Query Console. Tingnan natin ang tool na ito. I-download ang 1C query consoleUna sa lahat, upang magsimulang magtrabaho kasama ang query console, kailangan mong i-download ito mula sa kung saan. Ang mga paggamot ay karaniwang nahahati sa dalawang uri - kinokontrol na mga anyo at mga kumbensyonal (o, kung minsan, ang mga ito ay tinatawag na 8.1 at 8.2/8.3). Sinubukan kong pagsamahin ang dalawang view na ito sa isang pagproseso - bubukas ang nais na form sa nais na operating mode (sa pinamamahalaang mode, gumagana lamang ang console sa makapal na mode). Paglalarawan ng 1C query consoleSimulan natin ang pagtingin sa query console na may paglalarawan ng pangunahing panel ng pagpoproseso: Sa header ng query console, makikita mo ang oras ng pagpapatupad ng huling query na may katumpakan ng millisecond, nagbibigay-daan ito sa iyong paghambingin ang iba't ibang disenyo sa mga tuntunin ng pagganap. Ang unang pangkat ng mga pindutan sa command bar ay responsable para sa pag-save ng mga kasalukuyang query sa isang panlabas na file. Ito ay napaka-maginhawa; maaari mong palaging bumalik sa pagsulat ng isang kumplikadong kahilingan. O, halimbawa, mag-imbak ng listahan ng mga tipikal na halimbawa ng ilang partikular na disenyo. Sa kaliwa, sa field na "Kahilingan", maaari kang lumikha ng mga bagong kahilingan at i-save ang mga ito sa isang istraktura ng puno. Ang pangalawang pangkat ng mga pindutan ay responsable para sa pamamahala ng listahan ng mga kahilingan. Gamit ito maaari kang lumikha, kopyahin, tanggalin, ilipat ang isang kahilingan.
Mga parameter ng kahilingan: Binibigyang-daan kang itakda ang kasalukuyang mga parameter para sa kahilingan. Sa window ng mga parameter ng query, ang mga sumusunod ay kawili-wili:
Magtakda ng parameter na may listahan ng mga value Ito ay napaka-simple, kapag pumipili ng isang halaga ng parameter, mag-click sa pindutan ng malinaw na halaga (krus), ipo-prompt ka ng system na piliin ang uri ng data, kung saan kailangan mong piliin ang "Listahan ng Halaga": Gayundin sa tuktok na panel mayroong isang pindutan para sa pagtawag sa mga setting ng query console: Dito maaari mong tukuyin ang mga parameter para sa autosaving query at query execution parameters. Ang teksto ng kahilingan ay ipinasok sa field ng kahilingan sa console. Magagawa ito sa pamamagitan lamang ng pag-type ng query test o sa pamamagitan ng pagtawag sa isang espesyal na tool - ang query designer. Ang 1C 8 query designer ay tinatawag mula sa context menu (kanang mouse button) kapag nag-click ka sa input field: Ang menu na ito ay mayroon ding mga kapaki-pakinabang na function gaya ng pag-clear o pagdaragdag ng mga line break (“|”) sa kahilingan, o pagtanggap ng request code sa maginhawang form na ito:
Ang mas mababang field ng query console ay nagpapakita ng query result field, kaya naman ang pagproseso na ito ay ginawa:
Pag-optimize ng queryAng isa sa pinakamahalagang punto sa pagtaas ng produktibidad ng 1C enterprise 8.3 ay pag-optimizemga kahilingan. Napakahalaga din ng puntong ito kapag pagpasa sa sertipikasyon. Sa ibaba ay pag-uusapan natin ang mga karaniwang dahilan para sa hindi pinakamainam na pagganap ng query at mga paraan ng pag-optimize. Mga pagpipilian sa isang virtual na talahanayan gamit ang WHERE constructKinakailangang maglapat ng mga filter sa mga detalye ng virtual na talahanayan sa pamamagitan lamang ng mga parameter ng VT. Sa anumang pagkakataon ay hindi mo dapat gamitin ang WHERE construct para sa pagpili sa isang virtual na talahanayan; ito ay isang malubhang pagkakamali mula sa isang punto ng pag-optimize. Sa kaso ng pagpili gamit ang WHERE, sa katunayan, matatanggap ng system ang LAHAT ng mga tala at pagkatapos ay piliin lamang ang mga kinakailangan. TAMA:
MALI:
Pagkuha ng halaga ng isang field ng isang kumplikadong uri gamit ang isang tuldokKapag tumatanggap ng data ng isang kumplikadong uri sa isang query sa pamamagitan ng isang tuldok, ang system ay kumokonekta sa kaliwang pagsasama nang eksakto sa maraming mga talahanayan hangga't mayroong mga uri na posible sa larangan ng kumplikadong uri. Halimbawa, ito ay lubos na hindi kanais-nais para sa pag-optimize upang ma-access ang field ng rehistro ng talaan - registrar. Ang registrar ay may isang pinagsama-samang uri ng data, bukod sa kung saan ay ang lahat ng posibleng mga uri ng dokumento na maaaring magsulat ng data sa rehistro. MALI:
Iyon ay, sa katunayan, ang naturang query ay hindi maa-access ang isang talahanayan, ngunit 22 na mga talahanayan ng database (ang rehistrong ito ay may 21 mga uri ng registrar). TAMA:
O ang pangalawang opsyon ay ang magdagdag ng naturang impormasyon sa mga detalye, halimbawa, sa aming kaso, pagdaragdag ng petsa. TAMA:
Mga subquery sa kondisyon ng pagsaliPara sa pag-optimize, hindi katanggap-tanggap na gumamit ng mga subquery sa mga kondisyon ng pagsali; ito ay makabuluhang nagpapabagal sa query. Maipapayo na gumamit ng VT sa mga ganitong kaso. Upang kumonekta, kailangan mong gumamit lamang ng metadata at mga VT na bagay, na dati nang na-index ang mga ito sa pamamagitan ng mga field ng koneksyon. MALI:
TAMA:
Pagsali sa Mga Tala gamit ang Virtual TablesMay mga sitwasyon kung kailan, kapag kumokonekta sa isang virtual na talahanayan sa iba, ang system ay hindi gumagana nang mahusay. Sa kasong ito, upang ma-optimize ang pagganap ng query, maaari mong subukang ilagay ang virtual na talahanayan sa isang pansamantalang talahanayan, nang hindi nakakalimutang i-index ang mga pinagsamang field sa pansamantalang query sa talahanayan. Ito ay dahil sa ang katunayan na ang mga VT ay madalas na nilalaman sa ilang mga pisikal na talahanayan ng DBMS; bilang isang resulta, ang isang subquery ay pinagsama-sama upang piliin ang mga ito, at ang problema ay naging katulad ng nakaraang punto. Paggamit ng mga seleksyon batay sa mga hindi naka-index na fieldIsa sa mga pinakakaraniwang pagkakamali kapag nagsusulat ng mga query ay gumagamit ng mga kundisyon sa mga hindi na-index na field, sumasalungat ito mga panuntunan sa pag-optimize ng query. Ang DBMS ay hindi makakapagsagawa ng isang query nang mahusay kung ang query ay may kasamang pagpili sa mga hindi na-index na mga patlang. Kung kukuha ka ng pansamantalang talahanayan, kailangan mo ring i-index ang mga field ng koneksyon. Dapat mayroong angkop na index para sa bawat kundisyon. Ang angkop na index ay isa na nakakatugon sa mga sumusunod na kinakailangan:
Kung hindi pipiliin ng DBMS ang mga tamang index, ma-scan ang buong talahanayan - magkakaroon ito ng napaka-negatibong epekto sa pagganap at maaaring humantong sa matagal na pagharang sa buong hanay ng mga tala. Paggamit ng lohikal na O sa mga kundisyonIyon lang, saklaw ng artikulong ito ang mga pangunahing aspeto ng pag-optimize ng query na dapat malaman ng bawat eksperto sa 1C. Isang napakakapaki-pakinabang na libreng kurso sa video sa pagbuo at pag-optimize ng query, Lubos kong inirerekumenda para sa mga nagsisimula at higit pa!
Sa artikulong ito nais naming talakayin ang lahat sa iyo 1C query language function, at mga konstruksyon ng wika ng query. Ano ang pagkakaiba sa pagitan ng pag-andar at disenyo? Ang function ay tinatawag na may panaklong at posibleng mga parameter sa kanila, at ang construct ay nakasulat nang walang panaklong. Walang alinlangan lahat ng istruktura at function ng 1C query language gawing flexible at multifunctional ang proseso ng pagkuha ng data. Nalalapat ang mga function at construct na ito sa mga field ng kahilingan, at nalalapat din ang ilan sa mga kundisyon. 1C Query Language FunctionDahil isang malinaw na paglalarawan 1C query language function ay hindi gaanong karaniwan kaysa sa mga paglalarawan ng mga istruktura, nagpasya kaming magsimulang tumingin sa mga function. Ngayon tingnan natin ang bawat isa nang hiwalay, na naglalarawan sa layunin nito, syntax at halimbawa ng paggamit, kaya: 1. Function DATE ORAS- ang function na ito ay lumilikha ng isang pare-parehong field na may uri ng "Petsa". Syntax: DATE ORAS(<Год>,<Месяц>,<День>,<Час>,<Минута>,<Секунда>) Halimbawa ng paggamit: 2. DATE DIFFERENCE function- ibinabalik ang pagkakaiba sa pagitan ng dalawang petsa sa isa sa mga sukat (taon, buwan, araw, oras, minuto, segundo). Ang pagsukat ay ipinasa bilang isang parameter. Syntax: DIFFERENCEDATE(<Дата1>, <Дата2>, <Тип>) Halimbawa ng paggamit: Query.Text = "PUMILI | DIFFERENCEDATE(DATETIME(2015, 4, 17), DATETIME(2015, 2, 1), DAY) | AS Qty.Days"; 3. Function na VALUE- nagtatakda ng permanenteng field na may paunang natukoy na tala mula sa database; maaari ka ring makakuha ng walang laman na link ng anumang uri. Syntax: VALUE(<Имя>) Halimbawa ng paggamit: Request.Text = "PUMILI //predefined element | VALUE(Directory.Currencies.Dollar) AS Dollar, //empty link | VALUE(Document.Receipt of Goods and Services.EmptyLink) AS Receipt, //transfer value | VALUE(Transfer . Legal na Indibidwal. Indibidwal) BILANG Indibidwal, //paunang natukoy na account | VALUE(Tsart ng Mga Account. Nakasuporta sa sarili. Mga Materyal) BILANG Account_10" ; 4. SELECT function- mayroon kaming bago sa amin ng isang analogue ng IF construction, na ginagamit sa code, ito lamang ang ginagamit sa 1C query. Syntax: PAGPILI KUNG KAILAN<Выражение>TAPOS<Выражение>IBA<Выражение>WAKAS Halimbawa ng paggamit: Request.Text = //kung ang halaga ay higit sa 7500, dapat mayroong diskwento na 300 rubles, //kaya kung ang kundisyon ay na-trigger, ang function //ibinabalik ang Sum - 300 //kung hindi, ang kahilingan ay babalik lamang ng Sum "PUMILI | PUMILI | WHEN TCReceipts.Amount > 7500 | THEN TCReceipts.Amount - 300 | ELSE TCReceipts.Amount | END AS AmountWithDiscount |FROM | Document.Receipt of GoodsServices.Goods AS TCReceipts"; 5. EXPRESS function- nagbibigay-daan sa iyo upang ipahayag ang isang pare-pareho ang patlang na may isang tiyak na uri. Syntax: EXPRESS(FieldName AS TypeName) Halimbawa ng paggamit: Query.Text = "PUMILI NG VARIOUS | Sales.Registrar.Number, | SELECT | WHEN Sales.Registrar LINK Document.Consumable | THEN EXPRESS(Sales.Registrar AS Document.Consumable) | ELSE SELECT | WHEN Sales.Registrar LINK Document.Implementation | THEN EXPRESS(Sales.Registrar AS Document.Implementation) | END | ... | END AS Number | FROM | RegisterAccumulations.Purchases AS Purchases"; Mayroon bang isa pang pagpipilian para sa paggamit ng EXPRESS function sa mga larangan ng halo-halong uri, saan nangyayari ang mga ito? Ang pinakasimpleng halimbawa ay ang "Registrar" para sa anumang rehistro. Kaya bakit kailangan nating gawing kwalipikado ang uri sa registrar? Isaalang-alang natin ang sitwasyon kapag pinili natin ang field na "Number" mula sa registrar, mula sa aling talahanayan pipiliin ang numero? Ang tamang sagot sa lahat! Samakatuwid, para mabilis na gumana ang aming query, dapat kaming tumukoy ng tahasang uri gamit ang EXPRESS function Halimbawa ng paggamit: Query.Text = "SELECT | EXPRESS(Nomenclature.Comment AS Line(300)) AS Comment, | EXPRESS(Nomenclature.Sum AS Number(15,2)) AS Sum |FROM | Directory.Nomenclature AS Nomenclature"; 6. ISNULL function(alternative spelling ISNULL) - kung ang field ay nasa uri na NULL, pagkatapos ay papalitan ito ng pangalawang parameter ng function. Syntax: AY WALANG BISA(<Поле>, <ПодставляемоеЗначение>) Halimbawa ng paggamit: Tandaan din na ito ay ipinapayong palaging palitan ang NULL uri ng ilang halaga, dahil Ang paghahambing sa uri na NULL ay palaging nagbabalik ng FALSE kahit na inihambing mo ang NULL sa NULL. Kadalasan, ang mga halaga ng NULL ay nabuo bilang isang resulta ng pagsali sa mga talahanayan (lahat ng mga uri ng pagsali maliban sa mga panloob). Query.Text = //Piliin ang buong item at mga balanse nito //kung walang balanse sa ilang item, magkakaroon ng field //NULL na papalitan ng value na 0 "SELECT | No. Link, | ISNULL (ProductsInStockRemains.InStockRemaining, 0) BILANG Natitira | MULA | Directory.Nomenclature BILANG Blg. | LEFT CONNECTION Register Accumulations. GoodsIn Warehouses. Natitira BILANG GoodsIn WarehousesRemains | ON (GoodsInWarehousesRemains. Link)"; No. 7. REPRESENTATION function- nagbibigay-daan sa iyong makakuha ng representasyon ng field ng kahilingan. Syntax: PAGGANAP(<НаименованиеПоля>) Halimbawa ng paggamit: Query.Text = "PUMILI | REPRESENTATION(FreeRemainingRemains.Nomenclature) BILANG Nomenclature, | REPRESENTATION(FreeRemainingRemaining.Warehouse) BILANG Warehouse, | FreeRemainingRemaining.InStockRemaining |FROM | Accumulation Register.FreeRemaining.Remaining BILANG Libre"Remaining Bumubuo sa 1C query languageNapag-usapan namin sa iyo sa itaas 1C query language function, ngayon ay oras na upang isaalang-alang mga construct sa 1C query language, hindi gaanong mahalaga at kapaki-pakinabang ang mga ito, magsimula tayo. 1. LINK ng Konstruksyon- ay isang lohikal na operator para sa pagsuri ng isang uri ng sanggunian. Pinakamadalas na nakatagpo kapag sinusuri ang isang field ng isang kumplikadong uri laban sa isang partikular na uri. Syntax: LINK<Имя таблицы> Halimbawa ng paggamit: Request.Text = //kung ang uri ng halaga ng recorder ay Document Receipt, //magbabalik ang query na "Receipt of goods", kung hindi, "Sales of goods" "SELECT | SELECT | WHEN Remainings.Registrar LINK Document.Receipt of Goods and Mga Serbisyo | PAGKATAPOS ""Resibo"" | IBANG ""Pagkonsumo"" | TAPUSIN BILANG Uri ng Paggalaw | MULA | Rehistro ng Akumulasyon. Natitirang Mga Produkto sa Mga Warehouse AS Nananatili" ; 2. Disenyo SA PAGITAN- sinusuri ng operator na ito kung ang halaga ay nasa loob ng tinukoy na hanay. Syntax: PAGITAN<Выражение>AT<Выражение> Halimbawa ng paggamit: Request.Text = //kunin ang buong katawagan na ang code ay nasa hanay mula 1 hanggang 100 "PUMILI | Nomenclature.Link |FROM | Directory.Nomenclature AS Nomenclature |WHERE | Nomenclature.Code BETWEEN 1 AND 100" ; 3. Construction B at B HIERARCY- suriin kung ang halaga ay nasa inilipat na listahan (mga array, talahanayan ng mga halaga, atbp. ay maaaring ilipat bilang isang listahan). Ang IN HIERARCHY operator ay nagpapahintulot sa iyo na tingnan ang hierarchy (isang halimbawa ng paggamit ng Chart of Accounts). Syntax: SA(<СписокЗначений>), SA HIERARKIYA(<СписокЗначений>) Halimbawa ng paggamit: Request.Text = //piliin ang lahat ng subaccount ng account na "PUMILI | Self-supporting. Link AS Account | FROM | Chart of Accounts. Self-supporting AS Self-supporting | WHERE | Self-supporting. Link IN HIERARCHY VALUE (Chart of Mga Account. Self-supporting. Goods)"; 4. KATULAD ng disenyo- Binibigyang-daan kami ng function na ito na ihambing ang isang string sa isang pattern ng string. Syntax: GAYA NG "<ТекстШаблона>" Mga pagpipilian sa pattern ng hilera: % - isang sequence na naglalaman ng anumang bilang ng mga arbitrary na character. Isang arbitrary na karakter. [...] - anumang solong karakter o pagkakasunod-sunod ng mga character na nakalista sa loob ng mga square bracket. Maaaring tumukoy ang enumeration ng mga range, halimbawa a-z, ibig sabihin ay isang arbitrary na character na kasama sa range, kasama ang mga dulo ng range. [^...] - anumang solong character o sequence ng mga character na nakalista sa loob ng square bracket maliban sa mga nakalista pagkatapos ng negation sign. Halimbawa ng paggamit: Query.Text = //hanapin ang buong katawagan na naglalaman ng ugat na TABUR at nagsisimula //alinman sa maliit o malaking letrang t "PUMILI | Nomenclature. Link | MULA | Direktoryo. Nomenclature AS Nomenclature | WHERE | Mga Produkto. Pangalan LIKE "" [Tt ]abur%""" ; 5. Ang Disenyo ay PAHIHINTULUTAN- Binibigyang-daan ka ng operator na ito na piliin lamang ang mga talaan mula sa database kung saan may pahintulot na nabasa ang tumatawag. Ang mga karapatang ito ay naka-configure sa antas ng record (RLS). Syntax: Allowed ay isinusulat pagkatapos ng keyword na SELECT Halimbawa ng paggamit: Request.Text = "PUMILI NG PINAHAYAGAN | Mga Counterparty. Link | MULA | Direktoryo. Mga Counterparty BILANG Mga Counterparty"; 6. IBA'T IBANG disenyo- nagbibigay-daan sa iyong pumili ng mga tala kung saan walang mga duplicate na tala. Syntax: IBA'T IBA ang nakasulat pagkatapos ng keyword na SELECT Halimbawa ng paggamit: Request.Text = //selects records to which the reader has rights "SELECT VARIOUS | Counterparties.Name |FROM | Directory. Counterparty AS Counterparties" ; Gayundin, ang IBA'T IBANG konstruksiyon ay maaaring gamitin kasama ang PINAHAYAG na operator at iba pang mga operator. Halimbawa ng paggamit: Request.Text = //pumili ng iba't ibang mga talaan kung saan ang mambabasa ay may mga karapatan "PUMILI NG PINAHAYAG NA IBA | Counterparties.Pangalan |MULA | Direktoryo. Mga Counterparty BILANG Counterparty"; 7. Idisenyo UNA- pinipili ang bilang ng mga tala na tinukoy sa parameter mula sa resulta ng query. Syntax: UNA<число> Halimbawa ng paggamit: Request.Text = //piliin ang unang 4 na numero ng CCD mula sa direktoryo na "PUMILI MUNA 4 | Mga Numero ng CCD. Link | MULA | Direktoryo. Mga Numero ng CCD BILANG Mga Numero ng CCD"; 8. Disenyo PARA SA PAGBABAGO- nagpapahintulot sa iyo na i-lock ang isang talahanayan, gumagana lamang sa mga transaksyon (may kaugnayan lamang para sa mga awtomatikong lock). Syntax: PARA SA PAGBABAGO<НаименованиеТаблицы> Halimbawa ng paggamit: Query.Text = "PUMILI | Libreng Nalalabi. Katawagan, | Libreng Nalalabi. Warehouse, | Libreng Nalalabi. May Natitirang Stock | MULA | Rehistro ng mga Natitira. Libreng Nalalabi. Nalalabi BILANG Libreng Nalalabi | PARA SA PAGBABAGO | Rehistro ng mga Naiipon . Libreng Nalalabi. Nalalabi"; 9. Disenyo ORDER NI- nag-aayos ng data ayon sa isang partikular na field. Kung ang patlang ay isang link, pagkatapos ay kapag nagtatakda ng bandila AUTO ORDER Ang pag-uuri ay magaganap sa pamamagitan ng representasyon ng link; kung ang bandila ay naka-off, pagkatapos ay ang mga link ay pinagbubukod-bukod ayon sa seniority ng link address sa memorya. Syntax: PAGSAY-BAYIN NG<НаименованиеПоля>AUTO ORDER Halimbawa ng paggamit: Query.Text = "PUMILI | Libreng Nalalabi. Katawagan BILANG Nomenclature, | Libreng Nalalabi. Warehouse BILANG Warehouse, | Libreng Natitirang Mga Natitira. May Natitirang Stock | MULA | Magrehistro ng Mga Natitipon. Libreng Natitira. Natitira BILANG Libreng Natitirang Natitirang | | ORDER BY | Nomenclature | AUTO ORDER VANIE"; 10. Disenyo GROUP NI- ginagamit upang pangkatin ang mga string ng query ayon sa mga partikular na field. Dapat gamitin ang mga numeric na field sa anumang pinagsama-samang function. Syntax: GROUP BY<НаименованиеПоля1>, .... , <НаименованиеПоляN> Halimbawa ng paggamit: Query.Text = "SELECT | ItemsInWarehouses.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInWarehouses.InStock) AS INSTOCK |FROM | RegisterAccumulations.ItemsIn Warehouses BILANG ItemsInWarehouses | |GROUPsInWarehouses | ItemsInWarehouses | |GROUPAccumulations.ItemsInWarehouses | bahay" ; 11. Design HAVING- nagbibigay-daan sa iyong maglapat ng pinagsama-samang function sa isang kundisyon sa pagpili ng data, katulad ng konstruksyon na WHERE. Syntax: MAY<агрегатная функция с условием> Halimbawa ng paggamit: Query.Text = //pinili ang mga nakagrupong talaan kung saan ang field ng InStock ay mas malaki sa 3 "SELECT | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK |FROM | RegisterAccumulationstocks.ItemsInStock | ItemsInStock GROUP BY | ProductsInWarehouses.Nomenclature, | ProductsInWarehouses.Warehouse | |AVAILABLE | HALAGA(ProductsInWarehouses.InStock) > 3" ; 12. Construction INDEX NI- ginagamit para sa pag-index ng field ng query. Ang isang query na may pag-index ay tumatagal ng mas matagal upang makumpleto, ngunit pinapabilis ang paghahanap sa mga naka-index na field. Magagamit lamang sa mga virtual na talahanayan. Syntax: INDEX NI<Поле1, ... , ПолеN> Halimbawa ng paggamit: Query.Text = "PUMILI | Ts.NameOS, | Ts.FolderNumber, | Ts.CodeOS, | Ts.Term, | Ts.Type | PLACE DataTs | FROM | &Ts AS Ts | | INDEX BY | Ts.NameOS, | Ts .CodeOS"; 13. Disenyo SAAN- nagbibigay-daan sa iyo na magpataw ng kundisyon sa anumang field ng pagpili. Ang resulta ay magsasama lamang ng mga talaan na nakakatugon sa kundisyon. Syntax: SAAN<Условие1 ОператорЛогСоединения УсловиеN> Halimbawa ng paggamit: Query.Text = //napili ang lahat ng mga tala na may CompensationRemaining<>0 at //AmountForCalcCompRemaining > 100 "SELECT | CompensationRPORemains.Counterparty, |CompensationRPORemains.Child, | CompensationRPORemains.CompensationRemaining, | CompensationRPORemains.AmountForCalcCompRemains |Place DataTz |RPFROMRemains |Place DataTz |RPFROMRemains |Place DataTz |RPFROMRemains | CompensationRPORemaining.CompensationRemaining<>0 | At CompensationRPORemains.AmountForCalcCompRemaining> 100" ; 14. MGA RESULTA ng Disenyo... PANGKALAHATANG- ginagamit upang kalkulahin ang mga kabuuan; ang disenyo ay tumutukoy sa mga field kung saan ang mga kabuuan ay kakalkulahin at pinagsama-samang mga function na inilalapat sa kabuuang mga field. Kapag gumagamit ng mga kabuuan para sa bawat field kasunod ng TOTAL construction, ang data ay pinagsama-sama. Mayroong opsyonal na PANGKALAHATANG construct; ang paggamit nito ay nagbibigay din ng karagdagang pagpapangkat. Makakakita ka ng isang halimbawa ng resulta ng kahilingan sa ibaba. Syntax: RESULTA<АгрегатнаяФункция1, ... , АгрегатнаяФункцияN>NG<ОБЩИЕ> <Поле1, ... , ПолеN> Halimbawa ng paggamit: Request.Text = "SELECT | Calculations. Counterparty Agreement. Type of Agreement AS Contract Type, | Calculations. Counterparty Agreement AS Contract, | Calculations. Counterparty, | Calculations. Halaga ng Mutual Settlement Balance AS Balance | FROM | Register of Accumulations. Mutual Settlement WITH Counterparty. Balanse AS Calculations | TOTAL | HALAGA (Balance) |Software | PANGKALAHATANG, | Uri ng Kasunduan"; Binabalangkas ng figure ang mga pagpapangkat na nabuo sa panahon ng pagpapatupad ng kahilingan, ang nangungunang isa ay tumutukoy sa PANGKALAHATANG seksyon, at ang pangalawa sa field ng Counterparty Agreement Agreement Type. Ang seksyong ito ay nagpapakita ng mga halimbawa ng paglutas ng mga karaniwang problema kapag nagtatrabaho sa mga hierarchical na direktoryo. Pagkuha ng mga elemento ng isang hierarchical na direktoryo na nasa ilalim ng isang partikular na grupo Upang makakuha ng mga subordinate na elemento ng isang hierarchical na direktoryo, ang query na wika ay nagbibigay ng IN HIERARCHY construct. Halimbawa ng paggamit SA HIERARCY: Sa halimbawang ito, ang lahat ng mga talaan ng direktoryo ng Nomenclature na matatagpuan sa pangkat na &Group ay makukuha, kasama ang sarili nito, ang mga subordinate na grupo nito at mga elementong kabilang sa mga subordinate na grupo. Kung interesado lang kami sa mga elemento at pangkat na direktang matatagpuan sa isang partikular na grupo, maaari naming makuha ang mga naturang elemento sa pamamagitan ng pagtatakda ng kundisyon sa field ng Parent. Halimbawa: SAAN Sinusuri ang pagkakaroon ng mga subordinate na elemento ng isang elemento ng direktoryo Upang suriin ang pagkakaroon ng mga subordinate na talaan ng isang elemento ng direktoryo, maaari kang gumamit ng query na katulad ng ipinakita: Sa halimbawang ito, ang reference sa elemento kung saan gusto mong suriin para sa mga bata ay nakasulat sa parameter ng query ng Magulang. Pagkatapos magsagawa ng naturang query, kailangan mong suriin ang resulta para sa kawalan ng laman. Kung ang resulta ay hindi walang laman, pagkatapos ay mayroong mga subordinate na talaan. Kung hindi - hindi. Halimbawa: Pagkuha ng lahat ng magulang ng isang elemento Ang wika ng query ay hindi nagbibigay ng anumang espesyal na paraan para sa pagkuha ng lahat ng mga magulang ng isang elemento. Maaari kang gumamit ng mga hierarchical na kabuuan upang makumpleto ang gawain, ngunit ang pagkuha ng mga hierarchical na kabuuan ay na-optimize para sa pagbuo ng mga kabuuan para sa isang malaking bilang ng mga tala, at hindi ganap na epektibo para sa pagkuha ng mga magulang ng isang elemento. Upang mas mahusay na makuha ang lahat ng mga tala ng magulang ng isang elemento, inirerekumenda na i-loop ang mga magulang nito sa maliliit na bahagi. Halimbawa: Query = Bagong Query("SELECT Habang ang Truth Cycle Kung CurrentItemItem = Directories.Nomenclature.EmptyLink() Pagkatapos Kung ang bilang ng mga antas sa direktoryo ay limitado at maliit, pagkatapos ay posible na makuha ang lahat ng mga magulang na may isang kahilingan nang walang loop. Pagpapakita ng hierarchical na direktoryo sa isang ulat Upang magpakita ng hierarchical na direktoryo sa isang ulat habang pinapanatili ang hierarchy, dapat kang gumamit ng query na katulad ng sumusunod: Pinipili ng query na ito ang lahat ng mga tala mula sa direktoryo at inaayos ang mga ito ayon sa hierarchy. Ang resulta ay iuutos ayon sa pangalan, na isinasaalang-alang ang hierarchy. Upang mailagay ang mga pangkat ng direktoryo sa itaas ng mga elemento, kailangang palitan ang ORDER BY clause sa kahilingang ito ng mga sumusunod: Ang resulta ay iuutos pa rin sa hierarchically, ngunit ang mga pangkat ay lilitaw sa itaas ng mga elemento. Posible ring palitan ang ORDER BY na alok ng opsyong AUTO ORDER. Sa kasong ito, ang resulta ay iuutos alinsunod sa mga setting ng direktoryo, i.e. kung ang direktoryo ay nagsasaad na ang mga pangkat ay dapat na matatagpuan sa itaas ng mga elemento, kung gayon sila ay matatagpuan sa itaas. Posible ring makuha ang hierarchical na istraktura ng direktoryo gamit ang mga resulta. FROM Directory.Nomenclature AS Nomenclature SAAN ORDER BY Name Pagkuha ng mga kabuuan ayon sa hierarchy Upang makakuha ng mga kabuuan ayon sa hierarchy sa isang query, dapat mong tukuyin ang keyword na HIERARCHY sa SOFTWARE TOTAL clause pagkatapos tukuyin ang field kung saan ang mga kabuuan ay kakalkulahin. Isang halimbawa ng ulat na "Paglipat ng item" na may pagkuha ng mga kabuuan ayon sa hierarchy: Bilang resulta ng kahilingang ito, ang mga kabuuan ay kakalkulahin hindi lamang para sa bawat item, ngunit para din sa mga pangkat kung saan kabilang ito o ang item na iyon. Sa kaso kung saan hindi namin kailangan ng mga kabuuan para sa mga elemento, ngunit kailangan lang ng mga kabuuan para sa mga grupo, kailangan naming gamitin ang HIERARCHY ONLY construction sa mga kabuuan. Halimbawa: Ano ang isang 1C na direktoryo at bakit ito kinakailangan? Ang direktoryo ay nag-iimbak ng kondisyon na permanenteng impormasyon, i.e. impormasyon na nananatiling halos hindi nagbabago sa mahabang panahon. Halimbawa, ang direktoryo ng "Nomenclature" ay naglalaman ng isang listahan ng mga produktong ibinebenta o ginawa. Gayundin, ang isang direktoryo ay maaaring maglaman ng maraming mga katangian na naglalarawan sa isang elemento ng direktoryo. Kung kukunin natin ang kasarian ng isang tao para sa paghahambing, kung gayon ang listahan ay limitado at hindi nagbabago, kaya ang isang enumeration ay mas angkop para dito. Ang pagkakaroon ng paglikha ng isang bagong direktoryo, makikita natin ang sumusunod na larawan. Tingnan natin ang lahat ng kanyang mga bookmark. BasicDito ang pangalan (identifier sa database) at kasingkahulugan (user name ng direktoryo) ay ipinahiwatig. Ang isang opsyonal na komento ay isa na maaaring ipaliwanag ang layunin ng direktoryo o ilarawan ang mga tampok nito. HierarchySa tab na ito maaari mong i-configure ang lalim ng nesting ng mga elemento ng direktoryo. Gamit ang setting na ito, maginhawa ang pag-iba at pagdetalye ng mga elemento ayon sa ilang pamantayan. Halimbawa, ang mga produktong "Cabinet" ay nasa isang grupo, at ang mga produktong "Tables" ay nasa isa pa. Bilang default, kapag nilikha, ang direktoryo ay nagpapakita listahan ng mga elemento. Kung susuriin mo ang checkbox ng Hierarchical na direktoryo, ang bawat elemento ay maaaring maging subordinate sa isa pang elemento (grupo). Nasa ibaba ang mga opsyon para sa pag-customize ng bookmark na ito at pagpapalit ng display sa custom na mode. Uri ng hierarchy: Hierarchy ng mga grupo at elementoSa setting na ito, ang mga elemento ay maaari lamang ilagay sa mga pangkat (mga folder). Dito, tulad ng nakikita mo, ang lahat ng mga elemento at grupo ay may parehong mga icon, at anumang elemento ay maaaring ma-nest. Maglagay ng mga grupo sa itaasKapag nilagyan ng check ang checkbox na ito, ang mga pangkat ay palaging nasa itaas, kung hindi, sila ay isasaayos sa pagkakasunud-sunod, halimbawa, tulad nito: Nililimitahan ang bilang ng mga antas ng hierarchyKung ang checkbox ay hindi naka-check dito, ang nesting ay walang limitasyon. Kung may check ang checkbox, maaari mong tukuyin ang bilang ng mga antas sa ibaba. Mga may-ariSa bookmark mga may-ari iba pang mga direktoryo ay maaaring ipahiwatig na may kaugnayan sa kung saan ang isang ito ay subordinate. Ang diagram ng relasyon ng mga subordinate na direktoryo ay katulad ng diagram ng relasyon ng isang hierarchical na direktoryo, dito lamang gumaganap ang isa pang direktoryo bilang magulang at tinatawag na may-ari. Sa karaniwang mga pagsasaayos, ang isang magandang halimbawa ay ang pagpapailalim ng direktoryo ng "Mga Kasunduan" sa direktoryo ng "Mga Counterparty," dahil Hindi maaaring magkaroon ng isang kasunduan na hindi kabilang sa anumang katapat. Tinutukoy ng field na "Listahan ng Mga May-ari ng Direktoryo" ang listahan ng mga direktoryo na nagmamay-ari ng mga elemento ng direktoryong ito. Sa ibaba sa field na "Paggamit ng subordination" ito ay ipinahiwatig kung saan isasailalim ang mga elemento ng direktoryo na ito. Paano malaman ng programmatically kung hierarchical o hindi ang isang direktoryoUpang gawin ito kailangan mong sumangguni sa metadata Ito ay HierarchicalDirectory = Metadata.Directories.Counterparties.Hierarchical; Itutuloy... Pansin! Ito ay isang panimulang bersyon ng aralin, na maaaring hindi kumpleto ang mga materyales. Mag-login sa site bilang isang mag-aaral Mag-log in bilang isang mag-aaral upang ma-access ang mga materyales sa paaralan Query language 1C 8.3 para sa mga baguhan na programmer: mga operator BETWEEN at INLohikal na operator BETWEENOperator PAGITAN nagpapahintulot sa iyo na suriin kasama ba ang halaga? expression na tinukoy sa kaliwa nito sa hanay na tinukoy sa kanan ( kasama ang mga hangganan ng saklaw, iyon ay, kasama). Kaya sa halip na Kung, sa kabaligtaran, kinakailangan upang piliin ang lahat ng pagkain, ang nilalaman ng calorie na kung saan ay hindi kasama sa hanay, kung gayon ang sumusunod na anyo ng negation ay angkop (isang butil ay lumitaw HINDI): Operator PAGITAN Maaaring ilapat sa higit pa sa mga hanay ng numero. Ito rin ay mahusay na gumagana sa mga petsa: Lohikal na operator BSinusuri para sa isang tugma sa isa sa mga nakalistaOperator SA nagpapahintulot sa iyo na suriin tumutugma ba ang halaga ang ekspresyong ipinahiwatig sa kaliwa nito, na may isa sa mga halaga inilarawan sa kanan. Kaya sa halip na Maaari ka bang magsulat ng isang bagay na mas maigsi? At ang resulta ay magiging pareho: Kung, sa kabaligtaran, kinakailangan upang piliin ang lahat ng pagkain, ang kulay nito ay hindi nag-tutugma sa anumang halaga mula sa listahan, kung gayon ang sumusunod na anyo ng negasyon ay angkop (isang butil ay lumitaw HINDI): Sinusuri kung ang isang halaga ay tumutugma sa isa sa mga resulta ng queryIpagpalagay na kailangan nating pumili mula sa database lamang ng mga kulay na naroroon sa paglalarawan ng pagkain. Kaya, ang napiling listahan ay hindi dapat maglaman, halimbawa, ang kulay na itim, dahil walang itim na pagkain sa aming database. Nagbabasa ka ng isang pagsubok na bersyon ng aralin, ang buong mga aralin ay magagamit. Ang isang paraan upang gawin ito ay ang paggamit ng lohikal na operator SA, sa kanan kung saan magkakaroon ng subquery na pumipili ng mga pangalan ng kulay mula sa lahat ng mga entry sa direktoryo Pagkain:
Bilang isang tabi, babanggitin ko na mula sa isang panloob na kahilingan posible na ma-access ang mga patlang ng isang panlabas na kahilingan. Muli, para sa form na ito ng operator SA, magagamit din ang paggamit ng butil HINDI Sa harap niya. Sinusuri ang pagiging miyembro ng hierarchy para sa mga direktoryoPara sa mga direktoryo, maaari ding isagawa ang pagsusuri para sa pagiging miyembro ng hierarchy. Una, tingnan natin ang isang halimbawa ng isang hierarchical na direktoryo. Buksan ang direktoryo ng "Mga Lungsod" sa aming database: Pakitandaan na ang mga elemento nito ay iba sa ibang mga direktoryo ( Pagkain, Mga kulay, Mga lasa) pagkakaroon ng mga dilaw na folder. Ito mga pangkat ng direktoryo. Ang mga grupo ay naiiba sa mga ordinaryong elemento dahil maaari nilang isama ang iba pa pangkat at elemento. Tulad ng mga folder na naglalaman ng iba pang mga folder at file. Upang tingnan ang mga nilalaman ng isang pangkat, i-double click ito: Upang umakyat sa isang antas, i-double click muli ang pangkat: Kaya, ang isang hierarchical na direktoryo ay maaaring maglaman ng parehong mga ordinaryong elemento (halimbawa, Rio de Janeiro, Salvador) at mga grupo (halimbawa, Brazil, India). Nagbabasa ka ng isang pagsubok na bersyon ng aralin, ang buong mga aralin ay magagamit. Ang bawat elemento (pangkat man o ordinaryong elemento) ay maaaring magkaroon ng magulang. Halimbawa, ang magulang ng elementong Rio de Janeiro ay ang grupong Brazil: At totoo ito dahil ang Rio de Janeiro ay bahagi ng grupo ng Brazil sa hierarchy ng direktoryo: Ngayon, magsulat tayo ng query na hihiling sa napiling pangkat ng bansa at lahat ng elemento ng lungsod na kasama dito. Pakitandaan na sa text ng kahilingan ay mayroong ampersand (&) bago ang pangalang GroupCountry. Ang mga pangalan na may ampersand ay awtomatikong kinikilala ng system bilang mga parameter na ang halaga ay dapat itakda bago isagawa ang query. Pagkatapos naming i-paste ang query na ito sa console at i-click ang Run button para mag-update, magagawa naming itakda ang parameter na ito: Piliin ang pangkat na "Russia" bilang halaga nito (Piliin ang pindutan): Kung i-click natin ngayon ang "Run" na buton, ang resulta ng query ay ang mga sumusunod: Ang resulta ng kahilingan ay ang grupo mismo (Russia) at lahat ng mga elemento na bahagi nito (Perm, Krasnoyarsk at Voronezh). Kung pipiliin mo ang "Brazil" sa halip na Russia, ang resulta ay magiging ganito: Kaya ang resulta ng operator SA HIERARKIYA ay magiging TAMA kung ang halaga ng expression sa kaliwa ay isang sanggunian sa isang elemento ng direktoryo at kasama sa hanay ng mga halaga sa kanan (Brazil) o ayon sa hierarchy ay kabilang sa ilang pangkat na nasa set na ito (Sao Paulo, Rio de Janeiro, Salvador). Ang hanay ng mga halaga na susuriin para sa pagtutugma ay maaari ding isama ang resulta ng isang query. Sa kasong ito, sa kanan ng operator SA kailangan mong tukuyin ang isang paglalarawan ng kahilingan: Para sa operator SA HIERARKIYA magagamit din ang maliit na butil HINDI Sa harap niya. Kumuha ng pagsusulitSimulan ang pagsubok 1. Sinusuri ng lohikal na operator BETWEEN ang halaga 2. Lohikal na pagpapahayag 1 SA PAGITAN 1 AT 1 3. Lohikal na pagpapahayag 1 HINDI SA PAGITAN ng 2 AT 2 4. Logical operator B checks 5. Pinapayagan ka ng lohikal na operator B na suriin |
Bago
- Pagbubukas ng nabigasyon para sa maliliit na sasakyang-dagat Pagbubukas ng nabigasyon para sa maliliit na sasakyang-dagat
- Paano magtrabaho sa GIS GMP program
- Mga halimbawa ng mga query para sa pagtatrabaho sa mga hierarchical na direktoryo
- "1C: Retail": pagdaragdag ng mga item
- Computer shock-absorbing group
- Pagsubok: Limitasyon at pagpapatuloy ng mga function ng ilang mga variable Pagsubok ng mga function ng ilang mga variable
- Paano malalaman kung totoo o na-photoshop ang isang larawan
- Kabataan bilang isang panlipunang grupo, mga tampok ng subculture ng kabataan Impormal na grupo ng kabataan
- Pagtatanghal sa computer science "Microsoft ACCESS database management system" Pagtatanghal sa paksang Microsoft Access
- Konsepto ng GIS Data storage system GIS