Si të konfiguroni telefonat inteligjentë dhe PC. Portali informativ
  • shtëpi
  • Hekuri
  • Si të kombinoni 2 direktori të pyetjeve 1C. Bashkoni rezultatet e pyetjeve

Si të kombinoni 2 direktori të pyetjeve 1C. Bashkoni rezultatet e pyetjeve

; Pyetjet e mbivendosura (në zhvillim).

Pranimi i mallrave dhe shërbimeve Dhe Kthimi i mallrave te furnizuesi për periudhën e caktuar.

Skeda të reja: Sindikatat/Personatet.

Pjesa teorike e mësimit nr.4

1C Query Builder ju lejon të krijoni kombinime të pyetjeve. Me ndihmën e tyre, ju mund të nxirrni në mënyrë sekuenciale të dhëna të marra nga disa pyetje pa përdorur lidhje. Kushti i vetëm për bashkim është i njëjti grup fushash në çdo kërkesë individuale.

Në projektues, shkoni te skeda Sindikatat/Personatet. Ai është krijuar për të krijuar bashkime të pyetjeve dhe për të vendosur pseudonime për fushat e pyetjeve. Pseudonimet e fushave janë të nevojshme nëse nuk jeni të kënaqur me emrat standardë të fushave të bazës së të dhënave. Nëse një fushë pyetëse përbëhet vetëm nga një fushë e tabelës së bazës së të dhënave, atëherë një pseudonim nuk kërkohet për të. Nëse keni përdorur funksionet e gjuhës së pyetjes kur krijoni një fushë, atëherë kërkohet një pseudonim për një fushë të tillë. Projektuesi i pyetjeve krijon pseudonime standarde për fusha të tilla Fusha 1…FushaN, këto pseudonime mund të zëvendësohen me ato që janë të përshtatshme për ju.

Le të shohim seksionet e skedës Sindikatat/Personatet:

  • Kërkesat(kornizë e kuqe). Ky seksion përmban një tabelë që tregon të gjitha pyetjet e kombinuara Duke përdorur menynë e vendosur sipër këtij seksioni, mund të shtoni të reja, të kopjoni ato ekzistuese, të fshini ato të zgjedhura dhe gjithashtu të ndryshoni vendet e tyre. Kur shton ose kopjon një kërkesë, projektuesi shkon te skeda Tabelat dhe fushat, ku mund të specifikoni tabelat e bazës së të dhënave dhe fushat e kërkuara për një pyetje të re. Ju mund të kaloni midis pyetjeve duke përdorur skedat që do të shfaqen në anën e djathtë të projektuesit ndërsa shtohen pyetje të reja 1c;

  • Ne tavoline Kërkesat dy kolona:
    • Emri. Vendos automatikisht në format Kërkesa 1…Kërkesa N;
    • Asnjë dublikatë. Vendosni kur është e nevojshme të përjashtohen rreshtat e kopjuar kur bashkohen me një pyetje të mëparshme. Vlen të theksohet se ky flamur do të veprojë vetëm në bashkimin e kërkesës në të cilën është vendosur me kërkesën e mëparshme.

  • pseudonimet(kornizë blu). Në këtë seksion, mund të vendosni pseudonime për fushat e pyetjeve, si dhe të vendosni korrespondencën e fushave për pyetjet e kombinuara, në mënyrë që si rezultat i pyetjes ato të jenë në të njëjtën kolonë dhe të shfaqen nën një pseudonim. Nëse fushat në pyetjet e bashkuara emërtohen njësoj, atëherë korrespodenca ndërmjet tyre rregullohet automatikisht. Për të konfiguruar përputhjen e fushave, duhet të gjeni rreshtin me pseudonimin e dëshiruar në tabelë, të gjeni pyetjen e kërkuar në kolonat dhe të zgjidhni fushën në listën rënëse.

Pjesa praktike e mësimit nr.4

Le të shohim zgjidhjen e problemit të dhënë në fillim të mësimit. Më lejoni t'ju kujtoj kushtet:

Detyrë: përdorni një pyetje për të zgjedhur të gjitha dokumentet e postuara Pranimi i mallrave dhe shërbimeve Dhe Kthimi i mallrave te furnizuesi për periudhën e caktuar.

  1. Le të krijojmë një kërkesë të re;
  2. Le të hapim ndërtuesin e pyetjeve;
  3. Le të zgjedhim një tabelë Pranimi i Mallrave dhe Shërbimeve nga filli Dokumentacioni;
  4. Nga tavolina Pranimi i Mallrave dhe Shërbimeve zgjidhni një fushë Lidhje;
  5. Le të shkojmë te skeda Kushtet;
  6. Në kapitull Fushat, le të hapim temën Pranimi i Mallrave dhe Shërbimeve duke përdorur butonin "+";
  7. Le të gjejmë rekuizitat datë dhe tërhiqeni në seksionin e kushteve, zgjidhni operatorin e krahasimit Ndërmjet dhe tregoni parametrat për fillimin dhe fundin e periudhës, për shembull Fillimi i periudhës Dhe Fundi i Periudhës;
  8. Le të shkojmë te skeda Sindikatat/Personatet.
  9. Shto një kërkesë të re, flamur Asnjë dublikatë nuk ka nevojë për ta ngritur atë, pasi ne përdorim lloje të ndryshme dokumentesh;

  10. 1C Query Builder do të shkojë automatikisht te skeda Tabelat dhe fushat. Në anën e djathtë të dritares do të shihni që kërkesa e dytë e bashkimit është aktive;


  11. Le të përsërisim pikët 1 - 7 për tabelën Kthimi i mallrave te furnizuesi;
  12. Le të shkojmë përsëri te skeda Sindikatat/Personatet. Në tabelën e pseudonimeve mund të shihni se fushat Lidhje të dyja tabelat janë në të njëjtin rresht, që do të thotë se lidhjet me të dy dokumentet do të gjenden në të njëjtën kolonë si rezultat i pyetjes;
  13. Le të ndryshojmë emrin e kolonës nga LidhjeDokumenti(vendosni pseudonimin e fushës). Për ta bërë këtë, klikoni dy herë butonin e majtë të miut në emrin e fushës. Pas së cilës mund të vendosni emrin tuaj, shkruajeni atje Dokumenti;

  14. Kërkesa është gati, klikoni butonin "OK" në fund të dritares së projektuesit.

Si rezultat, do të marrim një kërkesë me tekstin e mëposhtëm.

Ditë të mbarë, të dashur lexues të faqes së blogut. Sot do të diskutojmë në detaje duke kombinuar kërkesat në 1C. Ju gjithashtu mund të shkarkoni për një konfigurim standard Trade Enterprise Management for Kazakistan, botimi 1.0.

Nëse jeni duke punuar me një tabelë, atëherë nuk keni nevojë të përdorni një bashkim. Është një çështje krejtësisht e ndryshme kur punoni me disa tabela dhe, për shembull, duhet të merrni të dhëna për blerjet dhe shitjet e mallrave.

Një klauzolë përdoret për të kombinuar KOMBINIM / BASHKIM. Në fakt po ndodh bashkimi i rezultateve të pyetjeve, domethënë, çdo pyetje mbledh të dhëna në mënyrë të pavarur nga njëra-tjetra, dhe më pas këto rezultate kombinohen në një. Dhe vetëm me kërkesën e fundit kryhen operacione të tjera, për shembull, porositja dhe llogaritja e totalit.

Në të kundërt, kur bashkohen pyetjet, ndodh "ngjitja vertikale" e rezultateve, domethënë, linjat e rezultateve të pyetjes së parë vijnë së pari, pastaj e dyta.

Le të kalojmë në praktikë:

ZGJIDHni artikullin, sasinë, sasinë KOMBINOHET ZGJIDH Artikulli, Sasia, Shuma NGA Dokumenti. Consumables.Mallrat

Rezultati i kësaj pyetjeje është si më poshtë:

Si rezultat, do të marrim dy tabela që do të lidhen me njëra-tjetrën. Është e vështirë të shihet se ku përfundon dokumenti i Faturës dhe ku fillon dokumenti i Shpenzimeve. Por ne do të bëjmë diçka për ta kuptuar atë:

SELECT Nomenklatura, Sasia SI Numri i Famullisë, Shuma AS SumPrikhod, 0 SI Sasia Konsumi, 0 SI ShumaShpenzime NGA Dokumenti.Pranimi.Produktet KOMBINOHET Numri i Famullisë, 0 SI SumPrikhod, Sasia AS Sasia Konsumi, Shuma AS ShumaShpenzime NGA Dokumenti.Mallrat konsumuese.Mallrat

Siç mund ta shihni nga teksti i kërkesës, ne kemi vendosur pseudonime të ndryshme për sasinë dhe sasinë për çdo dokument. Gjithashtu, në vend të atyre fushave ku do të marrim vlerat e sasisë dhe sasisë, do të vendosim zero. Kjo është e nevojshme në mënyrë që sasitë dhe shumat boshe të zëvendësohen me zero.

Nomenklatura Numri i Famullisë SumPrikhod Sasia Konsumi ShumaShpenzime
Letër A4 25 14 500
Ngjitëse 500l 8 4 880
Skedari transparent 5 4 100
Komplet zyre 8 8 840
Komplet zyre 1 1 105
Skedari transparent 1 820
Ngjitëse 500l 1 610

Tani duhet të heqim elementë të kopjuar nga rezultati i pyetjes. Kemi dy pyetje dhe nëse e fshijmë secilën veç e veç për të eliminuar elementët e dyfishtë, atëherë nuk do të kemi sukses. Prandaj, ne do ta reduktojmë kërkesën në formën e mëposhtme:

ZGJIDHNI
Nomenklatura,
AMOUNT (numri i të ardhurave) SI numri i të ardhurave,
SUM(SumPrikhod) AS SumPrikhod,
SHUMË (Sasia e shpenzimeve) SI sasi e shpenzimeve,
SUM(SumExpend) AS SumShpense
NGA
(
SELECT Nomenklatura, Sasia SI Numri i Famullisë, Shuma AS SumPrikhod, 0 SI Sasia Konsumi, 0 SI ShumaShpenzime NGA Dokumenti.Pranimi.Produktet KOMBINOHET SELECT Artikull, 0 SI Numri i Famullisë, 0 SI SumPrikhod, Sasia AS Sasia Konsumi, Shuma AS ShumaShpenzime NGA Dokumenti.Mallrat konsumuese.Mallrat ) AS NestedQuery
GRUPI SIPAS Nomenklaturës

Pra, ne shohim që e gjithë pyetja jonë është e mbyllur në kllapa dhe emërtohet si NestedQuery. Kjo është bërë në mënyrë që ne të mund të grupojmë të dhënat nga të dy nën-pyetjet dhe të eliminojmë elementet e dyfishta. Ky dizajn quhet një pyetje e mbivendosur. Rezultati i kësaj pyetjeje është si më poshtë:

Nomenklatura Numri i Famullisë SumPrikhod Sasia Konsumi ShumaShpenzime
Letër A4 25 14 500
Ngjitëse 500l 8 4 880 1 610
Komplet zyre 5 4 100 1 1 105
Skedari transparent 8 8 840 1 820

Si rezultat, marrim një tabelë të grupuar në të cilën të dhënat nga nënpyetjet e mbivendosura sillen në një formë të kuptueshme.
Numri i nënpyetjeve nuk duhet të kalojë 255. Këtu kemi përdorur katër nënpyetje.

Ka situata kur është e nevojshme të kombinohen disa pyetje në një pyetje, dhe bashkimet e tabelave nuk mund të ndihmojnë me këtë. Mënyra më e lehtë për ta treguar atë është me një shembull.

Supozoni se në sistemin tonë faktet e blerjes dhe shitjes së mallrave regjistrohen nga dokumentet përkatësisht Të ardhurat dhe shpenzimet. Pala e kundërt mund të jetë ose një blerës ose një furnizues. Borxhi mund të kompensohet me dorëzimin e mallrave:

Për të llogaritur borxhin total të një pale, duhet të shtoni shumën e të gjitha shpenzimeve për këtë palë dhe të zbrisni shumën e të gjitha arkëtimeve nga e njëjta palë, mënyra më e lehtë për ta bërë këtë është përdorimi i operatorit KOMBINË TË GJITHA;

Kërkesa.Teksti =
"
//llogaritni shumën që u dërguam kontraktorëve
|ZGJIDH
| Shpenzime kundërpartiake,
|NGA
| Dokument.Shpenzim AS Shpenzim
|GRUPI NGA
| Shpenzimi.Kundërpala
KOMBINI TË GJITHA
//llogaritni shumën e palëve
//na dorëzoi mallrat
|ZGJIDH
| Famullia,
//merr shumën me shenjë negative,
//që kur kombinohej zbritej nga shuma e shpenzimit
| SUM (-Faturë. Shuma)
|NGA
| Dokumenti Mbërritja AS Mbërritja
|GRUPI NGA
| Arritja.Kundërpartia";

Në kërkesën e parë, ne llogarisim shumën e shpenzimeve për secilën palë, në të dytën - shumën për të cilën secila palë na furnizoi me mallra. Shuma në kërkesën e dytë merret me shenjën minus, në mënyrë që kur tabela që rezulton të shembet, të zbritet nga shuma e dërgesës në këtë palë. Si rezultat, marrim një tabelë si:

Nuk është pikërisht ajo që donim, por është afër. Për të arritur rezultatin e kërkuar, mbetet vetëm grupimi sipas palës. Për ta bërë këtë, pyetja duhet të vendoset në një tabelë të përkohshme (puna me tabela të përkohshme diskutohet në pjesa e mbyllur e kursit ) dhe zgjidhni dhe gruponi fushat prej tij:

Kërkesë = Kërkesë e re;
Kërkesa.Teksti =
"ZGJIDH
| Shpenzime kundërpartiake,
| AMOUNT(Shpenzime.Shuma) SI Borxhi
|Vendi VT_Shpenzime hyrëse
|NGA
| Dokument.Shpenzim AS Shpenzim
|GRUPI NGA
| Shpenzimi.Kundërpala
KOMBINI TË GJITHA
|ZGJIDH
| Famullia,
| SUM (-Faturë. Shuma)
|NGA
| Dokumenti Mbërritja AS Mbërritja
|GRUPI NGA
| Famulli.Kundërpartia
|;
|////////////////////////////////////////////////////////////////////////////////
|ZGJIDH
| VT_Shpenzime hyrëse,
| SUM(VT_Të ardhuratShpenzime.Borxhi) SI Borxhi
|NGA
| VT_IncomingConsumption AS VT_IncomingConsumption
|GRUPI NGA
| VT_Shpenzimet hyrëse";

Kërkesat për bashkimin e pyetjeve

Kur kombinohen dy pyetje, numri i fushave duhet të jetë i njëjtë nëse ndonjërit prej pyetjeve i mungojnë fushat, atëherë ato duhet të shtohen si konstante. Le të shohim shembullin e mësipërm, le të ketë edhe dokumenti i shpenzimeve një fushë zbritjeje që zvogëlon shumën e borxhit të palës, por nuk ka zbritje në dokumentin e faturës. Si të jesh në këtë rast? Kështu që:

Kërkesë = Kërkesë e re;
Kërkesa.Teksti =
"ZGJIDH
| Shpenzime kundërpartiake,

|NGA
| Dokument.Shpenzim AS Shpenzim
|GRUPI NGA
| Shpenzimi.Kundërpala
KOMBINI TË GJITHA
|ZGJIDH
| Famullia,
| SHUMË (-Faturë. Shuma),
//shtoni një zbritje të fushës null
| 0
|NGA
| Dokumenti Mbërritja AS Mbërritja
|GRUPI NGA
| Arritja.Kundërpartia";

Mbetet vetëm të zbritet zbritja dhe grupi.

Rendi është gjithashtu i rëndësishëm. Fushat do të bashkohen saktësisht në rendin në të cilin janë specifikuar në seksionet SELECT të të dy pyetjeve. Në lidhje me shembullin e mëparshëm, le të shkëmbejmë fushat e zbritjes dhe shumës në mostrën e faturave:

Kërkesë = Kërkesë e re;
Kërkesa.Teksti =
"ZGJIDH
| Shpenzime kundërpartiake,
| AMOUNT (Shpenzime. Shuma) SI Borxhi,
| SIMA (Shpenzime. Zbritje) SI Zbritje
|NGA
| Dokument.Shpenzim AS Shpenzim
|GRUPI NGA
| Shpenzimi.Kundërpala
KOMBINI TË GJITHA
|ZGJIDH
| Famullia,
//ndërroni vendet
| 0,
| SUM (-Faturë. Shuma)
|NGA
| Dokumenti Mbërritja AS Mbërritja
|GRUPI NGA
| Arritja.Kundërpartia";

Nëse jeni duke punuar me një tabelë, atëherë nuk keni nevojë të përdorni një bashkim. Është një çështje krejtësisht e ndryshme kur punoni me disa tabela dhe, për shembull, duhet të merrni të dhëna si për blerjet ashtu edhe për shitjet e mallrave.

Një klauzolë përdoret për të kombinuar KOMBINOHET. Në fakt, rezultatet e pyetjeve bashkohen, domethënë, çdo pyetje mbledh të dhëna në mënyrë të pavarur nga njëra-tjetra, dhe më pas këto rezultate kombinohen në një. Dhe vetëm me kërkesën e fundit kryhen operacione të tjera, për shembull, porositja dhe llogaritja e totalit.

Kur bashkohen pyetjet, ndodh "ngjitja vertikale" e rezultateve, domethënë, linjat e rezultateve të pyetjes së parë vijnë së pari, pastaj e dyta.

Le të kalojmë në praktikë:
Kodi 1C v 8.x SELECT
Nomenklatura,
Sasi,
Shuma
NGA
Dokumenti.Pranimi.Mallrat

KOMBINOHET

ZGJIDHNI
Nomenklatura,
Sasi,
Shuma
NGA
Dokumenti.Pranimi.Mallrat

Rezultati i kësaj pyetjeje është si më poshtë:
Nomenklatura Sasia Shuma
Letër A4 25 14 500
Ngjitëse 500l 8 4 880
Skedar transparent 5 4 100
Kompleti i zyrës 8 8 840

Si rezultat, do të marrim dy tabela që do të lidhen me njëra-tjetrën. Është e vështirë të shihet se ku përfundon dokumenti i Faturës dhe ku fillon dokumenti i Shpenzimeve. Por ne do të bëjmë diçka për ta kuptuar atë:
Kodi 1C v 8.x
ZGJIDHNI
Nomenklatura,
Sasia AS KolPrikhod,
Shuma AS SumIncoming,
0 AS Sasia e Shpenzimeve,
0 AS ShumaShpenzime
NGA
Dokumenti.Pranimi.Mallrat

KOMBINOHET

ZGJIDHNI
Nomenklatura,
0 AS KolPrikhod,
0 AS SumPrikhod,
Sasia AS Sasia e konsumit,
Shuma AS ShumaShpenzime
NGA
Dokument.Mallrat harxhuese.Mallrat

Siç mund të shihet nga teksti i kërkesës, ne kemi vendosur pseudonime të ndryshme për sasinë dhe sasinë për çdo dokument. Gjithashtu, në vend të atyre fushave ku do të marrim vlerat e sasisë dhe sasisë, do të vendosim zero. Kjo është e nevojshme në mënyrë që sasitë dhe shumat boshe të zëvendësohen me zero.

Letër A4 25 14 500
Ngjitëse 500l 8 4 880
Skedar transparent 5 4 100
Kompleti i zyrës 8 8 840
Kompleti i zyrës 1 1 105
Skedar transparent 1 820
Ngjitëse 500l 1 610

Tani duhet të heqim elementë të kopjuar nga rezultati i pyetjes. Kemi dy pyetje dhe nëse e fshijmë secilën veç e veç për të eliminuar elementët e dyfishtë, atëherë asgjë nuk do të funksionojë. Prandaj, ne do ta reduktojmë kërkesën në formën e mëposhtme:
Kodi 1C v 8.x
ZGJIDHNI
Nomenklatura,
AMOUNT (numri i të ardhurave) SI numri i të ardhurave,
SUM(SumPrikhod) AS SumPrikhod,
SHUMË (Sasia e shpenzimeve) SI sasi e shpenzimeve,
SUM(SumExpend) AS SumShpense
NGA

(ZGJIDH
Nomenklatura,
Sasia AS KolPrikhod,
Shuma AS SumIncoming,
0 AS Sasia e Shpenzimeve,
0 AS ShumaShpenzime
NGA
Dokumenti.Pranimi.Mallrat

KOMBINOHET

ZGJIDHNI
Nomenklatura,
0 AS KolPrikhod,
0 AS SumPrikhod,
Sasia AS Sasia e konsumit,
Shuma AS ShumaShpenzime
NGA
Dokumenti.Lëndët konsumuese.Mallrat) AS Kërkesë e bashkangjitur

GRUPI SIPAS Nomenklaturës

Pra, shohim që e gjithë pyetja jonë është e mbyllur në kllapa dhe quhet NestedQuery. Kjo është bërë në mënyrë që ne të mund të grupojmë të dhënat nga të dy nën-pyetjet dhe të eliminojmë elementet e dyfishta. Ky dizajn quhet një pyetje e mbivendosur. Rezultati i kësaj pyetjeje është si më poshtë:
Nomenklatura KolIncoming ShumaIncoming KolShpenzimet ShumaShpenzime
Letër A4 25 14 500
Ngjitëse 500l 8 4 880 1 610
Komplet zyre 5 4 100 1 1 105
Skedari transparent 8 8 840 1 820

Si rezultat, marrim një tabelë të grupuar në të cilën të dhënat nga nënpyetjet e mbivendosura sillen në një formë të kuptueshme. Numri i nënpyetjeve nuk duhet të kalojë 255. Këtu kemi përdorur katër nënpyetje.

Nëse duam të lëmë vetëm vlera unike të regjistrimit në pyetje pa përdorur grupim. Ju duhet të shkruani një fjali COMBINE pa fjalën kyçe ALL.

Informacioni i marrë nga faqja

Gjuha e pyetjes është një nga mekanizmat themelorë të 1C 8.3 për zhvilluesit. Duke përdorur pyetjet, mund të rikuperoni shpejt çdo të dhënë të ruajtur në bazën e të dhënave. Sintaksa e tij është shumë e ngjashme me SQL, por ka disa dallime.

Përparësitë kryesore të gjuhës së pyetjeve 1C 8.3 (8.2) ndaj SQL:

  • mosreferencimi i fushave të referencës (duke iu referuar një ose më shumë pikave detajeve të objektit);
  • puna me rezultate është shumë e përshtatshme;
  • aftësia për të krijuar tabela virtuale;
  • kërkesa mund të shkruhet në anglisht dhe rusisht;
  • aftësia për të bllokuar të dhënat për të shmangur bllokimet.

Disavantazhet e gjuhës së pyetjes në 1C:

  • ndryshe nga SQL, në pyetjet 1C nuk lejojnë ndryshimin e të dhënave;
  • mungesa e procedurave të ruajtura;
  • pamundësia e shndërrimit të vargut në numër.

Le të hedhim një vështrim në mini-tutorialin tonë mbi konstruktet bazë të gjuhës së pyetjeve 1C.

Për shkak të faktit se pyetjet në 1C ju lejojnë vetëm të merrni të dhëna, çdo pyetje duhet të fillojë me fjalën "SELECT". Pas kësaj komande tregohen fushat nga të cilat duhet të merren të dhënat. Nëse specifikoni "*", do të zgjidhen të gjitha fushat e disponueshme. Vendi nga i cili do të përzgjidhen të dhënat (dokumentet, regjistrat, drejtoritë, etj.) tregohet pas fjalës "NGA".

Në shembullin e diskutuar më poshtë, emrat e të gjithë nomenklaturës janë zgjedhur nga direktoria "Nomenklatura". Pas fjalës "SI", tregohen pseudonimet (emrat) për tabelat dhe fushat.

ZGJIDHNI
Emri AS Emri i Nomenklaturës
NGA
Drejtoria.Nomenklatura AS Nomenklatura

Pranë komandës "SELECT" mund të specifikoni fjalë kyçe:

  • TE NDRYSHME. Kërkesa do të zgjedhë vetëm rreshta që ndryshojnë në të paktën një fushë (pa dublikatë).
  • E PARË n, Ku n– numri i rreshtave nga fillimi i rezultatit që duhet të zgjidhen. Më shpesh, ky ndërtim përdoret së bashku me renditjen (ORDER BY). Për shembull, kur duhet të zgjidhni një numër të caktuar dokumentesh që janë të fundit sipas datës.
  • LEJOHET. Ky dizajn ju lejon të zgjidhni nga baza e të dhënave vetëm ato regjistrime që janë në dispozicion të përdoruesit aktual. Bazuar në përdorimin e kësaj fjale kyçe, përdoruesi do të marrë një mesazh gabimi kur përpiqet të kërkojë regjistrime në të cilat nuk ka qasje.

Këto fjalë kyçe mund të përdoren së bashku ose veçmas.

PËR NDRYSHIM

Ky propozim bllokon të dhënat për të parandaluar konfliktet e ndërsjella. Të dhënat e kyçura nuk do të lexohen nga një lidhje tjetër derisa transaksioni të përfundojë. Në këtë klauzolë, ju mund të specifikoni tabela specifike që duhet të kyçen. Përndryshe, të gjithë do të bllokohen. Dizajni është i rëndësishëm vetëm për mënyrën e mbylljes automatike.

Më shpesh, klauzola "PER NDRYSHIM" përdoret kur merren bilancet. Në fund të fundit, kur disa përdorues punojnë në program njëkohësisht, ndërsa njëri merr bilanc, një tjetër mund t'i ndryshojë ato. Në këtë rast, pjesa që rezulton nuk do të jetë më e saktë. Nëse i bllokoni të dhënat me këtë propozim, atëherë derisa punonjësi i parë të marrë bilancin e saktë dhe të kryejë të gjitha manipulimet e nevojshme me të, punonjësi i dytë do të detyrohet të presë.

ZGJIDHNI
Marrëveshjet e ndërsjella, punonjës.
Shuma e shlyerjeve të ndërsjella Bilanci
NGA
Regjistri i akumulimeve të ndërsjella me punonjës
PËR NDRYSHIM

KU

Dizajni është i nevojshëm për të imponuar një lloj përzgjedhjeje në të dhënat e ngarkuara. Në disa raste të marrjes së të dhënave nga regjistrat, është më e arsyeshme të specifikohen kushtet e përzgjedhjes në parametrat e tabelave virtuale. Kur përdorni "WHERE", të gjitha të dhënat merren së pari dhe vetëm atëherë aplikohet përzgjedhja, e cila ngadalëson ndjeshëm kërkesën.

Më poshtë është një shembull i një kërkese për të marrë persona kontaktues për një pozicion specifik. Parametri i përzgjedhjes ka formatin: &ParameterName (emri i parametrit është arbitrar).

PËRZGJEDHJA (RASTI)

Dizajni ju lejon të specifikoni kushtet drejtpërdrejt në trupin e kërkesës.

Në shembullin e mëposhtëm, "Fusha Shtesë" do të përmbajë tekst në varësi të faktit nëse dokumenti është postuar apo jo:

ZGJIDHNI
PranimiT&U.Link,
ZGJEDHJA
KUR PranimiT&U.Kryhet
PASTAJ "Dokumenti është miratuar!"
TJETER "Dokumenti nuk ishte postuar..."
FUND AS Fushë shtesë
NGA
Dokumenti Pranimi i Mallrave dhe Shërbimeve SI Marrja T&C

BASHKOHU

Lidhjet lidhin dy tabela bazuar në një kusht specifik të marrëdhënies.

LIDHJA TË Majtas/Djathtas

Thelbi i bashkimit LEFT është që tabela e parë e specifikuar merret në tërësi dhe e dyta lidhet me të sipas kushtit të lidhjes. Nëse nuk ka regjistrime që korrespondojnë me tabelën e parë në të dytën, atëherë NULL zëvendësohet si vlera e tyre. E thënë thjesht, tabela kryesore është tabela e parë e specifikuar dhe të dhënat e tabelës së dytë (nëse ka) tashmë janë zëvendësuar për të dhënat e saj.

Për shembull, është e nevojshme të merren artikujt nga dokumentet "Pranimi i mallrave dhe shërbimeve" dhe çmimet nga regjistri i informacionit "Çmimet e artikujve". Në këtë rast, nëse çmimi për ndonjë pozicion nuk gjendet, zëvendësoni në vend të tij NULL. Të gjithë artikujt nga dokumenti do të zgjidhen pavarësisht nëse kanë një çmim apo jo.

ZGJIDHNI
Fatura & Nomenklatura e U.
Çmimet.Çmimi
NGA
Dokumenti Pranimi i Mallrave dhe Shërbimeve SI Marrja dhe Specifikimet
BASHKIMI I BRENDSHËM RegjistrohuInformacion.ÇmimetNomenklatura.FetëFundi AS Çmimet
Fatura e Softuerit&U.Nomenklatura = Çmimet.Nomenklatura

NË TË DREJTË çdo gjë është pikërisht e kundërta.

LIDHJE E PLOTË

Ky lloj lidhjeje ndryshon nga ato të mëparshmet në atë që si rezultat do të kthehen të gjitha të dhënat e tabelës së parë dhe të dytë. Nëse nuk gjenden regjistrime në tabelën e parë ose të dytë bazuar në kushtin e specifikuar të lidhjes, në vend të kësaj do të kthehet NULL.

Kur përdorni një lidhje të plotë në shembullin e mëparshëm, do të zgjidhen të gjithë artikujt nga dokumenti "Pranimi i mallrave dhe shërbimeve" dhe të gjitha çmimet më të fundit nga regjistri "Çmimet e artikujve". Vlerat e rekordeve të pa gjetura në tabelën e parë dhe të dytë do të jenë të barabarta me NULL.

BASHKIMI I BRENDSHËM

Dallimi midis një BASHKIMI I BRENDSHËM dhe një BASHKIMI I PLOTË është se nëse një rekord nuk gjendet në të paktën njërën nga tabelat, pyetja nuk do ta shfaqë fare. Si rezultat, do të zgjidhen vetëm ato artikuj nga dokumenti "Pranimi i mallrave dhe shërbimeve" për të cilët ka regjistrime në regjistrin e informacionit "Çmimet e artikujve", nëse në shembullin e mëparshëm zëvendësojmë "FULL" me "INTERNAL".

GRUP NGA

Grupimi në pyetjet 1C ju lejon të kolapsoni rreshtat e tabelës (fushat e grupimit) sipas një karakteristike të caktuar të përbashkët (fushat e grupimit). Fushat e grupimit mund të shfaqen vetëm duke përdorur funksionet e përgjithshme.

Rezultati i pyetjes së mëposhtme do të jetë një listë e llojeve të produkteve me çmime maksimale për to.

ZGJIDHNI
,
MAX (Çmimi.Çmimi) SI Çmimi
NGA

GRUP NGA
Çmimet.Nomenklatura.Lloji i Nomenklaturës

REZULTATET

Ndryshe nga grupimi, kur përdorni totalet, të gjitha regjistrimet shfaqen dhe rreshtat totale u shtohen atyre. Grupimi shfaq vetëm regjistrime të përgjithësuara.

Rezultatet mund të përmblidhen për të gjithë tabelën (duke përdorur fjalën kyçe “GJENERAL”), për disa fusha, për fusha me strukturë hierarkike (fjalë kyçe “HIERARKI”, “VETËM HIERARKI”). Gjatë përmbledhjes së rezultateve, nuk është e nevojshme të përdoren funksionet agregate.

Le të shohim një shembull të ngjashëm me shembullin e mësipërm duke përdorur grupimin. Në këtë rast, rezultati i pyetjes do të kthejë jo vetëm fushat e grupuara, por edhe regjistrime të detajuara.

ZGJIDHNI
Çmimet.Nomenklatura.Lloji i nomenklaturës AS Lloji i nomenklaturës,
Çmimet.Çmimi SI Çmimi
NGA
Regjistri i Çmimeve të Nomenklaturës
REZULTATET
MAXIMUM (çmimi)
NGA
LlojiNomenklatura

DUKE

Ky operator është i ngjashëm me operatorin WHERE, por përdoret vetëm për funksionet agregate. Fushat e mbetura, përveç atyre të përdorura nga ky operator, duhet të grupohen. Operatori WHERE nuk është i zbatueshëm për funksionet agregate.

Në shembullin e mëposhtëm, çmimet maksimale të një artikulli zgjidhen nëse tejkalojnë 1000, të grupuara sipas llojit të artikullit.

ZGJIDHNI

MAX (Çmimi.Çmimi) SI Çmimi
NGA
Regjistri i Çmimeve të Nomenklaturës
GRUP NGA
Çmimet.Nomenklatura.Lloji i Nomenklaturës
DUKE
MAXIMUM(Çmimet.Çmimi) > 1000

NDAJ SIPAS

Operatori ORDER BY rendit rezultatin e një pyetjeje. Për të siguruar që regjistrimet të shfaqen në një rend të qëndrueshëm, përdoret AUTO ORDER. Llojet primitive renditen sipas rregullave të zakonshme. Llojet e referencës renditen sipas GUID.

Një shembull i marrjes së një liste punonjësish të renditur sipas emrit:

ZGJIDHNI
Punonjësit.Emri AS Emri
NGA
Drejtoria.Punonjësit SI Punonjësit
NDAJ SIPAS
Emri
AUTO ORDER

Konstruksione të tjera të gjuhës së pyetjeve 1C

  • KOMBINOHET– rezultatet e dy pyetjeve në një.
  • KOMBINON GJITHÇKA– e ngjashme me COMBINE, por pa grupuar rreshta identikë.
  • TABELA E zbrazur– nganjëherë përdoret kur bashkohen pyetjet për të specifikuar një tabelë të mbivendosur bosh.
  • VENDI– krijon një tabelë të përkohshme për të optimizuar pyetjet komplekse 1C. Kërkesa të tilla quhen kërkesa grupore.

Karakteristikat e gjuhës së pyetjes

  • SUBSTRING shkurton një varg nga një pozicion i caktuar në një numër të caktuar karakteresh.
  • VITI...I DYTI ju lejon të merrni vlerën e zgjedhur të një lloji numerik. Parametri i hyrjes është data.
  • FILLIMI I PERIUDHËS dhe FUNDIMI I PERIUDHËS përdoret kur punoni me datat. Lloji i periudhës (DITA, MUAJ, VIT, etj.) tregohet si një parametër shtesë.
  • ADDKDATE ju lejon të shtoni ose zbrisni një orë të caktuar të një lloji të caktuar nga një datë (SECOND, MINUTE, DAY, etj.).
  • NDRYSHON përcakton ndryshimin midis dy datave, duke treguar llojin e vlerës së prodhimit (DITA, VITI, MUAJ, etj.).
  • ISNULL zëvendëson vlerën që mungon me shprehjen e specifikuar.
  • PERFAQESIMI dhe PERFAQESIMI LIDHJE merrni një paraqitje të vargut të fushës së specifikuar. Aplikoni për çdo vlerë dhe vetëm ato referencë, respektivisht.
  • LLOJI, LLOJI VLERAT përdoren për të përcaktuar llojin e parametrit të hyrjes.
  • LIDHJEështë një operator logjik i krahasimit për llojin e vlerës së atributit.
  • EXPRESS përdoret për të kthyer një vlerë në llojin e dëshiruar.
  • DATA KOHA merr një vlerë të datës nga vlerat numerike (viti, muaji, dita, ora, minuta, sekonda).
  • KUPTIMI në një kërkesë 1C përdoret për të treguar vlerat e paracaktuara - drejtoritë, numërimet, planet për llojet e karakteristikave. Shembull përdorimi: " Ku Individ Ligjor = Vlera (Numërim. Individ ligjor. Individual)«.

Ndërtues i pyetjeve

Për të krijuar pyetje me 1C ekziston një mekanizëm shumë i përshtatshëm i integruar - projektuesi i pyetjeve. Ai përmban skedat kryesore të mëposhtme:

  • "Tabelat dhe fushat" - përmban fushat që duhet të zgjidhen dhe burimet e tyre.
  • "Lidhjet" - përshkruan kushtet për strukturën LIDHJE.
  • "Grupimi" - përmban një përshkrim të strukturave të grupimit dhe fushave të përmbledhura bazuar në to.
  • "Kushtet" - është përgjegjës për zgjedhjen e të dhënave në kërkesë.
  • "E avancuar" - parametra shtesë të pyetjes, të tilla si fjalë kyçe për komandën "SELECT", etj.
  • "Bashkime/Aliases" - tregohen mundësitë e bashkimit të tabelave dhe specifikohen pseudonimet (konstrukti "SI").
  • "Urdhri" është përgjegjës për renditjen e rezultatit të pyetjeve.
  • "Totals" - e ngjashme me skedën "Grupimi", por përdoret për konstruksionin "TOTALS".

Vetë teksti i kërkesës mund të shihet duke klikuar në butonin "Kërkesë" në këndin e poshtëm të majtë. Në këtë formë, ai mund të korrigjohet me dorë ose të kopjohet.


Kërkesë tastierë

Për të parë shpejt rezultatin e një pyetjeje në modalitetin "Enterprise" ose për të korrigjuar pyetjet komplekse, përdorni . Ai përmban tekstin e kërkesës, vendos parametrat dhe shfaq rezultatin.

Ju mund ta shkarkoni konsolën e pyetjeve në diskun ITS ose nëpërmjet .

Artikujt më të mirë mbi këtë temë