GAZ-53 GAZ-3307 GAZ-66

SKD. Mag-ulat gamit ang diagram. Iba pang mga katanungan tungkol sa mga diagram ng SCD SCD

Ang isa sa pinakamahalagang bahagi ng software ng negosyo ay ang pag-uulat. Ang kapalaran ng isang negosyo ay maaaring depende (at hindi sa isang matalinghagang kahulugan!) sa kung gaano kadali na i-customize ang isang umiiral na ulat sa pagbabago ng mga pangangailangan ng negosyo (at batas) o lumikha ng bago, ito man ay isang ulat para sa tanggapan ng buwis o isang diagram ng pag-asa ng demand para sa mga kalakal sa panahon at iba pang mga kadahilanan. Isang malakas at nababaluktot na sistema ng pag-uulat na nagpapadali sa pagkuha ng kinakailangang data mula sa system, ipakita ito sa isang nauunawaan na anyo, na nagpapahintulot sa end user na muling i-configure ang isang karaniwang ulat upang makita ang data sa isang bagong liwanag - ito ang ideal na ang bawat sistema ng negosyo ay dapat magsikap para sa.

Sa 1C:Enterprise platform, isang mekanismo na tinatawag na "Data Composition System" (dinaglat bilang DCS) ang responsable sa pagbuo ng mga ulat. Sa artikulong ito susubukan naming magbigay maikling paglalarawan mga ideya at arkitektura ng mekanismo ng ACS at mga kakayahan nito.


Ang ACS ay isang mekanismo batay sa isang deklaratibong paglalarawan ng mga ulat. Ang sistema ng kontrol sa pag-access ay idinisenyo para sa pagbuo ng mga ulat at para sa pagpapakita ng impormasyon na may kumplikadong istraktura. Sa pamamagitan ng paraan, bilang karagdagan sa pagbuo ng mga ulat, ang mekanismo ng ACS ay ginagamit din sa 1C:Enterprise sa isang dynamic na listahan, isang tool para sa pagpapakita ng impormasyon ng listahan na may maraming pag-andar (pagpapakita ng mga flat at hierarchical na listahan, kondisyonal na disenyo ng mga hilera, pagpapangkat, atbp. ).

Isang maliit na kasaysayan

Sa pinakaunang bersyon ng 1C:Enterprise 8 platform, bersyon 8.0, ang mga ulat ay ginawa tulad nito:
  1. Ang isa o higit pang mga query ay isinulat sa 1C query language (SQL-like language, higit pa tungkol dito sa ibaba).
  2. Isinulat ang code na naglipat ng mga resulta ng mga naisagawang query sa isang spreadsheet na dokumento o chart. Ang code ay maaari ring gumawa ng trabaho na hindi maaaring gawin sa isang query - halimbawa, kinakalkula nito ang mga halaga gamit ang built-in na 1C na wika.
Ang diskarte ay diretso, ngunit hindi ang pinaka-maginhawa - may kaunting mga setting ng visual, ang lahat ay kailangang i-program "hand-to-hand". At isa sa mga trump card sa oras na iyon ng ganap na bagong platform na "1C: Enterprise 8" ay ang pag-minimize sa solusyon ng aplikasyon ng dami ng code na kailangang isulat nang manu-mano, lalo na, sa pamamagitan ng visual na disenyo. Magiging lohikal na sundin ang parehong landas sa mekanismo ng pag-uulat. Ginawa ito sa pamamagitan ng pagbuo ng bagong mekanismo - ang Data Composition System.

Ang isa sa mga ideya na naging batayan ng access control system ay ang flexibility at customization ng mga ulat, na naa-access ng developer at ng end user. Sa isip, gusto kong bigyan ang end user ng access sa parehong hanay ng mga tool sa disenyo ng ulat bilang developer. Magiging lohikal na lumikha ng isang solong hanay ng mga tool na magagamit sa lahat. Kaya, dahil ang mga tool ay nangangailangan ng pakikilahok ng end user, nangangahulugan ito na ang paggamit ng programming sa kanila ay dapat mabawasan sa isang minimum (pinakamahusay na ganap na alisin ito), at ang mga visual na setting ay dapat gamitin sa maximum.

Pahayag ng problema

Ang gawain bago ang development team ay lumikha ng isang sistema ng pag-uulat batay hindi sa isang algorithmic (ibig sabihin, sa pamamagitan ng pagsulat ng code), ngunit sa isang deklaratibong diskarte sa paglikha ng mga ulat. At naniniwala kami na ang problema ay matagumpay na nalutas. Sa aming karanasan, humigit-kumulang 80% ng kinakailangang pag-uulat ang maaaring ipatupad gamit ang ACS nang walang isang linya ng code (maliban sa pagsusulat ng mga formula para sa mga kalkuladong field), karamihan ay sa pamamagitan ng mga visual na setting.
Ang pagbuo ng unang bersyon ng SDS ay tumagal ng humigit-kumulang 5 tao-taon.

Dalawang wika

Mayroong dalawang wika na kasangkot sa paglikha ng mga ulat. Ang isa ay isang wika ng query na ginagamit upang kunin ang data. Ang pangalawa ay ang data composition expression language, na idinisenyo upang magsulat ng mga expression na ginagamit sa iba't ibang bahagi ng system, halimbawa, sa mga setting ng komposisyon ng data, upang ilarawan ang mga expression ng mga field ng user.

