bahay - Setup ng internet
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:

PUMILI
Mga Bangko. Pangalan,
Banks.CorrAccount
MULA SA
Direktoryo.Mga Bangko PAANO Mga Bangko

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.

Ang wika ng query ay ang pinakasimple at pinakaepektibong paraan upang makakuha ng impormasyon. Tulad ng makikita mula sa halimbawa sa itaas, sa wika ng query kailangan mong gumamit ng mga pangalan ng metadata (ito ay isang listahan ng mga bagay ng system na bumubuo sa pagsasaayos, ibig sabihin, mga direktoryo, mga dokumento, mga rehistro, atbp.).

Paglalarawan ng mga konstruksyon ng wika ng query

Istraktura ng query

Upang makakuha ng data, sapat na gamitin ang mga konstruksyon na "PUMILI" at "MULA". Ang pinakasimpleng kahilingan ay ganito:

SELECT * FROM Directories.Nomenclature

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:

PUMILI
<ИмяПоля1>PAANO<ПредставлениеПоля1>,
kabuuan(<ИмяПоля2>) PAANO<ПредставлениеПоля2>
MULA SA
<ИмяТаблицы1>PAANO<ПредставлениеТаблицы1>
<ТипСоединения>COMPOUND<ИмяТаблицы2>PAANO<ПредставлениеТаблицы2>
NG<УсловиеСоединениеТаблиц>

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

GROUP BY
<ИмяПоля1>

PAGSAY-BAYIN NG
<ИмяПоля1>

RESULTA
<ИмяПоля2>
NG
<ИмяПоля1>

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 disenyo

Tingnan 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.

PUMILI MUNA 100
Mga Bangko. Pangalan,
Mga Bangko. Code AS BIC
MULA SA
Direktoryo.Mga Bangko PAANO Mga Bangko
PAGSAY-BAYIN NG
Mga Bangko.Pangalan

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.

PUMILI PALIT
Imbakan ng Karagdagang Impormasyon. Link
MULA SA
Directory.Repository ng Karagdagang Impormasyon

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.

PUMILI MUNA 100
Mga Bangko. Pangalan,
Mga Bangko. Code AS BIC
MULA SA
Direktoryo.Mga Bangko PAANO Mga Bangko

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:

PUMILI Link.Number, EMPTY TABLE.(No., Item, Dami) BILANG Komposisyon
MULA sa Document.Expense Invoice
PAGSAMAHIN ANG LAHAT
PUMILI ng Link.Number, Mga Nilalaman.(LineNumber, Produkto, Dami)
MULA sa Document.Invoice Document.Invoice.Composition.*

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:

PUMILI
Nomenclature Ref. Link,
IsNULL(Item Remaining.QuantityRemaining,0) AS QuantityRemaining
MULA SA


Maaaring gamitin sa iba pang mga paraan. Halimbawa, kung para sa bawat hilera ay hindi alam kung saang talahanayan umiiral ang halaga:

ISNULL(InvoiceReceived.Date, InvoiceIssued.Date)

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.

PUMILI
View(Link), //string, halimbawa "Advance report No. 123 na may petsang 10/10/2015
View(DeletionMark) AS DeleteMarkText, //string, “Yes” o “No”
ViewReferences(DeletionMark) AS DeleteMarkBoolean //boolean, True or False
MULA SA
Dokumento.Paunang Ulat

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:

EXPRESS(TableCost.Subconto1 AS Directory.Cost Items).Uri ng ActivityForTaxAccountingCosts

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
walang limitasyong haba at mga field ng hindi magkatugmang uri
", kailangan mong ipahayag ang mga field tulad ng sumusunod:

EXPRESS(Komento BILANG Linya(150))

DIFFERENCEDATE

Kumuha ng 267 video lesson sa 1C nang libre:

Isang halimbawa ng paggamit ng IS NULL sa isang kahilingan sa 1C:

PUMILI MULA SA
Ref
LEFT CONNECTION RegisterAccumulations.ProductsIn Warehouses.Remaining AS Product remaining
Software NomenclatureRef.Link = Nabentang GoodsCommitteesRemains.Nomenclature
KUNG SAAN HINDI Natitirang Mga Produkto. QuantityRemaining IS NULL

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:

WHERE Nomenclature.Uri ng Nomenclature = Value(Directory.Uri ng Nomenclature.Product)

WHERE Counterparties.Uri ng Contact Information = Value(Enumeration.Uri ng Contact Information.Phone)

WHERE Account Balances.Accounting Account = Value(Chart of Accounts.Profit.ProfitsLoss)

Mga koneksyon

Mayroong 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:

MULA SA

FULL CONNECTION
Direktoryo.Mga Bangko PAANO Mga Bangko

NG

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:

MULA SA
Direktoryo. Mga Counterparty BILANG Mga Kliyente

INNER JOIN
Direktoryo.Mga Bangko PAANO Mga Bangko

NG
Clients.Name = Banks.Name

Ang query na ito ay magbabalik lamang ng mga row kung saan ang bangko at katapat ay may parehong pangalan.

Mga asosasyon

Ang 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.

PUMILI
Mga rate ng pera Pinakabagong cross-section. Currency AS Currency,
Mga rate ng pera Pinakabagong cross-section.
PUT Mga Rate ng Pera
MULA SA
Rehistro ng Impormasyon.Mga Rate ng Pera.Huling Slice(&Panahon,) BILANG Mga Rate ng CurrencyLast Slice
INDEX NI
Pera
;
PUMILI
PricesNomenclature.Nomenclature,
PricesNomenclatures.Price,
PricesNomenclatures.Currency,
Rate ng pera. Rate
MULA SA
Rehistro ng Impormasyon. Mga Presyo ng Nomenclature. Huling Slice(&Panahon,
Nomenclature B (&Nomenclature) AT PriceType = &PriceType) BILANG PriceNomenclature
LEFT SUMALI Mga Rate ng Pera BILANG Mga Rate ng Pera
Software PricesNomenclatures.Currency = Mga Rate ng Currency.Currency

Pagpapangkat

Binibigyang-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:

PUMILI
Pagbebenta ng Mga Kalakal at Serbisyong Mga Kalakal. Nomenclature,
SUM(Sales of GoodsServicesGoods.Quantity) BILANG Dami,
SUM(Sales of GoodsServicesGoods.Amount) BILANG Halaga
MULA SA

GROUP BY
Pagbebenta ng mga Goods and Services Goods. Nomenclature

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

PUMILI
Banks. Code,
DAMI(IBANG Bangko.Link) BILANG Bilang ng mga Duplicate
MULA SA
Direktoryo.Mga Bangko PAANO Mga Bangko
GROUP BY
Banks.Code

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 resulta

Ang 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.

PUMILI




MULA SA
Dokumento. Pagbebenta ng Mga Kalakal at Serbisyo. Mga Kalakal PAANO Magbebenta ng Mga Kalakal at Serbisyo ng Mga Kalakal
PAGSAY-BAYIN NG

RESULTA
SUM(Dami),
SUM(Sum)
NG
Nomenclature

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".

PUMILI
Pagbebenta ng mga Goods and Services Goods. Nomenclature AS Nomenclature,
Mga Pagbebenta ng Mga Kalakal at Serbisyong Mga Kalakal. I-link ang AS Document,
Pagbebenta ng Mga Kalakal at Serbisyong Mga Kalakal. Dami AS Dami,
Mga Benta ng Mga Produkto at Serbisyong Mga Kalakal. Halaga BILANG Halaga
MULA SA
Dokumento. Pagbebenta ng Mga Kalakal at Serbisyo. Mga Kalakal PAANO Magbebenta ng Mga Kalakal at Serbisyo ng Mga Kalakal
PAGSAY-BAYIN NG
Mga Benta ng Mga Kalakal at Serbisyong Mga Kalakal. Link. Petsa
RESULTA
SUM(Dami),
SUM(Sum)
NG
KARANIWAN,
Nomenclature

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-aayos

Ang 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.

PUMILI

MULA SA
Directory.Nomenclature AS Nomenclature
PAGSAY-BAYIN NG
Pangalan

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.

PUMILI
Nomenclature.Pangalan AS Pangalan
MULA SA
Directory.Nomenclature AS Nomenclature
AUTO ORDER

Mga virtual na talahanayan

