Cilësimet dhe opsionet për raportet në skd. Cilësimet dhe opsionet për raportet mbi cilësimet e përdoruesit të skd skd

Për një raport mund të vendosen disa opsione për paraqitjen vizuale të tij - domethënë, i njëjti informacion mund të zgjerohet, grupohet, etj. në mënyra të ndryshme. Opsionet e paracaktuara vendosen në konstruktorin ACS në skedën Settings (fig.); mund të krijohet një variant edhe në modalitetin Enterprise.

Varianti i renditur më i lartë do të konsiderohet varianti i paracaktuar.

Për opsionet e paracaktuara të konfigurueshme, mund të specifikoni se cilat nga cilësimet e tyre do të jenë të disponueshme për përdoruesin. Për shembull, mund të çaktivizoni përzgjedhjen ose grupimin për një element. Kjo është e specifikuar në Vetitë e elementit të cilësimeve të përdoruesit:

Specifikoni opsionin për qasjen e përdoruesit në cilësimet:

Varet nga ajo që përdoruesi sheh në konfigurimin e raportit në Ndërmarrje:

Pyetja 11.32 e 1C: Provimi Profesional i Platformës. Cili opsion raporti në skemën e përbërjes së të dhënave do të konsiderohet si i paracaktuar?
  1. Ai që vjen i pari në listën e opsioneve
  2. Ai me grupin e vetive të variantit të paracaktuar
  3. Ai që u përcaktua i pari në procesin e krijimit të variantit
Përgjigja e saktë është përshkrimi i parë në tekst.
Pyetja 11.35 e provimit 1C: Platforma profesionale. Si të shtoni një cilësim në listën e cilësimeve të përdoruesit?
  1. në formularin e cilësimeve të elementit të personalizuar, mund të tregoni se elementi është i personalizuar
  2. në formën e cilësimeve të elementit të personalizuar, aktivizoni aksesin e shpejtë në modalitetin e redaktimit
  3. Shtimi bëhet duke kontrolluar kutinë në vetinë "Përdor".
Përgjigja e saktë është e para.
Pyetja 11.40 e provimit 1C: Platforma Profesioniste. Në cilësimet e sistemit të përbërjes së të dhënave, është e detyrueshme të specifikoni
  1. Struktura e cilësimeve
  2. Opsione
  3. Fushat e zgjedhura
  4. Grupimi i fushave
  5. Renditja
  6. Të gjitha të mësipërmet
Përgjigja e saktë është e para. Struktura kërkohet, pjesa tjetër e ACS mund të shtohet automatikisht, ose në parim është opsionale.
Pyetja 11.41 e provimit 1C: Platforma profesionale. Si do të duket formulari i raportit pas aplikimit të cilësimeve të mëposhtme?
  1. Në formën e një tabele me katër kolona: "Produkt", "Depo", "Bilanci i sasisë", "Bilanci i shumës"
  2. Në formën e një tabele me tre kolona: "Produkt", "Depo", "Sasi e mbetur"
  3. Në formën e një tabele, numri i kolonave të së cilës do të varet nga numri i depove me bilanc jo zero
  4. Raporti nuk do të gjenerohet.
Përgjigja e saktë është e katërta - nuk ka asnjë shenjë kontrolli në elementin rrënjë të strukturës së cilësimeve, prandaj, të dhënat e daljes nuk janë të përcaktuara.
Pyetja 11.42 e 1C: Provimi Profesional i Platformës. Çfarë ndodh kur gjenerohet një raport nëse nuk ka cilësime të sistemit të përbërjes së të dhënave në modalitetin e përdoruesit?
  1. Do të përdoren "Cilësimet e parazgjedhura" të vendosura nga zhvilluesi në skemën e përbërjes së të dhënave
  2. Nga lista e opsioneve të cilësimeve, do të përdoret opsioni pranë atij aktual.
  3. Do të përdoren cilësimet e personalizuara
  4. Raporti nuk do të gjenerohet.
Përgjigja e saktë është e katërta - ajo që ka treguar përdoruesi ka përparësi. Cilësimet e përdoruesit janë bosh, kështu që raporti nuk do të gjenerohet.
Pyetja 11.43 e provimit 1C: Platforma profesionale.
  1. Në kufirin e majtë të sekondës së parë të datës së specifikuar në parametrin "Periudha".
  2. Balancat e përditësuara do të merren nëse nuk specifikohet një vlerë tjetër në parametrin e sistemit të përbërjes së të dhënave të krijuar bazuar në emrin e parametrit të jashtëm të specifikuar në tekstin e pyetjes për parametrin "Periudha" të tabelës virtuale
Përgjigja e saktë është e katërta. Kutia e kontrollit "Periudha" nuk është vendosur, domethënë zgjedhja e përdoruesit nuk është vendosur. Në rastin e përgjithshëm, kjo nënkupton bilancet aktuale, por është e mundur që parametri i periudhës të përcaktohet në një cilësim tjetër ACS.
Pyetja 11.44 e provimit 1C: Platforma profesionale. Në cilën pikë të boshtit kohor do të merren mbetjet gjatë krijimit të raportit?
  1. Në kufirin e majtë të sekondës së parë të datës së specifikuar në parametrin "Periudha".
  2. Në kufirin e djathtë të sekondës së fundit të datës së specifikuar në parametrin "Periudha".
  3. Balancat aktuale do të merren
  4. Balancat e përditësuara do të merren nëse nuk specifikohet një vlerë tjetër në parametrin e sistemit të përbërjes së të dhënave të krijuar bazuar në emrin e parametrit të jashtëm të specifikuar në tekstin e pyetjes për parametrin "Periudha" të tabelës virtuale
Përgjigja e saktë është e para - zgjedhja tregohet qartë këtu.

Pyetja 11.45 e provimit 1C: Platforma profesionale. Figura tregon formularin e raportit të krijuar nga sistemi si parazgjedhje. Çfarë lloji i elementit të cilësimeve është i rrethuar nga një kuti?

  1. Cilësimet e personalizuara
  2. cilësimet fikse
  3. Vendosja e opsioneve
  4. Një element mund t'i referohet çdo lloj cilësimesh, në varësi të vlerës së vetive të tij "Data Path".
Përgjigja e saktë është e para.
Pyetja 11.46 e provimit 1C: Platforma profesionale. Në raport, zgjedhja nga fusha "Depo" vendoset njëkohësisht në të gjitha llojet e cilësimeve. Çfarë ndodh kur përpiqeni të krijoni një raport?
  1. Raporti nuk do të gjenerohet.
  2. Raporti do të gjenerohet duke përdorur përzgjedhjen nga cilësimet e përdoruesit
  3. Raporti do të gjenerohet duke përdorur përzgjedhjen nga cilësimet fikse
  4. Raporti do të gjenerohet duke përdorur zgjedhjen nga opsioni i cilësimeve aktuale