Wika ng pagtatanong

Ang wika ng query ay batay sa SQL at madaling matutunan para sa mga may kaalaman sa SQL. Halimbawa ng kahilingan:

Madaling makita ang mga analogue ng mga seksyon na pamantayan para sa mga query sa SQL - SELECT, FROM, GROUP BY, ORDER BY.

Kasabay nito, ang wika ng query ay naglalaman ng malaking bilang ng mga extension na naglalayong ipakita ang mga detalye ng mga problema sa pananalapi at pang-ekonomiya at sa pagliit ng pagsisikap na kinakailangan upang bumuo ng mga solusyon sa aplikasyon:

  • Pag-access sa mga patlang gamit ang isang tuldok. Kung ang mga field ng isang talahanayan ay isang uri ng sanggunian (nag-iimbak sila ng mga link sa mga bagay ng isa pang talahanayan), ang developer ay maaaring sumangguni sa kanila sa text ng kahilingan sa pamamagitan ng ".", at hindi nililimitahan ng system ang bilang ng mga antas ng nesting. ng mga naturang link (halimbawa, Order ng Customer. Kasunduan. Organisasyon. Telepono).
  • Multidimensional at multilevel na pagbuo ng mga resulta. Binubuo ang mga kabuuan at subtotal na isinasaalang-alang ang pagpapangkat at hierarchy, ang mga antas ay maaaring madaanan sa anumang pagkakasunud-sunod na may paglalagom, at ang tamang pagbuo ng mga kabuuan ayon sa mga sukat ng oras ay sinisigurado.
  • Suporta para sa mga virtual na talahanayan. Binibigyang-daan ka ng mga virtual na talahanayan na ibinigay ng system na makakuha ng halos handa na data para sa karamihan ng mga gawain sa application nang hindi nangangailangan na lumikha ng mga kumplikadong query. Kaya, ang isang virtual na talahanayan ay maaaring magbigay ng data sa mga balanse ng produkto sa pamamagitan ng mga tuldok sa isang tiyak na punto ng oras. Kasabay nito, ang mga virtual na talahanayan ay gumagawa ng maximum na paggamit ng naka-imbak na impormasyon, halimbawa, mga naunang kinakalkula na kabuuan, atbp.
  • Mga pansamantalang talahanayan. Pinapayagan ka ng wika ng query na gumamit ng mga pansamantalang talahanayan sa mga query. Sa kanilang tulong, maaari mong pagbutihin ang pagganap ng query, sa ilang mga kaso bawasan ang bilang ng mga pagharang at gawing mas madaling basahin ang teksto ng query.
  • Mga batch na kahilingan. Upang gawing mas maginhawa ang pagtatrabaho sa mga pansamantalang talahanayan, sinusuportahan ng wika ng query ang pagtatrabaho sa mga batch na query - kaya, ang paglikha ng isang pansamantalang talahanayan at ang paggamit nito ay inilalagay sa isang query. Ang isang batch request ay isang sequence ng mga kahilingan na pinaghihiwalay ng mga semicolon (";"). Ang mga kahilingan sa batch ay isa-isang isinasagawa. Ang resulta ng pagsasagawa ng isang batch request, depende sa paraan na ginamit, ay ang resulta na ibinalik ng huling kahilingan sa batch, o isang hanay ng mga resulta mula sa lahat ng query sa batch sa sequence kung saan ang mga query sa batch ay sumusunod. .
  • Kinukuha ang mga representasyon ng mga field ng sanggunian. Ang bawat object table (kung saan naka-imbak ang isang reference na libro o dokumento) ay may virtual na field - "View". Ang field na ito ay naglalaman ng textual na representasyon ng bagay at ginagawang mas madali ang trabaho ng gumawa ng ulat. Kaya, para sa isang dokumento, ang field na ito ay naglalaman ng lahat ng pangunahing impormasyon - ang pangalan ng uri ng dokumento, ang numero at petsa nito (halimbawa, "Sale 000000003 mula 07/06/2017 17:49:14"), na nagse-save sa developer mula sa pagsulat ng kalkuladong patlang.
  • atbp.
Awtomatikong binabago ng mekanismo ng kahilingan ang kahilingan na isinasaalang-alang ang mga tungkulin kung saan kabilang ang user kung saan ang kahilingan ay ipinatupad (ibig sabihin, makikita lang ng user ang data na may karapatan siyang makita) at mga opsyon sa paggana (ibig sabihin, alinsunod sa kasama ang mga naka-configure sa application solution functionality).

Mayroon ding mga espesyal na extension ng wika ng query para sa mga access control system. Ang pagpapalawak ay isinasagawa gamit ang mga espesyal na syntactic na tagubilin na nakapaloob sa braces at direktang inilagay sa katawan ng kahilingan. Gamit ang mga extension, tinutukoy ng developer kung anong mga operasyon ang magagawa ng end user kapag kino-customize ang ulat.

