Ngayon ang programa ng 1C ay umiiral sa iba't ibang mga bersyon at guises, ang mga tao ay nagtatrabaho sa "pito", i.e. sa 1C 7.7 at sa “walong” na 8.0, 8.1, 8.2 at 8.3. Sa pagsasagawa, sa ngayon 99.9% ng mga user ng 1C program ay gumagana sa 7.7, 8.2, at 8.3, paano sila nagkakaiba?

Ang programa ng 1C 7.7 ay kilala sa marami para sa medyo hindi napapanahong interface, ngunit mayroon itong kalamangan sa laki ng database at sa bilis ng paglunsad at trabaho, na nangangahulugang mayroon itong lugar sa merkado para sa software ng automation ng accounting, bagaman ngayon hindi na ibinebenta ang program na ito, ngunit ginagamit ito ng mga tao, at sinusuportahan pa rin ng kumpanya ng 1C ang program na ito, i.e. lumalabas ang mga update para dito.
Ngunit ang paksa ng artikulo ay hindi pa rin tungkol sa 7.7, ngunit tungkol sa mga pagkakaiba sa pagitan ng 8.2 at 8.3. (at para sa impormasyon, ang pagkakaiba sa pagitan ng 7.7 at 8.* ay napakahalaga na ang mga base para sa pito ay hindi tatakbo sa 8.* platform at vice versa, i.e. 7.7 at 8.* ay, kumbaga, ganap na magkaibang mga programa , ngunit ang 8.2 at 8.3 ay halos magkapareho, 8.3 lamang ang mas bago)

Ang 1C program ay binubuo ng 1C platform at 1C database, i.e. Ang 1C platform ay isang programa na nagpapatakbo ng mga database ng 1C.

Para sa user: kapag nag-click kami sa 1C shortcut at bubukas ang isang listahan ng mga database ng 1C, nakikita namin ang bahagi ng 1C platform, o kapag pumili kami ng database at nag-click sa button na "Configurator", i.e. pumunta kami sa 1C configurator, maaari rin naming sabihin na nakikita namin ang bahagi ng 1C platform, ngunit kapag binuksan namin ang database sa pamamagitan ng pag-click sa pindutan ng "1C: Enterprise", nakita na namin ang database, kasama ang mga setting nito, "mga menu", mga pindutan, mga larawan, atbp. pagkatapos ito ay isa nang 1C database, na maaaring mag-iba depende sa uri nito, i.e. Mga pagsasaayos ng database ng 1C
Ang database ng 1C ay binubuo ng isang pagsasaayos (ibig sabihin, mga setting nito) at data (ibig sabihin, ang impormasyon sa loob nito).

Mayroong iba't ibang mga configuration ng 1C para sa iba't ibang accounting, ibig sabihin, para sa accounting ay maaaring mayroong isang configuration na tinatawag na "Enterprise Accounting" o iba pa, para sa trade isang configuration tulad ng "Trade Management" o "Retail" o iba pa ay maaaring gamitin, para sa personnel accounting at payroll, halimbawa "Payroll at HR management", mayroon ding mga configuration para sa kumplikadong accounting, halimbawa para sa automation ng halaman.
Mayroong maraming mga pagsasaayos, ilang daang iba't ibang mga pagsasaayos para sa iba't ibang accounting.

Ang lahat ng mga pagsasaayos na ito ay maaaring gawin upang gumana sa 1C 7.7 o 8.2 o 8.3 Ano ang mga pagkakaiba at bakit ito nakasulat tungkol sa mga pagsasaayos kung ang 8.2 at 8.3 at maging ang 7.7 ay mga platform? Alamin natin ngayon.

Ang bawat platform ay may iba't ibang kakayahan para sa paglikha ng mga configuration, at kapag mas mataas ang bersyon ng platform, mas maraming functionality at kakayahan ang platform na ito.
Kung kailangan namin ng 1C database na may configuration, sabihin ang "Enterprise Accounting," na may release na bersyon, halimbawa, "3.0.60.44" at susubukan naming maghanap ng impormasyon tungkol dito, pagkatapos ay malalaman namin iyon para sa configuration na ito at sa release na ito upang gumana, kakailanganin namin ang isang platform na hindi bababa sa 8.3, higit pa, hindi bababa sa 8.3.10.2466, nangangahulugan ito na hindi na babagay sa amin ang platform 8.2!