Çfarë lloj "të gjitha llojet e cilësimeve" nuk është e qartë, por sipas përgjigjeve, opsioni i parë është i saktë.
Pyetja 11.47 e provimit 1C: Platforma profesionale. Në raport, zgjedhja nga fusha "Depo" vendoset si në cilësimet e përdoruesit ashtu edhe në opsionin e cilësimeve aktuale. Çfarë ndodh kur përpiqeni të krijoni një raport?
  1. Raporti do të gjenerohet duke përdorur përzgjedhjen nga cilësimet e përdoruesit, nëse është vendosur flamuri "Përdorimi". Nëse flamuri "Përdor" nuk është vendosur, atëherë nuk do të ketë përzgjedhje
  2. Raporti do të gjenerohet duke përdorur përzgjedhjen nga cilësimet e përdoruesit, nëse është vendosur flamuri "Përdorimi". Nëse flamuri "Përdor" nuk është vendosur, atëherë do të përdoret cilësimi i përzgjedhjes nga opsioni i cilësimeve
  3. Raporti do të gjenerohet duke përdorur zgjedhjen nga opsioni i cilësimeve, nëse është vendosur flamuri "Përdorimi". Nëse flamuri "Përdor" nuk është vendosur, atëherë nuk do të ketë përzgjedhje
  4. Raporti do të gjenerohet duke përdorur zgjedhjen nga opsioni i cilësimeve, nëse është vendosur flamuri "Përdorimi". Nëse flamuri "Përdor" nuk është vendosur, atëherë do të përdoret cilësimi i përzgjedhjes nga cilësimet e përdoruesit
Opsioni i duhur është i pari.
Pyetja 11.49 e provimit 1C: Platforma profesionale. Kur punon me cilësimet, përdoruesi mund të vendosë fushën e grupimit
  1. Në një dritare të veçantë "Grupimi"
  2. Në një dritare të veçantë "Redaktimi i fushave të grupimit"
  3. Në skedën Fushat e grupuara
  4. Në një dritare të veçantë "Grupimi" dhe në skedën "Fushat e grupit".
  5. Në një dritare të veçantë "Grupimi", në një dritare të veçantë "Redaktimi i fushave të grupimit" dhe në skedën "Fushat e grupit"
Përgjigja e saktë është e pesta. Dritarja e grupimit:

Opsionet Redaktoni fushat e grupimit dhe fushat e grupuara:

Pyetja 11.50 e provimit 1C: Platforma Profesioniste. Përdoruesi krijoi cilësimet e opsionit "nga e para". Çfarë cilësimesh duhej të modifikonte? Zgjidhni përgjigjen më të plotë dhe të saktë
  1. Fushat e zgjedhura të raportit, përzgjedhja e raportit, përzgjedhja e aksioneve, cilësimet shtesë të tabelës, renditja e artikujve, parametrat, dizajni i kushtëzuar i artikujve
  2. Fushat e zgjedhura të raportit, përzgjedhja e raportit, cilësimet shtesë të tabelës, dizajni i kushtëzuar i artikullit, fushat e zgjedhura të magazinës, parametrat, renditja e raportit
  3. Fushat e zgjedhura të raportit, përzgjedhja e raportit, përzgjedhja sipas magazinës, cilësimet shtesë të tabelës, dizajni i kushtëzuar i artikullit, parametrat, struktura e raportit
  4. Fushat e zgjedhura të raportit, përzgjedhja e raportit, përzgjedhja e aksioneve, cilësimet shtesë të raportit, parametrat, dizajni i kushtëzuar i artikullit, struktura e raportit
Përgjigja e saktë është e treta, duhet të shikoni me kujdes pamjen e ekranit.

Kujdes! Këtu është një version provë i mësimit, materialet e të cilit mund të mos jenë të plota.

Hyni si student

Identifikohu si student për të hyrë në përmbajtjen e shkollës

1C 8.3 Sistemi i përbërjes së të dhënave për fillestarët: krijimi i një lidhjeje midis grupeve të të dhënave

  • Shkruani një raport që shfaq klientët dhe produktet e tyre të preferuara. Secili klient ka një ngjyrë të preferuar, dhe çdo produkt ka ngjyrën e vet - është në bazë të këtyre ngjyrave që ju duhet të përcaktoni "të preferuarin" e produktit. Për shembull, nëse ngjyra e preferuar e Andreit është e kuqja, atëherë një nga ushqimet e tij të preferuara do të jenë domatet (ato janë të kuqe).
  • Aplikoni dy grupe të dhënash në raport. Grupi i parë janë të dhëna nga tabela e referencës "Klientë". E dyta - të dhëna nga tabela e librit të referencës "Ushqimi".
  • Zbatoni lidhja e këtyre dy grupeve në mënyrë që vetëm produktet e preferuara për secilin nga klientët të mbeten në raport.

Krijimi i një raporti të ri

Hapni bazën e të dhënave "Gastronom" në konfigurues dhe krijoni një raport të ri përmes menysë kryesore:

Lloji i dokumentit - "Raport i jashtëm":

Në formën e një raporti të ri, specifikoni emrin "Mësimi 6" dhe klikoni butonin "Skema e përbërjes së të dhënave të hapura":

Lëreni emrin e paracaktuar të skemës:

Shtimi i të dhënave të parë

Në skemën që hapet, shkoni te skeda "Setet e të dhënave" dhe zgjidhni "Shto të dhënat e të dhënave - pyetje" përmes shenjës së gjelbër plus:

Ne e quajmë konstruktorin e pyetjes:

Specifikoni tabelën "Klientë" dhe fushat që dëshironi të merrni nga pyetja:

Shtimi i një grupi të dhënash të dytë

Shtimi i një grupi të dhënash të dytë:

Zgjidhni atë (DataSet2) dhe thirrni përsëri konstruktorin e pyetjes:

Specifikoni tabelën e librit të referencës "Ushqimi" dhe fushat që dëshironi të merrni nga kërkesa:

Ky është teksti i kërkesës:

Ju lutemi vini re se tani kemi dy grupe të dhënash në raport: DataSet1 dhe DataSet2. Secili ka tekstin dhe të dhënat e veta të kërkesës.

Duke i bërë emrat më përshkrues

Për qartësi, le të riemërtojmë Dataset1 në Clients dhe Dataset2 në Food.

Bëni këtë duke klikuar dy herë në secilën prej grupeve:

Ne mund të përdorim të dhënat e secilit prej grupeve në raportin tonë. Ne do t'i aksesojmë këto të dhëna përmes fushave.

Aktualisht, grupi "Klientë" ka këto fusha: "Emri" dhe "Ngjyra e preferuar", dhe grupi "Ushqimi": "Emri" dhe "Ngjyra".

Shohim që emrat kryqëzohen dhe lehtë mund të ngatërrohemi. Pra, le të ndryshojmë emrat e fushave për të qenë më përshkrues.

Zgjidhni grupin "Klientë" dhe ndryshoni emrat e fushave si kjo:

Pastaj zgjidhni grupin "Ushqim" dhe ndryshoni emrat e fushave si kjo:

Thirrja e konstruktorit të cilësimeve

Më në fund, shkoni te skeda "Cilësimet" dhe shtypni shkopin magjik për të shfaqur konstruktorin e cilësimeve:

Lloji i raportit - "Lista...":

Zgjidhni fushat për raportin nga të dy grupet:

Shihni pse ishte kaq e rëndësishme ndryshimi i emrave të fushave? Në fazën e cilësimeve të përbërjes së të dhënave, ne nuk shohim se nga cilat grupe janë këto fusha. Ne shohim vetëm emrat e tyre.

Kontrollimi i raportit

Ne e ruajmë raportin dhe e gjenerojmë atë në modalitetin e përdoruesit:

Po. Mirë, por jo në të vërtetë. Një i ashtuquajtur bashkim kryq i dy grupeve ka ndodhur (ju duhet të jeni të njohur me këtë nga bashkimet në pyetjet që kemi studiuar në modulet e mëparshme). Çdo regjistrim nga tabela "Klientë" ka një rekord përkatës nga tabela "Ushqimi".

Por nga të gjitha këto regjistrime, ne duhet të lëmë vetëm ato për të cilat fusha "FavoriteCustomerColor" është e barabartë me fushën "FoodColor":

Lidhja e dy grupeve të të dhënave

Për ta bërë këtë, le të lidhim dy grupe të dhënash (Klientë dhe Ushqim) sipas fushave Ngjyra e preferuar e Klientit dhe Ngjyra e Ushqimit.

Shkoni te skeda "Lidhjet e të dhënave" dhe klikoni në butonin plus për të shtuar një lidhje të re:

Vendosni parametrat siç tregohet më poshtë:

Unë do të bëj një shpjegim.

Burimi dhe marrësi i komunikimit. Epo, gjithçka është e qartë këtu. Specifikoni grupin e parë (Klientë) dhe grupin e dytë (Ushqimin) e të dhënave. Dua të tërheq vëmendje të veçantë për faktin se komunikimi do të kryhet sipas parimit bashkimi i jashtëm i majtë(e kemi kaluar në temën e kërkesave në modulet e mëparshme). Bazuar në këtë, ju duhet të zgjidhni se cili grup do të jetë burimi dhe cili marrës.

shprehje burimore. Specifikoni këtu një shprehje ose thjesht një fushë nga grupi i të dhënave burimore (ne kemi specifikuar fushën e ngjyrës së preferuar të klientit nga grupi i klientëve këtu).

shprehje marrës. Ne tregojmë këtu një shprehje ose thjesht një fushë nga grupi i të dhënave të marrësit (ne treguam fushën Food Color nga grupi i ushqimit këtu).

Kështu, kjo lidhje do të lërë nga lista e mëparshme vetëm ato rreshta, fusha FavoriteCustomerColor e të cilave është e barabartë me fushën FoodColor.

Ruani raportin dhe ekzekutoni atë në modalitetin e përdoruesit:

E shkëlqyeshme!

Unë do të bëj një shpjegim për fushën " Gjendja e komunikimit", për të cilën programuesit fillestarë aq shpesh godasin shtizat e tyre.

Kushti i lidhjes është një fushë ndihmëse. Mund të shkruani shprehje atje. që përfshin fusha vetëm nga grupi i të dhënave të specifikuar në burimin e lidhjes.

Në këtë rast, për të gjitha rreshtat nga burimi i lidhjes, kjo shprehje (gjendja e lidhjes) do të kontrollohet para lidhjes. Dhe nëse kjo shprehje është E VËRTETË, atëherë do të bëhet një përpjekje për të lidhur këtë varg me vargjet nga lavazhi i lidhjes. Nëse shprehja është FALSE, nuk do të bëhen përpjekje të tilla.

Ne kemi shqyrtuar në detaje cilësimet e raporteve të zbatuara në bazë të ACS. Tani le të shohim cilësimet më delikate dhe të detajuara për opsionet e raportit. Dritarja e cilësimeve të variantit të raportit "të avancuara" thirret me komandën "Më shumë" - "Të tjera" - "Ndrysho variantin e raportit".

Dritarja për ndryshimin e variantit të raportit ndahet në dy pjesë:

1. Struktura e raportit.

2. Raporto cilësimet.


Seksioni i strukturës së një variant raporti është i ngjashëm me skedën "Struktura" të cilësimeve standarde të raportit. Qëllimi dhe konfigurimi i grupimeve diskutohet në detaje në pjesën 1 të artikullit.

Tabela e strukturës së variantit të raportit, përveç kolonës me grupime, përmban disa kolona shtesë:

Seksioni i cilësimeve të variantit të raportit i jep përdoruesit mundësi të mjaftueshme për të konfiguruar raportin për t'iu përshtatur nevojave të tij. Pothuajse plotësisht përkon me cilësimet standarde të raportit të diskutuara në Pjesën 1. Le të shohim të gjitha skedat e seksionit dhe të vërejmë ndryshimet.

Seksioni i cilësimeve përbëhet nga skedat e mëposhtme:

1. Opsionet. Përmban parametrat ACS në dispozicion të përdoruesit.

Parametri ACS - një vlerë e përdorur për të marrë të dhënat e raportit. Mund të jetë një vlerë kushti për përzgjedhjen ose vërtetimin e të dhënave, si dhe një vlerë ndihmëse.


Tabela e parametrave paraqitet në formatin "Parameter" - "Vlera". Nëse është e nevojshme, mund të ndryshoni vlerat e parametrave. Duke klikuar në butonin "Veçoritë e artikullit të cilësimeve të përdoruesit" hapen cilësimet e përdoruesit të artikullit.


Në këtë dritare, mund të zgjidhni nëse elementi do të përfshihet në cilësimet e përdoruesit (d.m.th., i dukshëm për përdoruesin gjatë konfigurimit të raportit), të vendosni mënyrën e prezantimit dhe modifikimit të elementit (qasje e shpejtë në kokën e raportit, normale në raport cilësimet dhe të paarritshme).

Vetitë e elementit të cilësimeve të personalizuara kanë gjithashtu fusha grupimi, margjina, zgjedhje dhe elemente stilimi të kushtëzuar.

2. Fushat e personalizuara. Përmban fusha që vetë përdoruesi i formon bazuar në të dhënat e përzgjedhura nga raporti.


Përdoruesi mund të shtojë dy lloje fushash:

  • Fusha e re e përzgjedhjes...
  • Fusha e re e shprehjes...

Fushat e përzgjedhjes ju lejojnë të llogaritni një vlerë bazuar në një kusht të caktuar. Dritarja e redaktimit të fushës së përzgjedhjes përmban titullin e fushës dhe një tabelë në të cilën specifikohet zgjedhja, vlera dhe prezantimi i fushës. Përzgjedhja është një kusht, në varësi të cilës do të zëvendësohet vlera e dëshiruar.


Për shembull, le të llogarisim një vlerësim të numrit të shitjeve. Ne do të supozojmë se nëse shiten më pak se 10 njësi mallrash, shitet pak, dhe nëse më shumë se 10 njësi, shiten shumë. Për ta bërë këtë, ne do të vendosim 2 vlera të fushës së llogaritur: e para do të jetë me zgjedhjen "Numri i produkteve më pak se ose i barabartë me "10"", i dyti me përzgjedhjen "Numri i produkteve më shumë se "10". "".

Fushat e shprehjes ju lejojnë të llogaritni një vlerë duke përdorur algoritme arbitrare. Ata mund të përdorin funksionet e gjuhës së pyetjes dhe të gjuhës së integruar të programimit 1C. Dritarja e redaktimit të fushës së shprehjes përmban dy fusha për shprehjet e shënimeve të detajuara dhe përmbledhëse. Regjistrimet përmbledhëse janë grupime të konfiguruara në zonën "Struktura e raportit", ato duhet të përdorin funksione agregate ("Shuma", "Minimumi", "Maksimumi", "Sasia").

Për shembull, le të llogarisim përqindjen mesatare të zbritjes. Përqindja mesatare e zbritjes llogaritet duke përdorur formulën: [Shuma e shitjeve pa zbritje] - [Shuma e shitjeve me zbritje] / [Shuma e shitjeve pa zbritje]. Duhet mbajtur mend se shuma e shitjeve pa zbritje mund të jetë zero, kështu që ne përdorim operatorin SELECT për të kontrolluar. Ne marrim shprehjet e mëposhtme:

· Për shënime të hollësishme:

Zgjedhja

Kur [Shuma e shitjeve pa zbritje] = 0

Pastaj 0

Else [Shitje pa zbritje] - [Shitje me zbritje] / [Shitje pa zbritje]

fund

· Për shënimet përmbledhëse:

Zgjedhja

Kur Shuma ([Shuma e shitjeve pa zbritje]) = 0

Pastaj 0

Përndryshe shuma ([Shuma e shitjeve pa zbritje]) - Shuma ([Shuma e shitjeve me zbritje]) / Shuma ([Shuma e shitjeve pa zbritje])