Halimbawa:

  • PUMILI. Inilalarawan ng pangungusap na ito ang mga field na mapipili ng user para sa output. Pagkatapos nito keyword Pinaghihiwalay ng mga kuwit, nakalista ang mga alias ng mga field mula sa pangunahing listahan ng pagpili ng query na magiging available para sa configuration. Halimbawa: (PUMILI NG Item, Warehouse)
  • SAAN. Inilalarawan ang mga field kung saan maaaring ilapat ng user ang pagpili. Gumagamit ang panukalang ito ng mga field ng talahanayan. Ang paggamit ng mga alyas sa field ng listahan ng pagpili ay hindi pinapayagan. Ang bawat bahagi ng unyon ay maaaring maglaman ng sarili nitong WHERE na elemento. Mga Halimbawa: (WHERE Item.*, Warehouse), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
  • atbp.
Halimbawa ng paggamit ng mga extension:

Wika ng Pagpapahayag ng Komposisyon ng Data

Ang Data Composition Expression Language ay idinisenyo upang magsulat ng mga expression na ginamit, sa partikular, upang ilarawan ang mga custom na field expression. Binibigyang-daan ka ng SKD na tukuyin ang mga custom na field sa isang ulat gamit ang alinman sa iyong sariling mga expression o hanay ng mga opsyon na may mga kundisyon para sa kanilang pagpili (katulad ng CASE sa SQL). Ang mga custom na field ay katulad ng mga kalkuladong field. Maaari silang itakda pareho sa configurator at sa 1C:Enterprise mode, ngunit ang mga function ng mga karaniwang module ay hindi magagamit sa mga custom na field expression. Samakatuwid, ang mga custom na field ay inilaan para sa user kaysa sa developer.

Halimbawa:

Ang proseso ng paglikha ng isang ulat sa sistema ng kontrol sa pag-access

Kapag gumagawa ng ulat, kailangan naming gumawa ng layout na tumutukoy kung paano ipapakita ang data sa ulat. Maaari kang lumikha ng isang layout batay sa isang diagram ng layout ng data. Inilalarawan ng diagram ng layout ng data ang kakanyahan ng data na ibinibigay sa ulat (kung saan kukuha ng data at kung paano mo makokontrol ang layout nito). Ang scheme ng komposisyon ng data ay ang batayan kung saan maaaring mabuo ang lahat ng uri ng mga ulat. Ang scheme ng komposisyon ng data ay maaaring maglaman ng:
  • humiling ng teksto na may mga tagubilin para sa sistema ng komposisyon ng data;
  • paglalarawan ng maramihang mga set ng data;
  • detalyadong paglalarawan ng magagamit na mga patlang;
  • naglalarawan ng mga ugnayan sa pagitan ng maraming set ng data;
  • paglalarawan ng mga parameter ng pagkuha ng data;
  • paglalarawan ng mga layout ng field at pagpapangkat;
  • atbp.

Halimbawa, maaari kang magdagdag ng query bilang isang set ng data sa scheme ng komposisyon ng data at tawagan ang tagabuo ng query, na nagbibigay-daan sa iyong graphical na lumikha ng query ng arbitraryong pagiging kumplikado:

Ang resulta ng paglulunsad ng query designer ay ang query text (sa 1C:Enterprise query language). Maaaring manu-manong ayusin ang tekstong ito kung kinakailangan:

Maaaring mayroong ilang set ng data sa isang scheme ng layout ng data, maaaring i-link ang mga set ng data sa layout sa anumang paraan, maaaring idagdag ang mga kalkuladong field, maaaring tukuyin ang mga parameter ng ulat, atbp. Ito ay nagkakahalaga ng pagbanggit ng isang kawili-wiling tampok ng mekanismo ng query sa 1C: Enterprise. Ang mga query sa huli ay isinasalin sa isang dialect ng SQL na partikular sa DBMS kung saan direktang gumagana ang application. Sa pangkalahatan, sinusubukan naming gamitin ang mga kakayahan ng mga server ng DBMS sa maximum (nalilimitahan kami sa katotohanang ginagamit lang namin ang mga kakayahan na sabay-sabay na magagamit sa lahat ng DBMS na sinusuportahan ng platform ng 1C:Enterprise - MS SQL, Oracle, IBM DB2 , PostgreSQL). Kaya, sa antas ng query sa mga kalkuladong field, magagamit lang natin ang mga function na isinalin sa SQL.

Ngunit sa antas ng scheme ng komposisyon ng data, maaari na kaming magdagdag ng mga custom na field at gumamit ng mga function sa mga ito sa built-in na 1C development language (kabilang ang mga isinulat namin), na lubos na nagpapalawak ng mga kakayahan ng mga ulat. Sa teknikal, ganito ang hitsura - lahat ng maaaring isalin sa SQL ay isinalin sa SQL, ang query ay isinasagawa sa antas ng DBMS, ang mga resulta ng query ay inilalagay sa memorya ng 1C application server at kinakalkula ng SKD para sa bawat talaan ang mga halaga. ng mga kalkuladong field na ang mga formula ay nakasulat sa 1C na wika.


Pagdaragdag ng Mga Custom na Field

Maaari kang magdagdag ng arbitrary na bilang ng mga talahanayan at chart sa ulat:


Taga-disenyo ng ulat


Ulat sa runtime

Gamit ang SKD, maaaring magdagdag ang user ng mga kumplikadong seleksyon sa ulat (na idaragdag sa kahilingan sa mga tamang lugar), kondisyonal na disenyo (nagbibigay-daan sa mga ipinapakitang field na ma-format nang iba - na may font, kulay, atbp., depende sa kanilang mga halaga ) at marami pang iba .