Ang 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.

  • hiwa ng una;
  • putol ng huli.
  • mga tira;
  • mga rebolusyon;
  • balanse at turnover.
  • mga paggalaw mula sa subconto;
  • mga rebolusyon;
  • bilis Dt Kt;
  • mga tira;
  • balanse at turnover
  • subconto.
  • base;
  • data ng graph;
  • aktwal na panahon ng bisa.

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.

PUMILI
Ang mga Produkto sa Mga Warehouse ay Nananatili at Turnover. Nomenclature,
ProductsIn WarehousesRemainingAndTurnover.QuantityInitialRemaining,
ProductsIn WarehousesRemainsAndTurnover.QuantityTurnover,
GoodsIn WarehousesRemainsAndTurnover.Dami Papasok,
GoodsIn WarehousesRemains And Turnover.Dami ng Pagkonsumo,
ProductsIn WarehousesRemainingsAndTurnover.QuantityFinalRemaining
MULA SA
RegisterAccumulations.GoodsIn Warehouses.RemainsAndTurnover BILANG GoodsIn WarehousesRemainsAndTurnover

Binibigyang-daan ka ng query na ito na mabilis na makuha ang isang malaking halaga ng data.

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:

  1. Nakukuha namin ang pinakamalapit na kinakalkula na halaga sa mga tuntunin ng petsa at mga sukat sa talahanayan ng mga kabuuan.
  2. "Idinaragdag" namin ang halaga mula sa talahanayan ng paggalaw sa halaga mula sa talahanayan ng mga kabuuan.


Ang ganitong mga simpleng aksyon ay maaaring makabuluhang mapabuti ang pagganap ng system sa kabuuan.

Gamit ang Query Builder

Tagabuo 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.

Ang query text constructor ay inilunsad mula sa context menu (kanang mouse button) sa nais na lugar sa program code.

Paglalarawan ng 1C request constructor

Tingnan 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 Field

Tinutukoy 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 koneksyon

Ang tab ay ginagamit upang ilarawan ang mga koneksyon ng ilang mga talahanayan at lumilikha ng mga constructions na may salitang CONNECTION.

Tab ng pagpapangkat

Sa 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 kundisyon

Responsable 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 tab

Tab 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:

  • Unang n– isang parameter na nagbabalik lamang ng N record sa query (ang FIRST operator)
  • Walang mga duplicate– tinitiyak ang pagiging natatangi ng mga natanggap na talaan (IBA'T IBANG operator)
  • Pinayagan– nagpapahintulot sa iyo na piliin lamang ang mga talaan na pinapayagan ka ng system na piliin na isinasaalang-alang (PINAGPAHAYAG na pagtatayo)

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/Alyas

Sa 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 order

Tinutukoy 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 Batch

Sa 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 query

Sa 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 Console

Ang 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 console

Una 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 console

Simulan 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.

  • Ipatupadhiling– simpleng pagpapatupad at mga resulta
  • Ipatupad ang package– nagbibigay-daan sa iyong tingnan ang lahat ng mga intermediate na query sa isang batch ng mga query
  • Pagtingin sa mga pansamantalang talahanayan– nagbibigay-daan sa iyong makita ang mga resulta na ibinabalik ng mga pansamantalang query sa isang talahanayan

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:

  • Pindutan Kunin mula sa kahilingan awtomatikong hinahanap ang lahat ng mga parameter sa kahilingan para sa kaginhawahan ng developer.
  • Bandila Mga karaniwang parameter para sa lahat ng kahilingan– kapag naka-install, ang pagproseso nito ay hindi na-clear ang mga parameter kapag lumilipat mula sa kahilingan sa kahilingan sa pangkalahatang listahan ng mga kahilingan.

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:

Kahilingan = Bagong Kahilingan;
Request.Text = ”
|PUMILI
| Mga pera. Link
|MULA
| Directory.Currencies AS Currencies”;
RequestResult = Request.Execute();

Ang mas mababang field ng query console ay nagpapakita ng query result field, kaya naman ang pagproseso na ito ay ginawa:



Gayundin, ang query console, bilang karagdagan sa listahan, ay maaaring magpakita ng data sa anyo ng isang puno - para sa mga query na naglalaman ng mga kabuuan.

Pag-optimize ng query

Ang 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 construct

Kinakailangang 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:

PUMILI

MULA SA
Register of Accumulations. Mutual settlements with Participants of Organizations. Balances (
,
Organisasyon = &Organisasyon
AT Indibidwal = &Indibidwal) PAANO Binabalanse ang Mutual settlements sa Mga Kalahok ng Organisasyon

MALI:

PUMILI
Mutual settlements sa mga Participant of Organizations Balances. Halaga Balanse
MULA SA
Register of Accumulations. Mutual settlements with Participants of Organizations. Balances (,) HOW Mutual settlements with Participants of Organizations Balances
SAAN
Mutual settlements sa Mga Kalahok ng Mga Balanse sa Organisasyon. Organisasyon = & Organisasyon
AT Mutual settlements sa Mga Kalahok ng Mga Balanse sa Organisasyon. Indibidwal = &Indibidwal

Pagkuha ng halaga ng isang field ng isang kumplikadong uri gamit ang isang tuldok

Kapag 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:

PUMILI
Record Set.Recorder.Date,
RecordSet.Dami
MULA SA
RegisterAccumulations.ProductsOrganizations AS SetRecords

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:

PUMILI
PAGPILI
WHEN ProductsOrg.Registrar LINK Document.Benta ng Mga Produkto at Serbisyo
THEN EXPRESS(ProductsOrganization.Registrar AS Document.Sales of GoodsServices).Petsa
WHEN GoodsOrg.Registrar LINK Document.Receipt of GoodsServices
THEN EXPRESS(GoodsOrg.Registrar AS Document.Receipt of GoodsServices).Petsa
WAKAS BILANG PETSA,
ProductsOrg.Dami
MULA SA
RegisterAccumulations.ProductsOrganizations AS ProductsOrganization

O ang pangalawang opsyon ay ang magdagdag ng naturang impormasyon sa mga detalye, halimbawa, sa aming kaso, pagdaragdag ng petsa.

TAMA:

PUMILI
ProductsOrganizations.Date,
ProductsOrganizations.Dami
MULA SA
Register of Accumulations. Goods of Organizations AS Goods of Organizations

Mga subquery sa kondisyon ng pagsali

Para 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:

PUMILI…

UMALIS SA SUMALI (
PUMILI MULA SA RegisterInformation.Limits
SAAN…
GROUP NI...
) NG…

TAMA:

PUMILI…
Ilagay ang mga Limitasyon
MULA sa Information Register.Limits
SAAN…
GROUP NI...
INDEX NI...;

PUMILI…
MULA sa Dokumento. Pagbebenta ng Mga Kalakal at Serbisyo
KALIWA SUMALI Mga Limitasyon
NG …;

Pagsali sa Mga Tala gamit ang Virtual Tables

May 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 field

Isa 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:

  1. Ang index ay naglalaman ng lahat ng mga field na nakalista sa kundisyon.
  2. Ang mga field na ito ay nasa pinakasimula ng index.
  3. Ang mga pagpipiliang ito ay magkakasunod, iyon ay, ang mga halaga na hindi kasama sa kondisyon ng query ay hindi "nakakabit" sa pagitan nila.

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 kundisyon

Iyon 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 Function

Dahil 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 language

Napag-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:


PUMILI
Nomenclature.Code,
Nomenclature.Presyo ng Pagbili
MULA SA

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:


PUMILI
Nomenclature.Code,
Nomenclature. Pangalan AS Pangalan,
Nomenclature.Presyo ng Pagbili
MULA SA
Directory.Nomenclature AS Nomenclature

SAAN
Nomenclature.Parent = &Group

Ang query na ito ay pipili ng mga pangkat at elementong nasa ilalim ng pangkat na may link na &Group.

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:


Kung Request.Execute().Empty() Then
Report("Walang entry");
Kung hindi
Report("Magagamit ang mga tala");
tapusin kung;

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:


CurrentItemItem = ItemItem;

Query = Bagong Query("SELECT
| Nomenclature.Magulang,
| Nomenclature.Parent.Parent,
| Nomenclature.Parent.Parent.Parent,
| Nomenclature.Parent.Parent.Parent.Parent,
| Nomenclature.Parent.Parent.Parent.Parent.Parent
|MULA
| Directory.Nomenclature AS Nomenclature
|SAAN
| Nomenclature.Link = &CurrentNomenclatureElement";

Habang ang Truth Cycle
Request.SetParameter("CurrentItemItem", CurrentItemItem);
Resulta = Query.Run();
Kung Resulta.Empty() Pagkatapos
I-abort;
tapusin kung;
Selection = Result.Select();
Selection.Next();
Para sa ColumnNumber = 0 By Result.Columns.Quantity() - 1 Loop
CurrentItemItem = Selection[ColumnNumber];
I-abort;
Kung hindi
Ulat(CurrentItemItem);
tapusin kung;
EndCycle;

Kung CurrentItemItem = Directories.Nomenclature.EmptyLink() Pagkatapos
I-abort;
tapusin kung;
EndCycle;

Sa halimbawang ito, ang lahat ng mga magulang para sa link na naitala sa variable ng ElementNomenclature ay ipinapakita sa window ng mensahe ng serbisyo. Sa cycle, 5 link na magulang ang napili.

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:


PUMILI
Nomenclature.Code,
Nomenclature. Pangalan AS Pangalan,
Nomenclature.Presyo ng Pagbili
MULA SA
Directory.Nomenclature AS Nomenclature
PAGSAY-BAYIN NG
Pangalan HIERARCHY

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:


PAGSAY-BAYIN NG
Nomenclature. Ito ang Group HIERARCHY,
Pangalan

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.


PUMILI
Nomenclature.Code,
Nomenclature. Pangalan AS Pangalan,
Nomenclature.Presyo ng Pagbili

FROM Directory.Nomenclature AS Nomenclature

SAAN
(Nomenclature.ThisGroup = FALSE)

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:


PUMILI

MULA SA

HIERARKIYA ng Nomenclature

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:


PUMILI
Accounting para sa NomenclatureTurnover.Nomenclature AS Nomenclature,
Accounting para sa NomenclatureTurnover.Nomenclature.Presentation,
Accounting para sa NomenclatureTurnover.QuantityTurnover AS QuantityTurnover
MULA SA
Accumulation Register.Nomenclature Accounting.Turnover HOW Nomenclature AccountingTurnover
HALAGA NG RESULTA (QuantityTurnover) PO
Nomenclature HIERARCHY LAMANG

Ang resulta ng query na ito ay magiging kabuuang mga talaan lamang para sa mga pangkat ng item.

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.

Basic

Dito 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.

Hierarchy

Sa 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 elemento

Sa 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 itaas

Kapag 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 hierarchy

Kung 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-ari

Sa 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 direktoryo

Upang 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 IN

Lohikal na operator BETWEEN

Operator 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 B

Sinusuri para sa isang tugma sa isa sa mga nakalista

Operator 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 query

Ipagpalagay 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:

PUMILI Pangalan MULA SA Direktoryo. Mga Kulay WHERE Name IN ( PILI NG Kulay. Pangalan MULA 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 direktoryo

Para 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 pagsusulit

Simulan 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



 


Basahin:



Mga prinsipyo ni John von Neumann

Mga prinsipyo ni John von Neumann

Noong 1946, sina D. von Neumann, G. Goldstein at A. Berks, sa kanilang magkasanib na artikulo, ay nagbalangkas ng mga bagong prinsipyo para sa pagtatayo at pagpapatakbo ng mga kompyuter. SA...

Ang konsepto ng isang algorithm. Programming. Algorithms at programming language Paksa ng programming science

Ang konsepto ng isang algorithm.  Programming.  Algorithms at programming language Paksa ng programming science

). Ang pagbuo ng programa gamit ang naturang programming system ay binubuo ng dalawang yugto: 1) paglikha ng mga graphic na elemento sa isang visual mode...

Internasyonal na kumpetisyon para sa mga batang mambabasa "living classics" Living classics VK

Pandaigdigang Kumpetisyon para sa mga Batang Mambabasa

Dahil sa malaking bilang ng mga taong nagnanais na makilahok sa kumpetisyon sa taong ito at dahil sa malaking bilang ng mga katanungan tungkol sa pagpapatakbo ng site...

Mga protina ng lamad bilang mga channel ng ion

Mga protina ng lamad bilang mga channel ng ion

2 Ang prinsipyo ng istraktura. Ang bawat reflex ay may sariling morphological substrate, sarili nitong reflex arc. 26. Reflexes... I. Unconditioned reflexes...

feed-image RSS