fund

Siç u përmend më herët, në shprehjen e të dhënave totale, ne përdorim funksionin agregat "Sum".

3. Fushat e grupuara. Përmban fusha sipas të cilave do të grupohet rezultati i variantit të raportit. Fushat e grupimit janë konfiguruar veçmas për secilin nga grupimet, por ju mund të vendosni fusha të përbashkëta grupimi për një variant raporti nëse zgjidhni rrënjën "Raporti" në pemën e strukturës. Mund të shtoni një fushë nga rezultati i raportit, një fushë të personalizuar ose zgjidhni një fushë automatike, më pas sistemi do t'i zgjedhë fushat automatikisht. Kjo skedë ju lejon gjithashtu të ndryshoni rendin e fushave të grupuara.


4. Fushat. Përmban fushat që do të shfaqen në rezultatin e variantit të raportit. Fushat janë konfiguruar veçmas për secilin nga grupimet, por ju mund të vendosni fusha të përbashkëta për një variant raporti nëse zgjidhni rrënjën "Raport" në pemën e strukturës. Mund të shtoni një fushë nga rezultati i raportit, një fushë të personalizuar ose zgjidhni një fushë automatike, më pas sistemi do t'i zgjedhë fushat automatikisht. Kjo skedë ju lejon gjithashtu të ndryshoni rendin e fushave.

Fushat mund të grupohen për të nënvizuar logjikisht çdo pjesë të raportit ose për të vendosur një rregullim specifik kolonash. Kur shtoni një grup, kolona "Vendndodhja" bëhet aktive dhe ju lejon të zgjidhni një nga opsionet e vendndodhjes:

  • Auto - sistemi rregullon automatikisht fushat;
  • Horizontalisht - fushat janë të rregulluara horizontalisht;
  • Vertikalisht - fushat janë rregulluar vertikalisht;
  • Në një kolonë të veçantë - fushat janë të vendosura në kolona të ndryshme;
  • Së bashku - fushat janë rregulluar në një kolonë.


5. Përzgjedhja. Përmban filtrat e përdorur në variantin e raportit. Vendosja e filtrave u diskutua në detaje në pjesën 1 të këtij artikulli. Filtrat janë konfiguruar veçmas për secilin prej grupimeve, por ju mund të vendosni filtra të përgjithshëm për një variant raporti nëse zgjidhni rrënjën "Raport" në pemën e strukturës.


6. Renditja. Përmban fushat e renditjes të përdorura në variantin e raportit. Vendosja e fushave të renditjes u diskutua në detaje në pjesën 1 të këtij artikulli. Renditja është konfiguruar veçmas për secilin prej grupimeve, por ju mund të vendosni fusha të zakonshme të renditjes për një variant raporti nëse zgjidhni rrënjën "Raport" në pemën e strukturës.


7. Projektim me kusht. Përmban elemente të kushtëzuara të projektimit të përdorura në një variant raporti. Vendosja e formatimit të kushtëzuar u diskutua në detaje në pjesën 1 të këtij artikulli. Dizajni i kushtëzuar është konfiguruar veçmas për secilin nga grupimet, por ju mund të vendosni elementë të zakonshëm të dizajnit të kushtëzuar për një variant raporti nëse zgjidhni rrënjën "Raport" në pemën e strukturës.


8. Cilësimet shtesë. Përmban cilësime shtesë të projektimit të raportit. Ato ju lejojnë të zgjidhni pamjen e përgjithshme të raportit, vendndodhjen e fushave, grupimet, atributet, burimet, totalet, të vendosni cilësimet e grafikut, të kontrolloni shfaqjen e titullit, parametrat dhe përzgjedhjen, të përcaktoni pozicionin e burimeve dhe të rregulloni titullin dhe kolonat e grupimeve të variantit të raportit.


Si përfundim, dëshiroj të vërej se cilësimet e raportit jo vetëm që mund të ruhen si një variant raporti, por edhe të ngarkohen në një skedar (menyja "Më shumë" - "Ruaj cilësimet"). Për të shkarkuar, zgjidhni "Load settings" dhe zgjidhni skedarin e ruajtur. Kështu, ne mund të transferojmë cilësimet e variantit të raportit midis bazave të të dhënave të ndryshme që kanë të njëjtin konfigurim.


Bazuar në këtë, ne mund të përmbledhim se përdoruesi jo vetëm që mund të personalizojë raportin për t'iu përshtatur nevojave të tij, por edhe të ruajë cilësimet e tij dhe t'i përdorë ato në të ardhmen nëse është e nevojshme.

Unë supozoj se nuk ka nevojë të tregohet se çfarë është ACS, lidhësi i cilësimeve dhe në përgjithësi i gjithë grupi i objekteve të krijuara për të punuar me ACS. Fushat kryesore të përdorimit, përveç veprimeve të ndërlikuara në kod, janë listat dhe raportet dinamike, dhe në të dyja rastet, funksionaliteti shumë domethënës mbetet prapa skenave. Ne shpesh as që mendojmë për logjikën e sjelljes dhe marrëdhëniet e të gjithë pjesëmarrësve në proces, sepse ne zakonisht zgjidhim detyra mjaft të thjeshta ose mbështetemi në parazgjedhjet e platformës. Por aty ku ka parazgjedhje, ka edhe logjikë të brendshme, një lloj "shërbim" ndaj 1C, frytet e të cilit ndonjëherë janë të vështira dhe jo të dukshme për t'u kapërcyer për të arritur efektin e dëshiruar, dhe në të njëjtën kohë mjafton. vetëm për të përdorur mjetet si duhet.

Të interesuarit mund të kalojnë pjesët 1-4 dhe të kalojnë direkt te shembujt.

Do të përpiqem të ndalem pak më shumë në punën e përzgjedhjeve të ACS për rastin e përdorimit të tyre në raporte. Besoj se sjellja në listat dinamike, me një sërë rezervash, do të jetë e afërt. Pra, përzgjedhjet në raporte, pak teori dhe më pas shembuj specifikë.

SP 8.3.6 dhe më lart, përdoren seksione të ITS (klauzola 10.3.7.5, etj.), Libri "Zhvillimi profesional në sistemin 1C-Enterprise 8" (Kazan, 2012, vëllimi i dytë). Në librin e E. Khrustaleva, asgjë e kuptueshme për këtë temë nuk u gjet fare.

Pjesa 1

Ndërtuesi i cilësimeve, siç e dini, ka një koleksion të "Cilësimeve", "Cilësimeve fikse" (në tekstin e mëtejmë "FN") dhe "Cilësimet e personalizuara" (në tekstin e mëtejmë "PN"). Një raport mund të ketë disa opsione, ndërsa lidhjet midis opsionit, N, PN dhe FN janë shumë të veçanta. Gjithashtu, le të mos harrojmë burimin e cilësimeve të disponueshme dhe "progenitorin" e tij, i cili zakonisht është vetë skema, e cila gjithashtu ka cilësimet e veta të paracaktuara.

* Cilësimet - cilësimet e krijuara në modalitetin Konfigurator dhe të ndryshuara në modalitetin e redaktimit të versionit të raportit;

* Cilësimet e përdoruesve - cilësimet që përdoruesi ndryshon në modalitetin "1C: Enterprise", thjesht ndërfaqe;

* FixedSettings - ato cilësime që janë vendosur nga gjuha e integruar, përfshirë. të vendosura në mënyrë implicite nga sistemi. Kjo pronë përmban vlerat e përzgjedhjes që kalohen në formë duke përdorur parametrat e saj (struktura "Zgjedhja").

Cilësimet dhe FN janë të ngjashme në strukturë dhe kanë një koleksion "Selection" të llojit "Zgjedhja e përbërjes së të dhënave", e disponueshme për ndryshimin e përbërjes në çdo kohë gjatë ekzistencës së raportit. Në të njëjtën kohë, Cilësimet janë të disponueshme për ndryshimet e ndërfaqes përmes modifikimit të variantit, por FN nuk është fare i disponueshëm. PN, nga ana tjetër, është një "qull", ku si vetë "Zgjedhja" dhe objektet e veçanta të llojit "Elementi i përzgjedhjes së përbërjes së të dhënave" (i ashtuquajturi objekt i mbivendosur) mund të jenë elementë të barabartë. Pavarësisht disponueshmërisë së metodave të përshtatshme, është e pamundur të ndryshohet programatikisht përbërja e koleksionit të elementeve PN nëse është PN e vetë raportit dhe nuk është bërë "nga e para" nga projektuesi - 1C do të raportojë se "Mbledhja e cilësimet e përdoruesit nuk mund të ndryshojnë përbërjen e tij, pasi ai shoqërohet me të dhënat e cilësimeve të paraqitjes." ITS thotë "Prona nuk është e shkruhet me gjuhën e integruar.", por siç do të shohim më vonë, është e mundur të ndikohet në PN. "Qulli" i objekteve ka lidhje të brendshme - kontrollohet për konsistencën e kushteve kur krijon një raport dhe kur ndryshon përbërjen. Në ITS lexojmë: “Elementet që vetë janë shënuar si zakon nuk do të shtohen. Për shembull, një përzgjedhje e personalizuar nuk do të përfshijë një artikull përzgjedhjeje që është shënuar si i personalizuar. Elementet që përmbajnë elementë të personalizuar nuk do të shtohen. Për shembull, një grup kushtesh nuk do të shtohet nëse ky grup përmban elementë të shënuar si të personalizuar. Për elementët e ndërthurur, vetia DisplayMode nuk analizohet. Ato shtohen ose nuk shtohen së bashku me elementët prindër. Kështu, “vjetërsia” e objekteve funksionon në prapaskenë. Në këtë rast, ju mund të merrni efektin kur ndërfaqja ju lejon të specifikoni zgjedhje kontradiktore për variantin dhe ST të tij, si dhe brenda ST.

Duket se "i lartë" është një opsion. Por klikimi mbi "Më shumë" / "Ndrysho opsionin" dhe konfirmimi i ndryshimeve në formularin e hapur thërret trajtuesin e ngjarjeve të formularit , ndërsa zgjedhja shfaqet në panelin "Basic" në formularin e thirrur nga "Cilësimet..." dhe shfaqet në formularin e raportit, por NUK shfaqet në skedën "Zgjedhja"; për më tepër, ose shfaqet menjëherë si në formën kryesore të raportit, ashtu edhe në formularin nga "Cilësimet ..." (nëse ka një flamur "Përfshi në cilësimet e përdoruesit"), ose as atje dhe as atje. Por në çdo rast, NUK do të jetë në skedën "Përzgjedhja" e formularit "Cilësimet...". Dallimi midis skedës "Basic" të formularit "Cilësimet..." dhe formularit kryesor të raportit përcaktohet nga fusha "Modaliteti i redaktimit" (normal - vetëm në "Cilësimet", i shpejtë - gjithashtu në vetë formularin e raportit) , por mendoj se të gjithë e dinë këtë. Nga rruga, vlerat e "Zgjedhja" dhe "Shpejtë" nuk sinkronizohen në asnjë mënyrë dhe mund të kundërshtojnë njëra-tjetrën, por "Shpejt" në formularin e raportit dhe në formularin e cilësimeve janë rreptësisht sinkron. Pra, kur redaktoni një variant, ai vetë modifikohet (por ID-ja dhe emri i tij nuk ndryshojnë), por PN-të mbeten NUK të modifikuara (d.m.th. edhe nëse po flasim për to, d.m.th. për flamurin për përfshirjen e këtij apo atij elementi në PN).

Klikimi mbi "Zgjidh një opsion ..." dhe konfirmimi i ndryshimeve në formularin e hapur aktivizon ngjarjet në rendin e mëposhtëm:

WhenLoadingVariantOnServer

Kur përditësoni përbërjen e cilësimeve të përdoruesit në server

Në këtë rast, as opsioni dhe as PN nuk ndryshojnë në asnjë mënyrë. Nga kjo është e qartë se opsioni dhe cilësimet, nëse janë të lidhura, nuk janë aspak të lidhura drejtpërdrejt.

Klikimi mbi "Cilësimet..." dhe konfirmimi i ndryshimeve në formularin e hapur vetëm shkakton një ngjarje Kur përditësoni përbërjen e cilësimeve të përdoruesit në server(në të njëjtën kohë, PN-të ndryshohen, por përfaqësimet dhe çelësi (nëse nuk ishin atje) nuk merren; nëse "Quick" është aktivizuar për elementët e objektit PN "Zgjedhja", atëherë përveç "Zgjedhja" ”, vetë elementët e tij shfaqen si fusha, d.m.th. .sjell në mënyrë të ngjashme me elementët e vendosur.

Klikimi mbi "Më shumë"/"Vendosni cilësimet e paracaktuara" në formularin e cilësimeve (si dhe artikullin "Cilësimet e paracaktuar" në modifikimin e një varianti) aktivizon vetëm një ngjarje Kur përditësoni përbërjen e cilësimeve të përdoruesit në server. Në këtë rast, opsioni bëhet i ndryshuar, por PN-të ndryshojnë. Nëse varianti është ndryshuar më parë, ai mbetet i ndryshuar (as rivendosja e flamurit të ndryshuar, as rivendosja e cilësimeve të bëra në të vërtetë).

Duke klikuar në "Vetitë e elementit të cilësimeve të përdoruesit" në pemën e strukturës në formularin e modifikimit të variantit shtohet objekti "Përzgjedhja" dhe rezulton të jetë bosh dhe nuk sinkronizohet me përzgjedhjen tashmë ekzistuese të variantit dhe me elementët ekzistues të përzgjedhjes së mbivendosur. Varianti nuk ndryshon në asnjë mënyrë.

Prandaj rekomandimi: nëse keni nevojë të vendosni disa zgjedhje në modalitetin "Konfigurator" në mënyrë që të mos ngatërroni kodin dhe në mënyrë që ato të mos jenë në opsion, por të jenë në ndërfaqen e raportit, nuk duhet të manipuloni përzgjedhjen. elementet e opsionit, duke ndryshuar vetitë e tyre, por vetë përzgjedhja , butonat "Vetitë e elementit..." dhe "Cilësimet e përdoruesit".

Shtimi i diçkaje që shfaqet në Cilësimet në PN kërkon veprime në kod ose ndërfaqe, por fshirja dhe pastrimi i cilësimeve ndikon në PN menjëherë dhe pa ndonjë përditësim, për shembull:

Raporti.SettingsComposer.Settings.Selection.Elements.Clear();

Para mbylljes së formularit të raportit, sistemi pyet vetëm nëse ka pasur ndryshime në variant. Nëse ka pasur ndryshime në PN, ato do të ruhen automatikisht pa asnjë pyetje, dhe gjithashtu automatikisht do të përpiqen të aplikojnë në seancën e ardhshme të punës me raportin.

Shënime:

Me një numër gabimesh, përkatësisht aplikimin e cilësimeve, së pari shfaqet një mesazh në lidhje me problemin, dhe më pas ndodh akoma lidhja, ngjarja quhet dhe ndërtimin e një raporti. Në të njëjtën kohë, FN, nëse do të ishin, ende injorohen dhe vetëm Cilësimet luajnë një rol.

Kur shtohet një përzgjedhje në formularin "Ndrysho variantin", bëhet menjëherë me grupin e flamurit "Përfshi në ST", por, përsëri, nga pikëpamja e gjuhës së integruar, ST-të mbeten të pandryshuara.

Vendosja e variacionit të një varianti dhe vendosja e variacionit të PN nuk janë të lidhura drejtpërdrejt, këto janë dy drejtime të ndryshme ndryshimesh.

PN ndër të tjera ka “Cilësimet shtesë”. Nuk mund ta kuptoja se çfarë dhe në cilin moment janë mbushur në asnjë mënyrë. Megjithëse ka cilësime në raport që "shënohen në përzgjedhjen dhe dizajnin e kushtëzuar" si të përcaktuara nga përdoruesi (sipas PS), cilësimet shtesë në të gjitha rastet rezultuan të jenë bosh. Nuk ka asgjë për këtë në ITS.

Pavarësisht deklaratës në sipërmarrjen e përbashkët, PN-të janë serializuar në mënyrë perfekte në xml.

Nëse të dy elementët e përzgjedhjes së pavarur dhe vetë përzgjedhja janë aktivizuar për përdorim, atëherë raporti konfigurohet saktë, por kur shfaqet, ai dyfishon informacionin për përzgjedhjen e zgjedhur në paraqitjen përfundimtare.

Formulari për redaktimin e një variant raporti të krijuar si parazgjedhje përmban shumë gjëra interesante, por nuk funksionon askund me FN dhe PN, dhe me cilësimet kryesore funksionon më shumë për lexim (përveç që pastron përzgjedhjen, renditjen, dizajnin konvencional).

Pjesa 2

Puna me Settings dhe FN përmes koleksionit të tyre është pothuajse gjithmonë e pranueshme, por është e rëndësishme të mbani mend se thelbi i "nivelit të tretë" po ndryshon. Në nivelin e parë, ekzistojnë gjithmonë cilësimet e paracaktuara të vetë ACS, ato gjithashtu shfaqen në mënyrë implicite në burimin e cilësimeve të disponueshme; në nivelin e dytë - cilësimet e variantit të përdorur. Por këtu logjika ju lejon të "mbishkruani" udhëzimet themelore, ose t'i shpërfillni ato. Por puna me PN nuk ofron më liri, dhe manipulimet delikate duhet të bëhen duke përdorur metoda speciale, dhe nganjëherë objekte të ndërmjetme ndihmëse të përkohshme, për shembull:

Comp=Cilësimet e reja LinkerDataComposition; // ju ende mund të filloni // comp.Initialize(SomeSettingsComposer.GetAvailableSettingsSource()); komp.LoadSettings(SomeSettingsComposer.Settings); SomeSettingsComposer.LoadUserSettings(comp.UserSettings);

Ndërtuesi i cilësimeve ka një metodë () që ngarkon vlerat e preferencës së përdoruesit të kaluara si parametër i metodës. Metoda Get Settings() ju lejon të merrni një kopje të cilësimeve aktuale (përfshirë cilësimet e përdoruesit). Metoda Cilësimet e shkarkimit() ngarkon cilësimet e kaluara në ndërtuesin e cilësimeve (cilësimet e përdoruesit ripopullohen gjithashtu bazuar në të dhënat e kaluara, duke marrë parasysh praninë e çelësave, shihni shembullin më poshtë).

Aplikimi i cilësimeve të përdoruesit në cilësimet kryesore bëhet në metodë Get Settings() lidhës i cilësimeve. Duke vepruar kështu, kryhen veprimet e mëposhtme:

* Për llojet e DataLayoutSelectionElement, përmbajtja e elementeve kopjohet në elementët përkatës të cilësimeve të personalizuara.

* Për llojet e DataLayoutFilter, elementet që janë në cilësimet kryesore dhe të shënuara si të padisponueshme mbeten të pandryshuara. Elementet nga PN transferohen në ato kryesore. Ato shtohen në fund të koleksionit për përzgjedhje.

* Për llojet e DataCompositionSelection ElementsGroup, vetia Usage vendoset në elementin përkatës të cilësimeve kryesore (bazuar në veçorinë e përdorimit të elementit PN).

Pjesa 3

Gjatë formimit të cilësimit përfundimtar, për të cituar ITS, cilësime të ndryshme kombinohen si më poshtë:

* Nëse çdo lloj cilësimesh është shënuar tërësisht si i personalizuar, atëherë cilësimet që rezultojnë përfshijnë PN. Në këtë rast, nëse ndonjë element i cilësimeve shënohet si i padisponueshëm, atëherë këto cilësime do të vendosen në cilësimet që rezultojnë nga vetia SettingsComposer.Settings.

* Nëse ndonjë lloj cilësimesh shënohet si i personalizuar jo tërësisht, por element pas elementi, atëherë elementët e shënuar si të personalizuar do të përfshihen në cilësimet që rezultojnë nga vetia SettingsComposer.CustomSettings dhe elementët e shënuar si të padisponueshëm do të merren në atë që rezulton cilësimet nga vetia SettingsComposer.Settings .

* Cilësimet fikse shtohen në cilësimet që rezultojnë "siç është". Në të njëjtën kohë, situata është e papranueshme kur FN dhe PN kanë të njëjtat cilësime, për shembull, përzgjedhje me të njëjtën vlerë të majtë në gjendje. Unë vërej se edhe rastësia e plotë e të gjitha vetive të këtyre kushteve është e ndaluar. Për të qenë i sinqertë, është disi e palogjikshme.

Vërej se nëse ndonjë fragment i cilësimeve i nënshtrohet opsionit funksional dhe duhet të jetë i kufizuar, sistemi funksionon "në heshtje" - ai e heq këtë fragment nga kudo, nuk raporton asgjë dhe gjatë manipulimeve të programit në lidhje me një fragment të tillë, ai funksionon "boshe" - gabimet nuk lëshohen, por nuk ka asnjë efekt nga kodi. Megjithatë, është e mundur që lëshime të ndryshme të sillen ndryshe.

Pjesa 4

Zgjatja e formularit të raportit na siguron parametrat "FN" dhe "PN", por askund nuk rekomandohet plotësimi i tyre drejtpërdrejt duke i kaluar në formular. Siç kanë treguar eksperimentet, pa kërcime shtesë me një dajre, përmbajtja e këtyre parametrave injorohet - mbishkruhet kur lidhësi inicializohet gjatë procesit të hapjes dhe kur merren PN-të e ruajtura më parë. Rekomandohet të punoni me çelësat PN, duke përdorur të cilët për t'i marrë ato nga ruajtja e cilësimeve dhe më pas hapja dhe përdorimi i tyre, dhe kjo bëhet automatikisht në anën e formularit të raportit dhe jo në formularin e thirrjes.

Parametri "AvailableSettings Source" përkthehet automatikisht në informacionin e lidhjes kur forma krijohet në server dhe nuk mund të anashkalohet. Ose më mirë, mundet, por do të japë një efekt vetëm pas një ripërcaktimi të plotë të të gjithë zinxhirit të objekteve të lidhura. ku GetAvailableSettingsBurimi() deri në fund të të gjitha ngjarjet e hapjes së formularit do të kthehen të Papërcaktuara.

Vërej se parametrat e formës, të cilët në fakt nuk janë kyç, "shtrijnë" veprimin e tyre mbi disa ngjarje nëse vendoset flamuri i formimit pas hapjes. Po, në rast ProcessingFill ChecksOnServer, i thirrur gjatë hapjes dhe formimit, parametri "Zgjedhja" do të jetë i disponueshëm dhe bashkë me të, por i thirrur thjesht duke klikuar përdoruesin në butonin "Generate", ai nuk do të jetë më i disponueshëm. Kjo për faktin se të gjitha këto ngjarje përpunohen në një "vizitë" në server, nëse aktivizohet formimi në hapje, dhe vetëm në fund të tyre, kontrolli i transferohet klientit dhe thirret Në Hapje. Në këtë rast, parametrat jo kyç, natyrisht, humbasin.

Rendi i përgjithshëm i ekzekutimit të ngjarjeve kur hapni një formular me një flamur për gjenerimin e një raporti për hapjen (disi më shumë se sa përshkruhet në "Zhvillimi profesional"):

OnCreateOnServer

Para se të ngarkoni variantin në server

WhenLoadingVariantOnServer

Para ngarkimit të cilësimeve të përdoruesit në server

WhenLoadingUserSettingsOnServer

Kur përditësoni përbërjen e cilësimeve të përdoruesit në server

ProcessingFill ChecksOnServer

Në Hapje

Në të njëjtën kohë, as opsioni dhe as OT nuk ndryshohen nëse nuk bëhen përpjekje të veçanta.

Pjesa 5

Tani le të ndalemi më në detaje në detyrën e hapjes së një formulari raporti me ndërtimin e tij dhe përzgjedhjen e paracaktuar. Informacion i shkurtër për këtë është në ITS dhe në rekomandimet metodologjike, por vetëm vetë parimi është i mbuluar atje dhe hollësitë nuk zbulohen. Pra, për ta thirrur raportin në mënyrë kontekstuale, është e nevojshme të kalohet parametri "GenerateOnOpening" i barabartë me True në formën e tij; dhe parametri "Zgjedhja" që përmban strukturën. Çelësat e strukturës janë emrat e fushave ACS ose parametrat ACS, dhe vlerat janë vlerat e tyre. Duke cituar SP, nëse ka një parametër SKD me një emër që përputhet me emrin e çelësit të strukturës, atëherë vlera do t'i vendoset atij. Nëse nuk ka asnjë parametër, por ka një fushë, atëherë një përzgjedhje do të shtohet në këtë fushë. Në të njëjtën kohë, nëse ka një parametër dhe një fushë me të njëjtin emër, atëherë sistemi thjesht do ta injorojë atë në heshtje dhe nuk do të vendosë asgjë.

Në "Zhvillimi profesional" jepet një shembull i ndryshimit (d.m.th. përgjimi dhe rikonfigurim) PN "në fluturim" në rast Para ngarkimit të cilësimeve të përdoruesit në server, ku kalohet argumenti që përmban MO aktuale. Në fakt, ky nuk është gjithmonë rasti - për shembull, mund të ketë raste kur një gabim në ruajtjen e PN-së në seancën e mëparshme, ose mospërputhjet midis cilësimeve, FN dhe PN do të çojnë në zbrazjen e argumentit të Cilësimeve. Dhe ajo që është më interesante, nuk do të jetë e mundur ta rikonfiguroni plotësisht atë në këtë ngjarje, kjo mund të bëhet vetëm "në fund" të sekuencës së ngjarjeve, domethënë, në rast ProcessingFill ChecksOnServer.

Le të shohim se çfarë kemi përpara se të ngarkojmë PN në server.

Për një rast të thjeshtë, kur asgjë nuk është e paracaktuar në ACS dhe asnjë element nuk përfshihet në OT, situata është si më poshtë: Cilësimet - bosh; FN - përmbajnë zgjedhjen e duhur; MO-të përmbajnë një përzgjedhje boshe. Formimi funksionon si duhet, por nga këndvështrimi i përdoruesit, ndërfaqja është kontradiktore dhe dekurajuese - përzgjedhja funksionon, por nuk është e dukshme. Në mënyrë të ngjashme, nëse në cilësimet e strukturës së variantit aktivizoni Selection në PV, raporti gjithashtu ndërtohet duke marrë parasysh përzgjedhjen, por gjithashtu përdoruesi nuk sheh asnjë përzgjedhje.

Le të vendosim parazgjedhjet në cilësimet ACS në Konfigurator (të barabartë me vlerat boshe) dhe t'i përfshijmë ato në PT. Teorikisht, FN duhet të plotësojë Settings, dhe ato - PN, por në fakt kemi: në Settings - Zgjedhja me elementin e dëshiruar, por një vlerë boshe djathtas, FN - përmbajnë zgjedhjen e saktë dhe PN - ende nuk përmbajnë asgjë. . Përveç kësaj, në këtë rast raporti nuk do të ndërtohet, sepse vlera e duhur e filtrit është bosh, pavarësisht vlerës së kaluar në parametrin Filter.

Një përpjekje për të punuar me elementët e PN gjithashtu nuk jep rezultat. Për elementin PN, mund të ndryshoni vetëm flamurin "Përdorimi" dhe pjesëmarrjen në "Shpejtë". Vlera e përzgjedhjes në ndërfaqe do të jetë bosh, sistemi nuk do të gjenerojë asnjë gabim. Në mënyrë të ngjashme, një përpjekje për të punuar me Përzgjedhjen e PN do të funksionojë gjithashtu, në korrigjues vlera e duhur do të shihet si e plotësuar saktë, por nuk do të shihni asgjë në ndërfaqe. Dhe ju kujtoj se është e pamundur të ndryshohet përbërja e PN. Prandaj, kërkohen truket shtesë. Për shembull:

Procedura &OnServer SetPredefinedFilter(UserSettings) Nëse Jo Parameters.Property("Filter") Pastaj ktheni EndIf; Nëse Parametrat.Selection.Sasia()=0 Pastaj ktheni EndIf; pEOType=Type("DataCompositionSelectionItem"); Për çdo kiz From Parameters.Filter Loop pField=New DataCompositionField(kiz.Key); // If (TypeVnch(kis.Value)=Type("Array") ose TypeVnch(kiz.Value)=Type("Lista e vlerave") dhe kiz.Value.Quantity()>1 Pastaj pComparisonType=DataCompositionComparisonType.INList; Përndryshe pComparisonType=DataCompositionComparisonType.E barabartë; FundNëse; // pHRequiredSelection=E pacaktuar; // shikoni nëse ka një Përzgjedhje në cilësimet e përdoruesit pHrequiredEO=I papërcaktuar; // shikoni nëse ka një DataCompositionFilter të veçantë në cilësimet e përdoruesit Për çdo elnastr Nga UserSettings.Items Loop If ValueType(elnastr)=Type("DataCompositionFilter") dhe pHRequiredFilter=I Padefinuar Pastaj // mund të jetë vetëm një pHRequiredFilter=elnastr; // kjo mund të bëhet edhe jashtë ciklit, por është gjithashtu e nevojshme të përsëritet mbi cilësimet e përdoruesit për hir të elementeve... Përndryshe nëse fusha If elset.LeftValue=pField ose elset.LeftValue=Pacaktuar dhe pHdesiredEO=Pacaktuar Pastaj pHdesiredEO =elnastr; FundNëse; FundNëse; Cikli i Fundit; // Nëse dëshironi pH Zgjedhja<>I padefinuar Pastaj // shkon si prioritet pHrequiredEOFromSelection=I papërcaktuar; Për çdo elotb Nga pHSelection.Items Loop If elotb.LeftValue=pField Pastaj pHDesiredEOFromSelection=elotb; Aborti FundIf; Cikli i Fundit; Nëse pHRequiredEOFromSelection=E padefinuar Atëherë pHRequiredEOFromFilter=pRequiredFilter.Items.Add(pEOType); pHrequiredEOFromSelection.LeftValue=pField; FundNëse; pHrequired EOfromSelection.ComparisonType=pComparisonType; pHdesiredEOFromSelection.RightValue=kiz.Vlera; pHrequiredEO fromSelection.Use=true; // pHrequiredEO.Use=False; ElseIf pHDesiredSelection=E pacaktuar dhe pHDesiredEO<>E padefinuar Pastaj // vendos elementin pHnecessaryEO.LeftValue=pField; pHrequiredEO.ComparisonType=pComparisonType; pHrequiredEO.RightValue=kis.Vlera; pHrequiredEO.Use=true; FundNëse; pHrequired=i papërcaktuar; Për çdo elotb Nga Report.SettingsComposer.Settings.Selection.Elements Loop // në një mënyrë të mirë, këtu duhet të ketë një kërkim rekurziv! Nëse TypeVnch(elotb)=pTypeEo dhe elotb.LeftValue=pField Pastaj pHrequired=elotb; Aborti FundIf; Cikli i Fundit; Nëse pHrequired=E pacaktuar Atëherë pHrequired=Raporto.SettingsComposer.Settings.Filter.Elements.Add(pEOType); pHRequired.LeftValue=pField; FundNëse; pHrequired.ComparisonType=pComparisonType; pHRequired.RightValue=kiz.Vlera; pHrequired.Use=true; // Cikli i fundit; Raporti.SettingsComposer.FixedSettings.Selection.Items.Clear(); // përndryshe thuaj elementet kryqëzohen/kundërshtojnë EndProcedure

Mënyra më e saktë për ta quajtur është:

&OnServerProcedura ProcessFillCheckOnServer(Dështim, atribute të kontrolluara) SetPredefinedFilters(Report.SettingsComposer.UserSettings); Përfundimi i procedurës

Pastaj, thirrja e kontekstit, për shembull, nga forma e referencës, do të duket kështu:

&Në procedurën e klientit OpenReport(Command) If ValueFilled(Object.Reference) Pastaj ref=New Structure("ReferenceToDirectory",Object.Reference); // kështu është emërtuar fusha në raportin ACS Form Parameters=New Structure("Selection,FormAt Opening",select,True); OpenForm("Report.Report1.Form.ReportForm",FormParameters,ThisForm); FundNëse; Përfundimi i procedurës

Pjesa 6

Nëse është e nevojshme, ndryshoni cilësimet e raportit gjatë punës me të, përfshirë. si në startup ashtu edhe pas hapjes, mënyra më e saktë është të ndryshosh "nga fillimi", d.m.th. nga cilësimet e SKD. Ndryshimi i skemës ACS kryhet vetëm me objektin Raport (ose Raportin e Jashtëm), dhe jo me të dhënat e formularit, dhe në vetvete nuk ndryshon asgjë - te Settings dhe në PN, mbetet e njëjta gjë siç ishte, dhe FN në përgjithësi mundet mbeten bosh. Prandaj, në varësi të detyrave tona:

Pasi bëri

Report.Settings Builder.LoadSettings(SKD.DefaultSettings)

ndryshon vetëm varianti dhe asgjë tjetër;

Pas kryerjes së teknikës së dhënë në paragrafin 2 (duke përdorur "ndërmjetësin" dhe metodën Shkarko Cilësimet Custom()

funksionon vetëm nëse rivendosni PN-në aktuale duke përdorur ndërfaqen. Në vetvete, ato nuk do të ndryshojnë kur të ndryshohet opsioni. Kjo ndryshon përzgjedhjen, por nuk shton një element të ri përzgjedhjeje.

Pasi bëri

ThisForm.CreateFormElementsUserSettings(,DisplayModeDataCompositionSettings.Të gjitha)

platforma thjesht bie në heshtje. Testuar në disa versione të ndryshme. Një telefonatë me mënyrën e shfaqjes së cilësimeve vetëm për ato të shpejta nuk ka kuptim - ne nuk ndikuam në përbërjen e tyre, kështu që asgjë nuk do të ndryshojë gjithsesi.

Dhe meqenëse ende duhet të ndryshojmë plotësisht jo vetëm zgjedhjet e brendshme, por edhe shfaqjen në formularin e raportit dhe në format përkatëse, ose duhet të ndryshojmë vetëm Përzgjedhjen, ose të veprojmë si më poshtë:

&Në ndryshimin e procedurës së serveritSKD() pObject=FormAttributeToValue("Raporto"); përzgjedhje=rObject.Skema e përbërjes së të dhënave.OptionsSettings.Get(0).Settings.Filter; eo=select.Items.Add(Type("DataCompositionSelectionItem")); eo.LeftValue=New DataCompositionField("ReferenceReference.Field1"); eo.ComparisonType=DataCompositionComparisonType.E barabartë; eo.RightValue=e vërtetë; eo.Përdor=true; ValueVFormAttribute(pObject, "Raport"); Report.Settings Builder.LoadSettings(pObject.Data CompositionSchema.Default Settings); Raporti. Ndërtuesi i cilësimeve.Rivendos(); // e dëshirueshme, megjithëse FN ende nuk është prekur. // në fakt, kjo është ajo që mund të quhet një ndryshim në përbërjen e PN-së Për çdo email Nga Report.Settings Builder.Settings.Selection.Elements Loop email.DisplayMode=ElementDisplayModeDataCompositionSettings.QuickAccess; Nëse EmptyString(e.UserSettingsIdentifier) ​​Atëherë // mund të përdorni metodën e.SetIdentifier për elementin PN, shikoni ndihmën e tij në SP, gjithçka është mjaft e qartë atje e.UserSettingsIdentifier="ID123"; // i rëndësishëm - identifikuesi mund të jetë ANY, jo UUID dhe jo GUID! emailViewCustomSettings="Test"; FundNëse; Cikli i Fundit; comp=New DataCompositionSettingsCompositor; komp.LoadSettings(rObject.DataCompositionSchema.DefaultSettings); Raporti. Ndërtuesi i Cilësimeve.LoadUserSettings(Comp.UserSettings); Për çdo email Nga Report.Settings Builder.UserSettings.Items Cikli email.DisplayMode=ItemDisplayModeDataCompositionSettings.QuickAccess; // tërhiq EndCycle në formularin e raportit; // dhe tani do të japë efekt: ThisForm.CreateUserSettingsFormElements(,DisplayModeDataCompositionSettings.QuickAccess); Përfundimi i procedurës

Në fakt, ju mund ta studioni këtë mekanikë për një kohë të gjatë. Ky postim u ngrit nga mësimi se si të zgjidhet një problem i veçantë, dhe për këtë arsye është mjaft i njëanshëm; por dyshoj se mund të shkruhet një libër i veçantë për logjikën e brendshme të cilësimeve, veçanërisht ato të përdoruesit, jo më i hollë se ai i Khrustalev. Fatkeqësisht, nuk kam kohë dhe energji për këtë. Kush do të përfitojë nga zhvillimet specifike - tashmë mirë.

Disa gjëra janë sqaruar eksperimentalisht dhe për këtë arsye të diskutueshme. Ata që dinë më shumë ftohen të kritikojnë dhe komentojnë.



Në vazhdim të temës:
Dritaret

Natalya Komarova , 05/28/2009 (03/25/2018) Kur lexoni një forum ose blog, ju kujtoni autorët e postimeve me pseudonim dhe ... nga fotografia e përdoruesit, i ashtuquajturi avatar ....