Maraming configuration para sa 1C 8.* platform, ngunit maaaring hatiin ang mga ito sa 2 subtype: mga configuration (1) na may "regular form", at (2) na may "managed forms"
Ang ibig sabihin ng "Ordinaryo" ay katulad ng dati, halimbawa, katulad ng 1C 7.7, at ang "Pinamamahalaan" ay mas modernong mga anyo, mas maganda, na mas madaling pamahalaan kapag nilikha ang mga ito.

Paano ko malalaman kung mayroong regular o pinamamahalaang mga form sa aking 1C database?

Kung sa itaas ng program ay may makikita kang linya ng "mga menu" na may mga pangalan gaya ng "File", "Edit", o "Operations", "Service", "Windows", "Help", at higit sa lahat, maaari mong i-click ang mga ito at pababa sa “will drop out” » submenu na may seleksyon ng mga sub-item, na nangangahulugang mayroon kang configuration na may mga regular na form.

Kung wala kang ganoong "mga menu" sa itaas, ngunit may mga link sa itaas o kaliwa o sa iba pang bahagi ng programa, sa website, i.e. itinuro mo sila at agad silang nakasalungguhit, maaaring may mga pangalan sila gaya ng "Pangunahin", o "Sales", "Pagbili", "Pamamahala" o "Data ng pananaliksik at pangangasiwa" o iba pang katulad na mga link o larawan, at kapag nag-click ka sa wala silang listahan ng mga submenu na "drop out", ngunit ang impormasyon o isang hiwalay na window ay bubukas sa gitna ng programa, na nangangahulugang mayroon kang isang pagsasaayos na may "pinamamahalaang mga form", kadalasan sila ay mas maganda at moderno sa hitsura. Kung alam mo na mayroon kang interface na "Taxi", ang mga ito ay tiyak na pinamamahalaang mga form.

Dati, noong wala pang platform 8.3 at mayroon pa lang 8.2 at regular na mga form, nagsimula na ang mga configuration sa mga pinamamahalaang form, lumitaw ang platform 8.3, at ilang sandali pa, maraming tao ang nagsimulang iugnay ang platform 8.3 sa mga pinamamahalaang form, at platform 8.2 na may mga regular. Ito ay kung paano ang konsepto ay naging mas malakas kaysa sa isang tao 1C 8.2 (ibig sabihin, 1C base na may configuration sa mga regular na form), at isang tao 1C 8.3 (i.e. 1C database na may configuration sa mga pinamamahalaang form).
Sa katunayan, ang platform 8.3 ay mas bago kaysa sa 8.2, na nangangahulugang maaari itong gumana sa lahat ng mga configuration para sa 1C 8.*, PERO! Kung mayroon kang isang platform 8.3, at ang base ng pagsasaayos ay nakabatay sa mga regular na form, maaari nilang sabihin na mayroon kang 1C 8.2 at ito ay mahalagang maunawaan!

Mahalaga rin na maunawaan na maaaring mayroon kang platform 8.2 at ang pagsasaayos ay batay sa mga pinamamahalaang form, pagkatapos ay maaari nilang sabihin na mayroon kang 1C 8.3! Para sa marami, ito ay mas mabilis, mas maginhawa at mas pamilyar.
Yung. karamihan sa mga tao ay walang pakialam kung anong platform ang mayroon sila at kung mayroon silang base na may mga regular na form, ito ay 1C 8.2! kung may mga pinamamahalaan - pagkatapos ay 8.3!

Batay sa katotohanang ito at sa itinatag na opinyon sa mga tuntunin, sa aming website makikita mo ang pagproseso ng 8.2 o 8.3 Hindi ito nangangahulugan na para sa pagproseso ay mahalaga kung anong platform ang mayroon ka, nangangahulugan ito na, gagana ang pagproseso sa database na may mga regular na form o sa mga pinamamahalaan lamang, at mayroon ding mga unibersal na paggamot, ang kanilang pangalan ay sasabihin (8.2 at 8.3) o (8.2/8.3) o (8.2-8.3) o (8.*)