Ang proseso ng pagbuo at pagbuo ng isang ulat ay maaaring madaling ilarawan tulad ng sumusunod:

  • Tinutukoy ng developer sa oras ng disenyo sa tulong ng isang taga-disenyo (o sa runtime gamit ang code) ang scheme ng layout ng data:
    • Teksto ng kahilingan/mga kahilingan
    • Paglalarawan ng mga kalkuladong field
    • Mga ugnayan sa pagitan ng mga kahilingan (kung marami sa kanila)
    • Mga Opsyon sa Ulat
    • Mga Default na Setting
    • atbp.
  • Ang mga setting sa itaas ay naka-save sa layout
  • Binuksan ng user ang ulat
    • Posibleng gumawa ng mga karagdagang setting (halimbawa, mga pagbabago sa mga value ng parameter)
    • Mag-click sa pindutang "Bumuo".
  • Inilapat ang mga setting ng user sa scheme ng komposisyon ng data na tinukoy ng developer.
  • Ang isang intermediate na layout ng komposisyon ng data ay nabuo, na naglalaman ng mga tagubilin kung saan makakatanggap ng data mula. Sa partikular, ang mga query na tinukoy sa layout ay inaayos. Kaya, ang mga patlang na hindi ginagamit sa ulat ay tinanggal mula sa kahilingan (ginagawa ito upang mabawasan ang dami ng natanggap na data). Ang lahat ng mga patlang na lumahok sa mga kalkuladong formula ng field ay idinaragdag sa query.
  • Naglalaro ang processor ng komposisyon ng data. Ang processor ng layout ay nagsasagawa ng mga query, nagli-link ng mga set ng data, kinakalkula ang mga halaga para sa mga kalkuladong field at mapagkukunan, at nagsasagawa ng pagpapangkat. Sa madaling salita, ginagawa nito ang lahat ng mga kalkulasyon na hindi isinagawa sa antas ng DBMS.
  • Ang data output processor ay naglulunsad ng isang kahilingan para sa pagpapatupad at ipinapakita ang natanggap na data sa isang spreadsheet na dokumento, tsart, atbp.


Ang proseso ng pagbuo ng ulat gamit ang mekanismo ng ACS

Sinusubukan naming i-minimize ang dami ng data ng ulat na inilipat mula sa server patungo sa application ng kliyente. Kapag nagpapakita ng data sa isang dokumento ng spreadsheet, kapag nagbubukas ng isang dokumento ng spreadsheet, inililipat lamang namin mula sa server ang mga linyang iyon na nakikita ng user sa simula ng dokumento. Habang gumagalaw ang user sa mga linya ng dokumento, dina-download ang nawawalang data mula sa server patungo sa kliyente.

Mga Custom na Setting

Ang lahat ng mga tool ng ACS ay magagamit sa parehong developer at sa end user. Ngunit ipinakita ng kasanayan na ang end user ay madalas na natatakot sa kasaganaan ng mga kakayahan ng tool. Bukod dito, sa karamihan ng mga kaso, hindi kailangan ng end user ang lahat ng kapangyarihan ng mga setting - sapat na para sa kanya na magkaroon ng mabilis na access sa pag-set up ng isa o dalawang mga parameter ng ulat (halimbawa, panahon at katapat). Simula sa isang partikular na bersyon ng platform, may pagkakataon ang developer ng ulat na markahan kung aling mga setting ng ulat ang available sa user. Ginagawa ito gamit ang checkbox na "Isama sa mga setting ng user." Gayundin, ang mga setting ng ulat ay mayroon na ngayong flag na “Display Mode,” na kumukuha ng isa sa tatlong value:
  • Mabilis na pag-access. Direktang ipapakita ang setting sa tuktok ng window ng ulat.
  • Ordinaryo. Magiging available ang setting sa pamamagitan ng button na "Mga Setting".
  • Hindi naa-access. Ang setting ay hindi magiging available sa end user.


Pagtatakda ng display mode sa oras ng disenyo


Ipakita ang setting sa Quick Access mode sa runtime (sa ilalim ng Generate button)

Mga plano sa pagpapaunlad

Isa sa aming mga priyoridad na lugar sa pagbuo ng mga access control system ay ang pagpapasimple sa mga setting ng user. Ipinapakita ng aming karanasan na para sa ilang mga end user, ang pagtatrabaho sa mga setting ng user ay isang malaking gawain pa rin. Isinasaalang-alang namin ito at nagtatrabaho sa direksyong ito. Alinsunod dito, magiging mas madali para sa mga developer na magtrabaho kasama ang mga access control system, dahil Kami, tulad ng dati, ay gustong magbigay ng isang tool para sa pag-set up ng mga ulat para sa developer at sa end user.

Kaya, kailangan ng tagapamahala ng pagbili ng isang ulat na nagpapakita ng dinamika ng mga pagbabago sa balanse ng mga kalakal sa mga bodega ng organisasyon sa anyo ng isang diagram.

Nagpasya ang programmer na gumawa ng ulat sa isang data composition system (DCS) dahil mas kaunting oras ang aabutin nito. Tingnan natin ang mga hakbang sa paggawa ng ulat nang hakbang-hakbang.

Solusyon

