Procedura për të punuar me objektin e integruar të kërkesës gjuhësore. Cili është qëllimi i objektit të konfigurimit "Gjuha"?

Zhvillimi i një zgjidhjeje aplikacioni në sistemin 1C: Enterprise përbëhet nga dy veprime kryesore: dizajni vizual i objekteve të konfigurimit dhe përshkrimi i sjelljes specifike të sistemit duke përdorur gjuhën e integruar dhe gjuhën e pyetjes.

Gjuha e integruar e sistemit 1C: Enterprise ka shumë ngjashmëri me gjuhët e tjera të programimit, por nuk është një analog i drejtpërdrejtë i asnjërës prej tyre. Karakteristikat e tij më domethënëse:

· shtypje e butë (lloji i një variabli përcaktohet nga lloji i vlerës që përmban dhe mund të ndryshojë gjatë funksionimit);

· mungesa e përshkrimit të softuerit të llojeve të aplikacioneve (ato krijohen kur shtohen objektet e konfigurimit);

· gjuhë e integruar e orientuar drejt ngjarjeve;

· Të gjithë operatorët kanë drejtshkrim rusisht dhe anglisht, të cilat mund të përdoren njëkohësisht.

Modulet e konfigurimit

Modulet e zgjidhjes së aplikacionit janë krijuar për të vendosur tekstin e programit në gjuhën e integruar. Këto module janë të vendosura në vende të ndryshme në konfigurim dhe kanë qëllime të ndryshme. Shumica e moduleve janë "të lidhura" me objekte të caktuara të konfigurimit ose me vetë zgjidhjen e aplikacionit.

Dallohen llojet e mëposhtme të moduleve softuerike:

· Modulet e zakonshme. Konfigurimi mund të ketë një numër arbitrar modulesh, duke përfshirë asnjë. Vetë modulet e zakonshme nuk thirren gjatë procesit të konfigurimit. Ato shërbejnë vetëm për të përmbajtur tekstet e procedurave dhe funksioneve që mund të thirren nga module të tjera të zgjidhjes aplikative. Prandaj, atyre u mungon një seksion përshkrimi i variablave dhe një seksion kryesor i programit. Se. Modulet e zakonshme përmbajnë vetëm procedura dhe funksione.

· Moduli i aplikimit. Ekziston gjithmonë një modul i vetëm aplikacioni në konfigurim. Ai ekzekutohet kur sistemi fillon në modalitetin 1C: Enterprise dhe synon të përpunojë veprime që lidhen me sesionin e punës së përdoruesit përfundimtar. Ngjarjet kryesore që mund të përpunohen në një modul aplikacioni janë ngjarjet e fillimit dhe të përfundimit të aplikacionit. Sekuenca nga thirrja shfaqet në oriz. 1. Ngjarje Përpara fillimit të sistemit Ndodh kur sistemi fillon përpara se të hapet dritarja kryesore. Duke trajtuar këtë ngjarje, zhvilluesi, për shembull, ka mundësinë të refuzojë të ekzekutojë nëse ndonjë kusht nuk plotësohet. Ngjarje Kur filloni sistemin ndodh pas hapjes së dritares kryesore. Në mbajtësin e kësaj ngjarjeje, për shembull, mund të shfaqni informacione për njerëzit e ditëlindjes, etj.

· Moduli i lidhjes së jashtme. Ekziston gjithmonë një modul i vetëm i lidhjes së jashtme në konfigurim. Ai ekzekutohet kur aplikacioni aksesohet si server COM (në modalitetin e lidhjes së jashtme). Në modalitetin e lidhjes së jashtme, nuk është lançuar aplikacioni i plotë 1C: Enterprise, por një "version i lehtë" në të cilin të gjitha funksionet që lidhen në një mënyrë ose në një tjetër me organizimin e ndërfaqes së përdoruesit nuk janë të disponueshme.

· Modulet e objektit të aplikacionit. Çdo objekt i konfigurimit të aplikacionit (për shembull, një dokument softuer ose një drejtori), të dhënat e të cilit mund të modifikohen në modalitetin 1C: Enterprise, ka modulin e vet. Përveç përshkrimit të variablave dhe programit kryesor, një modul objekti mund të përmbajë një përshkrim të procedurave - mbajtësit e ngjarjeve të lidhura me një objekt të caktuar konfigurimi. Ka dy ngjarje që janë ngritur për të gjitha objektet - Para Regjistrimit Dhe Kur Regjistrohet.

· Formoni module. Çdo formë ka modulin e vet, i cili përcakton sjelljen e formularit dhe veprimet e kryera prej tij, për shembull, hapjen e formave të tjera. Ngjarjet janë ngritur për të gjitha format Para hapjes, gjatë hapjes, para mbylljes Dhe Në mbyllje.

Kontekst

Në sistemin 1C: Enterprise, konteksti tregon mjedisin e modulit, d.m.th. variablat, objektet, vetitë, metodat dhe ngjarjet e disponueshme për të. Ne mund të dallojmë llojet e mëposhtme të konteksteve dhe, në përputhje me rrethanat, rregullat për dukshmërinë e variablave, procedurave dhe funksioneve të eksportuara:

· Konteksti global, i disponueshëm në të gjitha kontekstet e tjera, përbëhet nga pjesët e mëposhtme:

§ vetitë, metodat dhe ngjarjet e kontekstit global (për shembull, vetia Data e punës);

§ numërimet e sistemit dhe grupet e vlerave të sistemit (për shembull, Kthimi CodeDialog Dhe Simbolet).

· Konteksti i përbashkët i modulit i formuar nga konteksti global dhe konteksti lokal i vetë modulit të përgjithshëm (d.m.th., procedurat dhe funksionet e përcaktuara brenda modulit të përgjithshëm). Në kontekstin e një moduli të përbashkët, disponohen procedura dhe funksione të eksportuara të moduleve të tjera të përbashkëta. Variablat, procedurat dhe funksionet e eksportuara të modulit të aplikacionit nuk janë të disponueshme.

· Në kontekstin e një moduli aplikacioni ose moduli të lidhjes së jashtme Procedurat e eksportuara dhe funksionet e moduleve të zakonshme janë të disponueshme.

· Në kontekstin e një moduli të objektit të aplikacionit ka akses në detajet dhe pjesët tabelare të objektit, si dhe metodat dhe ngjarjet e tij. Variablat e eksportuar, procedurat dhe funksionet e modulit të aplikacionit (moduli i lidhjes së jashtme) dhe modulet e zakonshme janë të disponueshme këtu.

· Në kontekstin e një moduli formulari detajet e formularit janë të disponueshme, si dhe vetitë, metodat dhe ngjarjet e formularit. Nëse një formë ka një atribut kryesor të caktuar, atëherë vetitë dhe metodat e objektit të aplikacionit të përdorur si atribut kryesor bëhen të disponueshme në modulin e formularit.

Marrëdhënia midis konteksteve tregohet në mënyrë skematike në oriz. 2. Aktiv oriz. 3 përshkruan ndërveprimin e mundshëm të modulit të formularit të ditarit dhe modulit të dokumentit.


Procedurat dhe funksionet

Procedurat dhe funksionet janë blloqe programi që mund të thirren me emër nga një vendndodhje tjetër, siç është një procedurë tjetër. Funksionet ndryshojnë nga procedurat vetëm në atë që kanë një vlerë kthyese. Në versionin 8, rendi i procedurave dhe funksioneve nuk është i rëndësishëm. Kjo do të thotë që procedura mund të vendoset më poshtë ku quhet.

Procedurat dhe funksionet mund të kenë parametra që përcaktojnë se çfarë veprimesh duhet të bëjë me cilat objekte. Parametrat e një procedure ose funksioni kalohen si referencë si parazgjedhje. Kjo do të thotë se ndryshimi i një parametri formal brenda një procedure ose funksioni do të ndryshojë parametrin aktual në pikën ku thirret. Për të garantuar që një parametër kalohet nga vlera, duhet të futni një fjalë kyçe përpara emrit të parametrit Kuptimi.

Shembulli 1:

Llogaritja e procedurës ()

Sasia=Çmimi*Sasia;

Fundi i procedurës

Llogaritja(); // Thirrni procedurën

Shembulli 2:

Perem Glob;

// Përshkrimi i procedurës

Llogaritja e procedurës (Par1, Par2, ParZ) Eksporti

Glob = Glob + Par1 + Par2 + ParZ;

Fundi i procedurës

Llogaritja(5, 6, 7); // Thirrni procedurën

Shembulli 3:

Perem Glob;

// Përshkrimi i funksionit

Llogaritja e funksionit (Par1, Par2, ParZ) Eksporto

Lok = Glob + Par1 + Par2 + ParZ;

Kyçja e kthimit;

Funksioni i Fundit

Res = Calc(5, 6, 7); // Thirrja e funksionit

Llojet e të dhënave

Numri, Vargu, Data, Boolean, E Pacaktuar, Null (për vlera të paspecifikuara në tabelat e bazës së të dhënave)

Lloji. Vlerat e tipit special "Lloji" nevojiten për të përfaqësuar dhe krahasuar llojet e të dhënave, për shembull:

Deklarimi i variablave

Variablat shfaqen në program në rastet e mëposhtme:

· pasi deklarohen duke përdorur operatorin Variable.

Perem<Имя_переменной>[Eksport];

Variabli A, B;

· pas vendosjes së parë të emrit të ndryshores në anën e majtë të operatorit të caktimit.

Shembull:

· gjatë përcaktimit të emrave të identifikuesve të elementeve të dialogut të redaktuar;

· gjatë përcaktimit të parametrave formalë të procedurave.

Cast

Lloji i hedhjes mund të jetë i qartë ose i nënkuptuar.

Për transmetim të qartë, ekzistojnë funksionet e mëposhtme: Numri, Vargu, Data, Boolean. Hedhja e tipit implicit kryhet automatikisht nga sistemi kur vlerëson shprehjet.

Shembull: Vlera e ndryshores numerike MonthNumber konvertohet në mënyrë implicite në një varg dhe i shtohet një vargu tjetër:

A = “Muaji” + Numri i muajit;

Drejtoritë

Puna me drejtoritë kryhet duke përdorur objektet e mëposhtme:

· Menaxheri i Drejtorive. Ofron akses në të gjithë librat e referencës së konfigurimit. Vetitë e këtij objekti përkojnë me emrat e drejtorive dhe përmbajnë objekte të llojit DirectoryManager.

· Drejtori i Drejtorisë. Ofron akses në operacionet në një direktori si një grup elementësh. Duke përdorur metodat e këtij objekti, mund të kërkoni, të merrni një përzgjedhje, të krijoni elementë të rinj dhe të aksesoni format dhe paraqitjet e drejtorive.

· Lidhja e Drejtorisë. Identifikon pa mëdyshje një element (grup) të drejtorisë dhe ju lejon të përdorni atë në modalitetin vetëm për lexim. Nëpërmjet vetive dhe metodave të këtij objekti, ju mund të lexoni detajet e një elementi (grupi) dhe të aksesoni pjesët e tij tabelare. Vlera e këtij lloji ruhet në atribute që i referohen elementeve të kësaj drejtorie, për shembull, në atribut Punonjës dokument Rekrutimi ruhet një lidhje me një element të caktuar drejtorie Punonjësit.

· Objekti i Drejtorisë. Ofron akses të shkrueshëm në një element. Ky objekt përmban metoda që ndikojnë në një element në bazën e të dhënave, për shembull, metoda Shkruani Dhe Fshije.

· Zgjedhja e Drejtorisë. Ofron aftësinë për të përsëritur përmes elementeve të drejtorisë. Marrja e mostrave mund të jetë e drejtpërdrejtë ose hierarkike.

· Lista e Drejtorive. Një objekt për menaxhimin e listës së elementeve në një fushë tabele. Ju lejon të menaxhoni kolonat, përzgjedhjen dhe renditjen në listë.

Në sistemin 1C: Enterprise?

1. Konfigurimi dhe tekstet e bazës së të dhënave ruhen në formatUNIKODI

3. Nuk ka përgjigje të drejtë

6.75 Për çfarë qëllimi ruhen në format tekstet e konfigurimit dhe bazës së të dhënaveUNIKODI?

1. Formati UNICODE siguron pandryshueshmërinë (pavarësinë e platformës softuerike të sistemit operativ) të prezantimit të informacionit

2. FormatiUNIKODI ju lejon të mbështesni gjuhë të ndryshme në sistemin 1C: Enterprise

3. Nuk ka përgjigje të drejtë

6.76 Mekanizmat e ndërkombëtarizimit të përcaktuara. ..

1. platforma teknologjike 1C: Ndërmarrje

2. zgjidhjet e aplikuara

3. Përgjigjet 1 dhe 2 janë të sakta

4. nuk ka përgjigje të drejtë

6.77 Çfarë është një kod lokalizimi?

1. Një varg i përbërë nga një kod gjuhe dhe një kod shteti që identifikon disa rajone të botës

2. Kodi i produktit të softuerit (tregohet në formularin e regjistrimit, dokumentacioni i përfshirë në kompletin e dorëzimit)

3. Formatoni opsionin e vargut për konvertim

4. Përgjigja e saj është e saktë

6.78 A është e vërtetë që në 1C:Enterprise 8 çdo informacion teksti mund të përfshijë njëkohësisht karaktere nga gjuhë të ndryshme?

1. Po, pasi të gjitha tekstet e konfigurimit dhe bazës së të dhënave ruhen në formatUNIKODI

2. Në varësi të cilësimeve të specifikuara gjatë krijimit të bazës së informacionit

3. Vetëm nëse kjo ofrohet nga konfigurimi

6.79 Cili është qëllimi i objektit të konfigurimit "Gjuha"?

1. Për të krijuar një ndërfaqe programi në gjuhë të ndryshme

2. Për të krijuar dokumente teksti në gjuhë të ndryshme

3. Një objekt i tillë nuk ekziston në 1C: Ndërmarrja 8

6.80 Si mund ta ndryshoj gjuhën për shikimin (redaktimin) e konfigurimit?

1. Duke përdorur butonin e përzgjedhjes së gjuhës që ndodhet në shiritin e statusit në të djathtë të butonit "NUM".

2. Përmes artikullit të menysë "Konfigurimi - Gjuha e redaktimit të konfigurimit"

3. Në 1 C: Ndërmarrja kjo mundësi nuk ekziston

4. Verpa përgjigjet 1 dhe 2

6.81 Çfarë është drejtshkrimi i operatorëve të integruar të gjuhës?

1. Vetëm shkrimi rus

3.

6.82 A është e mundur të përdoren operatorë gjuhësorë të integruar në shkrimin rus dhe anglisht në një tekst burimor?

1. Vetëm me cilësime të veçanta të konfiguruesit

2. Po, kjo nuk kërkon ndryshimin e cilësimeve të konfiguruesit

3. Jo, pasi opsioni i integruar i gjuhës është vendosur në vetitë e konfigurimit

6.83 Cili është qëllimi i gjuhës së integruar?

1. Për të përcaktuar ndërfaqen e paracaktuar të programit

2. Për të përshkruar (në fazën e zhvillimit të konfigurimit) algoritme për funksionimin e një detyre të aplikuar

3. Nuk ka përgjigje të drejtë

6.84 Cili është drejtshkrimi i funksioneve të integruara gjuhësore?

1. Vetëm shkrimi rus

2. Vetëm drejtshkrimi në anglisht

3. Shkrimi rus dhe anglisht

4. Në varësi të cilësimeve të konfiguruesit

6.85 Çfarë do të thotë parametri L?(L) në vargun e formatit të funksionit të formatimit NumberInWriting()?

1. Shenja “jato pjesën thyesore në numra/fjalë”

2. Numri i numrave dhjetorë

3. Kodi i lokalizimit

7. Modeli tabelor i zgjidhjes aplikative

7.1 Kur vendosni kufizime për aksesin e të dhënave, mund të vendosni disa kufizime (bazuar në numrin e fushave):

1. Për të drejtën "Lexo".

2. Për të drejtën "Ndrysho"

3. Për të drejtën "Shto".

4. Për të drejtën "Fshi".

5. Për të gjitha të drejtat e mësipërme

6. Për të gjitha të drejtat e mundshme

7.2 Kur vendosni kufizimet e aksesit të të dhënave, si vlerat e mëposhtme mund të përdoren si vlera me të cilat bëhen kufizimet e aksesit të të dhënave:

1. Vetëm vlerat e parametrave të sesionit

2. Vetëm të dhëna nga tabelat (pyetjet)

3. Vlerat e parametrave të sesionit dhe të dhënat nga tabelat (pyetjet)

4. Vetëm vlerat me lloje: Number, String, Boolean, Date

7.3 Cila nga metodat e mësipërme mund të përdoret në mënyrë që kodi dhe emri i drejtorisë të shfaqen në seksionin "Fushat" të projektuesit të pyetjeve?

1. Fillimisht plotësoni seksionin "Tabelat" dhe më pas, duke zgjedhur objektet e dëshiruara nga ky seksion, zhvendosini ato në seksionin "Fushat" duke përdorur një klikim të dyfishtë me butonin e majtë të miut.

2. Pa plotësuar seksionin "Tabelat", zgjidhni menjëherë objektet e nevojshme nga tabelat - burimet e të dhënave të seksionit "Baza e të dhënave", duke i transferuar ato në seksionin "Fushat" duke përdorur teknologjinë Drag & Drop. Seksioni "Tabelat" plotësohet automatikisht

3. Fillimisht plotësoni seksionin "Tabelat" dhe më pas, duke zgjedhur objektet e nevojshme nga ky seksion, transferojini ato në seksionin "Fushat" duke përdorur butonat në formularin ">" """

4. Përgjigjet I dhe 3 janë të sakta

5. Përgjigjet I, 2 dhe 3 janë të sakta

7.4 Për të rritur shpejtësinë e ekzekutimit të kërkesës, duhet:

1. Vendosni parametrat për shumicën e tabelave reale

2. Vendosni parametrat për shumicën e tabelave virtuale

3. Në vend që të specifikoni parametrat për një tabelë reale ose virtuale, përdorni përzgjedhjen e specifikuar nga konstrukti i gjuhës së pyetjes "WHERE".

4. Përgjigjet I dhe 2 janë të sakta

7.5 A është e mundur t'i caktohet një emër i ri (alias) kur zgjedh një tabelë burimore në seksionin "Tabela" të projektuesit të pyetjeve?

1. po ti mundesh

2. Po, mundeni, por vetëm nëse burimi i të dhënave është një pyetje e ndërthurur

3. Po, mundeni, por vetëm nëse burimi i të dhënave është një tabelë virtuale

4. Përgjigjet 1 dhe 2 janë të sakta

5. Përgjigjet 1 dhe 3 janë të sakta

7.6 Një pyetje e mbivendosur mund të përdoret:

1. Si një tabelë e burimit të të dhënave

2. Si një operand i operacioneve të krahasimit "B" ose "NOT B" kur vendosni parametrat e tabelës virtuale

3. Si një operand i operacioneve të krahasimit "B" ose "NOT B" kur specifikon konstruktin e gjuhës së pyetjes "WHERE"

4. Verpa përgjigjet 1, 2 dhe 3

7.7 A është e mundur të merren totalet sipas hierarkisë duke përdorur projektuesin e pyetjeve?

1. Është e mundur nëse specifikoni llojin total "Elementet dhe Hierarkia" për fushën e grupimit

2. Është e mundur nëse specifikoni llojin total “Vetëm Hierarki” për fushën e grupimit

3. Verpa përgjigjet 1 dhe 2

7.8 Në skedën "Kushtet" të projektuesit të pyetjes, mund të gjenerohet një rresht i veçantë i listës së kushteve:

1. Klikoni dy herë me butonin e majtë të miut në fushën e dëshiruar në listën e fushave të disponueshme

2. Duke lëvizur fushën e dëshiruar në listë duke përdorur teknologjinë Drag & Drop

3. Klikoni butonin "Shto". Nëse kushti është arbitrar, atëherë teksti i kushtit mund të futet "manualisht"

4. Telefononi menunë e kontekstit dhe zgjidhni "Shto" prej saj. Është e mundur të përdoret një shprehje arbitrare

5. Të gjitha përgjigjet e mësipërme janë të sakta

7.9 Në skedën "Lidhjet" të projektuesit të pyetjeve, mund të përcaktoni:

1. Lidhja e tabelave të burimeve të të dhënave dhe marrëdhëniet ndërmjet tyre

2. Kombinimi i tabelave të burimeve të të dhënave dhe lidhjeve ndërmjet tyre

3. Marrëdhëniet ndërmjet fushave të tabelës të marra si rezultat i pyetësorit

4. Marrëdhëniet ndërmjet fushave të tabelës së burimit të të dhënave dhe tabelës së marrë si rezultat i pyetjes

7.10 Kur bashkoni tabelat e burimit të të dhënave në projektuesin e pyetjeve, mund të:

1. Caktoni një lidhje pa specifikuar gjendjen e lidhjes

2. Caktoni një lidhje që tregon gjendjen e lidhjes dhe ky kusht mund të jetë vetëm një

3. Caktoni një lidhje që tregon gjendjen e lidhjes dhe kjo gjendje mund të jetë vetëm e thjeshtë

4. Caktoni numrin e kërkuar të lidhjeve duke treguar numrin e kërkuar të kushteve të komunikimit dhe këto kushte mund të jenë të thjeshta ose arbitrare

7.11 Krijimi i një lidhjeje ndërmjet tabelave të burimit të të dhënave në projektuesin e pyetjeve lejon:

1. Bashkimi i vetëm dy tabelave të burimeve të të dhënave

2. Lidhja e numrit të kërkuar të tabelave të burimit të të dhënave

3. Lidhja e vetëm dy tabelave të burimit të të dhënave dhe kutia e kontrollit "Të gjitha" duhet të kontrollohet për të paktën njërën nga tabelat

Basic, gjë që e bën më të lehtë për zhvilluesit fillestarë të mësojnë. Sidoqoftë, nuk është një analog i drejtpërdrejtë i asnjërës prej gjuhëve të listuara.

Këtu janë vetëm disa nga veçoritë më domethënëse të gjuhës së integruar:

  • para-përpilimi; para ekzekutimit, modulet që përmbajnë tekst në gjuhën e integruar konvertohen në kod të brendshëm;
  • ruajtja e moduleve të përpiluara në memorie;
  • soft typing - lloji i një variabli përcaktohet nga lloji i vlerës që përmban dhe mund të ndryshojë gjatë funksionimit;
  • mungesa e përshkrimit të softuerit të objekteve të konfigurimit; zhvilluesi mund të përdorë ose objekte të ndërtuara në platformë ose objekte të krijuara nga sistemi si rezultat i dizajnit vizual të zgjidhjes së aplikacionit.

Gjuha e integruar e orientuar drejt ngjarjeve. Qëllimi i gjuhës së integruar në sistemin 1C: Enterprise përcaktohet nga ideologjia e krijimit të zgjidhjeve të aplikacionit. Zgjidhjet e aplikimit në 1C: Enterprise 8.0 nuk janë të koduara plotësisht. Pjesa më e madhe e zgjidhjes së aplikacionit krijohet nga zhvilluesi përmes dizajnit vizual - krijimi i objekteve të reja të konfigurimit, vendosja e vetive të tyre, format e prezantimit, marrëdhëniet, etj. Gjuha e integruar përdoret vetëm për të përcaktuar sjelljen e objekteve të zgjidhjes së aplikacionit që ndryshon nga standarde, dhe për të krijuar algoritmet e tyre të përpunimit të të dhënave.

Për këtë arsye, modulet që përmbajnë tekst në gjuhën e integruar përdoren nga sistemi në situata specifike, të njohura më parë që mund të lindin gjatë funksionimit të zgjidhjes së aplikacionit. Situata të tilla quhen ngjarje. Ngjarjet mund të shoqërohen me funksionimin e objekteve të zgjidhjes së aplikacionit ose me vetë zgjidhjen e aplikacionit, si të tillë.

Për shembull, një numër ngjarjesh shoqërohen me funksionimin e objektit të zgjidhjes së aplikacionit Directory, ndër të cilat është ngjarja BeforeWrite. Kjo ngjarje ndodh pak përpara se të dhënat e artikullit të drejtorisë të shkruhen në bazën e të dhënave. Një zhvillues, duke përdorur një gjuhë të integruar, mund të përshkruajë një algoritëm që, për shembull, do të kontrollojë korrektësinë e të dhënave të futura nga përdoruesi. Duke e vendosur këtë algoritëm në modulin e duhur, zhvilluesi do të sigurojë që sa herë që përdoruesi regjistron një artikull drejtorie, sistemi do të ekzekutojë algoritmin e krijuar nga zhvilluesi dhe do të kontrollojë nëse përdoruesi ka harruar të plotësojë detajet e kërkuara të drejtorisë.

Kështu, mund të themi se gjuha e integruar është një gjuhë skriptimi për programimin e logjikës së biznesit, dhe përdorimi i moduleve në gjuhën e integruar varet nga ngjarjet, d.m.th. modulet ekzekutohen kur ndodhin ngjarje të caktuara gjatë funksionimit të zgjidhjes së aplikacionit.

Llojet e paracaktuara të të dhënave

Platforma 1C:Enterprise 8.0 i lejon zhvilluesit të përdorë lloje të ndryshme të dhënash.

Ekzistojnë një numër i madh i llojeve të të dhënave që përcaktohen në nivelin e vetë platformës. Për shembull kjo Llojet primitive të të dhënave, si vargu, numri, data etj.


Përshkrim Llojet primitive të të dhënave:

  • I PAVLEFSHËM- vlera që mungon. Përdoret, për shembull, në pyetje.
  • E papërcaktuar- vlerë e zbrazët, e papërcaktuar. Përdoret, për shembull, kur vlerësohet kalimi i parametrave nëse ky parametër hiqet kur thirret një procedurë ose funksion. Detajet që kanë një lloj të dhënash të përbërë janë të tipit "të papërcaktuar" si parazgjedhje.
  • Boolean- përmban dy vlera: E vërtetë ose e gabuar. Përdoret, për shembull, në shprehjet logjike - një shprehje logjike është e llojit "Boolean".
  • datë- përmban datën dhe orën. Vlera e paracaktuar është 01/01/01 00:00:00 data e fillimit të epokës sonë. Koha matet që nga fillimi i ditës. Një shprehje që ka një lloj fjalë për fjalë "datë" shkruhet si më poshtë - "00010101000000". Fillimisht shënohet viti, pastaj muaji, më pas data dhe më pas ora. Hyrja e mëposhtme është e mundur: "20041031". Koha e paracaktuar është fillimi i ditës.
  • Linjë- mund të jetë gjatësi e ndryshueshme, fikse ose e pakufizuar. Në përgjithësi, rekomandohet përdorimi i vargjeve me gjatësi të ndryshueshme.
  • Numri- thellësia e bitit të numrit është rritur në 38 bit.
  • Lloji- shërben për përcaktimin e llojeve të vlerave. Përdoret, për shembull, për të krahasuar llojet e të dhënave. Nuk ka fjalë për fjalë dhe kthehet nga funksionet Type(<Имя типа>) ose TypeValue(<Значение>).

Gjithashtu, ka më shumë llojet komplekse të të dhënave. Për shembull, platforma mbështet një sërë llojesh që janë koleksione universale vlerash: grup, strukturë, listë vlerash, pemë vlerash, etj.


Llojet e të dhënave "Koleksione universale" - një listë (bashkësi) e objekteve të të dhënave të çdo lloji, vlerat e të cilave mund të arrihen me forcë brutale ose me një indeks (çelës) të specifikuar. Numërimi i elementeve të grumbullimit fillon nga 0. Të gjitha llojet e specifikuara të të dhënave krijohen vetëm në mënyrë programore.

Array. Përfaqëson një koleksion të numëruar vlerash të një lloji arbitrar. Një element grupi mund të aksesohet nga indeksi i tij. Elementet e një grupi mund të jenë, në veçanti, vargje të tjera. Kjo ju lejon të krijoni vargje shumëdimensionale.

Struktura. Përfaqëson një koleksion të emërtuar të përbërë nga çifte Key-Value. Çelësi mund të jetë vetëm një varg, vlera mund të jetë e një lloji arbitrar. Një element strukture mund të aksesohet nga vlera e çelësit të tij, d.m.th. me emër. Zakonisht përdoret për të ruajtur një numër të vogël vlerash, secila me një emër unik.

Korrespondencë. Ashtu si Struktura, ajo është një koleksion i çifteve kyç - vlerë. Megjithatë, ndryshe nga një Strukturë, një çelës mund të jetë pothuajse i çdo lloji.

Lista e vlerave. Zakonisht përdoret për të zgjidhur problemet e ndërfaqes. Ju lejon të ndërtoni grupe dinamike vlerash dhe t'i manipuloni ato (shtoni, modifikoni, fshini elementë, renditni). Mund të përmbajë vlera të çdo lloji; përveç kësaj, llojet e vlerave të ruajtura në një listë mund të jenë të ndryshme.

Tabela e vlerave. Një tabelë vlerash ju lejon të ndërtoni dhe manipuloni grupe dinamike vlerash. Mund të mbushet me vlera të çdo lloji, dhe në një tabelë llojet e vlerave të ruajtura mund të jenë të ndryshme.

Pema e vlerave. Një pemë vlerash është një grup vlerash të çdo lloji të gjeneruar në mënyrë dinamike, të ngjashme me një tabelë vlerash. Ndryshe nga një tabelë vlerash, rreshtat e një peme vlerash mund të formojnë struktura hierarkike: çdo rresht në pemë mund të ketë një grup rreshtash vartëse, secila prej rreshtave të varur nga ana tjetër mund të ketë gjithashtu një grup rreshtash vartëse, e kështu me radhë. Në këtë rast, kërkimi i vlerave, renditja dhe marrja e rezultateve mund të kryhet ose sipas nivelit aktual të hierarkisë, ose duke përfshirë të gjitha ato vartëse.

COMSafeArray. Përfaqëson një mbështjellës objekti mbi një grup shumëdimensional SAFEARRAY prej

Procedura SelectFromFileClick(Element) // Zgjedhja e një skedari me viewingFileSelectionDialog = NewFileSelectionDialog(FileSelectionDialogMode.Open); FileSelectionDialog.Directory = ""; FileSelectDialog.Preview = E vërtetë; FileSelectionDialog.FilterIndex = 0; Nëse FileSelectDialog.Select() Pastaj File = New File(FileSelectDialog.FullFileName); Image = NewValueStorage(NewImage(FileSelectionDialog.FullFileName)); DisplayImage(); fundNëse; Fundi i procedurës

THIS_FJALA KYÇE
<Это конструкция языка>,
<Это конструкция языка>
THIS_FUNCTION(<Это конструкция языка>)

Në rregullat që përshkruajnë një gjuhë pyetëse, konstruktet e gjuhës tregohen në kllapa këndore. Fjalët kyçe dhe emrat e funksioneve përshkruhen me shkronja të mëdha.

Konstruktet gjuhësore mund të përmbajnë elemente opsionale - fjalë kyçe, etj. Në rregullat që përshkruajnë gjuhën e pyetjes, elementet opsionale janë të mbyllura në kllapa katrore "[" dhe "]":

[KJO ËSHTË NJË FJALË OPTIONAL] [<Это необязательная конструкция>]

Në disa raste, dizajni i gjuhës mund të përdorë një nga disa elementë alternativë. Elementë të tillë në rregulla renditen përmes një shiriti vertikal "|":

OSE_KJO_FJALA | OSE THIS_WORD
<Либо эта конструкция> | <Либо эта конструкция>

Përshkrimet e të gjitha konstrukteve shoqërohen me shembuj që shpjegojnë se si ato përdoren në gjuhën e pyetjes.

Komentet në gjuhën e pyetjeve

Organi i kërkesës mund të përfshijë komente. Një koment konsiderohet të jetë pjesë e një rreshti që fillon me sekuencën e karaktereve // ​​dhe vazhdon deri në fund të rreshtit:

// Ky është një koment.

Komentet injorohen kur kërkesa është ekzekutuar.

Paraqitja dygjuhëshe e fjalëve kyçe

Një nga veçoritë domethënëse të gjuhës së pyetjeve 1C: Enterprise është se, si në gjuhën e integruar, të gjitha fjalët kyçe kanë dy drejtshkrime: në rusisht dhe anglisht. Më vonë në këtë kapitull, tregohen drejtshkrimet ruse të fjalëve kyçe. Më poshtë është një tabelë që tregon korrespodencën midis rusishtes dhe anglishtes dhe opsionet e drejtshkrimit për fjalë kyçe në gjuhën e pyetjes...... (të hequra)

Seksionet kryesore të tekstit të kërkesës

Teksti i kërkesës mund të përshkruhet nga rregulli i mëposhtëm:

<Описание запроса>
[<Объединение запросов>]
[<Упорядочивание результатов>]
[POROSI AUTO]
[<Описание итогов>]

Siç mund të shihet nga ky rregull, teksti i kërkesës përbëhet nga disa pjesë ose seksione:

Në seksion<Упорядочивание результатов>Ju mund të përcaktoni kushtet e renditjes për rreshtat në rezultatin e pyetjes. Renditja e rezultatit të një pyetje diskutohet në faqen 324.

AUTO ORDER ju lejon të aktivizoni renditjen automatike të rreshtave në rezultatin e pyetjes. Ky modalitet përshkruhet në faqen 331.

Në seksion<Описание итогов>Ju mund të specifikoni se cilat totale duhet të llogariten në pyetje. Ky seksion përshkruhet në faqen 332.

Përshkrimi i kërkesës

Siç është përmendur tashmë, teksti i kërkesës duhet të përmbajë domosdoshmërisht një seksion përshkrimi të kërkesës, i cili përcakton:

Fushat që do të përmbahen në rezultatin e kërkesës;

Burimet e të dhënave të pyetësorit - tabelat burimore;

Kushtet që ndikojnë në përzgjedhjen e të dhënave në një kërkesë;

Rendi sipas të cilit grupohen rezultatet e pyetjes.

Seksioni i përshkrimit të kërkesës përbëhet nga disa fjali të ndërlidhura:

ZGJEDHJE [TË NDRYSHME] [PARË<Количество>]
<Список полей выборки>
[NGA<Список источников>]
[KU<Условие отбора>]
[GRUPI NGA<Поля группировки>]
[DUKE<Условие отбора>]
[PER NDRYSHIM [<Список таблиц верхнего уровня>]]

Përshkrimi i kërkesës fillon me një fjalë kyçe të kërkuar ZGJIDHNI.

Oferta KU<Условие отбора> ju lejon të filtroni rezultatin e pyetjes. Rezultati përfshin vetëm ato rekorde për të cilat kushti i specifikuar është i vërtetë. Rregullat për përshkrimin e kushteve të përzgjedhjes diskutohen në faqen 315.

Oferta PËR NDRYSHIM ka për qëllim të tregojë nevojën për të bllokuar të dhënat e lexuara në një transaksion.

Oferta GRUP ju lejon të përshkruani rendin në të cilin grupohen rezultatet e pyetjeve. Grupimi diskutohet në detaje në faqen 316.

Oferta DUKE ju lejon të vendosni kushte për rezultatet e grupimit. Përshkruar në faqen 318.

Të gjithë shembujt e pyetjeve në këtë kapitull ofrojnë tekstin e pyetjes dhe rezultatin e pyetjes. Supozohet se teksti i kërkesës i kalohet si parametër metodës Execute të objektit Request.

Le të japim një shembull të një pyetjeje mjaft të thjeshtë që përbëhet nga një deklaratë SELECT dhe një listë e fushave të përzgjedhjes.

//Duhet të shfaqni një listë të faturave në raport.

Rezultati i pyetjes:

Përdorimi i fjalës NDRYSHME

Në shumë situata, është e dëshirueshme që të njëjtat rreshta në një raport të mos përsëriten.

// Është e nevojshme të zbulohet se cilat palë në përgjithësi
// mallrat u dërguan për periudhën.
Zgjidhni Document.Fature.Counterparty

Rezultati i pyetjes:

Mund të shihet se rezultati i pyetjes përmban shumë rreshta të përsëritur, gjë që zvogëlon qartësinë e tij. Për të shmangur përsëritjen, në përshkrimin e pyetjes duhet të specifikohet fjala kyçe DIFFERENT.

Zgjidhni Dokument të ndryshëm.Faturë.Kundërpalë

Rezultati i pyetjes:

Përdorimi i fjalës FIRST

Në disa raste, është e nevojshme të shfaqet një numër i kufizuar rreshtash në një raport. Për ta bërë këtë, në përshkrimin e pyetjes duhet të specifikoni fjalën kyçe FIRST, dhe pas saj - numrin e kërkuar të rreshtave.

// Është e nevojshme të zgjidhni pesë mallrat më të shtrenjta.
// Zgjedhja duhet të bëhet në rend zbritës të çmimit të produktit.
Zgjidhni E para 5
Drejtoria.Nomenklatura.Emri,
Drejtoria.Nomenklatura.Çmimi i blerjes
Rendit sipas Drejtorisë.Nomenklatura.Çmimi i blerjes në rënie

Rezultati i pyetjes:

Përshkrimi i fushave të përzgjedhjes

Pas fjalës kyçe të detyrueshme SELECT (dhe fjalëve kualifikuese DIFFERENT dhe FIRST), në tekstin e kërkesës specifikohet një listë e fushave të përzgjedhjes. Këto fusha do të përpunohen kur të merren të dhënat në një kërkesë. Rezultati i pyetjes do të ketë gjithashtu grupin e fushave të përcaktuara në këtë listë. Fushat e përzgjedhjes përshkruhen sipas rregullave të mëposhtme:

<Описание поля>[ [SI]<Псевдоним поля>]

<Выражение>[.<Группа полей>]

Lista e fushave të përzgjedhjes përbëhet nga një ose më shumë elementë të ndarë me presje. Secili<Поле выборки>përbëhet nga një përshkrim i fushës së përzgjedhjes dhe një pseudonim i fushës opsionale.

Në vend që të renditni fushat në listën e përzgjedhjes, mund të specifikoni një yll "*". Kjo do të thotë që rezultati i pyetjes duhet të përmbajë të gjitha fushat që janë në tabelat burimore - burimet e të dhënave të pyetjes të përshkruara në listën e burimeve.

Komentoni! Kur specifikoni një yll "*" në listën e fushave të përzgjedhjes, fushat virtuale të tabelave burimore nuk përfshihen në rezultat.

<Описание поля>përcakton se si duhet të gjenerohen vlerat e fushës. Në rastin më të thjeshtë, fusha e përzgjedhjes është një lidhje me një fushë në tabelën burimore. Lidhja mund të specifikohet duke specifikuar tabelën që përmban këtë fushë, ose pa specifikuar vetë tabelën. Çreferencimi në terren diskutohet në.

Në përgjithësi, fusha e përzgjedhjes mund të jetë jo vetëm një lidhje me një fushë në tabelën burimore, por edhe disa<Выражение>. Shprehjet diskutohen në detaje në faqen 344.

Rezultatet e pyetësorit mund të grupohen duke përdorur funksione agregate të specifikuara si shprehje në fusha të zgjedhura. Grupimi i rezultateve të pyetjeve diskutohet në faqen 316. Funksionet e përgjithshme përshkruhen në faqen 345.

Çdo fushë përzgjedhjeje mund t'i caktohet një pseudonim. Në të ardhmen mund të përdoret për akses më të përshtatshëm në këtë fushë. Përdorimi i pseudonimeve në terren diskutohet më poshtë.

<Группа полей>mund të specifikohet vetëm kur fusha e përzgjedhjes tregon në një tabelë të ndërthurur. Në këtë rast, mund të specifikoni se cilat fusha duhet të përpunohen në përzgjedhjen e tabelës së mbivendosur. Nëse një grup fushash nuk është specifikuar, të gjitha fushat e tabelës së ndërlidhur do të përpunohen në përzgjedhje. Qasja në tabela të mbivendosura përshkruhet në.

Pseudonimet e fushave në listën e përzgjedhjes

Nëse i caktoni një pseudonim një fushe përzgjedhjeje, më vonë mund t'i referoheni kësaj fushe duke përdorur pseudonimin e saj në klauzolat ORDER BY dhe TOTAL, si dhe kur punoni me rezultatin e një pyetjeje. Një trajtim i tillë mund të jetë më i përshtatshëm dhe vizual, dhe në disa raste i vetmi i mundshëm.

Fjala kyçe HOW mund t'i paraprijë pseudonimit të fushës. Kjo fjalë mund të mos specifikohet fare, por nëse specifikohet, dukshmëria dhe lexueshmëria e tekstit të kërkesës rritet.

Pseudonimet e fushës vendosen në përputhje me rregullat për caktimin e identifikuesve të variablave. Pseudonimet në kërkesë nuk mund të jenë të njëjta.

Caktimi i pseudonimeve në fusha nuk ndikon në vetvete në përzgjedhjen e të dhënave në pyetje.

// Duhet të zgjidhet nga drejtoria e produktit
// emrat e mallrave dhe emrat e grupeve.
Zgjidhni
Drejtoria. Nomenklatura Emri si produkt,
Drejtoria. Nomenklatura.Parent.Emri si grup
nga
Drejtoria.Nomenklatura

Rezultati i pyetjes:

Vini re se fushat në rezultatin e pyetjes së fushës emërtohen "Artikulli" dhe "Grupi". Nëse pseudonimet e fushave nuk do të specifikoheshin, fushat në rezultatin e pyetjes do të quheshin "Emri" dhe "Emri1" (emrat e fushave në rezultatin e pyetjes nuk mund të përputhen, kështu që "1" shtohet automatikisht në emrin e fushës së dytë). e cila është shumë më pak e qartë.

Tabelat e mbivendosura në listën e fushave të përzgjedhjes

Një fushë në listën e përzgjedhur mund t'i referohet një tabele të ndërthurur në burimin e të dhënave të pyetjes. Në këtë rast, fusha e rezultatit të pyetjes do të jetë e llojit Query Result, domethënë do të përmbajë një rezultat të pyetësorit të ndërlidhur të krijuar në bazë të një tabele burimi të ndërlidhur.

Si parazgjedhje, të gjitha fushat e tabelës së mbivendosur - burimi i të dhënave - përfshihen në rezultatin e ndërlidhur. Është e mundur që në mënyrë eksplicite të përcaktohen një grup fushash që duhet të përfshihen në një rezultat kërkimi të ndërlidhur. Një grup fushash rezultatesh të ndërlidhura përshkruhet sipas rregullit të mëposhtëm:

(<Список вложенных полей>) | *

<Вложенное поле [, <Вложенное поле>[, ...] ]

<Список вложенных полей>përbëhet nga një ose më shumë elementë të ndarë me presje. Nëse lista përbëhet nga një element, nuk ka nevojë të vendoset në kllapa.

Në vend që të listoni fushat e ndërlidhura, mund të specifikoni një yll "*"; kjo do të thotë se rezultati i pyetjes së ndërthurur duhet të përmbajë të gjitha fushat që janë në tabelën e ndërthurur.

<Выражение>[[SI]<Псевдоним поля>]

<Вложенное поле>mund të përfaqësojë një shprehje. Në rastin më të thjeshtë<Выражение>është një referencë për një fushë në një tabelë të ndërthurur. Shprehjet diskutohen në detaje në faqen 344.

Çdo fushë të mbivendosur mund t'i caktohet një pseudonim. Me tutje<Псевдоним поля>mund të përdoret për qasje më të përshtatshme në këtë fushë, të ngjashme me pseudonimet për fushat në listën e përzgjedhjes - shihni seksionin "Emërtimet për fushat në listën e përzgjedhjes" në

Pseudonimet mund t'u caktohen fushave të ndërlidhura, pavarësisht nëse një pseudonim i caktohet vetë tabelës së mbivendosur.

//Është e nevojshme të paraqitet specifikimi i faturave në raport,
// vetë dokumenti, nomenklatura dhe sasia.
Zgjidhni

Dokument.Faturë.Përbërja.(Nomenklatura si produkt, Sasia)

Rezultati i pyetjes:

Lidhje Kompleksi
Produkt sasi
Xhinse për femra 4
Xhinse për femra 5
Këmishë "Cowgirl" 5
Fatura 00005 datë 24.02.2002 0:00:00 Xhinse për femra 1
Xhinse për femra 1
Moydodyr "Aquarium" 5
Lavaman "Lily" 8
Mikser "Ultra" 10

Ju lutemi vini re se fusha "Përbërja" e rezultatit të pyetjes është një tabelë e ndërthurur që ka fushat "Nomenklatura" dhe "Sasia".

//Shfaq të gjitha fushat e pjesës tabelare të faturës në raport.
Zgjidhni
Dokument.Faturë.Lidhje,
Dokumenti.Faturë.Përbërja.*

Qëllimi i klauzolës IZ është të përcaktojë një listë të tabelave burimore - burimet e të dhënave të përdorura në një deklaratë të caktuar SELECT.

Duhet të theksohet se klauzola IZ në gjuhën e pyetjes është fakultative. Mund të hiqet nëse burimet e të dhënave janë plotësisht të kualifikuara në përshkrimin e listës së fushave të përzgjedhjes që përmbahen në klauzolën SELECT. Ju lutemi vini re se një numër i shembujve në seksionet e mëparshme nuk përmbanin klauzolën IZ.

Pas fjalës kyçe IZ, tregohet një listë e burimeve. Në përgjithësi, lista e burimeve përshkruhet nga grupi i rregullave të mëposhtme:

<Источник>[, <Источник>[, ...]]

Burimet e të dhënave të pyetjeve renditen në listën burimore, të ndara me presje. Çdo<Источник>lista e burimeve duhet të përfshijë një përshkrim të burimit; përveç kësaj, mund të specifikohet<Перечень соединений>- rregullat për lidhjen e një burimi me burime të tjera. Specifikimet e lidhjes janë përshkruar.

<Описание источника> [ <Перечень соединений> ]

Nëse burimi i të dhënave është një tabelë infobaze,<Описание источника>përmban<Имя таблицы>.

<Таблица>[ [SI]<Псевдоним источника>]

Nëse tabela e burimit është virtuale, mund të specifikoni<Параметры>formimin e saj. Parametrat e tabelës virtuale përshkruhen në detaje në seksionin "Burimet e të dhënave të pyetjes".

<Имя таблицы> [(<Параметры>)] | <Описание запроса>

Një nënpyetje mund të veprojë gjithashtu si një burim i të dhënave të pyetjes; në këtë rast përshkrimi i burimit përmban<Описание запроса>. Përdorimi i pyetjeve të mbivendosur përshkruhet në.

Përshkrimi i burimit të të dhënave mund të caktojë gjithashtu pseudonimin e tij. Me tutje<Псевдоним источника>mund të përdoret për qasje më të përshtatshme në këtë burim. Përdorimi i pseudonimeve të burimeve të të dhënave është diskutuar në.

Specifikimet e lidhjes

Kur përcaktohen burime të shumta në listën burimore, për çdo regjistrim nga tabela e parë e burimit, bëhet një përzgjedhje nga tabela e dytë e burimeve, etj. Kështu, pyetja rezulton në të gjitha kombinimet e mundshme të të gjitha regjistrimeve nga të gjitha burimet e specifikuara.

Rezultati i pyetjes:

Kundërpartia Banka
Furnizuesit JSCB InvestBank
Furnizuesit JSCB PromStroyBank
Fabrika e thurjes "Zarya" JSCB InvestBank
Fabrika e thurjes "Zarya" JSCB PromStroyBank
Fabrika e veshjeve xhins JSCB InvestBank
Fabrika e veshjeve xhins JSCB PromStroyBank
Blerësit JSCB InvestBank
Blerësit JSCB PromStroyBank
Panairi i veshjeve JSCB InvestBank
Panairi i veshjeve JSCB PromStroyBank
Shtëpia tregtare "Budenovsky" JSCB InvestBank
Shtëpia tregtare "Budenovsky" JSCB PromStroyBank
Pavioni 45 në tregun me shumicë JSCB InvestBank
Pavioni 45 në tregun me shumicë JSCB PromStroyBank
Bavaria - porcelani JSCB InvestBank
Bavaria - porcelani JSCB PromStroyBank
Fabrika e veshjeve xhins JSCB InvestBank
Fabrika e veshjeve xhins JSCB PromStroyBank
JSCB PromStroyBank JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

Rezultati i pyetjes përmban kombinime të të gjitha palëve me të gjitha bankat. Si rregull, një rezultat i tillë në vetvete nuk ka kuptim. Në mënyrë tipike, kombinimet e regjistrimeve nga tabelat e burimeve të ndryshme duhet të kufizohen nga disa kushte. Është e mundur në një gjuhë pyetëse të përshkruhet një kombinim i tillë burimesh duke specifikuar vetë burimet dhe duke përcaktuar kushtet në të cilat kombinimet e regjistrimeve nga këto burime duhet të përfshihen në rezultatin e pyetjes.

Ekzistojnë disa lloje lidhjesh, ato përshkruhen nga rregullat e mëposhtme:

<Соединение> [<Перечень соединений>]

Në përgjithësi<Перечень соединений>mund të përmbajë dhe të përshkruajë jo vetëm një lidhje (të dy burimeve), por edhe disa lidhje të disa burimeve njëherësh.

[INTERNAL] BASHKOHU<Описание источника>NGA<Условие отбора> |

LEFT [JASHTË] BASHKOHU<Описание источника>NGA<Условие отбора> |

DJATHTA [JASHTË] BASHKOHU<Описание источника>NGA<Условие отбора> |

PLOTË (E JASHTË) BASHKOHU<Описание источника>NGA<Условие отбора>

<Условие отбора>përmban kushte sipas të cilave zgjedhja duhet të kombinojë të dhënat nga tabelat origjinale - burimet e pyetjes. Rregullat për përshkrimin e kushteve në një gjuhë pyetjesh diskutohen në faqen 357.

Fjalët kyçe LEFT, RIGHT dhe FULL sqarojnë natyrën e lidhjes. Fjalët INTERNAL ose EXTERNAL mund të mos specifikohen fare; ato rrisin qartësinë dhe lexueshmërinë e tekstit të kërkesës.

Burimet që bashkohen nuk janë ekuivalente me njëri-tjetrin, dhe në disa raste rezultati varet nga ajo se cila tabelë është renditur e para, përpara fjalës kyçe JOIN (në të majtë të saj) dhe cila tabelë renditet e dyta (në të djathtë).

[INTERNAL] JOIN do të thotë që nga të dyja tabelat burimore - burimet e të dhënave, vetëm ato kombinime të rekordeve që plotësojnë kushtin e specifikuar duhet të përfshihen në rezultatin e pyetjes. Të dhënat e mbetura nuk përfshihen në rezultat.

// Duhet të zbuloni se cilat banka janë në të njëjtën kohë
// palët (janë të pranishëm të njëjtët emra
//si në direktorinë Counterparties ashtu edhe në drejtorinë e Bankave).
Zgjidhni

Bankat.Lidhja Si të Bankoni
Nga

Bashkim i brendshëm
Drejtoria.Bankat Si Bankat
Nga

Rezultati i pyetjes:

Kundërpartia Banka
JSCB PromStroyBank JSCB PromStroyBank

NJË BASHKIM LEFT [OUTER] do të thotë që rezultati i pyetjes duhet të përfshijë kombinime të rekordeve nga të dy tabelat burimore që plotësojnë kushtin e specifikuar. Por, ndryshe nga një bashkim i brendshëm, rezultati i pyetjes duhet të përfshijë gjithashtu regjistrime nga burimi i parë (tregohet në të majtë të fjalës JOIN) për të cilat nuk u gjet asnjë regjistrim nga burimi i dytë që përputhet me kushtin.

Në këtë mënyrë, rezultati i pyetjes do të përfshijë të gjitha të dhënat nga burimi i parë; ato do të bashkohen me të dhënat nga burimi i dytë nëse plotësohet kushti i specifikuar. Linjat e rezultateve të pyetjeve për të cilat nuk u gjet asnjë regjistrim nga burimi i dytë që përputhet me kushtin do të përmbajnë NULL në fushat e krijuara bazuar në të dhënat nga ky burim.

//Është e nevojshme të shfaqen të gjitha palët në raport dhe për ato
// kush është gjithashtu një bankë - tregoni një lidhje me bankën.
Zgjidhni
Counterparties.Link si kundërpalë,
Bankat.Lidhja Si të Bankoni
Nga
Drejtori
Lidhja e jashtme e majtë
Drejtoria.Bankat Si Bankat
Nga
Kundërpalët.Emri = Bankat.Emri

Rezultati i pyetjes:

NJË BASHKIM TË DREJTË [JASHTËM] do të thotë që rezultati i pyetjes duhet të përfshijë kombinime të rekordeve nga të dy tabelat burimore që plotësojnë një kusht të caktuar. Për më tepër, rezultati i pyetjes duhet të përfshijë gjithashtu regjistrime nga burimi i dytë (treguar në të djathtë të fjalës LIDHJE) për të cilat nuk u gjet asnjë regjistrim nga burimi i parë që përputhet me kushtin.

Kështu, rezultati i pyetjes do të përfshijë të gjitha të dhënat nga burimi i dytë; ato do të bashkohen me të dhënat nga burimi i parë nëse plotësohet kushti i specifikuar. Linjat e rezultateve të pyetjeve për të cilat nuk u gjet asnjë regjistrim nga burimi i parë që përputhet me kushtin do të përmbajnë NULL në fushat e krijuara bazuar në regjistrimet nga ky burim.

//Është e nevojshme të shfaqen të gjitha bankat në raport, dhe për ato
// kush është gjithashtu palë - tregoni një lidhje me palën tjetër.
ZGJIDHNI
Counterparties.Link si kundërpalë,
Bankat.Link Like Bank
NGA
Drejtori
Bashkohu djathtas i jashtëm
Drejtoria.Bankat Si Bankat
Nga
Kundërpalët.Emri = Bankat.Emri

Rezultati i pyetjes:

Kundërpartia Banka
I PAVLEFSHËM JSCB InvestBank
JSCB PromStroyBank JSCB PromStroyBank

NJË BASHKIM I PLOTË [JASHTËM] do të thotë që rezultati i pyetjes duhet të përfshijë kombinime të të dhënave nga të dy tabelat burimore që plotësojnë një kusht të caktuar. Për më tepër, rezultati i pyetjes duhet të përfshijë gjithashtu ato regjistrime nga të dy burimet për të cilat nuk u gjetën përputhje.

Në këtë mënyrë, rezultati i pyetjes do të përfshijë të gjitha të dhënat nga të dy burimet; ato do të lidhen me njëri-tjetrin kur të plotësohet kushti i specifikuar. Linjat e rezultateve të pyetjeve për të cilat nuk u gjet asnjë regjistrim nga asnjë burim që përputhet me kushtin do të përmbajnë NULL në fushat e krijuara bazuar në të dhënat nga ai burim.

// Është e nevojshme të shfaqen të gjitha palët dhe të gjitha bankat në raport,
// dhe ata që janë të dy - printoni në një rresht.
Zgjidhni
Counterparties.Link si kundërpalë,
Bankat.Lidhja Si të Bankoni
Nga
Drejtori
Bashkim i plotë i jashtëm
Drejtoria.Bankat Si Bankat
Nga
Kundërpalët.Emri = Bankat.Emri

Rezultati i pyetjes:

Pseudonimet e burimit të të dhënave

Nëse i caktoni një pseudonim një burimi të dhënash, atëherë në të ardhmen ky burim mund të aksesohet duke përdorur këtë pseudonim (dhe nuk mund të aksesohet më duke specifikuar emrin e tabelës). Një trajtim i tillë mund të jetë më i përshtatshëm dhe vizual, dhe në disa raste i vetmi i mundshëm.

Pseudonimi vendoset në përputhje me rregullat për caktimin e identifikuesve të variablave. Pseudonimet në kërkesë nuk mund të jenë të njëjta.

Fjala kyçe HOW mund t'i paraprijë pseudonimit burimor. Kjo fjalë mund të mos specifikohet fare, por nëse specifikohet, dukshmëria dhe lexueshmëria e tekstit të kërkesës rritet.

Caktimi i pseudonimeve në burime nuk ndikon në vetvete në përzgjedhjen e të dhënave në pyetje.

// Ky shembull demonstron përdorimin
// në listën e fushave të përzgjedhjes së pseudonimit Produkt,
// caktuar në tabelën burimore Directory.Nomenklatura
Zgjidhni
Emri i produktit,
Produkti.Prendi
Nga
Drejtoria.Nomenklatura.Produkti

Tabelat e mbivendosura në listën burimore

Lista e burimeve mund të përfshijë gjithashtu tabela të mbivendosura - pjesë tabelare të librave dhe dokumenteve të referencës.

//Është e nevojshme të paraqitet specifikimi i faturave në raport -
// tregoni vetë dokumentin, nomenklaturën dhe sasinë.
//Lista e burimeve përmban tabelën e mbivendosur "Përbërja" -
// pjesa tabelare e faturës.
// Zgjedhja është e kufizuar në tetë regjistrime në mënyrë që të mos mbingarkohet shembulli.
Zgjidhni E para 8
Lidhja, Nomenklatura, Sasia
Nga
Dokument.Faturë.Përbërja

Rezultati i pyetjes:

Lidhje Nomenklatura sasi
Fatura 00007 datë 25.02.2002 21:03:21 Xhinse për femra 4
Fatura 00006 datë 25.02.2002 0:00:00 Xhinse për femra 5
Fatura 00006 datë 25.02.2002 0:00:00 Këmishë "Cowgirl" 5
Fatura 00005 nga 03/01/2002 20:58:28 Xhinse për femra 1
Fatura 00004 datë 01.03.2002 20:50:40 Xhinse për femra 1
Fatura 00003 datë 23.02.2002 0:00:00 Moydodyr "Aquarium" 5
Fatura 00003 datë 23.02.2002 0:00:00 Lavaman "Lily" 8
Fatura 00003 datë 23.02.2002 0:00:00 Mikser "Ultra" 10

Ju lutemi vini re se kur specifikoni një tabelë të ndërthurur në listën e burimeve, është e mundur të qaseni si në fushat e vetë tabelës së ndërthurur ashtu edhe në fushat e tabelës së nivelit të lartë (ajo që përmban tabelën e mbivendosur). Në këtë rast, hapet fusha "Lidhja" e vetë dokumentit.

Nënpyetje në listën burimore

Në listën e burimeve të pyetjeve, një nënpyetje mund të përdoret si tabelë burimore. Në këtë rast, përshkrimi i burimit përmban përshkrimin e nënpyetjes. Përshkrimi i një pyetjeje të ndërthurur përpilohet saktësisht në të njëjtën mënyrë si një i rregullt: shih

Përdorimi i një pyetjeje të ndërthurur si burim të dhënash nuk ndryshon nga përdorimi i një tabele infobaze. Të gjitha fushat e përshkruara në listën e fushave të përzgjedhjes së nënpyetjeve janë të disponueshme si fusha të një burimi të tillë.

Rezultati do të jetë saktësisht i njëjtë si në shembullin e mëparshëm.

Gjenerimi i raporteve

Puna me kërkesat

Për të punuar me pyetje, përdoret një objekt gjuhësor i integruar Kërkesë . Kjo ju lejon të merrni informacionin e ruajtur në fushat e bazës së të dhënave në formën e një kampioni të formuar sipas rregullave të specifikuara.

Burimet e të dhënave të pyetjes

Kërkesa merr informacionin fillestar nga një grup tabelash. Këto tabela përfaqësojnë të dhëna nga tabelat reale të bazës së të dhënave në një formë të lehtë për t'u analizuar. Ato mund të ndahen në dy grupe të mëdha: reale dhe virtuale.

Tabelat reale, nga ana tjetër, mund të jenë objekt (referencë) ose jo-objekt (jo-referencë):

Tipari dallues i tabelave reale është se ato përmbajnë të dhëna nga një tabelë e vetme reale e ruajtur në një bazë të dhënash. Për shembull, tabelat reale janë tabela "Directory.Clients", që korrespondon me direktorinë "Klientët", ose tabela "Regjistri i Akumulimit. Materiali i mbetur", që korrespondon me regjistrin e akumulimit "Material Remaining".

Tabelat virtuale formohen kryesisht nga të dhënat nga tabelat e shumta të bazës së të dhënave. Për shembull, një tabelë virtuale është tabela "Regjistri i akumulimit. Mbetjet materiale. Bilancet dhe qarkullimet", e formuar nga disa tabela të regjistrit të akumulimit "Mbetjet materiale". Ndonjëherë tabelat virtuale mund të formohen nga një tabelë reale (për shembull, tabela virtuale "Çmimet.SliceLast" formohet bazuar në tabelën e regjistrit të informacionit "Çmimet"). Sidoqoftë, e përbashkëta e të gjitha tabelave virtuale është se atyre mund t'u jepet një numër parametrash që do të përcaktojnë se cilat të dhëna përfshihen në ato tabela virtuale. Grupi i këtyre parametrave mund të jetë i ndryshëm për tabela të ndryshme virtuale dhe përcaktohet nga të dhënat e ruajtura në tabelat e bazës së të dhënave burimore.

Tabelat reale ndahen në tabela objekt (referencë) dhe joobjekt (jo-referencë).

Tabelat e objekteve (referencave) ofrojnë informacion në lidhje me llojet e të dhënave të referencës (drejtoritë, dokumentet, planet për llojet e karakteristikave, etj.). Dhe në jo-objekt (jo-referencë) - të gjitha llojet e tjera të të dhënave (konstantet, regjistrat, etj.).

Një tipar dallues i tabelave të objekteve (referencave) është se ato përmbajnë një fushë "Lidhje" që përmban një lidhje me rekordin aktual. Për më tepër, për tabela të tilla është e mundur të merret një paraqitje e personalizuar e objektit; këto tabela mund të jenë hierarkike dhe fushat e tabelave të tilla mund të përmbajnë tabela të mbivendosura (pjesë tabele).

Gjuha e pyetjes

Algoritmi me të cilin do të zgjidhen të dhënat nga tabelat burimore të kërkesës përshkruhet në tekstin e kërkesës në një gjuhë të veçantë - gjuha e pyetjes. Teksti i kërkesës përbëhet nga disa pjesë:

    përshkrimi i kërkesës,

    bashkimi i pyetjeve

    renditja e rezultateve,

    porositje automatike,

    përshkrimi i rezultateve.

E vetmja pjesë e detyrueshme e kërkesës është e para - përshkrimi i kërkesës. Të gjithë të tjerët janë të pranishëm sipas nevojës.

Përshkrimi i kërkesës përcakton burimet e të dhënave, fushat e përzgjedhjes, grupimet etj.

Bashkimi i pyetjeve përcakton se si do të kombinohen rezultatet e pyetjeve të shumta.

Organizimi i rezultateve përcakton kushtet e renditjes për rreshtat e rezultateve të pyetjeve.

Porosit automatik ju lejon të aktivizoni renditjen automatike të rreshtave të rezultateve të pyetjeve.

Përshkrimi i rezultateve përcakton se cilat totale duhet të llogariten në pyetje dhe si të grupohen rezultatet.

Raportoni Regjistrin e Dokumenteve Ofrimi i Shërbimeve

Raporti i parë mbi bazën e të cilit do të fillojmë të njihemi me gjuhën e pyetësorit do të jetë raporti “Regjistri i Dokumenteve për Ofrimin e Shërbimeve”. Ky raport thjesht do të shfaqë një listë të dokumenteve të “Ofrimit të Shërbimit” që ekzistojnë në bazën e të dhënave sipas renditjes së datave dhe numrave të tyre.

Le të krijojmë një objekt të ri konfigurimi në konfigurues: Raporti "Regjistri i Dokumenteve Ofrimi i Shërbimeve". Le të shkojmë te skeda "Layout" dhe të hapim projektuesin e formularit të daljes.

Si burim të dhënash për kërkesën, do të zgjedhim tabelën e objektit (referencës) të dokumenteve “Ofrimi i Shërbimeve”. Nga kjo tabelë zgjedhim fushat e mëposhtme:

  • "Mjeshtër",

    "Klient":

Ju lutemi vini re se kur zgjidhni fushat "Magazina", "Master" dhe "Klienti", fushat "Depo.Pamje", "Master.Pamje" dhe "Pamja e klientit" zgjidhen gjithashtu në listën e fushave të zgjedhura. Fakti është se në rastin e përgjithshëm supozohet se këto fusha do të shfaqen në qelizat e një dokumenti spreadsheet. Meqenëse fushat përkatëse "Depo", "Master" dhe "Klient" janë fusha referimi, nëse një vlerë referimi kalohet si një vlerë parametri për dalje, sistemi do të kryejë një kërkesë shtesë për të marrë një paraqitje të kësaj fushe (e cila do të jetë shfaqet në dokument), duke rezultuar në dalje më të ngadaltë të raportit. Prandaj, gjatë zgjedhjes së fushave të referencës, sistemi ofron që menjëherë të përfshijë paraqitjet e fushave të referencës në listën e fushave të zgjedhura, me shpresën se ato do të përdoren për dalje në dokument.

Pas kësaj, le të shkojmë te skeda "Urdhri" dhe të tregojmë se rezultati i kërkesës duhet së pari të renditet nga vlera e fushës "Data", dhe më pas nga vlera e fushës "Ofrimi i shërbimit. Lidhja":

Le të shkojmë te skeda "Raporto" dhe të rivendosim flamurin "Përdor ndërtuesin e raportit":

Le të rivendosim flamurin "Përdor ndërtuesin e raportit"...

Klikoni "OK". Projektuesi do të gjenerojë formularin dhe paraqitjen e raportit. Le të hapim modulin e formularit dhe të gjejmë në të procedurën "Regjistri i Dokumenteve Ofrimi i Shërbimeve". Në këtë procedurë, si do të gjenerohet teksti i kërkesës, i cili do të përdoret për të marrë të dhënat që na interesojnë:

Pyetje.Text = “ZGJEDH

Ofrimi i Shërbimeve.Data AS Data,

Ofrimi i Shërbimeve Numri AS Numri,

Ofrimi i Shërbimeve Depo,

Ofrimi i Shërbimeve, Magazina, Prezantimi,

Ofrimi i Shërbimeve Master,

Ofrimi i Shërbimeve Master Prezantimi,

Ofrimi i Shërbimeve Klienti,

Ofrimi i Shërbimeve Klienti Përfaqësimi

Dokumenti.Sigurimi i Shërbimeve SI të ofrohen Shërbimet

NDAJ SIPAS

Teksti i kërkesës fillon, siç thamë më lart, me një pjesë të përshkrimit të kërkesës:

I Ofrimi i Shërbimit. Data AS Data,

I Ofrimi i Shërbimeve Numri AS Numri,

I Ofrimi i Shërbimeve Depo,

I Ofrimi i Sherbimeve, Magazina, Prezantimi,

Unë Ofroj Shërbime. Master,

I Ofrimi i Shërbimeve Master. Prezantimi,

I Ofrimi i Shërbimeve Klient,

1 Ofrimi i Shërbimeve Klientët Përfaqësimi

I Dokumenti Ofrimi i Shërbimeve SI të ofrohen Shërbimet

Përshkrimi i kërkesës fillon me një fjalë kyçe të kërkuar ZGJIDHNI. Kjo pasohet nga një listë e fushave të zgjedhura që përshkruan fushat që duhet të përmbahen në rezultatin e pyetjes. Kjo listë mund të përmbajë si vetë fushat ashtu edhe disa shprehje të llogaritura në bazë të vlerave të fushës.

Pas fjalës kyçe IZ, tregohen burimet e të dhënave - tabelat origjinale të pyetjeve, përmbajtja e të cilave përpunohet në pyetje. Në këtë rast, kjo është tabela e objektit (referencës) “Dokumenti. Ofrimi i Shërbimit”. Pas fjalës kyçe SI treguar pseudonim Burim i të dhënave. Në rastin tonë, ky është "Ofrimi i Shërbimeve". Në të ardhmen, ky burim i të dhënave mund të aksesohet në trupin e kërkesës duke përdorur një pseudonim.

Ne e shohim këtë thirrje në përshkrimin e fushave të përzgjedhjes:

| Ofrimi i Shërbimeve.Data AS Data,

| Ofrimi i Shërbimeve Numri AS Numri,

| Ofrimi i Shërbimeve Depo,

| Ofrimi i Shërbimeve, Magazina, Prezantimi,

| Ofrimi i Shërbimeve Master,

| Ofrimi i Shërbimeve Master Prezantimi,

| Ofrimi i Shërbimeve Klienti,

| Ofrimi i Shërbimeve Klienti Përfaqësimi

Fushat e përzgjedhjes mund të kenë gjithashtu pseudonime, të cilat mund të përdoren për t'iu referuar kësaj fushe më vonë në tekstin e kërkesës. Në rastin tonë, këto janë pseudonimet "Data" dhe "Numri".

Pas pjesës së përshkrimit të pyetjes në shembullin tonë vjen pjesa e renditjes së rezultatit:

| POROSIT NGA

| Data, | Numri";

Oferta NDAJ SIPAS ju lejon të renditni rreshtat në rezultatin e pyetjes. Pas kësaj klauzole kyçe është një shprehje renditëse, e cila, në përgjithësi, është një listë e fushave (shprehjeve) dhe renditjes së prodhimit. Në rastin tonë, renditja do të kryhet fillimisht nga fusha e përzgjedhjes, e cila aksesohet përmes pseudonimit - "Kodi", dhe më pas nga fusha - "Numri". Në të dyja rastet rendi i renditjes do të jetë në rritje, që është renditja e paracaktuar e renditjes.

Tani le t'i kushtojmë vëmendje mënyrës se si shfaqet rezultati i pyetjes në një dokument spreadsheet.

Procedura Regjistri i Dokumenteve Ofrimi i Shërbimeve (TabDoc) Eksporti

//((CONSTRUCTOR_OUTPUT_FORM(Regjistri i Dokumenteve Ofrimi i Shërbimeve)// Ky fragment u ndërtua nga konstruktori.// Kur ripërdorni konstruktorin,// prezantuar me dorë ndryshimet do te humbasin!!!

Layout = GetLayout ("Regjistri i Dokumenteve që Ofrojnë Shërbime"); Kërkesë = Kërkesë e re;

Rezultati = Query.Run();

HeaderArea = Layout.GetArea("Header"); ZonaBadrum =

Layout.GetArea ("TableFooter"); DetailRecordsArea =

TabDoc.Output (TableHead Area); TabDoc.StartAutogruttingRows();

SelectDetails = Result.Select();

Ndërsa SelectDetails.NextFunctions() Loop

AreaDetailRecords.Parameters.Fill(SelectionDetails);

TabDoc.Output(RecordsDetailsArea,DetailsSelection.Level()); Cikli i Fundit;

/L) CONSTRUCTOR_OUTPUT_FORM Procedura përfundimtare

Formulari i raportit përmban një element kontrolli TabularDocumentField me emrin “TabDoc”, i cili është i mbushur me të dhëna bazuar në paraqitjen e krijuar nga projektuesi.

Në fillim të procedurës, marrim paraqitjen e raportit, nga e cila më pas marrim zonat që ekzistojnë në të në variablat përkatëse:

HeaderArea = Layout.GetArea("Header"); ZonaBadrum =

Layout.GetArea ("Badrum"); Zona e kokës së tabelës =

Layout.GetArea ("Table Header"); TabelaFooterArea =

Layout.GetArea ("TableFooter"");DetailRecordsArea =

Layout.GetArea ("Detajet");

Pastaj pastrojmë dokumentin e fletëllogaritjes dhe shfaqim ato zona që nuk përmbajnë të dhëna të marra nga rezultati i pyetjes:

TabDoc.Clear(); TabDoc.Output(AreaHeader);

TabDoc.Output (TableHead Area); TabDoc.StartAutoGroupingRows();

Në rreshtin e fundit, projektuesi shtoi fillimin e grupimit automatik të rreshtave. Në këtë shembull, ne nuk kemi rreshta që duhet të grupohen, por si parazgjedhje projektuesi sugjeron gjithmonë grupimin e rreshtave në një dokument fletëllogaritëse. Kjo thirrje nuk do të ndikojë në shpejtësinë e daljes së raportit, kështu që ne do ta lëmë tekstin e konstruktorit të pandryshuar.

Pas kësaj, marrim një përzgjedhje nga rezultati i pyetjes, të cilën e kalojmë në një lak:

Në çdo përsëritje të lakut, ne plotësojmë parametrat e zonës së paraqitjes së marrë më parë me vlerat e marra nga rekordi i mostrës së rezultatit të pyetjes tjetër dhe e shfaqim këtë zonë në një dokument spreadsheet.

Në fund të procedurës, ne shfaqim zonat përfundimtare të paraqitjes në një dokument spreadsheet:

TabDoc.FinishAutoGroupingRows();

TabDoc.Output(TableFooterArea);

TabDoc.Output(AreaFooter);

Tani le të hapim 1C: Enterprise në modalitetin e korrigjimit dhe të shikojmë rezultatin e raportit tonë:

Kështu, duke përdorur shembullin e këtij raporti, ne demonstruam se si të përdorim dizajnuesin e formularit të daljes dhe u njohëm me disa konstruksione bazë të gjuhës së pyetjeve.

Raporti "Vlerësimi i Shërbimit" do të përmbajë informacione se cilat shërbime i sollën Master of All Trades LLC fitimin më të madh në periudhën e specifikuar. Duke përdorur raportin "Vlerësimi i shërbimit" si shembull, ne do të ilustrojmë se si të zgjidhni të dhënat në një periudhë të caktuar, si të vendosni parametrat e pyetjes dhe si të përdorni të dhënat nga disa tabela në një pyetje dhe të përfshijmë të gjitha të dhënat nga një prej burimeve në rezultati i pyetjes.

Le të krijojmë një objekt të ri konfigurimi Raporti "Vlerësimi i Shërbimit". Le të shkojmë te skeda "Layouts" dhe të thërrasim konstruktorin e formularit të daljes.

Le të zgjedhim tabelën e objektit (referencës) të drejtorisë “Nomenklatura” dhe tabelën virtuale të regjistrit të akumulimit “Shitjet.Qarkullimi”. Për të eliminuar paqartësinë e emrave në pyetje, ne e riemërtojmë tabelën "Nomenklature" në "SprNomenclature" (kliko me të djathtën në menunë e kontekstit).

Më pas vendosni kursorin në tabelën "SalesTurnover" dhe thirrni dialogun për futjen e parametrave të tabelës virtuale:

Hapni dialogun për futjen e parametrave të tabelës virtuale

Le të tregojmë se fillimi dhe fundi i periudhës do të kalohen në parametrat përkatës "Data e fillimit" dhe "Data e Fundit" (simboli "&" përpara emrit tregon se ky është një parametër kërkese):

Më pas zgjidhni nga tabelat fushat “SprNomenclature.Link” dhe “SalesTurnover.RevenueTurnover”:

SprNomenklatura.Prezantimi

Qarkullimi i shitjeveTë ardhurat Qarkullimi

Le të shkojmë te skeda "Lidhjet" dhe të shohim që projektuesi ka krijuar tashmë një lidhje midis dy tabelave të zgjedhura - vlera e ndryshimit të regjistrit "Nomenklatura" duhet të jetë e barabartë me referencën në elementin e drejtorisë "Nomenklatura".

E vetmja gjë që na mbetet për të bërë është të rivendosim flamurin "Të gjitha" për tabelën e regjistrit dhe ta vendosim atë për tabelën e drejtorive.

Ne do të zgjedhim të gjithë elementët nga drejtoria "Nomenklatura".

Vendosja e flamurit "Të gjitha" në tabelën e drejtorive do të thotë që të gjithë elementët do të zgjidhen nga drejtoria dhe këtyre elementeve do t'u caktohet vlera e qarkullimit të të ardhurave nga regjistri. Kështu, si rezultat i kërkesës do të jenë të pranishme të gjitha shërbimet dhe për disa prej tyre do të tregohet qarkullimi i të ardhurave. Për ato shërbime që nuk janë ofruar në periudhën e zgjedhur, asgjë nuk do të tregohet.

Le të shkojmë te skeda "Kushtet" dhe të vendosim kushtet për zgjedhjen e elementeve nga drejtoria "Nomenklatura". Kur vendosim kushtet e përzgjedhjes, ne do të përdorim përsëri parametrat e pyetjes. Kushti i parë duhet të jetë që elementi i zgjedhur të mos jetë një grup (për ta bërë këtë, kaloni në modalitetin "Kushti i personalizuar").

Kushti i dytë duhet të jetë që artikulli i zgjedhur të jetë një shërbim (ky është "Kushti i thjeshtë"):

Në të ardhmen, përpara se të ekzekutojmë kërkesën, do të kalojmë vlerën përkatëse të numërimit në parametrin "Lloji i Nomenklaturës".

Le të shkojmë te skeda "Asociacionet/Aliases" dhe të specifikojmë që pamja e artikullit të drejtorisë do të ketë pseudonimin "Shërbimi" dhe fusha e regjistrit do të ketë pseudonimin "Të ardhurat":

Le të shkojmë te skeda "Order" dhe të tregojmë se rezultati i pyetjes duhet të renditet në rend zbritës të vlerës së fushës "Të ardhurat".

Në skedën "Totalet", ne përcaktojmë se duhet të shfaqim totalet e përgjithshme dhe ato duhet të jenë shuma e vlerave në fushën "Të ardhurat":

Në skedën "Raporto", pastroni flamurin "Përdorni ndërtuesin e raportit".

Tani le të shkojmë te skeda "Forma e daljes". Le të tregojmë se parametrat "Data e përfundimit" dhe "Data e fillimit" do të modifikohen në formën në fushat e hyrjes të llojit "Data". Për parametrin "Lloji i nomenklaturës", përkundrazi, do të heqim flamurin e redaktimit në formën:

Klikoni "OK". Platforma do të gjenerojë një formë paraqitjeje dhe raporti. Hapni modulin e formularit dhe gjeni në të procedurën "Vlerësimi i shërbimit".

Në këtë procedurë, në pjesën ku vendosen parametrat e pyetësorit, do të përcaktojmë vlerën e parametrit "Lloji i nomenklaturës" (korrigjimet janë theksuar me shkronja të zeza):

| LIDHJA E MIRË Regjistri Akumulim. Shitjet, Qarkullimi (&Data e Fillimit,

| &Data e skadencës,)

| SI TË SHITET qarkullimi

| POROSIT NGA | Të ardhurat DOWN

|SAMIA E REZULTATEVE (Të Ardhurat) SIPAS | JANË TË PËRBASHKËT”;

RequestSetParameterC"Lloji i nomenklaturës",

Transferet.Llojet e Nomenklaturës.Shërbimi);

Query.SetParameter ("StartDate",StartDate); Request.SetParameterC"Data e Fundit", Data e Fundit);

Tani le të shohim tekstin e kërkesës të krijuar nga konstruktori:

| SprNomenklatura.Përfaqësimi AS Përfaqësimi,

|ShitjetQurtimi.Të ardhuratQurtimet AS të ardhura

| Drejtoria.Nomenklatura AS RefNomenklatura

LIDHJA E MIRË Regjistri akumulimet. shitjet. qarkullimi (&Data e fillimit,

| SI TË SHITET qarkullimi

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

| (RefNomenklature.ThisGroup = False) DHE

| SprNomenklatura.Lloji i Nomenklaturës = &Lloji i Nomenklaturës

| POROSIT NGA

| Të ardhurat DOWN

|SAMIA E REZULTATEVE (Të ardhurat) NGA

Së pari, si zakonisht, vjen pjesa e përshkrimit të kërkesës dhe përmban ndërtime të reja për ne.

Kur përshkruani burimet e kërkesës (pas fjalës kyçe IZ), u përdor aftësia për të përcaktuar disa burime kërkesash:

| Drejtoria.Nomenklatura AS RefNomenklatura

|&Data e Fundit,)

| SI TË SHITET qarkullimi

| Software SalesTurnover.Nomenclature = SprNomenclature.Link

Në këtë rast, të dhënat zgjidhen nga dy burime: “SprNomenklatura” dhe “SalesTurnover”, me fjalinë kyçe. LIDHJA E MIRË... NGA përshkruan mënyrën se si do të kombinohen të dhënat nga këto dy burime.

LIDHJA E MIRË do të thotë që rezultati i pyetjes duhet të përfshijë kombinime të të dhënave nga të dy burimet që përputhen me kushtin e specifikuar pas fjalës kyç BY. Për më tepër, rezultati i pyetjes duhet të përfshijë gjithashtu regjistrime nga i pari (treguar në të majtë të fjalës PËRBËRJA) burim për të cilin nuk u gjet asnjë regjistrim që përputhet me gjendjen nga burimi i dytë.

Nuk ka asgjë të re për ne në përshkrimin e burimit të parë dhe gjendjen e lidhjes, por kur përshkruajmë burimin e dytë, ne përdorim aftësinë për të vendosur parametrat e tabelës virtuale të pyetjes:

| Regjistro Acumulations.Sales.Turnover(&Data e Fillimit, &Data e Fundit,)

Parametri i parë është fillimi i periudhës për llogaritjen e totaleve, i dyti është fundi i periudhës. Si rezultat, tabela e burimit do të përmbajë vetëm qarkullimin e llogaritur në periudhën e transferuar. Këtu duhet të mbani mend gjithmonë se nëse kalojmë një datë si këto parametra (dhe në rastin tonë do të jetë kështu), atëherë data përmban edhe kohën e saktë me të dytën.

Nëse dihet paraprakisht se përdoruesi nuk do të interesohet për rezultatet e raportit në periudha të specifikuara me saktësi sekondash, atëherë duhet të merret parasysh veçoria e mëposhtme: si parazgjedhje, koha në datë është caktuar në 00 :00:00. Prandaj, nëse nuk merrni masa të veçanta, rezulton se kur përdoruesi cakton periudhën e raportimit nga 01/03/2004 deri më 31/03/2004, totalet e regjistrit do të llogariten nga fillimi i ditës 03/01/ 2004 00:00:00 deri në fillim të ditës 03/31/2004 00:00:00. Kështu, të dhënat për ditën e 31-të, përveç fillimit të ditës, nuk do të përfshihen në llogaritje, gjë që do ta befasojë shumë përdoruesin.

Për të eliminuar këtë situatë, duhen bërë dy gjëra.

Së pari, në formularin e raportit, kufizoni aftësinë e përdoruesit për të futur datën e fillimit dhe datën e mbarimit duke vendosur përbërjen e datës për fushat përkatëse të hyrjes si "Data":

Le të përcaktojmë përbërjen e datës...

Së dyti, kur kaloni parametrat, përdorni funksionin e integruar Fundi i dites(). Për ta bërë këtë, kthehuni në modulin e formularit të raportit dhe bëni ndryshimet e nevojshme (shtesat janë theksuar me shkronja të zeza):

ProceduraFormVeprimetRatingServicesGenerate(Button) //((CONSTRUCTOR_WEEKEND_FORM_PROCEDURE_CALL(RatingServices) //Ky fragment është ndërtuar nga konstruktori. // Kur ripërdor konstruktori, // ndryshimet e bëra me dorë do të humbasin!!!

TabDoc = FormElements.TableField;

//)) CONSTRUCTOR_OUTPUT_FORM_CALL_PROCEDURE

Co. netProcedurat

Le të vazhdojmë të shikojmë tekstin e kërkesës. Si pjesë e përshkrimit të pyetjes, ekziston një ndërtim tjetër që është i ri për ne - vendosja e kushteve për zgjedhjen e të dhënave nga tabelat burimore:

| SprNomenklatura.Përfaqësimi AS Përfaqësimi,

| Qarkullimi i shitjeve.Të ardhuratQurtimi AS të ardhurat

| Drejtoria.Nomenklatura AS RefNomenklatura

| LIDHJA E MIRË Regjistri akumulimet. shitjet. qarkullimi (&Data e fillimit,

| &Data e skadencës,

| SI TË SHITET qarkullimi

| Software SalesTurnover.Nomenclature = SprNomenclature.Ssshka

| SprNomenclature.ThisGroup = False DHE

| SprNomenklatura.Lloji i Nomenklaturës = &Lloji i Nomenklaturës

Kushti i përzgjedhjes gjithmonë paraprihet nga një fjalë kyçe KU. Pas tij përshkruhet vetë gjendja. Ju lutemi vini re se fushat e tabelave burimore në të cilat aplikohet kushti mund të mos përfshihen në listën e përzgjedhjes (si në rastin tonë). Përveç kësaj, kushti ynë përdor parametrin e pyetjes "Lloji i nomenklaturës".

SHAMIA E REZULTATEVE (Të ardhurat) PO

Gjithmonë fillon me një fjalë kyçe REZULTATET, e ndjekur nga një përshkrim se çfarë totale do të jenë të pranishme në rezultatin e pyetjes. Menjëherë pas fjalës REZULTATET përshkruan funksionet agregate që duhet të llogariten në rezultate. Në rastin tonë do të llogaritet shuma në fushën “Të ardhurat”. Kjo pasohet nga fjala kyçe PO, pas së cilës përshkruhen grupimet në të cilat do të llogariten totalet. Në rastin tonë ato mungojnë dhe përdoret vetëm fjala kyçe JANË TË PËRBASHKËT, gjë që tregon se totalet do të llogariten për të gjithë tabelën në tërësi.

Tani që kemi mbaruar njohjen me tekstin e kërkesës, le të hapim 1C: Enterprise në modalitetin e korrigjimit dhe të shohim se si funksionon raporti ynë.

Le të vendosim periudhën e raportimit nga 01/03/2004 deri në 30/04/2004. Rezultati do të duket si ky:

Tani le të ndryshojmë datën e përfundimit në 31/03/2004 dhe të sigurohemi që të dhënat për 31 Mars të përfshihen në raport: