Funksionet e gjuhës shprehëse të sistemit të përbërjes së të dhënave. Përdorimi i burimeve në SKD duke përdorur shembullin e krijimit të një raporti tabelor të jashtëm Llogaritni shumën sipas grupimit horizontal të SKD 1

Ekziston një regjistër informacioni "Ndalesa përgjatë rrugës", i cili ruan informacione për distancën nga fillimi deri në ndalesën përfundimtare.

Oriz. 1. Regjistri i informacionit "Ndalesa përgjatë rrugës"

Kërkohet të hartohet një raport mbi sistemin e kontrollit të aksesit që do të tregojë distancën midis çdo dy ndalese përgjatë itinerarit.

Zgjidhje

Në çdo konfigurim që mbështet format e menaxhuara, ne do të krijojmë një regjistër jo periodik informacioni "Ndalesa përgjatë rrugës". Le t'i shtojmë dimensionet Route dhe Stop me një lloj vargu me gjatësi përkatësisht 4 dhe 50, si dhe një burim Distanca me një lloj numri me gjatësi 10.2. Le të ruajmë ndryshimet në konfigurimin e ri. Për të krijuar një raport të jashtëm, në Menu-->Skedar-->I ri, zgjidhni "Raport i jashtëm", ​​vendosni emrin e tij dhe hapni diagramin e paraqitjes së të dhënave:

Oriz. 2. Krijimi i një raporti të jashtëm mbi sistemin e kontrollit të aksesit

Në dritaren që hapet, klikoni butonin "Shto grup të dhënash" dhe zgjidhni rreshtin "Shto grup të dhënash - pyetje":

Oriz. 3. Shtimi i një grupi të dhënash - pyetësor

Le të krijojmë një kërkesë të re. Për të zgjidhur problemin, do të na duhet në pyetje regjistri i informacionit "Ndalesa përgjatë rrugës" dhe, meqenëse raporti duhet të tregojë qartë distancën midis çdo dy ndalese, do të krijojmë një pyetje për një paraqitje tabelare përgjatë boshteve X dhe Y. , duke përdorur një bashkim të plotë të jashtëm të tabelës së regjistrit me vetveten:

Oriz. 5. Specifikimi i burimeve për sistemet e kontrollit të aksesit

Le të shkojmë tani te skeda "Cilësimet" dhe klikojmë butonin "Hap projektuesin e cilësimeve", zgjidhni llojin e raportit Tabela:

Oriz. 7. Përzgjedhja e fushave të raportit

Fig.8. Përzgjedhja e fushave të grupimit

Oriz. 9. Përzgjedhja e fushave të renditjes

Mbetet vetëm të përdorni butonin "Vetitë e elementeve të cilësimeve të përdoruesit" për të krijuar këto cilësime, dhe gjithashtu në skedën "Cilësimet e tjera" për të treguar se si do të vendosen burimet dhe hidhni totalet (ato nuk janë të nevojshme këtu):

Oriz. 10 Përdoruesi dhe cilësimet e tjera.

Raporti është gati. Tani le të kalojmë nga konfigurimi në Ndërmarrje dhe të plotësojmë regjistrin e informacionit (nëse nuk është i plotësuar tashmë):

Oriz. 11. Plotësimi i regjistrit të informacionit

Dhe së fundi, nga Menu-->Skedari ne telefonojmë raportin tonë nga vendi ku e kemi ruajtur në konfigurues, klikojmë butonin "Generate" dhe shohim zgjidhjen e problemit:

Oriz. 12. Raportoni "Distanca midis ndalesave"

Publikimi më shtyu të shkruaj një artikull

Në këtë shënim të shkurtër dua të tregoj se si mund të përmbledhni vlerat në nivele të ndryshme të grupimit në një raport duke përdorur një sistem të përbërjes së të dhënave.
Siç tregohet në imazh, vetëm në nivelin e grupimit "Grupet e artikujve", burimi "Porosi" llogaritet, ai tregon se sa duhet të porositet për grupin aktual të artikujve bazuar në kushte të caktuara:


Kjo vlerë mund të llogaritet vetëm në këtë nivel grupimi, pasi nuk ka vlera më lart ose më poshtë për t'u llogaritur. Për shembull, në nivelin e regjistrimeve të detajuara, nuk ka të dhëna për sasinë maksimale në një grup, sepse këto të dhëna janë të vlefshme vetëm për grupin në tërësi, dhe jo për përbërësit e tij individualë.

Prandaj, tani është e nevojshme të llogariten totalet për grupimet e mësipërme ("Depot", "Llojet e magazinës") dhe totali i përgjithshëm.
Për ta bërë këtë, përdorni funksionin CalculateExpressionWithGroupArray:
VLERËSO SHPREHJE ME GROUPARRAY (EVALEXPRESSIONWITHGROUPARRAY)
Sintaksë:
EvaluateExpressionWithGroupArray(,)
Përshkrim:
Funksioni kthen një grup, çdo element i të cilit përmban rezultatin e vlerësimit të një shprehjeje për grupim sipas fushës së specifikuar.
Kompozitori i paraqitjes, kur gjeneron një paraqitje, i konverton parametrat e funksionit në fushat e paraqitjes së përbërjes së të dhënave. Për shembull, fusha Account do të konvertohet në DataSet.Account.
Ndërtuesi i layout, kur gjeneron shprehje për daljen e një fushe të personalizuar, shprehja e së cilës përmban vetëm funksionin CalculateArrayWithGroupArray(), gjeneron shprehjen dalëse në mënyrë që informacioni dalës të renditet. Për shembull, për një fushë të personalizuar me shprehjen:

CalculateExpressionWithGroupArray("Shuma(ShumaTurnover)", "Counterparty")
Ndërtuesi i paraqitjes do të gjenerojë shprehjen e mëposhtme për dalje:

ConnectRows(Array(Order(CalculateExpressionWithGroupingValueTable("View(Sum(DataSet.AmountTurnover)),Sum(DataSet.AmountTurnover)",,"DataSet.Account"),"2")))

Opsione:

Lloji: String. Shprehja që do të vlerësohet. Vargu, për shembull, Amount (ShumaTurnover).

Lloji: String. Shprehjet e fushave të grupimit – shprehjet e fushave të grupimit, të ndara me presje. Për shembull, Kontraktori, Pala.

Lloji: String. Një shprehje që përshkruan përzgjedhjen e aplikuar për të dhënat e detajeve. Shprehja nuk mbështet përdorimin e funksioneve agregate. Për shembull, DeletionFlag = False.

Lloji: String. Një shprehje që përshkruan përzgjedhjen e aplikuar për të dhënat e grupit. Për shembull, Shuma (Shuma e qarkullimit) > &Parametri1.
Shembull:

Maksimumi(CalculateExpressionWithGroupArray("Shuma(ShumaTurnover)", "Kontraparta"));

Një përshkrim i hollësishëm i sintaksës së funksionit mund të gjendet në http://its.1c.ru/db/v837doc#bookmark:dev:TI000000582
Tani, për llogaritjen, dublikojmë fushën "Order", me vlera të ndryshme "Llogarit nga...", duke përdorur shprehjet e mëposhtme, vini re se në çdo nivel më të lartë përdoren vlerat e niveleve nën grupimet. .

Si rezultat, marrim ndërtimin e mëposhtëm:

Në përbërjen e të dhënave vendosja e totaleve duket pak më ndryshe se në kërkesat. Le të përcaktojmë grupin e të dhënave “Query” në sistemin e përbërjes së të dhënave.

Në vetë kërkesën, ne nuk konfigurojmë totalet, por shkojmë te skeda "Burimet" e përbërjes së të dhënave. Në nivelin e skemës së përbërjes së të dhënave, ne përcaktojnë burimet. Këto janë fushat që duhet të numërohen në nivel grupimi. Klikoni në butonin ">>" dhe vetë sistemi do të transferojë të gjitha fushat numerike dhe do t'i përcaktojë ato si burime.

Ju gjithashtu mund të specifikoni fusha jo numerike në burime. Për shembull, nëse zgjidhni atributin "Lidhje", sistemi do të numërojë numrin e dokumenteve në grupet tona. Ky informacion mund të jetë gjithashtu i dobishëm. Kështu që, në diagramin e paraqitjes ne përcaktojmë vetëm burimet, dhe vetë grupimet janë konfiguruar në nivelin e variantit të raportit. Përdoruesi mund të krijojë gjithashtu grupimet që dëshiron të shohë në cilësimet e opsioneve të raportit të tij.

Le të krijojmë një cilësim standard të përbërjes së të dhënave.
Klikoni në butonin "Hap projektuesin e cilësimeve".

Le të zgjedhim llojin e raportit - listën. Klikoni butonin "Next".

Le të zgjedhim të gjitha fushat dhe të zhvendosim fushën e palës tjetër në pozicionin e lartë. Klikoni butonin "Next".

Le të zgjedhim të gjitha fushat dhe të zhvendosim fushën e palës tjetër në pozicionin e lartë. Klikoni butonin "OK".

Rezultati është cilësimi i mëposhtëm:

Siç mund ta shihni, në konfigurimin e një opsioni raporti, burimet theksohen me një ikonë të gjelbër në mënyrë që ato të mund të dallohen shpejt nga fushat e tjera.

Nëse e hapim raportin tonë në modalitetin 1C:Enterprise dhe e gjenerojmë atë, do të shohim që të dhënat përfundimtare gjenerohen në nivelin e grupimit. Rezultatet sipas artikullit dhe sipas palëve.

Vendosja e burimeve në skemën e përbërjes së të dhënave 1C

Tani le të kthejmë vëmendjen tonë tek cilësimet që ekzistojnë për burimet. Në fushën "Shprehje" mund të specifikojmë një funksion agregat që mund të përdoret për të marrë vlerën e burimit. Në listën rënëse mund të shihni një numër funksionesh standarde, por jo të gjitha. Për shembull, nuk ka funksione.

Këtu në fushën "Shprehje" mund të shkruajmë shprehjen tonë.

Në fushën "Shprehje" mund të aksesojmë edhe funksionet e moduleve të zakonshme.

Përveç kësaj, mund të specifikoni në fushën "Llogarit sipas..." nga cilat grupime duhet të llogaritet burimi. Nëse fusha “Llogarit me...” nuk plotësohet, atëherë vlera përfundimtare e burimit do të llogaritet në të gjitha nivelet e grupimit që janë përcaktuar në cilësimet e opsionit të raportit. Në rastin tonë, duhet të plotësojmë fushën "Llogarit sipas..." të burimit "Sasia", pasi mund të shesim mallra me njësi të ndryshme matëse. Për shembull: vaj në litra dhe rrota në copa. A nuk është e vërtetë se do të ishte e palogjikshme të mblidheshin sasitë e këtyre mallrave? Prandaj, ne duhet ta lëmë përmbledhjen e sasisë në nivelin e zërit dhe në nivelin e palës tjetër
Le të heqim përmbledhjen.

Nëse gjenerojmë një raport, do të shohim që shumat totale të sasisë llogariten vetëm sipas artikullit, dhe totalet e sasive për kontraktorët janë bosh.

Mundësitë kur përshkruhen burimet në skemën e përbërjes së të dhënave 1C

le të shqyrtojmë një sërë veçorish jo të dukshme që lidhen me përshkrimin e burimeve.

  • Çdo burim mund përcaktoni disa herë. Por kjo ka kuptim vetëm nëse
    burimi do të llogaritet sipas nivele të ndryshme grupe. Për shembull, nëse sasia, në një rast
    është përmbledhur për artikullin, dhe për palët marrim vlerën minimale.

Nëse gjenerojmë një raport, do të shohim që për palën tjetër "Deriya" blerja minimale është pesë njësi të gamës së produkteve "Letër vetëngjitëse".

  • Në fushën "Shprehje", përveç shkrimit të një formule, mund të përdorni një funksion special i përbërjes së të dhënave të quajtur "Llogarit". Ky funksion ju lejon të llogaritni një vlerë përfundimtare duke përdorur një formulë të caktuar. Për shembull, për secilën palë është e nevojshme të dihet përqindja e blerjeve në njësi natyrore në raport me vëllimin total. Por si të merrni vëllimin e përgjithshëm të blerjeve sipas sasisë? Për ta bërë këtë, përdorni funksionin "Llogaritni" dhe shkruani shprehjen e mëposhtme në fushën "Shprehje":
Shuma(sasia)/Llogarit ("Suma(sasia)", "TotalTotal")*100

Siç shihet, të gjithë parametrat e funksionit "Llogarit" janë vargje. Në mënyrë që fusha e sasisë të shfaqet bukur në raport, ne do ta konfigurojmë atë në skedën "Grupet e të dhënave". Në rreshtin e sasisë do të gjejmë fushën "Opsionet e redaktimit". Le të hapim dialogun, të gjejmë rreshtin "Format" dhe të modifikojmë rreshtin e formatit në të, duke vendosur vlerën "Saktësia" në dy në skedën "Numri".

Le të ekzekutojmë raportin dhe të shohim rezultatin e llogaritjes së përqindjes së blerjeve për palën tjetër "AUPP KOS TOO" në lidhje me
vëllimi i përgjithshëm:


Në fund të artikullit dua t'ju rekomandoj një falas nga Anatoli Sotnikov. Ky është një kurs nga një programues me përvojë. Ai do t'ju tregojë në një bazë të veçantë se si të ndërtoni raporte në sistemin e kontrollit të aksesit. Thjesht duhet të dëgjoni me kujdes dhe të mbani mend! Ju do të merrni përgjigje për pyetjet e mëposhtme:
  • Si të krijoni një raport të thjeshtë të listës?
  • Për çfarë shërbejnë kolonat Fusha, Shtegu dhe Titulli në skedën "Fushat"?
  • Cilat janë kufizimet për fushat e paraqitjes?
  • Si të konfiguroni rolet në mënyrë korrekte?
  • Cilat janë rolet për fushat e paraqitjes?
  • Ku mund ta gjej skedën e përbërjes së të dhënave në një pyetje?
  • Si të konfiguroni parametrat në sistemin e kontrollit të hyrjes?
  • Bëhet edhe më interesante...
Ndoshta nuk duhet të përpiqeni të lundroni vetë në internet në kërkim të informacionit të nevojshëm? Për më tepër, gjithçka është gati për përdorim. Vetëm filloni! Të gjitha detajet rreth asaj që ka në mësimet video falas

Këtu është një nga mësimet rreth shënimit të përbërjes së të dhënave në një pyetje:

Le të shohim një shembull:

Disa njësi mallrash i dërgohen klientit me zbritje të ndryshme. Ju duhet të shfaqni vlerat e zbritjes për çdo produkt në një raport dhe të llogarisni zbritjen mesatare. Le të krijojmë një raport mbi sistemin e kontrollit të aksesit.
Për të gjitha fushat për të cilat duhet të shfaqim totalet, do të vendosim një shprehje (metodë) për llogaritjen e tyre në skedën "Burimet". Për fushën "Zbritje", vendosni metodën e llogaritjes si "Mesatare".

Ne nxjerrim raportin:

Siç mund ta shihni, totali për fushën "Zbritje" llogaritet si mesatare aritmetike e vlerave të fushës, d.m.th. shuma e të gjitha vlerave të pjestuar me numrin e vlerave. Por sepse Meqenëse vëllimet e mallrave të dërguara me zbritje të ndryshme janë të ndryshme, zbritja mesatare mund të llogaritet në një mënyrë tjetër: për shembull, si raport i sasisë totale të mallrave të dërguara, duke marrë parasysh zbritjen, me shumën totale të mallrave të dërguara. Por këtu lind një pyetje: nëse mund të shkruani një formulë për të llogaritur vlerat e fushave të regjistrimeve të detajuara në ACS, atëherë totalet llogariten automatikisht sipas shprehjes së specifikuar në skedën "Burimet", dhe atje, si e pamë më herët, “Mesatarja” llogaritet si mesatarja aritmetike e vlerave të shfaqura, si në këtë rast, a duhet të llogaris totalin në këtë kolonë duke përdorur formulën time?
Në fakt nuk është e vështirë. Për ta bërë këtë, ne do të rregullojmë raportin tonë duke shtuar në të fushat e nevojshme që do të marrin pjesë në llogaritjen, në rastin tonë këto janë "Shuma me zbritje" dhe "Shuma në çmim".

Për të "mësuar" ACS për të shfaqur rezultatet tona, ne marrim hapat e mëposhtëm:
1. në skedën "Cilësimet", caktoni një emër grupimit "", për shembull, "ResultSKD", për ta bërë këtë, thirrni menunë e kontekstit për grupimin dhe klikoni "cakto një emër";

2. në skedën “Layouts” shtoni një “faqosje të kokës së grupimit”, ku zgjedhim emrin e caktuar më parë “TotalSKD”;

3. vizatojmë një vijë të paraqitjes, ku lëmë të gjitha rezultatet, llogaritja e të cilave na përshtatet, ashtu siç janë dhe për të llogaritur përqindjen mesatare të zbritjes shkruajmë një formulë për llogaritje;

Nëse gjithçka është e saktë, atëherë kur të shfaqet raporti, dy rreshta totale do të shfaqen poshtë tij, së pari ai që gjenerohet automatikisht, pastaj ai i krijuar nga ju.

Për të lënë daljen vetëm të linjës suaj totale, duhet që në skedën "Cilësimet" në seksionin "Cilësimet e tjera" të daljes së paraqitjes, të çaktivizoni daljen për "Paraqitja totale horizontale e përgjithshme" dhe "Paraqitja totale vertikale e përgjithshme"

Ndani me miqtë ose kurseni për veten tuaj:

Po ngarkohet...