Gumawa tayo ng external na ulat na "Dynamics of changes in product balances" at magdagdag ng basic data layout scheme dito. Sa taga-disenyo ng layout scheme, sa tab na "Mga Set ng Data," magdagdag ng bagong set at magsulat ng query para sa mga balanse ng produkto ayon sa bodega at dalas ng "Araw."

Dahil palaging ipinapakita ng ulat ang dynamics ng mga balanse ng item para sa isang item lamang sa direktoryo, magdaragdag kami ng seleksyon ayon sa item bilang isang parameter upang hindi mabuo ang ulat nang hindi ito pinupunan.

Upang maipakita ang tagapagpahiwatig ng dami ng balanse sa tsart, idagdag ang field na "QuantityRemaining" sa mapagkukunan.

I-configure natin ang mga parameter ng ulat. Para sa parameter na "Nomenclature," itatakda namin ito sa mandatoryong paggamit upang palaging punan ito ng user upang makabuo ng ulat. At lilimitahan namin ang mga parameter na "Simula ng Panahon" at "Pagtatapos ng Panahon" para sa pag-edit, at ang kanilang mga halaga ay kukunin mula sa mga halaga ng parameter na "Panahon" na may uri ng "StandardPeriod".


Ang ulat ay halos handa na. Ang natitira na lang ay i-configure ang istraktura ng output ng ulat at ang mga field nito. Gamitin natin ang taga-disenyo ng mga setting.

Ang pagkakaroon ng napiling uri ng ulat na "Diagram" sa taga-disenyo, kailangan naming piliin ang mga setting:

1. Mga patlang ng tsart.


2. Mga diagram ng serye at punto.


3. Uri ng tsart.


Sa puntong ito, ang gawain ng paglikha ng isang ulat ay maaaring ituring na tapos na!

Resulta

Natapos ang gawain. Ang ulat ay ginawa sa access control system sa napakaikling panahon. Sa pagsasagawa, ang paggawa ng naturang ulat ay tumatagal ng mas mababa sa limang minuto. Panlabas na ulat na ginawa sa artikulo, maaari mong i-download mula sa link.

Kolektahin natin ang natitirang mga tanong mula sa seksyon 11 ng pagsubok, na may mga paliwanag sa teksto.

Tanong 11.06 ng pagsusulit 1C: Platform Professional. Kapag ginamit sa isang chart data composition system (natanggap sa output form), ito ay nailalarawan sa pamamagitan ng:

  1. Maaari ka lamang magsama ng isang chart sa output form
  2. maaari mong isama ang anumang bilang ng mga chart sa output form, ngunit dapat na pareho ang uri ng mga ito
  3. Maaari mong isama ang anumang bilang ng mga chart sa output form, ngunit dapat silang magpakita ng data para sa isang mapagkukunan
  4. maaari mong isama ang anumang bilang ng mga diagram sa output form nang walang limitasyon

Ang tamang sagot ay pang-apat; halimbawa, maaari kang magdagdag ng iyong sariling pagpapangkat para sa bawat diagram. isa:

at ang pangalawa:

Tanong 11.14 ng pagsusulit 1C: Platform Professional. Sa anong kaso ang mga kundisyon mula sa pagpili na tinukoy sa mga setting ng sistema ng komposisyon ng data ay hindi inilagay sa teksto ng kahilingan?

  1. Itakda ang pagpili para sa pagpapangkat
  2. Gumagamit ang kundisyon ng kalkulado o custom na field na naglalaman ng mga expression na hindi maaaring katawanin sa isang wika ng query
  3. Gumagamit ang kundisyon ng mga field mula sa maraming set ng data
  4. Lahat ng nasa itaas ay totoo

Ang tamang sagot ay ang una. Sa pangkalahatan, ang teksto ng kahilingan ay hindi nagpapahiwatig ng pagpapataw ng isang kundisyon sa alinmang isang pangkat ng data ng output samakatuwid, hindi ito maipapasa bilang isang parameter. Posible ang iba pang mga pagpipilian.

Tanong 11.15 ng pagsusulit 1C: Platform Professional. Posible bang gumamit ng mga katutubong function sa expression na wika ng isang sistema ng komposisyon ng data?

  1. Ito ay ipinagbabawal
  2. Posible ito, ngunit kapag nagtatrabaho lamang sa programmatically sa isang sistema ng komposisyon ng data. Ang mga function ay dapat na inilarawan sa keyword na "I-export" at dapat na matatagpuan sa isang pandaigdigang karaniwang module
  3. Posible ito, ngunit kapag nagtatrabaho lamang sa programmatically sa isang sistema ng komposisyon ng data. Ang mga function ay dapat na inilarawan sa keyword na "I-export" at matatagpuan sa anumang karaniwang module
  4. Posible ito, ngunit kapag nakikipag-ugnayan lamang sa sistema ng komposisyon ng data. Ang mga function ay dapat na inilarawan sa keyword na "I-export" at dapat na matatagpuan sa isang pandaigdigang karaniwang module
  5. Posible ito, ngunit kapag nakikipag-ugnayan lamang sa sistema ng komposisyon ng data. Ang mga function ay dapat na inilarawan sa keyword na "I-export" at matatagpuan sa anumang karaniwang module
  6. Posible ito kapwa sa panahon ng interactive at programmatic na trabaho kasama ang sistema ng komposisyon ng data. Ang mga function ay dapat na inilarawan sa keyword na "I-export" at matatagpuan sa anumang karaniwang module

Ang tamang sagot ay anim. Hindi malinaw kung para saan ang larawan.

Tanong 11.18 ng pagsusulit 1C: Platform Professional. Ang isang column sa ulat, ang halaga nito ay kakalkulahin gamit ang ilang expression gamit ang mga field ng source data set, ay maaaring gawin sa layout scheme designer window:

  1. Sa seksyong Calculated Fields
  2. Sa seksyong "Mga Opsyon."
  3. Sa seksyong "Mga Layout."
  4. Sa seksyong "Mga Setting" sa tab na "Mga custom na field."
  5. Lahat ng nabanggit ay totoo
  6. Ang mga sagot 1 at 4 ay tama

Ang tamang sagot ay panglima. Expression sa mga kalkuladong field:

Sa Mga Pagpipilian:

Sa Mga Layout:

At sa Mga Custom na Field:


Tanong 11.19 ng pagsusulit 1C: Platform Professional. Maaaring malikha ang parameter ng schema ng komposisyon ng data

  1. Awtomatikong, batay sa text ng kahilingan
  2. Interactively, sa data composition schema designer window sa seksyong "Mga Opsyon."
  3. Sa interactive na paraan, sa window ng taga-disenyo ng scheme ng komposisyon ng data sa seksyong "Mga Setting" sa tab na "Mga Parameter."
  4. Programmatically
  5. Lahat ng nabanggit ay totoo
  6. Ang mga sagot 1, 2 at 4 ay tama

Ang tamang sagot ay ikaanim - sa ikatlong opsyon ang parameter ay maaari lamang baguhin, hindi nilikha:


Tanong 11.20 ng pagsusulit 1C: Platform Professional. Aling kontrol ang nagpapakita ng output ng isang ulat sa isang format na tulad ng spreadsheet?

  1. Field ng dokumento ng spreadsheet
  2. Field ng talahanayan ng buod
  3. Diagram
  4. Pivot chart

Ang tamang sagot ay ang una. Talagang hindi isang diagram :)

Tanong 11.38 ng pagsusulit 1C: Platform Professional. Saan mo maaaring i-configure ang kaugnayan sa pagitan ng mga field ng isang panlabas at nested na schema?

  1. Field ng dokumento ng spreadsheet
  2. Sa mga setting ng nested circuit mismo
  3. Sa mga setting ng panlabas na scheme
  4. Sa espesyal na window na "Mga setting ng nested diagram"
  5. Ang lahat ng mga pagpipilian ay tama
  6. Ang mga opsyon 1 at 3 ay tama

Nagkataon lang na sa mahigit 10 taon ng pagtatrabaho sa platform ng 1C:Enterprise, hindi ko kailanman kinailangan na magtrabaho nang malapit sa mga diagram sa isang dokumento ng spreadsheet. Ilang beses lang akong kinailangan na magpakita ng mga pie chart sa ulat, ngunit walang nahanap na problema.

At ngayon ay dumating na - ang oras ng mga diagram. Nagtatrabaho ako ngayon sa isang kumpanya ng pamumuhunan, na tumatalakay din sa pamamahala ng tiwala ng mga pondo ng kliyente. Ang mga kliyente ay naiiba: mula sa malalaking pondo ng pensiyon na hindi pang-estado hanggang sa mga pribadong mamumuhunan na gustong mamuhunan ng kanilang 2-3 milyong rubles. Dapat sabihin na sa gayong pamumuhunan maaari kang makakuha ng kita na mas mataas kaysa sa rate ng interes sa mga deposito sa bangko, kahit na may isang maingat na diskarte. Gayunpaman, maaari kang manalo ng halos wala. Ngunit kung kailangan mong makakuha ng kita sa maikling panahon (isang taon o dalawa), halos hindi sulit na pumunta sa real estate o ginto para dito.

Ang lahat ng mga kliyente ay interesadong malaman kung saang mga ari-arian ang kanilang pera ay namuhunan, kung ano ang return sa portfolio ng pamumuhunan para sa panahon at, sa pangkalahatan, kung paano naiimpluwensyahan ng mga panlabas na salik ang mga prospect para sa kita. Hindi lahat ay may pang-ekonomiyang edukasyon, kaya napagpasyahan na bumuo ng mga pana-panahong ulat para sa mga mamumuhunan sa anyo ng isang buklet na may malaking bilang ng mga diagram. Sa una, ang layout ay iginuhit ng aming tagapamahala sa Adobe Illustrator, pagkatapos ay ako na.

Walang mga problema sa color palette at mga font - pinapayagan ka ng 1C na manipulahin ang mga ito kung saan kinakailangan. Ang output ng mga logo at talahanayan ay hindi rin mahirap, maliban na ang puwang para sa bawat plato ay limitado sa pamamagitan ng layout ng ulat, kaya kinakailangang suriin sa bawat oras kung aling mga tagapagpahiwatig ang itinuturing na makabuluhan at alin ang hindi.

Nagsimula ang mga problema kapag nagtatrabaho sa mga diagram. Ngunit bago natin tukuyin ang mga ito, tandaan natin kung paano sa wika ng 1C:Enterprise platform tayo gumagana sa mga diagram sa isang spreadsheet na dokumento.

