Tani programi 1C ekziston në versione dhe maska ​​të ndryshme, njerëzit punojnë në "shtatë", d.m.th. në 1C 7.7 dhe në "tetë" që janë 8.0, 8.1, 8.2 dhe 8.3. Në praktikë, për momentin 99.9% e përdoruesve të programit 1C punojnë në 7.7, 8.2 dhe 8.3, si ndryshojnë ato?

Programi 1C 7.7 është i njohur për shumë për ndërfaqen e tij tashmë mjaft të vjetëruar, megjithatë ai ka një avantazh në madhësinë e bazës së të dhënave dhe në shpejtësinë e nisjes dhe punës, që do të thotë se ka një vend në tregun e softuerit të automatizimit të kontabilitetit, megjithëse tani ky program nuk shitet më, por njerëzit e përdorin atë janë përdorur, dhe kompania 1C ende e mbështet këtë program, d.m.th. përditësimet po dalin për të.
Por tema e artikullit nuk është ende për 7.7, por për ndryshimet midis 8.2 dhe 8.3. (dhe për informacion, ndryshimi midis 7.7 dhe 8.* është aq domethënës saqë bazat për shtatë nuk do të funksionojnë në platformën 8.* dhe anasjelltas, d.m.th. 7.7 dhe 8.* janë, si të thuash, programe krejtësisht të ndryshme , por 8.2 dhe 8.3 janë shumë të ngjashme, vetëm 8.3 është më i ri)

Programi 1C përbëhet nga platforma 1C dhe bazat e të dhënave 1C, d.m.th. Platforma 1C është një program që drejton bazat e të dhënave 1C.

Për përdoruesin: kur klikojmë në shkurtoren 1C dhe hapet një listë e bazave të të dhënave 1C, shohim një pjesë të platformës 1C, ose kur zgjedhim një bazë të dhënash dhe klikojmë në butonin "Konfigurator", d.m.th. ne hyjmë në konfiguruesin 1C, mund të themi gjithashtu se shohim një pjesë të platformës 1C, por kur hapim bazën e të dhënave duke klikuar në butonin "1C:Enterprise", ne tashmë shohim bazën e të dhënave, me cilësimet e saj, "menytë", butona, foto, etj. atëherë kjo është tashmë një bazë të dhënash 1C, e cila mund të jetë e ndryshme në varësi të llojit të saj, d.m.th. Konfigurimet e bazës së të dhënave 1C
Baza e të dhënave 1C përbëhet nga një konfigurim (d.m.th. cilësimet e saj) dhe të dhëna (d.m.th. informacioni në të).

Ekzistojnë konfigurime të ndryshme 1C për kontabilitet të ndryshëm, d.m.th., për kontabilitetin mund të ketë një konfigurim të quajtur "Kontabiliteti i ndërmarrjes" ose të tjerë, për tregti mund të përdoret një konfigurim si "Menaxhimi i Tregtisë" ose "Shitje me pakicë" ose të tjerë, për kontabilitetin e personelit dhe listën e pagave, për shembull "Payroll and HR Management", ka edhe konfigurime për kontabilitet kompleks, për shembull për automatizimin e impianteve.
Ka shumë konfigurime, disa qindra konfigurime të ndryshme për kontabilitet të ndryshëm.

Të gjitha këto konfigurime mund të krijohen për të punuar në 1C 7.7 ose 8.2 ose 8.3 Cilat janë ndryshimet dhe pse shkruhet për konfigurimet nëse 8.2 dhe 8.3 dhe madje 7.7 janë platforma? Le ta kuptojmë tani.

Çdo platformë ka aftësi të ndryshme për krijimin e konfigurimeve dhe sa më i lartë të jetë versioni i platformës, aq më shumë funksionalitet dhe aftësi ka kjo platformë.
Nëse kemi nevojë për një bazë të dhënash 1C me një konfigurim, të themi "Kontabiliteti i Ndërmarrjes", me një version lëshimi, për shembull, "3.0.60.44" dhe ne përpiqemi të gjejmë informacion në lidhje me të, atëherë do të zbulojmë se për këtë konfigurim dhe këtë version për të punuar, do të na duhet një platformë jo më e ulët se 8.3, për më tepër, jo më e ulët se 8.3.10.2466, kjo do të thotë se platforma 8.2 nuk do të na përshtatet më!

Ka shumë konfigurime për platformën 1C 8.*, por ato mund të ndahen në 2 nëntipe: konfigurime (1) me "forma të rregullta" dhe (2) me "forma të menaxhuara"
"E zakonshme" do të thotë njësoj siç ishin më parë, për shembull, të ngjashme me 1C 7.7, dhe "Të menaxhuara" janë forma më moderne, më të bukura, të cilat menaxhohen më lehtë gjatë krijimit të tyre.

Si mund të dalloj nëse ka forma të rregullta ose të menaxhuara në bazën time të të dhënave 1C?

Nëse në krye të programit shihni një rresht të "menuve" me emra të tillë si "File", "Edit" ose "Operations", "Service", "Windows", "Help" dhe më e rëndësishmja, mund të klikoni mbi to dhe poshtë "do të dalë" » nënmeny me një përzgjedhje të nën-artikujve, që do të thotë se keni një konfigurim me forma të rregullta.

Nëse nuk keni "menu" të tilla në krye, por ka lidhje në krye ose majtas ose në pjesë të tjera të programit, në faqen e internetit, d.m.th. i tregoni dhe ato menjëherë bëhen të nënvizuara, mund të kenë emra të tillë si "Kryesore", ose "Shitje", "Blerje", "Administrim" ose "Të dhënat e kërkimit dhe administrimi" ose lidhje ose foto të tjera të ngjashme, dhe kur klikoni në ato nuk kanë një listë të nënmenuve "drop out", por informacioni ose një dritare e veçantë hapet në qendër të programit, që do të thotë se keni një konfigurim me "forma të menaxhuara", ato zakonisht janë më të bukura dhe moderne në pamje. Nëse e dini se keni një ndërfaqe "Taxi", atëherë këto janë forma të menaxhuara saktësisht.

Më parë, kur nuk kishte ende platformë 8.3 dhe kishte vetëm 8.2 dhe forma të rregullta, atëherë sapo kishin filluar të zhvilloheshin konfigurimet në format e menaxhuara, u shfaq platforma 8.3 dhe pak më vonë, shumë njerëz filluan të lidhin platformën 8.3 me format e menaxhuara. dhe platforma 8.2 me ato të rregullta. Kështu koncepti u bë më i fortë se dikush 1C 8.2 (d.m.th. baza 1C me konfigurim në forma të rregullta), dhe dikush 1C 8.3 (d.m.th. baza e të dhënave 1C me konfigurim në format e menaxhuara).
Në fakt, platforma 8.3 është më e re se 8.2, që do të thotë se mund të funksionojë me të gjitha konfigurimet për 1C 8.*, POR! Nëse keni një platformë 8.3 dhe baza e konfigurimit bazohet në forma të rregullta, atëherë ata mund të thonë se keni 1C 8.2 dhe kjo është e rëndësishme për t'u kuptuar!

Është gjithashtu e rëndësishme të kuptoni se mund të keni një platformë 8.2 dhe një konfigurim të bazuar në format e menaxhuara, atëherë ata mund të thonë se keni 1C 8.3! Për shumë njerëz, është më i shpejtë, më i përshtatshëm dhe më i njohur.
Ato. Shumica e njerëzve nuk u intereson se çfarë platforme kanë dhe nëse kanë një bazë me forma të rregullta, atëherë është 1C 8.2! nëse me ato të menaxhuara - atëherë 8.3!

Bazuar në këtë fakt dhe opinionin e krijuar në terma, në faqen tonë të internetit mund të gjeni përpunimin 8.2 ose 8.3, kjo nuk do të thotë se për përpunimin është e rëndësishme se çfarë platforme keni, do të thotë se ajo, përpunimi do të funksionojë ose në bazën e të dhënave me forma të rregullta ose vetëm me ato të menaxhuara, dhe ka edhe trajtime universale, emri i tyre do të thotë (8.2 dhe 8.3) ose (8.2/8.3) ose (8.2-8.3) ose (8.*)

Më poshtë janë shembuj të disa konfigurimeve të njohura 1C në forma të rregullta, d.m.th. i quajtur 1C 8.2:
— Kontabiliteti i ndërmarrjes 2.0.*.*
— Menaxhimi i tregtisë 10.3.*.*
— Shitje me pakicë 1.1.*.*
— Menaxhimi i pagave dhe personelit 2.5.*.*

Tani shembuj të disa konfigurimeve të njohura 1C në format e menaxhuara, d.m.th. këto quhen 1C 8.3:
— Kontabiliteti i ndërmarrjes 3.0.*.*
— Menaxhimi i tregtisë 11.*.*.*
— Shitje me pakicë 2.*.*.*
— Menaxhimi i pagave dhe personelit 3.*.*.*
— Menaxhimi i kompanisë sonë 1.6.*.*

Një version i shkurtër i të gjithë artikullit ose përgjigjja e pyetjes: cilin 1C 8.2 ose 8.3 kam?

Nëse keni një bazë të dhënash 1C, pasi ta hapni atë, në krye ka një rresht të "menuve" me emra për shembull "File", "Redakto" ose "Operacione", "Shërbim", "Windows", "Ndihmë". ", dhe kur shtypni poshtë, do të shfaqet një nënmenu me një zgjedhje të nën-artikujve, atëherë një bazë të dhënash e tillë quhet 1C 8.2 dhe vetëm ato përpunime, raporte, shtesa që kanë "8.2" në emrat e tyre mund të jenë të përshtatshme për të, dhe ato përpunime që kanë “8.3” në emër të tyre nuk do të jenë të përshtatshme.

Nëse nuk ka një rresht të tillë nga "menutë", por ka lidhje, kur kaloni pezull mbi të cilat këto lidhje nënvizohen menjëherë, ato mund të kenë emrat kryesorë ose "Menaxheri" ose "Shitje", "Blerje", "Administrim". ” ose “Të dhënat e kërkimit dhe administrimi” ose lidhje të tjera të ngjashme apo edhe foto. Kjo do të thotë që kjo është një bazë 1C 8.3 dhe vetëm ato përpunime, raporte, shtesa që kanë "8.3" në emrat e tyre mund të jenë të përshtatshme për të, dhe ato përpunime që kanë "8.2" në emrin e tyre nuk janë të përshtatshme.

Përjashtim është përpunimi universal, raportet në emrat e të cilave përfshijnë si 8.2 ashtu edhe 8.3, d.m.th. titulli do të thotë (8.2 dhe 8.3) ose (8.2/8.3) ose (8.2-8.3) ose (8.*)

Kushtet në pyetje zbatohen kur është e nevojshme të zgjidhni jo të gjitha regjistrimet nga një tabelë infobaze 1C, por vetëm ato që plotësojnë një ose më shumë kritere përzgjedhjeje.

Kushtet në pyetjet 1C mund të vendosen në mënyra të ndryshme në varësi të karakteristikave të vetë pyetjes dhe burimit të të dhënave.

Fjala kyçe "KU"

Fjalë kyçe KU përdoret në pyetjet 1C kur një kusht zbatohet për regjistrimet e zgjedhura nga baza e informacionit. Në këtë rast, filtrimi i të dhënave ndodh në fazën e përzgjedhjes së tyre nga tabela e infobazës.

Për shembull, ekziston një tabelë Pagesat, që përmban një listë të punonjësve dhe pagesat e bëra ndaj tyre.

Nëse keni nevojë të zgjidhni pagesa në shumën prej të paktën 10,000, atëherë kërkesa do të duket kështu

Kërkesë. Teksti= "ZGJIDH
| Pagesat.Punonjës,
| Pagesat
|NGA
| Pagesat
| KU
| Pagesat >=10000"

Rezultati i pyetjes do të jetë tabela e mëposhtme.

Fjala kyçe "KANË"

Fjalë kyçe DUKE në pyetjet 1C përdoret kur është e nevojshme të zgjidhet midis regjistrimeve të zgjedhura tashmë. Për shembull, kjo fjalë kyçe përdoret kur ju duhet të filtroni të dhënat e grupuara si rezultat i një pyetjeje.

Le të kthehemi te shembulli i diskutuar më sipër. Le të themi se ju duhet të zgjidhni nga një tabelë Pagesat punonjësit që kanë marrë më shumë se 20,000 gjithsej Për ta bërë këtë, së pari duhet të futni një grupim sipas fushës Punonjës, llogaritni shumën sipas fushës Paga për secilin punonjës, dhe më pas nga të dhënat e marra zgjidhni ato që plotësojnë kushtin.

Teksti i kërkesës do të duket kështu.

Kërkesë. Teksti= "ZGJIDH
| Pagesat.Punonjës,
| AMOUNT(Pagesat.Paga) SI rrogë
|NGA
| Pagesat
|GRUPI NGA
| Pagesat.Punonjësi
| DUKE
| AMOUNT(Pagesat.Paga) > 20000"

Rezultati i ekzekutimit të këtij pyetësori do të jetë i tillë.

Ky shembull tregon qartë ndryshimin midis fjalëve kyçe KU Dhe DUKE. Nëse do të përdornim fjalën KU në vend të DUKE, më pas fillimisht do të përzgjidheshin regjistrat me pagë më të madhe se 20 mijë dhe më pas do të llogaritej shuma për secilin punonjës prej tyre. Si rezultat, ne do të merrnim një rezultat të pyetjes bosh, sepse asnjë punonjës nuk ka marrë më shumë se 20,000 në një pagesë.

Kushtet e përzgjedhjes në tabelat e regjistrit virtual

Të gjithë regjistrat në sistemin 1C:Enterprise kanë tabela virtuale: regjistrat e grumbullimit, regjistrat e informacionit, regjistrat kontabël. Ju mund të vendosni kushtet për tabelat virtuale në dy mënyra:

  1. përmes parametrave të tabelës virtuale;
  2. nëpërmjet seksioneve të kërkesave KU ose DUKE.

Dallimet midis seksioneve KU Dhe DUKE ne kemi parë tashmë. Për të kuptuar se si ndryshojnë kushtet në këto seksione të kërkesës nga kushtet në parametrat e tabelës virtuale, duhet të kuptoni se çfarë tabelat e regjistrave virtualë në 1C. Karakteristika e tyre e rëndësishme është se ato nuk ekzistojnë në bazën e informacionit. Ky është një mjet që na ofrohet nga platforma 1C:Enterprise për të optimizuar konfigurimin.

Kështu, nëse një kusht specifikohet në parametrat e një tabele virtuale, atëherë ai zbatohet në fazën e formimit të tij nga të dhënat në tabelën e regjistrit real. Dhe nëse në seksione KU ose DUKE, pastaj - në të dhënat e një tabele virtuale tashmë të formuar.

Le të shohim një shembull. Jepet një tabelë e regjistrit periodik të informacionit Normat e valutës.

Ju duhet të zgjidhni monedhat për datën më të ulët, norma e së cilës është më pak se 30 rubla.

Një pyetje me një kusht në parametrat e tabelës virtuale do të duket kështu:

Në këtë rast do të marrim një hyrje: 28.3 dollarë datë 02/01/2007. Kjo do të jetë zgjidhja e duhur për problemin.

Nëse kushtin e vendosim në seksion KU, atëherë rezultati i pyetjes do të jetë bosh, pasi fillimisht do të bëhet një prerje e të parëve për secilën monedhë (si rezultat do të marrim dy regjistrime nga 01/01/2007 30,25 dollarë Dhe 40.5 euro), dhe më pas të dhënat që plotësojnë kushtin do të zgjidhen prej tyre. Por të dy të dhënat e marra i nënshtrohen Epo< 30 nuk kënaq.

Gjuha e pyetjeve 1C është një nga ndryshimet kryesore midis versioneve 7.7 dhe 8. Një nga pikat më të rëndësishme në mësimin e programimit 1C është gjuha e pyetjes. Në 1C 8.3, pyetjet janë mjeti më i fuqishëm dhe më efektiv për marrjen e të dhënave. Gjuha e pyetjes ju lejon të merrni informacion nga baza e të dhënave në një mënyrë të përshtatshme.

Vetë sintaksa të kujton shumë T-SQL klasike, përveç se në 1C, duke përdorur gjuhën e pyetjes, mund të marrësh të dhëna vetëm duke përdorur konstruktin Select. Gjuha gjithashtu mbështet konstruksione më komplekse, për shembull, (kërkesë brenda një kërkese). Pyetjet në 1C 8 mund të shkruhen si në cirilik ashtu edhe në latinisht.

Në këtë artikull do të përpiqem të flas për fjalët kyçe kryesore në gjuhën e pyetjes 1C:

  • zgjidhni
  • lejohet
  • të ndryshme
  • shprehin
  • së pari
  • për ndryshim
  • kuptimi
  • lloji i vlerës (dhe operatori REFERENCE)
  • zgjedhje
  • grup nga
  • duke pasur
  • ISNULL
  • Po NULL
  • lidhjet - djathtas, majtas, të brendshme, të plota.

Si dhe disa truke të vogla të gjuhës 1C, duke përdorur të cilat mund të ndërtoni në mënyrë optimale tekstin e kërkesës.

Për të korrigjuar pyetjet në sistemin 1C 8.2, sigurohet një mjet i veçantë - tastiera e pyetjeve. Ju mund ta shihni përshkrimin dhe ta shkarkoni duke përdorur lidhjen -.

Le të shohim operatorët më të rëndësishëm dhe më interesantë të gjuhës së pyetjeve 1C.

ZGJIDH

Në gjuhën e pyetjeve 1C Enterprise 8, çdo pyetje fillon me një fjalë kyçe ZGJIDHNI. Në gjuhën 1C nuk ka konstruksione UPDATE, DELETE, CREATE TABLE, INSERT, këto manipulime kryhen në teknologjinë e objekteve. Qëllimi i tij është të lexojë vetëm të dhëna.

Për shembull:

ZGJIDHNI
Drejtoria aktuale.Emri
NGA
Drejtoria.Nomenklatura AS Drejtoria aktuale

Kërkesa do të kthejë një tabelë me emrat e artikujve.

Pranë strukturës ZGJIDHNI ju mund të gjeni fjalë kyçe PËR NDRYSHIM, LEJOHET, TË NDRYSHME, E PARA

LEJOHET— zgjedh vetëm regjistrimet nga tabela për të cilat përdoruesi aktual ka të drejta.

TË NDRYSHME— do të thotë që rezultati nuk do të përmbajë linja të dyfishta.

PËRZGJEDHJA (RASTI)

Shumë shpesh ky dizajn nënvlerësohet nga programuesit. Një shembull i përdorimit të tij:

Drejtoria aktuale.Emri,

KUR Drejtoria aktuale.Shërbimi PASTAJ

"Shërbimi"

FUND SI TË SHIKOHET Nomenklatura

Drejtoria.Nomenklatura AS Drejtoria aktuale

Shembulli do të kthejë një vlerë teksti në fushën "Lloji i artikullit" - "Produkt" ose "Shërbim".

KU

Dizajni i gjuhës së pyetjeve 1C, e cila ju lejon të impononi përzgjedhje në të dhënat e marra. Ju lutemi vini re se sistemi merr të gjitha të dhënat nga serveri dhe vetëm atëherë ai zgjidhet bazuar në këtë parametër.

ZGJIDHNI
Drejtoria.Emri
NGA
Drejtoria aktuale.Nomenklatura AS Drejtoria aktuale
WHERE CurrentDirectory.Service = E VËRTETË

Në shembull, ne zgjedhim regjistrime për të cilat vlera e atributit "Shërbimi" është vendosur në "E vërtetë". Në këtë shembull, ne mund t'ia dalim me kushtin e mëposhtëm:

"KU ËSHTË SHËRBIMI"

Në thelb, ne po zgjedhim rreshta ku shprehja pas fjalës kyçe është e barabartë me "E vërtetë".

Ju mund të përdorni kushte të drejtpërdrejta në shprehje:

Kodi WHERE = "005215"

Duke përdorur operatorin "VALUE()" në kushtet, përdorni aksesin në elementët dhe numërimet e paracaktuara në një kërkesë 1C:

WHERE Lloji i artikullit = Vlera (Enumeration. Llojet e artikujve. Produkti)

Vlerat e kohës mund të specifikohen si më poshtë:

WHERE Data e Marrjes > DATETIME(2012,01,01):

Më shpesh, kushtet përcaktohen si parametra të kaluar në kërkesë:

Merrni 267 mësime video në 1C falas:

WHERE NomenclatureGroup= &NomenclatureGroup

Një kusht mund të vendoset në llojin e atributit nëse ai është i një lloji të përbërë:

Nëse keni nevojë të kufizoni zgjedhjen nga një listë vlerash ose një grup, mund të bëni sa më poshtë:

KU është Regjistri i Akumulimit B (&Lista e Dokumenteve për Përzgjedhje).

Gjendja mund të jetë gjithashtu komplekse, e përbërë nga disa kushte:

WHERE Data e Marrjes > DATETIME(2012,01,01) AND NomenclatureGroup= &NomenclatureGroup AND NOT Service

GRUP NGA

Dizajni i gjuhës së pyetjeve 1C 8.2 të përdorur për të grupuar rezultatin.

Për shembull:

ZGJIDHNI
Pranimi i mallrave dhe shërbimeve,
SUM (Marrja e MallraveShërbimetMallrat.Sasia) SI Sasia,
SUM (Marrja e MallraveShërbimetMallrat.Shuma) AS Shuma
NGA
Dokumenti Pranimi i Mallrave dhe Shërbimeve SI Marrja e Mallrave dhe Shërbimeve

GRUP NGA
Marrja e MallraveShërbimetMallrat.Mallrat

Kjo kërkesë do të përmbledhë të gjitha faturat sipas sasisë dhe sasisë sipas artikullit.

Përveç fjalës kyçe SHUMË Ju mund të përdorni funksione të tjera agregate: SASI, NUMRI I TË NDRYSHME, MAKSIMUM, MINIMAL, MESATAR.

DUKE

Një dizajn që shpesh harrohet, por është shumë i rëndësishëm dhe i dobishëm. Kjo ju lejon të specifikoni përzgjedhjen në formën e një funksioni agregat, kjo nuk mund të bëhet në dizajn KU.

Shembull i përdorimit të HAVING në një kërkesë 1C:

ZGJIDHNI
Pranimi i Mallrave dhe Shërbimeve,
SUM(Marrja e MallraveShërbimetMallrat.Sasia) SI Sasia,
SUM (Marrja e MallraveShërbimetMallrat.Shuma) AS Shuma
NGA
Dokumenti Pranimi i Mallrave dhe Shërbimeve SI Marrja e Mallrave dhe Shërbimeve

GRUP NGA
Pranimi i mallrave dhe shërbimeve

SUM (Marrja e MallraveShërbimetMallrat.Sasia) > 5

Pra, ne do të zgjedhim numrin e produkteve që kanë mbërritur më shumë se 5 copë.

KUPTIMI ()

Për shembull:

WHERE Bank = Vlera (Directory.Banks.EmptyLink)

WHERE Lloji i nomenklaturës = Vlera (Direktori. Llojet e nomenklaturës. Produkti)

WHERE Lloji i artikullit = Vlera (Numërimi. Llojet e artikujve. Shërbimi)

SHTYP sipas kërkesës

Lloji i të dhënave mund të kontrollohet duke përdorur funksionet TYPE() dhe VALUETYPE() ose duke përdorur operatorin logjik REFERENCE.

EXPRESS()

Operatori Express në pyetjet 1C përdoret për të kthyer llojet e të dhënave.

Sintaksë: EXPRESS(<Выражение>SI<Тип значения>)

Duke përdorur atë, ju mund të konvertoni vlerat e vargut në datë ose vlerat e referencës në të dhënat e vargut, etj.

Në aplikimet praktike, operatori Express() përdoret shumë shpesh për konvertimin e fushave me gjatësi të pakufizuar, sepse fushat me gjatësi të pakufizuar nuk mund të zgjidhen, grupohen etj. Nëse fusha të tilla nuk konvertohen, do të merrni një gabim Ju nuk mund të krahasoni fushat me gjatësi të pakufizuar dhe fusha të llojeve të papajtueshme.

ZGJIDHNI
Informacioni i Kontaktit. Objekti,
EXPRESS(ContactInfo.Shiko SI RRESHT(150)) AS Pamje
NGA
Regjistri i Informacionit Informacioni i Kontaktit

GRUP NGA
EXPRESS(Info Kontakti.Përfaqësimi SI RRESHT(150)),
Informacioni i Kontaktit.Objekt

ISNULL (ISNULL)

Një funksion mjaft i dobishëm i gjuhës së pyetjeve 1C që kontrollon vlerën në rekord dhe nëse është e barabartë I PAVLEFSHËM, Kjo ju lejon ta zëvendësoni atë me vlerën tuaj. Më shpesh përdoret kur merrni tabela virtuale të bilanceve dhe qarkullimit për t'u fshehur I PAVLEFSHËM dhe vendosni një 0 të qartë (zero).

ISNULL (Taksat para-Mujore. Përfitimi i Aplikuar FSS, 0)

Një funksion i tillë i gjuhës së pyetjeve 1C ISNULL do të kthejë zero nëse nuk ka vlerë, gjë që do të shmangë një gabim.

BASHKOHU

Ekzistojnë 4 lloje të lidhjeve: LARTË, E DREJTË, I PLOTE, I BRENDSHEM.

LIDHJA TË Majtas dhe Djathtas

Lidhjet përdoren për të lidhur dy tabela bazuar në një kusht specifik. Veçori kur LARTË BASHKOHETështë se marrim tabelën e parë të specifikuar në tërësi dhe lidhim me kusht tabelën e dytë. Fushat e tabelës së dytë që nuk mund të lidheshin me kusht plotësohen me vlerën I PAVLEFSHËM.

Një shembull i një bashkimi majtas në një kërkesë 1C:

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

BASHKOHU Djathtas në gjuhën 1C 8.3 absolutisht e ngjashme Lidhja LEFT, me përjashtim të një ndryshimi: në E DREJTA E LIDHJES Tabela "kryesore" është e dyta, jo e para.

LIDHJE E PLOTË

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

Për shembull:

LIDHJE E PLOTË
Drejtoria.Bankat SI Bankat

NGA

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

BASHKIMI I BRENDSHËM

BASHKIMI I BRENDSHËM ndryshon nga e plota në atë që shfaq vetëm ato regjistrime që mund të lidhen sipas një kushti të caktuar.

Për shembull:

NGA
Drejtoria e Kontratëve AS Klientë

BASHKIMI I BRENDSHËM
Drejtoria.Bankat SI Bankat

NGA
Klientët.Emri = Bankat.Emri

Ky pyetje do të kthejë vetëm rreshtat në të cilët banka dhe pala tjetër kanë të njëjtin emër.

konkluzioni

Kjo është vetëm një pjesë e vogël e sintaksës nga gjuha e pyetjes 1C 8 në të ardhmen do të përpiqem të shqyrtoj disa pika më në detaje, të tregoj dhe shumë më tepër!

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

1C Funksionet e gjuhës së pyetjes

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

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

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

Shembull përdorimi:

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

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

Shembull përdorimi:

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

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

Sintaksa: VALUE(<Имя>)

Shembull përdorimi:

Request.Text = "ZGJIDH //elementin e paracaktuar | VLERË(Direktori. Monedhat.Dollar) AS Dollar, //lidhje bosh | VLERË(Dokument. Pranimi i Mallrave dhe Shërbimeve.EmptyLink) AS Faturë, //Vlera e transferimit | VLERË(Transferim .

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

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

Shembull përdorimi:

Kërkesë.Tekst = //nëse shuma është më shumë se 7500, atëherë duhet të ketë një zbritje prej 300 rubla, //pra nëse kushti aktivizohet atëherë funksioni //kthehet Shuma - 300 //përndryshe kërkesa thjesht do të kthejë Shuma "ZGJIDH | ZGJIDH | KUR TCMarrësh.Shuma > 7500 | PAS TCPreptime.Shuma - 300 | TJETER TCPranime.Shuma | FUND AS ShumaMe Zbritje | NGA |

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

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

Shembull përdorimi:

Query.Text = "ZGJIDH TË NDRYSHME | Sales.Registrar.Number, | ZGJEDH | WHEN Sales.Regjistrues LINK Document.Consumable | TEN EXPRESS(Sales.Registrar AS Document.Consumable) | TJETER ZGJEDHJE | WHEN Sales.Registrar LINK Dokumentacioni | PASTAJ EXPRESS(Sales.Registrar AS Document.Implementation) |. FUND AS Numër |.

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

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

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

7. Funksioni PERFAQESIMI- ju lejon të merrni një paraqitje të fushës së kërkesës.

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

Shembull përdorimi:

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

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

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

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

Shembull përdorimi:

Kërkesë.Text = //nëse lloji i vlerës së regjistruesit është Dokumenti Marrja, //atëherë pyetësori do të kthejë "Pranimin e mallrave", përndryshe "Shitjet e mallrave" "ZGJEDH | ZGJIDH | KUR të mbeten. Regjistruesi LINK Dokumenti. Pranimi i Mallrave dhe Shërbimet |. "Faturimi" |.

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

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

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

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

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

Opsionet e modelit të rreshtit:

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

Një personazh arbitrar.

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

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

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

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

Shembull përdorimi:

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

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

Sintaksa: E PARA<число>

Shembull përdorimi:

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

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

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

Query.Text = "ZGJEDHJE | ProdukteNë magazinat.Nomenklatura AS Nomenklaturë, | ProdukteNë Magazinat.Magazina, | SUM(MallratNë magazina.Në stoqe) AS INSTOK |NGA | Regjistro akumulimet.ProduktetNë magazinat AS ProduktetNë magazina.Në magazina.Një produkt | shtëpi";

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

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

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

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

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

Shembull përdorimi:

Query.Text = //zgjidhen të gjitha rekordet me CompensationRemaining<>0 dhe //ShumaForCalcCompRemaining > 100 "ZGJEDHJE | KompensimiRPOREmbetet.Kontraparti, |KompensimiRPOREmbetet.Fëmija, | KompensimiRPMBEtesat, | KompensimiRPOREMains.ShumaForCalcCompRemains ationRPORmbetet |KU | KompensimiRPORE mbetur. Kompensimi Mbetet<>0 | Dhe CompensationRPORemains.AmountForCalcCompRemaining> 100" ;

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

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

Shembull përdorimi:

Kërkesë.Text = "ZGJIDH | Llogaritjet. Marrëveshja e kundërpalës. Lloji i marrëveshjes SI Lloji i kontratës, | Llogaritjet. Marrëveshja e kundërpalës AS Kontratë, | Llogaritjet. Kundërpala, | Llogaritjet. Shuma e bilancit të shlyerjes së ndërsjellë SI Bilanci | NGA | Regjistri i akumulimeve. reciproke Llogaritjet ME Kundërpalët |. TOTALI |.

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



Sintaksë e plotë (kliko për ta zgjeruar)

Operatori i kushtëzuar "Nëse".

Përshkrim:

Operatori Nëse kontrollon ekzekutimin e një programi bazuar në rezultatin e një ose më shumë shprehjeve logjike. Një operator mund të përmbajë çdo numër grupesh operatorësh të kryesuar nga konstruksione Përndryshe Nëse - Pastaj.

Sintaksë:

Opsione:

If Fjala kyçe që fillon strukturën e deklaratës së ekzekutimit të kushtëzuar.<Логическое выражение> Shprehje logjike. Pastaj Operatorët në vijim Pastaj ekzekutohen nëse rezultati i një shprehjeje logjike është një vlerë E vërtetë. // Operatorët Një operator i ekzekutueshëm ose një sekuencë e operatorëve të tillë.Shprehja Boolean ElseIf pas fjalës kyçe Përndryshe Nëse, llogaritet vetëm kur kushtet në Nëse dhe të gjitha të mëparshmet Përndryshe Nëse rezultoi i barabartë Gënjeshtra. Operatorët që ndjekin konstruktin Përndryshe Nëse - Pastaj, ekzekutohen nëse rezultati i një shprehjeje logjike në një të dhënë Përndryshe Nëse barazohet E vërtetë. Operatorët e tjerë që ndjekin fjalën kyçe Përndryshe, ekzekutohen nëse rezultatet e shprehjeve logjike në konstruksion Nëse dhe të gjitha dizajnet e mëparshme Përndryshe Nëse rezultoi i barabartë Gënjeshtra. EndIf Një fjalë kyçe që përfundon strukturën e një deklarate të ekzekutimit të kushtëzuar.

Operator i kushtëzuar tresh

Përshkrim:

Ju lejon të vlerësoni një nga dy shprehjet e specifikuara në varësi të rezultatit të vlerësimit të një shprehjeje logjike.

Sintaksë:

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

Opsione:

Vlera e kthimit:

Rezultati i vlerësimit të njërës prej shprehjeve që rezultojnë.

Procedura &OnClient ExecuteCode(Command) /// Si të kompozoni operatorin If në 1s 8.3, 8.2 Nëse 1 > 0 Atëherë // E vërtetë // bllok deklaratash Për të raportuar( "Kompjuteri do të ekzekutojë të gjitha komandat në këtë bllok.") ; Për të raportuar( "Një mbi zero.") ; FundNëse; Nëse 1< 0 Тогда // Ложь Сообщить("Një më pak se zero".) ; Përndryshe raporto( "Është kjo degë e operatorit të kushtëzuar (#A) që do të funksionojë.") ; Për të raportuar( "Një mbi zero.") ; FundNëse; Nëse 1< 0 Тогда // Ложь Сообщить("Një më pak se zero".) ; ElseIf 1 = 0 Pastaj // Raport i rremë( "Një është e barabartë me zero.") ; Përndryshe raporto( "Është kjo degë e operatorit të kushtëzuar (#B) që do të funksionojë.") ; Për të raportuar( "Një mbi zero.") ; FundNëse; /// Si të ndërtohet një operator tresh? në 1s 8.3, 8.2 Teksti = ? (1 > 2, "Një është më shumë se dy.", "Një nuk është më shumë se dy.") ; Raport (Tekst) ; // do të shtypë "Një nuk është më shumë se dy." Fundi i procedurës /// Shkarkoni dhe ekzekutoni këta shembuj në kompjuterin tuaj

Mbylle