Nasa ibaba ang mga halimbawa ng ilang sikat na 1C configuration sa mga regular na form, i.e. tinatawag na 1C 8.2:
— Enterprise accounting 2.0.*.*
— Pamamahala ng kalakalan 10.3.*.*
— Pagtitingi 1.1.*.*
— Pamamahala ng suweldo at tauhan 2.5.*.*

Ngayon mga halimbawa ng ilang sikat na 1C configuration sa mga pinamamahalaang form, i.e. ang mga ito ay tinatawag na 1C 8.3:
— Enterprise accounting 3.0.*.*
— Pamamahala ng kalakalan 11.*.*.*
— Pagtitingi 2.*.*.*
— Pamamahala ng suweldo at tauhan 3.*.*.*
— Pamamahala ng aming kumpanya 1.6.*.*

Isang maikling bersyon ng buong artikulo o ang sagot sa tanong: aling 1C 8.2 o 8.3 ang mayroon ako?

Kung mayroon kang 1C database, pagkatapos mong buksan ito, sa itaas ay mayroong isang linya ng "menu" na may mga pangalan halimbawa "File", "Edit", o "Operations", "Service", "Windows", "Help ”, at kapag pinindot mo, lilitaw ang isang submenu na may pagpipilian ng mga sub-item, kung gayon ang naturang database ay tinatawag na 1C 8.2 at tanging ang mga pagpoproseso, mga ulat, mga extension na mayroong "8.2" sa kanilang mga pangalan ang maaaring angkop para dito, at ang mga pagproseso na mayroong "8.3" sa kanilang pangalan ay hindi angkop.

Kung walang ganoong linya mula sa "mga menu", ngunit may mga link, kapag nag-hover ka kung saan ang mga link na ito ay agad na nakasalungguhit, maaaring may mga pangalan ang mga ito na Pangunahin" o "Manager" o "Sales", "Pagbili", "Pamamahala ” o “Data at pangangasiwa ng pananaliksik” o iba pang katulad na mga link o kahit na mga larawan. Nangangahulugan ito na ito ay isang 1C 8.3 base at tanging ang mga pagproseso, mga ulat, mga extension na may "8.3" sa kanilang mga pangalan ang maaaring maging angkop para dito, at ang mga pagproseso na mayroong "8.2" sa kanilang pangalan ay hindi angkop.

Ang pagbubukod ay ang pangkalahatang pagproseso, ang mga ulat sa mga pangalan kung saan kasama ang parehong 8.2 at 8.3, i.e. ang pamagat ay magsasabi ng (8.2 at 8.3) o (8.2/8.3) o (8.2-8.3) o (8.*)

Inilalapat ang mga kundisyon sa mga query kapag kinakailangang piliin ang hindi lahat ng mga tala mula sa isang 1C infobase table, ngunit ang mga nakakatugon lamang sa isa o higit pang pamantayan sa pagpili.

Ang mga kundisyon sa 1C na mga query ay maaaring itakda sa iba't ibang paraan depende sa mga katangian ng mismong query at ang data source.

Keyword na "WHERE"

Keyword SAAN ginagamit sa mga 1C na query kapag may inilapat na kundisyon sa mga talaan na pinili mula sa infobase. Sa kasong ito, ang pag-filter ng mga tala ay nangyayari sa yugto ng pagpili sa mga ito mula sa talahanayan ng infobase.

Halimbawa, mayroong isang mesa Mga pagbabayad, na naglalaman ng listahan ng mga empleyado at mga pagbabayad na ginawa sa kanila.

Kung kailangan mong pumili ng mga pagbabayad sa halagang hindi bababa sa 10,000, ang kahilingan ay magiging ganito

Hiling. Teksto= "PUMILI
| Mga Pagbabayad. Empleyado,
| Mga bayad
|MULA
| Mga pagbabayad
|SAAN
| Mga pagbabayad. >=10000"

Ang resulta ng query ay ang sumusunod na talahanayan.

Keyword na "MAYROON"

Keyword MAY sa 1C query ito ay ginagamit kapag ito ay kinakailangan upang pumili sa mga napili nang mga tala. Halimbawa, ginagamit ang keyword na ito kapag kailangan mong i-filter ang mga nakagrupong tala bilang resulta ng isang query.

Bumalik tayo sa halimbawang tinalakay sa itaas. Sabihin nating kailangan mong pumili mula sa isang talahanayan Mga pagbabayad mga empleyado na nakatanggap ng higit sa 20,000 sa kabuuan Empleado, kalkulahin ang kabuuan ayon sa field suweldo para sa bawat empleyado, at pagkatapos ay mula sa natanggap na mga rekord piliin ang mga nakakatugon sa kondisyon.

Magiging ganito ang hitsura ng text ng kahilingan.

Hiling. Teksto= "PUMILI
| Mga Pagbabayad. Empleyado,
| AMOUNT(Payments.Salary) AS Salary
|MULA
| Mga pagbabayad
|GROUP NI
| Mga Pagbabayad.Empleyado
|MAY
| AMOUNT(Payments.Salary) > 20000"

Ang resulta ng pagsasagawa ng kahilingang ito ay magiging ganito.

Malinaw na ipinapakita ng halimbawang ito ang pagkakaiba sa pagitan ng mga keyword SAAN At NAGKAROON. Kung ginamit natin ang salita SAAN sa halip na MAY, pagkatapos ay pipiliin muna ang mga rekord na may suweldong higit sa 20,000, at pagkatapos ay kakalkulahin mula sa kanila ang halaga para sa bawat empleyado. Bilang resulta, makakatanggap kami ng walang laman na resulta ng query, dahil walang empleyadong nakatanggap ng higit sa 20,000 sa isang bayad.

Mga kundisyon ng pagpili sa mga virtual na talahanayan ng rehistro

Ang lahat ng mga rehistro sa 1C:Enterprise system ay may mga virtual na talahanayan: mga rehistro ng akumulasyon, mga rehistro ng impormasyon, mga rehistro ng accounting. Maaari kang magtakda ng mga kundisyon para sa mga virtual na talahanayan sa dalawang paraan:

  1. sa pamamagitan ng mga parameter ng virtual na talahanayan;
  2. sa pamamagitan ng mga seksyon ng kahilingan SAAN o NAGKAROON.

Mga pagkakaiba sa pagitan ng mga seksyon SAAN At MAY napatingin na kami. Upang maunawaan kung paano naiiba ang mga kundisyon sa mga seksyong ito ng kahilingan mula sa mga kundisyon sa mga parameter ng virtual na talahanayan, kailangan mong maunawaan kung ano ang virtual na mga talahanayan ng rehistro sa 1C. Ang kanilang mahalagang tampok ay hindi sila umiiral sa base ng impormasyon. Ito ay isang tool na ibinigay sa amin ng 1C:Enterprise platform para i-optimize ang configuration.

Kaya, kung ang isang kundisyon ay tinukoy sa mga parameter ng isang virtual na talahanayan, pagkatapos ito ay inilapat sa yugto ng pagbuo nito mula sa mga tala sa totoong talahanayan ng rehistro. At kung sa mga seksyon SAAN o MAY, pagkatapos - sa mga talaan ng nabuo nang virtual na talahanayan.

Tingnan natin ang isang halimbawa. Ang isang talahanayan ng periodic information register ay ibinigay Mga rate ng pera.

Kailangan mong pumili ng mga pera para sa pinakamababang petsa na ang rate ay mas mababa sa 30 rubles.

Ang isang query na may kundisyon sa mga parameter ng virtual na talahanayan ay magiging ganito:

Sa kasong ito makakakuha tayo ng isang entry: Dolyar 28.3 napetsahan 02/01/2007. Ito ang magiging tamang solusyon sa problema.

Kung ilalagay natin ang kundisyon sa seksyon SAAN, pagkatapos ay magiging walang laman ang resulta ng query, dahil sa una ay magkakaroon ng cut sa mga una para sa bawat currency (bilang resulta ay makakakuha tayo ng dalawang record mula 01/01/2007 Dolyar 30.25 At Euro 40.5), at pagkatapos ay pipiliin mula sa kanila ang mga talaan na nakakatugon sa kundisyon. Ngunit ang parehong natanggap na mga tala ay napapailalim sa Well< 30 huwag masiyahan.

Ang 1C query language ay isa sa mga pangunahing pagkakaiba sa pagitan ng mga bersyon 7.7 at 8. Isa sa pinakamahalagang punto sa pag-aaral ng 1C programming ay ang query language. Sa 1C 8.3, ang mga query ang pinakamakapangyarihan at epektibong tool para sa pagkuha ng data. Ang wika ng query ay nagpapahintulot sa iyo na makakuha ng impormasyon mula sa database sa isang maginhawang paraan.

Ang syntax mismo ay lubos na nakapagpapaalaala sa klasikong T-SQL, maliban na sa 1C, gamit ang query language, makakatanggap ka lamang ng data gamit ang Select construct. Sinusuportahan din ng wika ang mas kumplikadong mga konstruksyon, halimbawa, (kahilingan sa loob ng isang kahilingan). Ang mga query sa 1C 8 ay maaaring isulat sa parehong Cyrillic at Latin.

Sa artikulong ito susubukan kong pag-usapan ang tungkol sa mga pangunahing keyword sa 1C query language:

  • pumili
  • pinahihintulutan
  • iba-iba
  • ipahayag
  • una
  • para sa pagbabago
  • ibig sabihin
  • uri ng halaga (at REFERENCE operator)
  • pagpili
  • pangkat sa pamamagitan ng
  • pagkakaroon
  • AY WALANG BISA
  • Oo null
  • mga koneksyon - kanan, kaliwa, panloob, puno.

Pati na rin ang ilang maliliit na trick ng 1C na wika, kung saan maaari mong mahusay na mabuo ang teksto ng kahilingan.

Upang i-debug ang mga query sa 1C 8.2 system, isang espesyal na tool ang ibinigay - ang query console. Maaari mong makita ang paglalarawan at i-download ito gamit ang link -.

Tingnan natin ang pinakamahalaga at kawili-wiling mga operator ng 1C query language.

PUMILI

Sa 1C Enterprise 8 query language, ang anumang query ay nagsisimula sa isang keyword PUMILI. Sa wikang 1C walang mga UPDATE, DELETE, CREATE TABLE, INSERT constructs ang mga manipulasyong ito ay ginagawa sa object technology. Ang layunin nito ay magbasa lamang ng data.

Halimbawa:

PUMILI
Kasalukuyang Direktoryo.Pangalan
MULA SA
Directory.Nomenclature AS Current Directory

Ang query ay magbabalik ng isang talahanayan na may mga pangalan ng item.

Malapit sa istraktura PUMILI makakahanap ka ng mga keyword PARA SA PAGBABAGO, PINAPAYAGAN, IBA-IBA, UNA

PINAPAYAGAN— pinipili lamang ang mga tala mula sa talahanayan kung saan ang kasalukuyang gumagamit ay may mga karapatan.

IBA-IBA— nangangahulugan na ang resulta ay hindi maglalaman ng mga duplicate na linya.

PAGPILI (KASO)

Kadalasan ang disenyo na ito ay minamaliit ng mga programmer. Isang halimbawa ng paggamit nito:

Kasalukuyang Direktoryo. Pangalan,

KAPAG Kasalukuyang Direktoryo.Serbisyo NOON

"Serbisyo"

END PAANO TINGNANNomenclature

Directory.Nomenclature AS Current Directory

Ang halimbawa ay magbabalik ng text value sa field na “Uri ng Item” - “Produkto” o “Serbisyo”.

SAAN

Ang disenyo ng 1C query language, na nagpapahintulot sa iyo na magpataw ng seleksyon sa natanggap na data. Pakitandaan na natatanggap ng system ang lahat ng data mula sa server, at pagkatapos lamang ito ay pinili batay sa parameter na ito.

PUMILI
Direktoryo.Pangalan
MULA SA
Kasalukuyang Direktoryo.Nomenclature AS Kasalukuyang Direktoryo
WHERE CurrentDirectory.Service = TRUE

Sa halimbawa, pipili kami ng mga tala kung saan nakatakda ang value ng attribute na "Serbisyo" sa "True". Sa halimbawang ito, makakamit natin ang sumusunod na kondisyon:

"ASAAN ANG SERBISYO"

Sa pangkalahatan, pumipili kami ng mga row kung saan ang expression pagkatapos ng keyword ay katumbas ng "True".

Maaari kang gumamit ng mga direktang kundisyon sa mga expression:

WHERE Code = "005215"

Gamit ang operator na “VALUE()” sa mga kundisyon, gumamit ng access sa mga paunang natukoy na elemento at enumerasyon sa isang kahilingan sa 1C:

WHERE Uri ng Item = Halaga(Enumeration.Mga Uri ng Item.Produkto)

Maaaring tukuyin ang mga halaga ng oras tulad ng sumusunod:

WHERE Petsa ng Resibo > DATETIME(2012,01,01):

Kadalasan, ang mga kundisyon ay tinukoy bilang mga parameter na ipinasa sa kahilingan:

Kumuha ng 267 video lesson sa 1C nang libre:

WHERE NomenclatureGroup= &NomenclatureGroup

Ang isang kundisyon ay maaaring ipataw sa uri ng katangian kung ito ay isang pinagsama-samang uri:

Kung kailangan mong limitahan ang pagpili mula sa isang listahan ng mga halaga o isang array, maaari mong gawin ang sumusunod:

NASAAN ang Accumulation Registrar B (&Listahan ng mga Dokumento para sa Pagpili)

Ang kundisyon ay maaari ding maging kumplikado, na binubuo ng ilang mga kundisyon:

WHERE Receipt Date > DATETIME(2012,01,01) AND NomenclatureGroup= &NomenclatureGroup AT HINDI Serbisyo

GROUP BY

Disenyo ng 1C 8.2 query language na ginamit sa pagpangkat ng resulta.

Halimbawa:

PUMILI
Pagtanggap ng mga Goods and Services Goods,
SUM(Receipt of GoodsServicesGoods.Quantity) BILANG Dami,
SUM(Receipt of GoodsServicesGoods.Amount) BILANG Halaga
MULA SA
Dokumento. Pagtanggap ng Mga Kalakal at Serbisyo PAANO Pagtanggap ng Mga Kalakal at Serbisyo

GROUP BY
Pagtanggap ng GoodsServicesGoods.Goods

Ibubuod ng kahilingang ito ang lahat ng mga resibo ayon sa halaga at dami ayon sa item.

Bukod sa keyword SUM Maaari kang gumamit ng iba pang pinagsama-samang mga function: DAMI, BILANG NG IBA, MAKSIMUM, MINIMUM, AVERAGE.

MAY

Isang disenyo na madalas nakalimutan, ngunit ito ay napakahalaga at kapaki-pakinabang. Pinapayagan ka nitong tukuyin ang pagpili sa anyo ng isang pinagsama-samang function, hindi ito magagawa sa disenyo SAAN.

Halimbawa ng paggamit ng HAVING sa isang kahilingan sa 1C:

PUMILI
Pagtanggap ng mga Goods and Services Goods,
SUM(Receipt of GoodsServicesGoods.Quantity) BILANG Dami,
SUM(Receipt of GoodsServicesGoods.Amount) BILANG Halaga
MULA SA
Dokumento. Pagtanggap ng Mga Produkto at Mga Serbisyo PAANO Pagtanggap ng Mga Kalakal at Serbisyo

GROUP BY
Pagtanggap ng mga Goods and Services Goods

SUM(Receipt of GoodsServicesGoods.Quantity) > 5

Kaya pipiliin namin ang bilang ng mga produkto na dumating ng higit sa 5 piraso.

KAHULUGAN()

Halimbawa:

WHERE Bank = Halaga(Directory.Banks.EmptyLink)

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

WHERE Uri ng Item = Value(Enumeration.Item Types.Service)

TYPE sa kahilingan

Maaaring suriin ang uri ng data sa pamamagitan ng paggamit ng TYPE() at VALUETYPE() function o gamit ang logical REFERENCE operator.

EXPRESS()

Ang Express operator sa 1C query ay ginagamit upang i-convert ang mga uri ng data.

Syntax: EXPRESS(<Выражение>PAANO<Тип значения>)

Gamit ito, maaari mong i-convert ang mga halaga ng string sa petsa o mga halaga ng sanggunian sa data ng string, at iba pa.

Sa mga praktikal na aplikasyon, ang Express() operator ay kadalasang ginagamit upang i-convert ang mga field na walang limitasyong haba, dahil ang mga field na walang limitasyong haba ay hindi maaaring piliin, igrupo, atbp. Kung hindi na-convert ang mga naturang field, makakatanggap ka ng error Hindi mo maaaring ihambing ang mga field na walang limitasyong haba at mga field na hindi magkatugma ang mga uri.

PUMILI
ContactInformation.Object,
EXPRESS(ContactInfo.View AS ROW(150)) AS View
MULA SA
Pagrehistro ng Impormasyon sa Pakikipag-ugnayan PAANO Impormasyon sa Pakikipag-ugnayan

GROUP BY
EXPRESS(ContactInfo.Representation AS ROW(150)),
ContactInformation.Object

ISNULL (ISNULL)

Isang kapaki-pakinabang na function ng 1C query language na sumusuri sa halaga sa talaan, at kung ito ay katumbas WALA, Pinapayagan ka nitong palitan ito ng sarili mong halaga. Kadalasang ginagamit kapag kumukuha ng mga virtual na talahanayan ng mga balanse at turnover upang maitago WALA at maglagay ng malinaw na 0 (zero).

ISNULL(Pre-MonthTaxes.AppliedFSSBefit, 0)

Ang ganitong function ng 1C query language na ISNULL ay magbabalik ng zero kung walang halaga, na maiiwasan ang isang error.

SUMALI

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.

Isang halimbawa ng kaliwang pagsali sa isang kahilingan sa 1C:

Ibabalik nito ang buong talahanayan at punan ang field na "Bank" lamang sa mga lugar kung saan natutugunan ang kundisyon na "Counterparties.Name = Banks.Name". Kung ang kundisyon ay hindi natugunan, ang Bank field ay itatakda sa WALA.

RIGHT JOIN sa 1C 8.3 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:

FULL CONNECTION
Direktoryo.Mga Bangko PAANO Mga Bangko

NG

Ang wika ng query ay ganap na ibabalik ang parehong mga talahanayan kung ang kondisyon ng Join records 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 kondisyon.

Halimbawa:

MULA SA
Direktoryo

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.

Konklusyon

Ito ay isang maliit na bahagi lamang ng syntax mula sa 1C 8 na wika ng query sa hinaharap ay susubukan kong isaalang-alang ang ilang mga punto nang mas detalyado, ipakita at marami pa!

Sa artikulong ito nais naming talakayin ang lahat sa iyo 1c query language function, at query language constructs. 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) BILANG Indibidwal, //predefined account VALUE(Chart of Accounts. Self-Accounting.Materials) AS 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 |

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 AS Number |.

Mayroon bang isa pang pagpipilian para sa paggamit ng EXPRESS function sa mga larangan ng halo-halong mga 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(alternatibong 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 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 |. Nomenclature AS 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 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"" IBA ""Pagkonsumo"" |.

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. Konstruksyon 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 na sumusuporta sa sarili)";

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-ibang ay nakasulat pagkatapos ng keyword 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 Natitirang Nalalabi | PARA SA PAGBABAGO | Register ng mga Natitira . Libreng 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 Natitira. May Natitirang Stock | MULA | Magrehistro ng Mga Pagtitipon. Libreng Natitira. Natitira BILANG Libreng Natitirang Natitirang | | ORDER BY |. Nomenclature |.

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 kasama ng anumang pinagsama-samang function.

Syntax: GROUP BY<НаименованиеПоля1>, .... , <НаименованиеПоляN>

Halimbawa ng paggamit:

Query.Text = "PUMILI | ProductsInWarehouses.Nomenclature AS Nomenclature, | ProductsInWarehouses.Warehouse, | SUM(GoodsInWarehouses.InStock) AS INSTOCK |FROM | RegisterAccumulations.ProductsIn Warehouse AS ProductsInWarehouses | |GROUP BY | ProductsInWarehouses | |GROUP BY | ProductsInWarehouses |

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 "PUMILI | ItemsInStocks.Nomenclature AS Nomenclature, | ItemsInWarehouses.Warehouse, | SUM(ItemsInStocks.InStock) AS INSTOCK |FROM | RegisterAccumulationstocks.ItemsInStock | ItemsInStock GROUP BY |. ProductsInWarehouses.Nomenclature, |.

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 nagpapabilis sa paghahanap sa pamamagitan ng mga na-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 tala 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.RPFROMs Compensation | |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 patlang. 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 = "PUMILI | Mga Calculations. Counterparty Agreement. Uri ng Kasunduan BILANG Uri ng Kontrata, | Mga Pagkalkula. Counterparty Agreement AS Contract, | Mga Pagkalkula. Counterparty, | Mga Pagkalkula. Halaga ng Mutual Settlement Balanse AS Balanse | FROM | Register of Accumulations. Mutual Settlement MAY Mga Counterparty BILANG Mga Pagkalkula |.

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.



Buong syntax (i-click upang palawakin)

May kondisyong "Kung" operator

Paglalarawan:

Operator Kung kinokontrol ang pagpapatupad ng isang programa batay sa resulta ng isa o higit pang mga lohikal na expression. Ang isang operator ay maaaring maglaman ng anumang bilang ng mga grupo ng operator na pinamumunuan ng mga konstruksyon Kung hindi - Pagkatapos.

Syntax:

Mga Pagpipilian:

Kung Ang keyword na nagsisimula sa conditional execution statement structure.<Логическое выражение> Boolean na expression. Pagkatapos ay sumusunod ang mga Operator Pagkatapos ay pinaandar kung ang resulta ng isang lohikal na expression ay isang halaga totoo. // Operators Isang executable operator o isang sequence ng naturang mga operator.ElseIf Boolean expression na sumusunod sa keyword Kung hindi, ay kinakalkula lamang kapag ang mga kundisyon sa Kung at lahat ng nauna Kung hindi naging pantay kasinungalingan. Mga operator na sumusunod sa konstruksyon Kung hindi - Pagkatapos, ay isinasagawa kung ang resulta ng isang lohikal na expression sa isang ibinigay Kung hindi katumbas totoo. Iba pang mga Operator na sumusunod sa keyword Kung hindi, ay isinasagawa kung ang mga resulta ng mga lohikal na expression sa pagbuo Kung at lahat ng naunang disenyo Kung hindi naging pantay kasinungalingan. EndIf Isang keyword na nagtatapos sa istruktura ng isang conditional execution statement.

Ternary conditional operator

Paglalarawan:

Binibigyang-daan kang suriin ang isa sa dalawang tinukoy na expression depende sa resulta ng pagsusuri ng isang lohikal na expression.

Syntax:

? (< Логическое выражение> , < Выражение 1 > , < Выражение 2 > )

Mga Pagpipilian:

Ibinalik na halaga:

Ang resulta ng pagsusuri ng isa sa mga resultang expression.

&OnClient Procedure ExecuteCode(Command) /// Paano i-compose ang If operator sa 1s 8.3, 8.2 Kung 1 > 0 Pagkatapos // Tama // bloke ng mga pahayag Mag-ulat( "Ipapatupad ng computer ang lahat ng command sa block na ito."); Mag-ulat( "One over zero."); Tapusin kung ;< 0 Тогда // Ложь Сообщить(Kung 1"Mababa ang isa sa zero." ); Kung hindi, Iulat(); Mag-ulat( "One over zero."); Tapusin kung ;< 0 Тогда // Ложь Сообщить(Kung 1"Ito ang sangay ng conditional operator (#A) na gagana." ); ElseIf 1 = 0 Then // False Report("Mababa ang isa sa zero." "Ang isa ay katumbas ng zero."); Mag-ulat( "One over zero.""Ito ang sangay ng conditional operator (#B) na gagana." ); Tapusin kung ;/// Paano bumuo ng isang ternary operator? sa 1s 8.3, 8.2 Teksto = ? (1 > 2,, "Ang isa ay higit sa dalawa.""Ang isa ay hindi hihigit sa dalawa." ); Ulat(Text) ;// will print "Ang isa ay hindi hihigit sa dalawa." Katapusan ng Pamamaraan

Isara