Ang bawat dokumento ng spreadsheet ay naglalaman ng isang koleksyon ng mga Larawan. Maaari itong magsama ng parehong mga static na guhit (mga logo, pictogram, litrato) at mga diagram. Sa kaso ng isang diagram, ang elemento ng pagkolekta ng Larawan ay may isang Object property ng uri ng Diagram na nasimulan. Mahalagang tandaan na kung gagawa ka ng isang spreadsheet na dokumento sa pamamagitan ng sunud-sunod na pag-output ng mga lugar ng layout na may mga diagram dito, walang madaling paraan upang mahanap ang nais na diagram sa huling dokumento: ang index at pangalan ng figure ay maaaring magbago sa bawat oras na ang area ay output sa dokumento, maaari ka lamang maghanap ayon sa mga katangian Isang bagay, tulad ng Pamagat o ChartType.

Sa Excel, ang 1C diagram ay na-upload bilang isang larawan.

Karaniwan, ang mga chart ay ipinapasok sa isang layout ng ulat, ang kanilang mga katangian ay na-configure, at pagkatapos ay ang mga halaga ng tsart ay nabuo sa programmatically kapag ang ulat ay output. Hindi tinatalakay ng artikulong ito ang output ng mga diagram sa isang ulat gamit ang isang access control system, mayroon itong mga kalamangan at kahinaan.

Ang bawat tsart ay may uri (pie, histogram, graph, atbp.). At ito ay iginuhit sa pamamagitan ng pagtatakda ng mga halaga na nauugnay sa mga puntos at serye. Ang mga serye at puntos (mga elemento ng mga koleksyon ng Serye at Mga Punto) ay maaaring tukuyin kaagad sa Configurator na ito ay maginhawa kapag ang dami ay mahigpit na nililimitahan ng saklaw ng gawain at/o ito ay kinakailangan upang mahigpit na itakda ang kulay, teksto at ilan; iba pang mga parameter.

Sa pamamagitan ng paraan, kapag "nag-click" ka sa isang diagram sa layout, maaaring magbukas ang window ng mga katangian para sa lugar ng diagram. Mag-click muli at magbubukas ang window ng mga katangian para sa object ng Diagram.

Ang mga serye ay ang karaniwang kinukulayan namin sa isang chart na may iba't ibang kulay. Halimbawa, dahil maraming maraming kulay na mga segment ang nasa isang pie chart, mayroong kasing daming serye na may mga hindi zero na halaga ng punto. Ang mga puntos ay kung ano ang matatagpuan sa kahabaan ng axis sa diagram.

Mga degenerate na kaso: ang isang pie chart ay may maraming serye, ngunit isang punto, at isang histogram o graph ay maaaring gawin gamit ang isang serye, ngunit maraming puntos.

Maaari mong tukuyin ang mga serye at mga puntos sa programmatically, ngunit kailangan mong tiyakin na ang mga ito ay idinagdag sa koleksyon at huwag kalimutang itakda ang Text property (lalo na para sa mga puntos, kung hindi, hindi namin makikita ang mga label sa pahalang na axis ng graph). Naa-access ang mga serye at puntos sa pamamagitan ng index ng elemento ng koleksyon.

Halimbawa,

Kung Area1.Drawings.Object.Points.Count()< Инд Тогда

Area1.Drawings.Object.Points.Add();

endIf;

Area1.Drawings.Object.Points[Ind-1].Text=”Pebrero”;

At upang itakda ang halaga ng tsart, ang SetValue() na paraan ay ginagamit, kung saan ipinapasa ang point index, series index at ang value mismo. Kadalasan ang pamamaraang ito ay tinatawag sa value table traversal o query fetch loop.

Kaya, kailangan nating gumuhit ng isang diagram tulad nito:

Problema 1: Hindi alam ng 1C kung paano baguhin ang slope ng mga lagda ng sukat. Maaari kang maglagay ng mga lagda alinman sa pahalang o patayo. Ginagawa namin ito nang patayo.

Problema 2(mas seryoso): Wala akong alam na paraan para pilitin ang 1C na magdagdag ng porsyentong simbolo sa mga halaga ng punto at alamat ng sukat. Palaging ginagawa ang mga setting sa pamamagitan ng string ng format, at hindi pinapayagan ng platform ang paggamit ng arbitrary na character sa string ng format ng isang numero. Binibigyang-daan ka ng Chart object na magtrabaho kasama ang mga porsyento, ngunit kapag sinusuri lamang ang kaugnayan sa pagitan ng mga halaga sa buong serye. Kung mayroon lamang isang serye, kung gayon ang pagpili ng isang paraan para sa pagpapakita ng mga halaga bilang mga porsyento ay walang kabuluhan. Well, magdagdag tayo ng tala sa pamagat (sa %).

Lumipat tayo sa sumusunod na diagram:

Suliranin 3. Ang unang bagay na pumukaw sa iyong mata ay ang may tuldok na pagtaas sa pinagsama-samang histogram sa huling punto. Hindi alam ng 1C kung paano bumuo ng mga diagram, kaya kailangan nating makabuo ng sarili nating kulay ng background para sa huling serye.

Suliranin 4. Bilang karagdagan, ang kulay ng mga label ng halaga sa diagram ay iba - para sa serye 1 ito ay puti, para sa serye 2 ito ay itim. Hindi rin magagawa iyon ng 1C. Kailangan mong gumamit ng puti sa kabuuan.

Pakitandaan na ang ordinate scale ay nagsisimula sa 307. Ginagawa ito upang malinaw na makita ang pagtaas ng mga asset. Dahil kung ipapakita namin ang scale mula sa simula, pagkatapos ay sa tuktok ng bawat column ay makakakita kami ng isang maliit na increment bar, pagkatapos ng lahat, ito ay higit pa sa isang porsyento ng halaga sa Serye 1.

Problema 5. Mukhang may MinimumValue property ang Chart object at walang pumipigil sa amin na itakda ito. Nag-i-install kami. Oops. Lumalabas na hindi ito gumagana para sa mga histogram. sayang naman. Ngunit mayroong isang BasicValue property. Itakda ito sa 307 at kunin ang kailangan mo.

Gayunpaman, ang mabilis na pagsusuri sa ulat ay nagpapakita na ang batayang halaga ay gumagana lamang kapag ang Serye 1 ay gumaganap ng nangingibabaw na tungkulin Kung sa unang punto ay maliit ang halaga para sa Serye 1, at ang halaga para sa Serye 2 o para sa anumang iba pang serye ay naiiba sa una. , ay magiging malaki, pagkatapos ay makakakuha tayo ng ganito:

Hindi ako makahanap ng paraan upang magpakita ng pinagsama-samang histogram na na-normalize na may kaugnayan sa pinakamababang halaga. Matapos makipag-usap sa mga developer, napag-alaman na ang base na halaga ay palaging itinuturing na nauugnay sa Serye 1. Lumalabas na ang statically specifying series sa Configurator ay isang halos walang silbi na tampok na kailangan mong pag-aralan ang mga halaga ng serye bago ipinapakita ang histogram at muling italaga bilang Serye 1 ang isa na may pinakamataas na halaga.

Sa kumperensya ng kasosyo, ang isyung ito (mga hindi gumaganang property na Minimum at MaximumValue) ay itinaas ng ilang beses, ngunit nariyan pa rin ang mga bagay. Marahil ay may kakulangan ng pagtitiyaga sa mga user na bihirang gumana sa mga diagram sa 1C.

Bakit bihira? Dahil malinaw na ipinakita ng sumusunod na error kung gaano kalala ang mga bug sa mekanismo ng 1C diagram. Kung nagkaroon ng bug ng antas na ito sa mekanismo ng pagkalkula ng payroll o sa pagpapatakbo ng sistema ng kontrol sa pag-access, ito ay natukoy kaagad.

Napakadaling magparami.

Suliranin 6. Gumagawa kami ng layout mula sa ilang pahalang na seksyon. Naglalagay kami ng 2-3 diagram sa bawat isa. Ipinapakita namin ang lahat ng ito sa isang dokumento ng spreadsheet, pinupunan ang mga halaga ng mga diagram sa programmatically. At biglang nakita namin na ang mga caption sa pahalang na sukat ng isa sa mga diagram ay nawawala. Sa debugger nakita namin na sa napuno na lugar ng layout ay may mga pangalan ng mga puntos, ngunit pagkatapos isagawa ang pamamaraan

TabDoc.Output(Area1);

Ang diagram ay napupunta sa TabDoc nang walang mga pangalan ng mga punto. Ang error ay "lumakad" mula sa diagram patungo sa diagram, ngunit patuloy na ginagawa. Hindi bababa sa release 8.2.17.

Kinailangan kong magsulat ng isang piraso ng code na umuulit sa mga Drawings sa nagreresultang dokumento ng spreadsheet at nagtatakda ng mga tamang pangalan ng punto. Ito ay medyo nakapagpapaalaala sa isang sinaunang platform 7 bug, kapag ang halaga ng isang variable ay itinalaga lamang sa pangalawa o pangatlong beses.

Suliranin 7.

Imposibleng magpakita ng transparent na 1C chart sa Excel. Ang Diagram 1C ay may "Transparent na background" na pag-aari at maaari itong magamit kapag nag-output sa isang dokumento ng spreadsheet. Ngunit kapag na-export sa Excel, ang mga 1C diagram ay pinapalitan ng mga larawan, at mga opaque sa ganoong paraan.

Sinubukan kong gumamit ng 1C upang palitan ang diagram ng isang transparent na larawan. Ang diagram ay mayroong GetImage() na pamamaraan.
Susunod, na-upload ko ang BMP file sa binary data (maaaring sa isang file)at lumikha ng isang bagong object ng Imahe gamit ang constructor. Kung, kapag lumilikha ng isang larawan mula sa isang pinagmulan, itakda ang pangalawang parameter sa True, ang larawan ay magiging transparent. At ang isang transparent na larawan ay maaaring i-export sa Excel kung PictureSize=ChangeProportionally.

Ngunit narito ang problema - ang gayong conversion ay lubhang nakakasira sa orihinal na diagram at walang praktikal na kahulugan:

Ngunit sa pangkalahatan ang tool ay kapaki-pakinabang at medyo multifunctional. Huwag maging tamad na gamitin ito - at ang iyong mga ulat ay magiging napakalinaw.

Tulad ng para sa paglutas ng aking partikular na problema, sa huli ay iginuhit ko ang lahat ng mga diagram nang direkta sa Excel. At naging maayos ang lahat.

Maaari mong kunin ang library para sa pagguhit ng mga chart sa Excel mula sa aking artikulo dito: