Helah kecil untuk permintaan besar. Mencipta laporan "Hasil tukang"

  • 28.04.2024

Untuk menjana dan melaksanakan pertanyaan kepada jadual pangkalan data dalam platform 1C, objek bahasa pengaturcaraan khas digunakan Permintaan. Objek ini dicipta dengan memanggil konstruk Permintaan baru. Pertanyaan ini mudah digunakan apabila anda perlu mendapatkan sampel data yang kompleks, dikumpulkan dan diisih mengikut keperluan. Contoh klasik menggunakan pertanyaan adalah untuk mendapatkan ringkasan keadaan daftar pengumpulan pada masa tertentu. Selain itu, mekanisme pertanyaan memudahkan untuk mendapatkan maklumat dalam tempoh masa yang berbeza.

Badan permintaan ialah arahan yang mengikutnya permintaan itu mesti dilaksanakan. Badan permintaan menerangkan:

  • jadual pangkalan maklumat digunakan sebagai sumber data pertanyaan;
  • medan jadual yang perlu diproses dalam pertanyaan;
  • peraturan kumpulan;
  • hasil pengisihan;
  • dan lain-lain.
Arahan disusun dalam bahasa khas - bahasa pertanyaan dan terdiri daripada bahagian berasingan - bahagian, ayat, kata kunci, fungsi, operator aritmetik dan logik, ulasan, pemalar dan parameter.

Bahasa pertanyaan platform 1C sangat serupa dengan sintaks bahasa SQL yang lain, tetapi terdapat perbezaan. Kelebihan utama bahasa pertanyaan terbina dalam ialah: medan dereferencing, kehadiran jadual maya, kerja mudah dengan hasil, medan tidak ditaip dalam pertanyaan.

  • nilai enum;
  • data yang telah ditetapkan:
  • buku rujukan;
  • rancangan untuk jenis ciri;
  • carta akaun;
  • rancangan untuk jenis pengiraan;
  • pautan kosong;
  • nilai titik laluan proses perniagaan.
Juga, teks permintaan boleh mengandungi nilai penghitungan sistem yang boleh diberikan kepada medan dalam jadual pangkalan data: Jenis Pergerakan Pengumpulan, Jenis Akaun dan Jenis Pergerakan Perakaunan. Meminta akses data konfigurasi yang telah ditetapkan dan nilai penghitungan sistem menggunakan literal jenis fungsi MAKNANYA. Literal ini membolehkan anda meningkatkan kebolehbacaan pertanyaan dan mengurangkan bilangan parameter pertanyaan.

Contoh penggunaan literal MAKNANYA:
WHERE City = VALUE(Direktori.Cities.Moscow)
WHERE City = VALUE(Direktori.Cities.EmptyLink)
WHEREProductType = VALUE(Enumeration.ProductTypes.Service)
WHEREMovmentType = VALUE(MovementTypeAccumulation.Incoming)
WHERE RoutePoint = VALUE(BusinessProcess.BusinessProcess1.RoutePoint.Action1

2) Menggunakan arahan AUTO ORDER Pertanyaan boleh mengambil masa yang lama untuk diselesaikan, jadi jika pengisihan tidak diperlukan, maka adalah lebih baik untuk tidak menggunakannya sama sekali. Dalam kebanyakan kes, sebaiknya gunakan pengisihan arahan DISUSUN MENGIKUT.

Pesanan automatik berfungsi mengikut prinsip berikut:

  • Jika klausa ORDER BY dinyatakan dalam permintaan, maka setiap pautan ke jadual yang terdapat dalam klausa ini akan digantikan dengan medan yang mana jadual diisih secara lalai (untuk buku rujukan ini adalah kod atau nama, untuk dokumen - tarikh dokumen). Jika medan yang hendak diisih merujuk kepada direktori hierarki, maka pengisihan hierarki mengikut direktori ini akan digunakan.
  • Jika permintaan tidak mengandungi klausa ORDER BY, tetapi terdapat klausa TOTAL, maka hasil pertanyaan akan dipesan oleh medan yang terdapat dalam klausa TOTAL selepas kata kunci BY, dalam urutan yang sama dan, jika jumlah dikira oleh medan rujukan, kemudian dengan medan pengisihan secara lalai bagi jadual yang dirujuk.
  • Jika pertanyaan tidak mengandungi klausa ORDER BY dan TOTAL, tetapi terdapat klausa GROUP BY, maka hasil pertanyaan akan disusun mengikut medan yang terdapat dalam klausa dalam urutan yang sama dan, jika pengelompokan dijalankan oleh medan rujukan , kemudian secara lalai mengisih jadual medan yang dirujuk.
  • Jika pertanyaan tidak mengandungi klausa ORDER BY, TOTAL, atau GROUP BY, hasilnya akan disusun mengikut medan isihan lalai untuk jadual dari mana data dipilih, mengikut susunan yang dipaparkan dalam pertanyaan.

Jika pertanyaan mengandungi klausa TOTAL, setiap jumlah peringkat disusun secara berasingan.

3) Untuk mengelakkan mengulangi pertanyaan kepada pangkalan data apabila memaparkan hasil pertanyaan kepada pengguna (contohnya, membina pertanyaan atau memaparkan hasil pertanyaan menggunakan dokumen hamparan), adalah berguna untuk menggunakan arahan PAUTAN PENGENALAN, yang membolehkan anda mendapatkan perwakilan nilai rujukan.

Ia juga mungkin untuk menggunakan arahan PRESTASI- direka untuk mendapatkan perwakilan rentetan nilai jenis arbitrari. Perbezaan antara arahan ini ialah dalam kes pertama, jika arahan itu melepasi pautan, hasilnya akan menjadi rentetan Dalam kes lain, hasilnya akan menjadi nilai parameter yang diluluskan. Dalam kes kedua, hasil arahan akan sentiasa menjadi rentetan!

4) Jika permintaan mengandungi medan dengan jenis komposit, maka untuk medan tersebut menjadi perlu untuk menukar nilai medan kepada jenis tertentu menggunakan arahan EXPRESS, yang akan membolehkan anda mengalih keluar jadual yang tidak diperlukan dari gabungan kiri dengan medan jenis data yang kompleks dan mempercepatkan pelaksanaan pertanyaan.

Contoh:
Terdapat daftar untuk pengumpulan Barang Baki, di mana medan Pendaftar mempunyai jenis komposit. Dalam permintaan, Tarikh dan Nombor Dokumen Penerimaan Barangan dipilih, manakala apabila mengakses butiran dokumen melalui medan Pendaftar, banyak sambungan kiri jadual daftar pengumpulan dengan jadual dokumen pendaftar tidak berlaku.

PILIH
EXPRESS(Barang Baki.Pendaftar SEBAGAI Dokumen.Resit Barang).Nombor SEBAGAI Nombor Resit,
EXPRESS(Barang Baki.Pendaftar SEBAGAI Dokumen.Terimaan Barang).Tarikh SEBAGAI Tarikh Terima
DARI
Daftar Pengumpulan Barang Baki SEBAGAI Barang Baki

Jika tuangan jenis tidak dianggap boleh dilaksanakan, maka hasil tuangan jenis akan menjadi NULL.

5) Jangan lupa tentang arahan DIBENARKAN, yang bermaksud pertanyaan hanya akan memilih rekod yang mempunyai hak untuk pengguna semasa. Jika perkataan ini tidak dinyatakan, maka jika permintaan memilih rekod yang pengguna tidak mempunyai hak, permintaan akan diproses dengan ralat.

6) Jika pertanyaan menggunakan gabungan, dan beberapa bahagian cantuman mengandungi jadual bersarang (dokumen dengan bahagian jadual), dan sesetengahnya tidak, ia menjadi perlu untuk menambah senarai pemilihan dengan medan - jadual bersarang kosong. Ini dilakukan menggunakan kata kunci KOSONG, selepas itu alias medan yang akan membentuk jadual bersarang ditunjukkan dalam kurungan.

Contoh:
// Pilih medan Nombor dan Komposisi
// daripada jadual maya Document.Expenditure
PILIH Pautan.Nombor, JADUAL KOSONG.(No., Item, Kuantiti) SEBAGAI Komposisi
DARI Dokumen.Invois Perbelanjaan
GABUNGAN SEMUA
PILIH Pautan.Nombor, Kandungan.(Nombor Talian, Produk, Kuantiti)
DARI Document.Invois Document.Invois.Composition.*
7) Untuk mengelakkan baris pendua daripada muncul dalam hasil pertanyaan, anda harus menggunakan arahan tersebut PELBAGAI, kerana ia lebih visual dan mudah difahami, serta arahannya KUMPULAN OLEH digunakan untuk pengelompokan menggunakan fungsi agregat. Ksati, apabila menggunakan fungsi agregat, cadangan KUMPULAN OLEH mungkin tidak dinyatakan sama sekali, tetapi semua hasil pertanyaan akan dikumpulkan ke dalam satu baris.

Contoh:
// Ia adalah perlu untuk mengetahui rakan niaga secara umum
// barang telah dihantar untuk tempoh tersebut.
Pilih Pelbagai
Dokumen.Invois.Rakan Sejawat

8) Arahan KUMPULAN OLEH membolehkan anda mengakses medan peringkat atas, tanpa mengumpulkan hasil mengikut medan ini, jika fungsi agregat digunakan pada medan jadual bersarang. Walaupun bantuan 1C mengatakan bahawa apabila mengumpulkan hasil pertanyaan, fungsi agregat mesti dinyatakan dalam senarai medan pemilihan, dan sebagai tambahan kepada fungsi agregat dalam senarai medan pemilihan, ia dibenarkan untuk menunjukkan hanya medan yang digunakan untuk pengelompokan. .

Contoh:
PILIH
Penerimaan Barang dan Perkhidmatan (SUM (Kuantiti), Nomenklatur.
Pautan Penerimaan Barangan dan Perkhidmatan.
Penerimaan Barang dan Perkhidmatan
DARI
Dokumen. Penerimaan Barang dan Perkhidmatan BAGAIMANA Penerimaan Barang dan Perkhidmatan
KUMPULAN OLEH
Penerimaan Barang dan Perkhidmatan (Nomenklatur).

9) Arahan ISNULL bertujuan untuk menggantikan nilai NULL dengan nilai lain, tetapi jangan lupa bahawa parameter kedua akan ditukar kepada jenis yang pertama jika jenis parameter pertama ialah rentetan atau nombor.

10) Apabila mengakses jadual utama, anda boleh mengakses data dalam jadual bawahan secara bersyarat. Ciri ini dipanggil medan penyahrujukan jadual bawahan.

Contoh (cari dokumen yang mengandungi produk tertentu dalam bahagian jadual):
PILIH
Pintu masuk.Pautan
DARI
Document.Receipt Where Receipt.Products.Nomenclature = &Nomenklatur.

Kelebihan pertanyaan ini berbanding pertanyaan pada jadual bawahan Resit. Barang ialah jika terdapat pendua dalam dokumen, hasil pertanyaan akan mengembalikan hanya dokumen unik tanpa menggunakan kata kunci PELBAGAI.

11) Pilihan pengendali yang menarik DALAM- ini ialah semakan untuk memasukkan set tertib dalam set set tersebut (Field1, Field2, ..., FieldN) IN (Field1, Field2, ..., FieldN).

Contoh:
PILIH
Counterparties.Pautan
DI MANA
(Counterparties.Link, Products.Link) B
(PILIH Jualan.Pelanggan, Jualan.Produk
DARI RegisterAccumulation.Jualan SEBAGAI Jualan)
DARI
Direktori.
Direktori.Produk

12) Apabila boleh, gunakan jadual maya permintaan. Apabila membuat pertanyaan, sistem menyediakan beberapa jadual maya sebagai sumber data - ini adalah jadual yang juga hasil daripada pertanyaan yang sistem jana pada masa bahagian kod yang sepadan dilaksanakan.

Pembangun boleh secara bebas mendapatkan data yang sama yang sistem berikan kepadanya sebagai jadual maya, tetapi algoritma untuk mendapatkan data ini tidak akan dioptimumkan kerana:

  • Semua jadual maya diparameterkan, iaitu pembangun diberi peluang untuk menetapkan beberapa parameter yang akan digunakan oleh sistem apabila menjana permintaan untuk mencipta jadual maya. Bergantung pada parameter jadual maya yang ditentukan oleh pembangun, sistem boleh menjana pertanyaan BERBEZA untuk mendapatkan jadual maya yang sama, dan ia akan dioptimumkan dari segi parameter yang diluluskan.
  • Ia tidak selalu mungkin untuk pembangun mendapat akses kepada data yang sistem mempunyai akses kepada.
13) Dalam mod operasi pelanggan-pelayan, fungsi SUBSTRING() dilaksanakan menggunakan fungsi SUBSTRING() bagi pernyataan SQL yang sepadan yang dihantar ke pelayan pangkalan data SQL Server, yang mengira jenis hasil fungsi SUBSTRING() menggunakan peraturan kompleks bergantung pada jenis dan nilai parameternya, seperti serta bergantung kepada konteks di mana ia digunakan. Dalam kebanyakan kes, peraturan ini tidak mempunyai kesan ke atas pelaksanaan pertanyaan, tetapi ada kalanya panjang baris hasil maksimum yang dikira oleh SQL Server adalah penting untuk melaksanakan pertanyaan. Adalah penting untuk diingat bahawa dalam sesetengah konteks apabila menggunakan fungsi SUBSTRING(), panjang maksimum keputusannya mungkin sama dengan panjang maksimum rentetan panjang terhad, yang dalam SQL Server ialah 4000 aksara. Ini boleh menyebabkan pertanyaan ranap secara tidak dijangka:
Microsoft OLE DB Provider for SQL Server: Amaran: Pemproses pertanyaan tidak dapat menghasilkan rancangan pertanyaan daripada pengoptimum kerana jumlah panjang semua lajur dalam klausa KUMPULAN OLEH atau ORDER BY melebihi 8000 bait.
HRESULT=80040E14, SQLSTATE=42000, asli=8618
Untuk mengelakkan ralat ini, tidak disyorkan untuk menggunakan fungsi SUBSTRING() untuk menukar rentetan panjang tanpa had kepada rentetan panjang terhad. Sebaliknya, lebih baik menggunakan operator cast EXPRESS().

14) Gunakan dengan berhati-hati ATAU dalam pembinaan WHERE, kerana menggunakan keadaan OR boleh "menimbang" pertanyaan dengan ketara. Masalah boleh diselesaikan menggunakan reka bentuk UNITE EVERYTHING.

Contoh:
PILIH

DARI

DI MANA
_Kontraktor Demo.Pautan = &Pautan1

GABUNGAN SEMUA

PILIH
_Kontraktor Demo.NamaPenuh
DARI
Direktori._Demo Counterparties CARA _Demo Counterparties
DI MANA
_Kontraktor Demo.Pautan = &Pautan2

15) Keadaan TIDAK MASUK dalam pembinaan WHERE meningkatkan masa pelaksanaan pertanyaan, kerana ia adalah sejenis NOT (OR1 OR2 ... ORn), jadi untuk jadual besar cuba gunakan LEFT JOIN dengan keadaan IS NULL.

Contoh:
PILIH
_Kontraktor Demo. Pautan
DARI
Direktori._Demo Counterparties CARA _Demo Counterparties
Dokumen SAMBUNGAN KIRI._Pesanan Demo Pembeli BAGAIMANA CARA _Pesanan Demo Pembeli
Perisian _Demo Counterparties = _Demo Order of the Counterparty
DI MANA
_Demo Pesanan Pembeli ADALAH NULL

15) Apabila menggunakan Meja sementara Anda perlu mengindeks keadaan dan menyertai medan dalam jadual ini, TETAPI, apabila menggunakan indeks, pertanyaan boleh menjadi lebih perlahan. Oleh itu, adalah perlu untuk menganalisis setiap pertanyaan dengan dan tanpa indeks, mengukur kelajuan pelaksanaan pertanyaan dan membuat keputusan muktamad.
Jika anda meletakkan data dalam jadual sementara yang pada mulanya diindeks oleh beberapa medan, maka jadual sementara tidak lagi mempunyai indeks pada medan ini.

16) Jika anda tidak menggunakan Pengurus Meja Sementara, maka tidak perlu memadamkan jadual sementara secara eksplisit, ia akan dipadamkan selepas pertanyaan kelompok selesai, jika tidak, anda harus memadamkan jadual sementara dalam salah satu cara berikut: menggunakan perintah DESTROY dalam permintaan, memanggil TemporaryTableManager. Close() kaedah.

Untuk bekerja dengan pertanyaan, objek bahasa terbina dalam digunakan Permintaan. Ia membolehkan anda menerima maklumat yang disimpan dalam medan pangkalan data dalam bentuk sampel yang dibentuk mengikut peraturan yang ditetapkan.

Pertanyaan menerima maklumat awal daripada set jadual. Jadual ini mewakili data daripada jadual pangkalan data sebenar dalam bentuk yang mudah dianalisis. Mereka boleh dibahagikan kepada dua kumpulan besar: sebenar Dan maya.

Jadual sebenar, seterusnya, boleh menjadi objek (rujukan) atau bukan objek (bukan rujukan), Rajah. 97.

nasi. 97. Jadual pertanyaan

Ciri tersendiri bagi jadual sebenar ialah ia mengandungi data daripada mana-mana satu jadual sebenar yang disimpan dalam pangkalan data. Contohnya, jadual sebenar ialah Direktori.Pelanggan, sepadan dengan direktori Klien, atau Daftar Pengumpulan. Jadual Baki Bahan, sepadan dengan daftar pengumpulan Baki Bahan.

Jadual maya dibentuk terutamanya daripada data daripada berbilang jadual pangkalan data. Sebagai contoh, jadual maya ialah Daftar Pengumpulan.Baki Baki.BakiDanPergantian, dibentuk daripada beberapa jadual daftar pengumpulan Baki Bahan.

Kadangkala jadual maya boleh dibentuk daripada satu jadual sebenar (contohnya, jadual maya Prices.SliceLast dibentuk berdasarkan jadual daftar maklumat Harga). Walau bagaimanapun, persamaan semua jadual maya ialah ia boleh diberikan beberapa parameter yang menentukan data yang akan disertakan dalam jadual maya ini. Set parameter sedemikian mungkin berbeza untuk jadual maya yang berbeza, dan ditentukan oleh data yang disimpan dalam jadual pangkalan data sumber.

Jadual sebenar dibahagikan kepada jadual objek (rujukan) dan bukan objek (bukan rujukan).

DALAM jadual objek (rujukan). maklumat jenis data rujukan dibentangkan (direktori, dokumen, pelan jenis ciri, dll.). Dan dalam bukan objek (bukan rujukan)– semua jenis data lain (pemalar, daftar, dll.).

Ciri tersendiri jadual objek (rujukan). ialah ia termasuk medan Pautan yang mengandungi pautan ke rekod semasa. Di samping itu, untuk jadual sedemikian adalah mungkin mendapatkan perwakilan tersuai bagi objek. Jadual ini boleh menjadi hierarki, dan medan jadual tersebut boleh mengandungi jadual bersarang (bahagian jadual).

Algoritma yang mana data akan dipilih daripada jadual sumber permintaan diterangkan dalam teks permintaan dalam bahasa khas - bahasa pertanyaan . Teks permintaan terdiri daripada beberapa bahagian:

· perihalan permintaan;

· menggabungkan pertanyaan;

· susunan keputusan;

· AUTO ORDER;

· penerangan keputusan.

Satu-satunya bahagian mandatori permintaan ialah yang pertama – perihalan permintaan. Semua yang lain hadir mengikut keperluan.

Perihalan pertanyaan mentakrifkan sumber data, medan pemilihan, kumpulan, dsb.

Penggabungan pertanyaan mentakrifkan cara hasil berbilang pertanyaan digabungkan.

Susunan keputusan mentakrifkan syarat pesanan untuk baris hasil pertanyaan.

PESANAN AUTO membolehkan anda mendayakan susunan automatik baris hasil pertanyaan.

Perihalan ringkasan menentukan jumlah yang harus dikira dalam pertanyaan dan cara hasilnya harus dikumpulkan.

Perlu diingat bahawa apabila bahasa pertanyaan digunakan untuk menerangkan sumber data dalam sistem komposisi data, bahagian ringkasan bahasa pertanyaan tidak digunakan. Ini disebabkan oleh fakta bahawa sistem komposisi data secara bebas mengira keputusan berdasarkan tetapan yang dibuat oleh pembangun atau pengguna.

Sistem komposisi data direka untuk membuat laporan tersuai dalam sistem 1C:Enterprise 8.1 dan terdiri daripada beberapa bahagian utama.

Data awal untuk reka letak laporan mengandungi rajah susun atur data – ini adalah set data dan kaedah bekerja dengannya(Gamb. 98).

Pembangun mencipta skema komposisi data di mana dia menerangkan teks permintaan, set data, sambungan antara mereka, medan tersedia, parameter pengambilan data dan menetapkan tetapan reka letak awal - struktur laporan, susun atur data, dsb.

Sebagai contoh, gambarajah susun atur mungkin mengandungi set data berikut (Rajah 99).

nasi. 98. Skim am bekerja dengan sistem komposisi data

nasi. 99. Contoh rajah susun atur (set data dan pertanyaan menggunakannya)

Dalam Rajah. Rajah 99 menunjukkan tetingkap pereka bentuk skema komposisi data, yang mengandungi sumber data, teks pertanyaan dan medan yang dipilih oleh pertanyaan.

Laporan sistem komposisi data yang diterima pengguna bukan sekadar jadual rekod yang memenuhi pertanyaan. Ia mempunyai struktur hierarki yang kompleks dan boleh terdiri daripada pelbagai elemen, seperti kumpulan, jadual dan carta. Dalam kes ini, pengguna boleh menukar yang sedia ada atau membuat struktur laporan yang baharu sepenuhnya, mengkonfigurasi pemilihan dan reka bentuk elemen struktur laporan yang dia perlukan, mendapatkan transkrip untuk setiap elemen, dsb.

Sebagai contoh, struktur laporan berikut boleh ditentukan (Rajah 100):

nasi. 100. Struktur laporan yang mungkin

Laporan yang dijana mungkin kelihatan seperti ini (Gamb. 101).

Dalam laporan yang dibentangkan, jadual akan terdiri daripada entri daftar pengumpulan Perolehan Jualan tentang pelanggan dan perkhidmatan yang diberikan kepada mereka. Rekod ini dikumpulkan oleh tukang yang menyelesaikan pesanan. Dan dalam kumpulan senarai tuan akan dipaparkan.

Secara umum, sistem komposisi data ialah himpunan beberapa objek. Apabila menjana dan melaksanakan laporan, data dipindahkan secara berurutan dari satu objek sistem komposisi data ke yang lain, sehingga hasil akhir diperoleh - dokumen yang ditunjukkan kepada pengguna.

Algoritma interaksi objek ini adalah seperti berikut: pembangun mencipta skema susun atur data dan tetapan lalai. Secara umum, sejumlah besar laporan berbeza boleh dibuat berdasarkan satu skema komposisi data. Tetapan komposisi data—sama ada dibuat oleh pembangun atau diubah suai oleh pengguna—tentukan laporan yang akan dihasilkan dalam kes tertentu.

nasi. 101. Contoh laporan

Berdasarkan reka bentuk reka letak dan tetapan yang tersedia, pembina susun atur mencipta reka letak susun atur data. Ini adalah peringkat persediaan untuk pelaksanaan laporan. Susun atur gubahan data ialah tugas siap sedia untuk dilaksanakan oleh pemproses gubahan. Reka letak susun atur mengandungi pertanyaan yang diperlukan, susun atur kawasan laporan dan banyak lagi.

Pemproses komposisi data memilih data daripada pangkalan maklumat mengikut reka letak susun atur, agregat dan memformat data ini.

Hasil reka letak diproses oleh pemproses output, dan sebagai hasilnya, pengguna menerima dokumen hamparan yang terhasil.

Urutan operasi sistem susun atur boleh diwakili sebagai rajah berikut (Rajah 102):

nasi. 102. Skim pengendalian sistem susun atur

3.12.1. Membuat laporan "Daftar dokumen Penyediaan perkhidmatan"

Laporan Daftar dokumen Penyediaan perkhidmatan akan memaparkan senarai dokumen Peruntukan Perkhidmatan yang sedia ada dalam pangkalan data mengikut susunan tarikh dan nombornya.

Laporan. Beri ia nama Daftar Dokumen Penyediaan Perkhidmatan. Pada penanda buku asas klik" sedia". Dalam pereka bentuk skema komposisi data, tambah Set Data - Pertanyaan Pembina pertanyaan".

Pilih jadual dokumen objek (rujukan) sebagai sumber data untuk pertanyaan Penyediaan Perkhidmatan. Daripada jadual ini, pilih medan berikut (Gamb. 103):

Tarikh; Nombor; Stok; Cikgu; Pelanggan.

nasi. 103. Medan yang dipilih

Selepas itu, pergi ke penanda buku Pesanan dan nyatakan bahawa hasil pertanyaan harus dipesan mengikut nilai medan terlebih dahulu Tarikh, dan kemudian - mengikut nilai medan Peruntukan Perkhidmatan(Gamb. 104).

nasi. 104. Susunan output hasil pertanyaan

klik " okey" dan lihat pertanyaan apa yang dihasilkan oleh pembina pertanyaan.

Pergi ke penanda halaman tetapan dan tambahkan kumpulan baharu pada struktur laporan (Gamb. 105).

nasi. 105. Panel arahan tab Tetapan

Dalam tetingkap pemilihan medan kumpulan, klik butang " okey" dan pada penanda halaman Medan terpilih tetapkan medan yang akan dipaparkan dalam laporan:

Tarikh; Nombor; Stok; Cikgu; Pelanggan (Gamb. 106).

nasi. 106. Menyediakan struktur laporan

Daftar dokumen untuk penyediaan perkhidmatan. klik " Borang" dan lihat hasil laporan (Gamb. 107).

nasi. 107. Laporan Daftar dokumen untuk penyediaan perkhidmatan

Laporan. Namakan Penarafan Perkhidmatan. Pada penanda buku asas klik" Buka gambarajah komposisi data". Dalam kotak dialog Pereka Reka Letak yang terbuka, klik butang " sedia".

Dalam pereka bentuk skema komposisi data, buat Set Data - Pertanyaan(DataSet1) dan klik " Pembina pertanyaan".

Nomenklatur dan jadual maya daftar pengumpulan Jualan.Perolehan. Untuk menghapuskan kekaburan nama dalam pertanyaan, namakan semula jadual Nomenklatur kepada SprNomenklatur(menu konteks klik kanan – Namakan semula jadual).

Kemudian pilih daripada jadual medan RefNomenclature.Link Dan Perolehan Jualan.Perolehan Hasil(Gamb. 108).

nasi. 108. Medan yang dipilih

Pergi ke penanda halaman Sambungan dan ambil perhatian bahawa pereka bentuk telah membuat sambungan antara dua jadual yang dipilih - nilai perubahan daftar Tatanama mestilah sama dengan rujukan kepada elemen direktori Tatanama.

Satu-satunya perkara yang perlu dilakukan ialah menetapkan semula bendera Semua pada jadual daftar dan tetapkannya pada jadual direktori SprNomenklatur(Gamb. 109).

Menetapkan bendera Semua dalam jadual direktori bermakna semua elemen akan dipilih daripada direktori dan elemen ini akan diberikan nilai perolehan hasil daripada daftar. Oleh itu, hasil daripada permintaan itu, semua perkhidmatan akan hadir, dan bagi sesetengah daripada mereka perolehan hasil akan ditunjukkan. Bagi perkhidmatan yang tidak disediakan dalam tempoh yang dipilih, tiada apa yang akan ditunjukkan.

nasi. 109. Mewujudkan pautan jadual

Pergi ke penanda halaman syarat dan tetapkan syarat untuk memilih elemen daripada direktori Nomenklatur (Rajah 110). Anda perlu menggunakan parameter pertanyaan apabila menetapkan syarat pemilihan. Syarat pertama mestilah elemen yang dipilih bukan kumpulan (untuk melakukan ini, tukar ke mod Keadaan sewenang-wenangnya– tetapkan bendera percuma). Kemudian masuk ke padang syarat masukkan teks berikut:

SprNomenclature.ThisGroup = PALSU

Syarat kedua mestilah elemen yang dipilih ialah perkhidmatan (ini ialah Syarat mudah) (Gamb. 110).

nasi. 110. Syarat untuk memilih elemen

Kemudian, sebelum melaksanakan permintaan, dalam parameter JenisNomenklatur anda perlu lulus nilai penghitungan yang sepadan.

Pergi ke penanda halaman Kesatuan/Alias dan tentukan bahawa paparan item direktori akan mempunyai alias Perkhidmatan, dan medan daftar akan mempunyai alias Hasil(Gamb. 111).

nasi. 111. Kesatuan/Alias

Pergi ke penanda halaman Pesanan dan tentukan bahawa hasil pertanyaan harus diisih mengikut tertib menurun nilai medan Hasil. Penciptaan permintaan telah selesai, klik butang " okey". Lihat teks permintaan yang dihasilkan oleh pembina.

Pergi ke penanda halaman Sumber dan klik" >> ", supaya pereka bentuk memilih semua sumber yang tersedia yang jumlahnya boleh dikira. Dalam kes anda, ini adalah satu-satunya sumber Hasil(Gamb. 112).

nasi. 112. Sumber skema komposisi data

Pergi ke penanda halaman Pilihan(Gamb. 113).

nasi. 113. Pilihan komposisi data

Pada tab ini anda akan melihat tiga pilihan: Permulaan period, Akhir Tempoh Dan JenisNomenklatur. Parameter pertama ialah permulaan tempoh untuk mengira jumlah, yang kedua ialah penghujung tempoh. Akibatnya, jadual sumber akan mengandungi hanya perolehan yang dikira dalam tempoh yang dipindahkan.

Untuk parameter Permulaan period tetapkan tajuk yang akan dipaparkan kepada pengguna - tarikh mula.

Di sini anda harus sentiasa ingat bahawa jika anda melepasi tarikh sebagai parameter ini, maka tarikh itu juga mengandungi masa yang tepat kepada detik.

Katakan diketahui lebih awal bahawa pengguna tidak akan berminat dengan keputusan laporan dalam tempoh yang ditentukan dengan ketepatan sehingga satu saat. Dalam kes ini, dua ciri harus diambil kira.

Pertama sekali, pengguna harus terlepas daripada keperluan untuk menentukan masa apabila memasukkan tarikh. Untuk melakukan ini, tukar perihalan jenis sedia ada untuk parameter Permulaan period. Klik dua kali dalam sel Jenis yang tersedia, sepadan dengan parameter Permulaan period, tekan butang pilih " " dan di bahagian bawah set tetingkap pengeditan jenis data Komposisi kurma dalam makna Tarikh(Gamb. 114).

klik " okey".

Ciri kedua ialah secara lalai masa dalam tarikh ditetapkan kepada 00:00:00. Oleh itu, jika pengguna menetapkan tempoh laporan dari 10/01/2009 hingga 31/10/2009, jumlah daftar akan dikira dari permulaan hari 10/01/2009 00:00:00 hingga permulaan hari 31/10/2009 00:00:00. Oleh itu, data untuk hari ke-31, selain daripada permulaan hari, tidak akan dimasukkan dalam pengiraan, yang akan sangat mengejutkan pengguna. Untuk menghapuskan keadaan ini, tambahkan parameter lain di mana pengguna akan memasukkan tarikh tamat. Nilai parameter Akhir Tempoh akan dikira secara automatik supaya ia menunjukkan hari akhir tarikh yang dimasukkan oleh pengguna. Oleh itu, untuk parameter Akhir Tempoh pasang bendera Had ketersediaan.

nasi. 114. Mengedit gubahan tarikh

Menggunakan butang bar arahan, tambahkan parameter baharu bernama Tarikh Tamat (Rajah 115).

nasi. 115. Menambah parameter Tarikh Tamat

Untuk parameter ini, platform akan menjana tajuk secara automatik - tarikh luput. Biarkan ia tidak berubah. Tetapkan jenis nilai parameter - Tarikh. Dalam kes ini, bagi parameter Permulaan period, nyatakan komposisi tarikh - Tarikh.

Sila ambil perhatian bahawa secara lalai parameter yang anda tambahkan tersedia kepada pengguna (sekatan kebolehaksesan dalam lajur terakhir dikosongkan).

Pergi ke parameter Akhir Tempoh. Sistem telah menetapkan bendera sekatan ketersediaan untuknya. Jangan nyahtanda kerana nilai parameter ini akan dikira berdasarkan nilai yang ditetapkan oleh pengguna untuk parameter tersebut Tarikh luput.

Untuk menetapkan formula yang mana nilai parameter akan dikira Akhir Tempoh, gunakan bahasa ungkapan sistem gubahan data. Ia mengandungi fungsi EndPeriod(), yang membolehkan anda mendapatkan tarikh yang sepadan dengan penghujung tempoh, contohnya, hari yang ditentukan.

Dalam sel Ungkapan tetapkan parameter Akhir Tempoh ungkapan berikut:

Hasil daripada tindakan di atas, parameter susun atur akan kelihatan seperti ini (Rajah 116):

nasi. 116. Pilihan Sistem Reka Letak

Akhir sekali, konfigurasikan parameter JenisNomenklatur. Memandangkan laporan harus memaparkan hasil yang diterima hanya daripada penjualan perkhidmatan, nilai parameter JenisNomenklatur pengguna tidak sepatutnya mengubahnya. Ia mesti dinyatakan secara langsung dalam rajah susun atur sebagai . Bendera sekatan penggunaan parameter JenisNomenklatur platform yang dipasang secara lalai, jadi anda hanya perlu menentukan nilai penghitungan yang dikehendaki JenisNomenklatur dalam sel Maknanya, sepadan dengan parameter JenisNomenklatur(Gamb. 117).

nasi. 117. Menetapkan nilai parameter Jenis Nomenklatur

Teruskan membuat struktur laporan. Pada penanda buku tetapan tambah kumpulan dan sekali lagi tinggalkan medan kumpulan. Pada penanda buku Medan terpilih tentukan medan Perkhidmatan Dan Hasil(Gamb. 118).

Kemudian pergi ke penanda halaman Tetapan lain dan tetapkan tajuk laporan - Penarafan Perkhidmatan(Gamb. 119).

nasi. 119. Menetapkan tajuk laporan

Mulakan 1C:Enterprise dalam mod nyahpepijat.

Pilih laporan Penilaian perkhidmatan, tetapi sebelum menekan " Borang", buka tetapan dan pada penanda buku Pilihan Data tetapkan tempoh pelaporan dari 03/01/2004 hingga 04/30/2004 (Gamb. 120). Jika tarikh pembuatan dokumen anda berbeza daripada yang diberikan dalam contoh, maka tempoh pelaporan hendaklah ditetapkan secara berbeza.

nasi. 120. Tetapan laporan

klik " okey" dan jana laporan. Hasilnya akan kelihatan seperti ini (Gamb. 121):

nasi. 121. Keputusan menjalankan laporan

Sekarang tukar tarikh tamat kepada 31/03/2004. Data untuk 31 Mac disertakan dalam laporan (Rajah 122).

nasi. 122. Keputusan menjalankan laporan

3.12.3. Mencipta laporan "Hasil tukang"

Laporan Hasil tukang akan mengandungi maklumat tentang jumlah hasil yang diterima oleh Master LLC terima kasih kepada kerja setiap tuan, dengan butiran untuk semua hari dalam tempoh yang dipilih dan pecahan untuk pelanggan yang berkhidmat pada setiap hari. Menggunakan laporan ini sebagai contoh, anda akan belajar cara membina kumpulan berbilang peringkat dalam pertanyaan dan cara merentasi semua tarikh dalam tempoh yang dipilih.

Buat objek konfigurasi baharu Laporan. Namakan RevenueMasters dan jalankan pereka bentuk skema komposisi data utama.

Tambah Set Data - Pertanyaan(DataSet1) dan klik " Pembina pertanyaan". Pilih jadual maya daftar pengumpulan Jualan.Perolehan.

Tetapkan salah satu parameter jadual maya ini − Berkala. Untuk melakukan ini, pergi ke padang Meja dan klik" Pilihan Jadual Maya" (Gamb. 123).

nasi. 123. Menukar parameter jadual maya

Dalam tetingkap parameter yang terbuka, tetapkan nilai parameter Kekerapan – Hari(Gamb. 124). Tekan butang " okey".

nasi. 124. Parameter jadual maya

Selepas itu, pilih medan berikut dari jadual:

· SalesTurnover.Master;

· SalesTurnover.Tempoh;

· SalesTurnover.Client;

· Perolehan Jualan.Perolehan Hasil (Gamb. 125).

nasi. 125. Medan yang dipilih

Sekarang pergi ke penanda halaman Kesatuan/Alias dan tetapkan alias Hasil untuk padang Perolehan Jualan.Perolehan Hasil(Gamb. 126).

nasi. 126. Kesatuan/Alias

Pada penanda buku Pengelompokan tentukan bahawa pengelompokan akan dilakukan mengikut medan Cikgu, Tempoh Dan Pelanggan, dan nilai medan Perolehan akan disimpulkan (Rajah 127).

nasi. 127. Medan kumpulan

Pada penanda buku Pesanan nyatakan bahawa hasil pertanyaan akan diisih dalam tertib menaik bagi nilai medan Tempoh. klik " okey". Pertimbangkan teks permintaan yang dijana oleh pembina.

Sekarang beralih kepada mengedit skema susun atur data. Pada penanda buku Sumber klik" >> " dan pastikan bahawa pembina telah memilih satu-satunya sumber yang tersedia - Hasil.

Pada penanda buku Pilihan ikut langkah yang sama seperti semasa membuat laporan sebelumnya.

Untuk parameter Permulaan period tetapkan tajuk tarikh mula. Di padang Jenis yang tersedia tetapkan komposisi tarikh - Tarikh.

Untuk parameter Akhir Tempoh tetapkan ungkapan:

Tamat Tempoh(&Tarikh Tamat, "Hari")

Di padang Had ketersediaan menetapkan bendera sekatan ketersediaan.

Akhir sekali, tambah satu lagi parameter - Tarikh luput, tetapkan jenisnya sebagai Tarikh, gubahan tarikh - Tarikh.

Hasil daripada tindakan ini, parameter komposisi data akan kelihatan seperti ini (Gamb. 128):

nasi. 128. Pilihan komposisi data

Sekarang anda perlu membuat struktur laporan. Pada penanda buku tetapan buat dua kumpulan bersarang secara berurutan: peringkat atas - mengikut medan Cikgu, tertanam di dalamnya - mengikut medan Tempoh. Kemudian tambahkan kumpulan lain yang bersarang dalam kumpulan mengikut medan Tempoh, – Entri terperinci(tanpa menyatakan medan kumpulan) (Gamb. 129).

nasi. 129. Struktur laporan

Sekarang, berada di peringkat laporan global, pergi ke tab Medan terpilih dan tambah medan pada senarai Pelanggan Dan Hasil.

Akhir sekali, dari peringkat laporan global, pergi ke tab Tetapan lain dan tukar tetapan berikut. Untuk parameter tetapkan nilai Secara berasingan dan hanya sebagai hasilnya; untuk parameter tetapkan nilai Mulakan dan untuk parameter Tajuk tetapkan nilai Hasil tukang(Gamb. 130).

nasi. 130. Menetapkan output jumlah umum kepada permulaan

Jalankan 1C:Enterprise dalam mod nyahpepijat dan lihat hasil laporan "Hasil Foremen" untuk tempoh dari 03/01/2004 hingga 04/30/2004 (Gamb. 131).

nasi. 131. Keputusan menjalankan laporan

Jika anda masih ingat, laporan ini harus menunjukkan data dengan butiran untuk semua hari dalam tempoh yang dipilih. Kini hanya hari-hari yang terdapat entri bukan sifar dalam jadual daftar pengumpulan dipaparkan. Oleh itu, kini adalah perlu untuk menukar tetapan laporan supaya laporan termasuk setiap tarikh dari tempoh laporan itu dijana.

Untuk melakukan ini, kembali ke mod konfigurator dan perhalusi struktur laporan. Setakat ini, semua tetapan struktur yang anda buat telah digunakan pada keseluruhan laporan secara keseluruhan. Tetapi sistem komposisi data juga membolehkan anda menyesuaikan setiap elemen struktur secara berasingan.

Anda perlu menukar tetapan kumpulan Tempoh. Untuk pergi ke tetapan kumpulan tertentu ini, letakkan kursor pada kumpulan ini dalam medan struktur, dan kemudian klik " Tempoh" dalam panel arahan (Gamb. 132).

nasi. 132. Tetapan kumpulan Tempoh

Tetapan yang tersedia untuk kumpulan ini akan dipaparkan di bahagian bawah borang.

Pergi ke penanda halaman Mengumpulkan medan. Untuk padang Tempoh pasang Jenis tambahan – Hari(Gamb. 133).

nasi. 133. Menetapkan jenis penambahan tempoh

Oleh itu, anda menyatakan bahawa untuk kumpulan ini, rekod sedia ada dengan nilai sumber bukan sifar akan ditambah dengan rekod untuk setiap hari.

Selepas ini, anda harus menunjukkan dalam tempoh apa penambahan tersebut akan dilakukan. Dalam medan yang terletak satu baris di bawah, anda boleh memasukkan tarikh mula dan tamat tempoh ini. Tetapi menyatakan tarikh secara eksplisit tidak sesuai, kerana... pengguna boleh menjana laporan untuk tempoh sewenang-wenangnya. Penambahan tarikh perlu dilakukan bukan dalam beberapa tempoh tetap, tetapi tepat dalam tempoh yang dipilih oleh pengguna untuk keseluruhan laporan.

Untuk memastikan laporan berfungsi seperti ini, masukkan mod pengeditan medan pertama (contohnya, dengan mengklik dua kali padanya) dan klik pada butang kosong " X". Selepas itu, klik pada butang " T", anda akan dapat memilih jenis data yang dipaparkan dalam medan ini. Pilih Medan komposisi data(Gamb. 134).

nasi. 134. Memilih jenis data

klik " okey". Sekarang tekan butang pemilihan dalam medan input " " dan dalam tetingkap pemilihan medan yang terbuka, pilih pilihan Permulaan period(Gamb. 135). klik " okey".

nasi. 135. Pemilihan medan

Untuk medan input kedua, sama menunjukkan bahawa tarikh tamat tempoh akan diperoleh daripada parameter Tarikh luput(Gamb. 136).

nasi. 136. Tetapan kumpulan Tempoh

Mulakan 1C:Enterprise dalam mod nyahpepijat dan jalankan laporan Hasil tukang untuk tempoh dari 20 Mac 2004 hingga 20 April 2004 (Rajah 137).

nasi. 137. Keputusan menjalankan laporan

3.12.4. Mencipta laporan "Senarai Perkhidmatan".

Laporan Senarai perkhidmatan akan mengandungi maklumat tentang perkhidmatan yang disediakan oleh Master LLC dan pada harga berapa. Menggunakan contoh beliau, anda akan menjadi biasa dengan kemungkinan mendapatkan nilai terkini daripada daftar maklumat berkala dan memaparkan direktori hierarki.

Buat objek konfigurasi baharu Laporan. Namakan Senarai perkhidmatan dan jalankan Pereka Bentuk Skema Komposisi Data. Buat yang baharu Set Data - Pertanyaan(DataSet1) dan panggil pembina pertanyaan.

Pilih jadual direktori objek (rujukan). Nomenklatur dan jadual daftar maklumat maya Harga.CuttingLatest. Untuk menghapuskan kekaburan nama dalam pertanyaan, namakan semula jadual Nomenklatur kepada SprNomenklatur.

Panggil dialog untuk memasukkan parameter jadual maya HargaPemotonganTerkini dan menunjukkan bahawa tempoh akan berlalu dalam parameter Tarikh Laporan(Gamb. 138).

nasi. 138. Parameter jadual maya

Kemudian pilih medan berikut daripada jadual:

· SprNomenclature.Ibu bapa;

· HargaSlice of Latest.Price (Gamb. 139).

nasi. 139. Medan yang dipilih

Pergi ke penanda halaman Sambungan, tetapkan semula bendera Semua pada jadual daftar dan tetapkannya pada jadual direktori.

Pada penanda buku syarat tetapkan syarat untuk memilih elemen direktori Nomenklatur– elemen yang dipilih mesti sepadan dengan jenis item yang diluluskan dalam parameter permintaan JenisNomenklatur(Gamb. 140).

nasi. 140. Syarat untuk memilih elemen

Pada penanda buku Kesatuan/Alias menunjukkan bahawa bidang ibu bapa akan mempunyai nama panggilan Kumpulan Perkhidmatan, dan padang Pautan – Perkhidmatan(Gamb. 141).

nasi. 141. Kesatuan/Alias

Pergi ke penanda halaman Pengelompokan dan nyatakan bahawa pengelompokan akan dilakukan mengikut medan SprNomenclature.Ibu bapa. Tidak perlu menentukan nilai medan yang dijumlahkan (Rajah 142).

Rajah 142. Mengumpulkan medan

klik " okey". Tengok teks permintaan.

Teruskan mengedit gambarajah susun atur data. Pada penanda buku Sumber dengan menekan " >> " pilih satu-satunya sumber yang tersedia harga.

Pada penanda buku Pilihan tetapkan nilai parameter JenisNomenklatur Bagaimana Pemindahan Jenis-jenis Perkhidmatan. Selain itu, alih keluar sekatan kebolehaksesan untuk parameter Tarikh Laporan dan beri gelaran - Tarikh laporan. Di padang Jenis yang tersedia tetapkan komposisi tarikh - Tarikh. Untuk parameter Tempoh, sebaliknya, tetapkan sekatan ketersediaan (Gamb. 143).

nasi. 143. Parameter skema reka letak

Teruskan membuat struktur laporan. Pergi ke penanda halaman tetapan dan buat kumpulan mengikut medan Kumpulan Perkhidmatan, menunjukkan jenis kumpulan Hierarki. Dalam kumpulan ini, buat kumpulan lain tanpa menyatakan medan kumpulan. Ia akan mengandungi entri laporan terperinci (Gamb. 144).

nasi. 144. Struktur laporan dan medan yang diserlahkan

Pergi ke penanda halaman Medan terpilih dan nyatakan bahawa medan Perkhidmatan dan Harga akan dipaparkan dalam laporan (Gamb. 145).

nasi. 145. Struktur laporan

Akhir sekali, sesuaikan penampilan laporan pada tab Tetapan lain. Memandangkan laporan itu hanya akan menjadi senarai perkhidmatan yang disediakan, di mana harga untuk perkhidmatan tertentu adalah menarik, paparkan nilai sumber harga untuk setiap kumpulan dan untuk keseluruhan laporan secara keseluruhan tidak masuk akal.

Untuk mengelakkan jumlah besar daripada dipaparkan dalam laporan, tetapkan pilihan Susunan menegak bagi jumlah besar dalam makna Tidak.

Kemudian pergi ke tetapan kumpulan tertentu - Kumpulan Perkhidmatan. Untuk parameter Lokasi jumlah nyatakan nilai kumpulan ini Tidak. Kembali ke tetapan untuk keseluruhan laporan secara keseluruhan.

Untuk parameter Lokasi medan kumpulan masukkan nilai Secara berasingan dan hanya sebagai hasilnya(dengan cara ini laporan akan menjadi lebih "boleh dibaca"). Akhir sekali, tetapkan tajuk laporan - Senarai perkhidmatan.

Mulakan 1C:Enterprise dalam mod nyahpepijat dan pertama sekali buka daftar berkala harga.

Tambah nilai lain untuk perkhidmatan itu Diagnostik: harga baharu untuk perkhidmatan pada 1 April 2004 – 350 (Gamb. 146). Ini akan membolehkan anda menguji laporan.

nasi. 146. Rekod daftar "Harga".

Sekarang jalankan laporan Senarai perkhidmatan pada 31 Mac 2004 (Rajah 147).

nasi. 147. Keputusan menjalankan laporan

Laporan anda dengan betul menggambarkan harga perkhidmatan Diagnostik pada 31 Mac 2004 – 200 rubel.

Jalankan laporan sekali lagi, tetapi sekarang untuk tarikh yang berbeza - 04/01/2004 (Gamb. 148).

nasi. 148. Keputusan menjalankan laporan

Seperti yang anda lihat, harga baharu untuk perkhidmatan Diagnostik ditunjukkan - 350 rubel.

Laporan Penilaian pelanggan akan menunjukkan berapa pendapatan daripada penyediaan perkhidmatan kepada setiap pelanggan untuk keseluruhan tempoh operasi Master LLC. Contoh ini akan menunjukkan kemungkinan menggunakan gambar rajah untuk memaparkan hasil pertanyaan.

Gambar rajah ialah elemen kawalan yang direka untuk penempatan dalam jadual dan bentuk carta dan graf pelbagai jenis sistem 1C:Enterprise.

Secara logiknya gambar rajah ialah koleksi mata, siri dan nilai siri pada satu titik(Gamb. 149).

Sebagai peraturan, momen atau objek yang anda perolehi nilai ciri digunakan sebagai mata, dan ciri yang nilainya menarik minat anda digunakan sebagai siri.

Sebagai contoh, gambar rajah jualan jenis produk mengikut bulan akan terdiri daripada mata - bulan, siri - jenis produk dan nilai - perolehan jualan.

Gambar rajah sebagai objek bahasa terbina dalam mempunyai tiga kawasan yang membolehkan anda mengawal reka bentuk rajah: kawasan plot, kawasan tajuk dan kawasan legenda (Rajah 150).

Gambar rajah boleh dimasukkan ke dalam struktur laporan sebagai elemen yang berasingan. Semasa membuat laporan Penilaian pelanggan rajah akan digunakan dalam struktur tetapan skema komposisi data.

nasi. 149. Contoh rajah

nasi. 150. Kawasan Carta

Buat objek konfigurasi baharu dalam configurator Laporan. Namakan Penilaian Pelanggan, buka skema reka letak data utamanya.

Buat set data - pertanyaan(DataSet1) dan panggil pembina pertanyaan. Pilih jadual daftar pengumpulan maya Jualan.Perolehan dan daripadanya ada satu bidang - SalesTurnover.Client.

Kemudian tambah medan baharu (ikon Tambah dalam panel arahan di atas senarai medan) dan menggunakan pembina ungkapan, takrifkannya sebagai perbezaan antara hasil dan kos (Gamb. 151).

nasi. 151. Editor Ungkapan Medan Tersuai

Akibatnya, senarai medan yang dipilih akan kelihatan seperti ini (Gamb. 152):

nasi. 152. Medan yang dipilih

Pada penanda buku Kesatuan/Alias nyatakan bahawa medan yang dikira akan mempunyai alias pendapatan(Gamb. 153).

nasi. 153. Kesatuan/Alias

Pada penanda buku Pesanan nyatakan bahawa baris hasil hendaklah disusun mengikut tertib menurun bagi nilai medan pendapatan. klik " okey" dan lihat teks yang dihasilkan oleh pembina pertanyaan.

Pergi ke penanda halaman Sumber dan tambah medan pendapatan kepada sumber gambar rajah susun atur. Kemudian pergi ke penanda halaman tetapan untuk mewujudkan struktur laporan.

Tidak seperti semua laporan sebelumnya, struktur yang mengandungi pengelompokan, kali ini tambahkan gambar rajah pada struktur laporan (Rajah 154).

nasi. 154. Struktur laporan

Tambahkan kumpulan mengikut medan pada mata carta Pelanggan. Biarkan siri rajah tidak berubah.

Sekarang pergi ke penanda halaman Medan terpilih dan pilih medan pendapatan untuk output kepada laporan. Struktur laporan hendaklah dalam bentuk berikut (Gamb. 155):

nasi. 155. Struktur laporan dan tetapan carta

Pada penanda buku Tetapan lain tetapkan tajuk laporan - Penilaian pelanggan, dan juga pilih jenis carta – Isipadu bulat.

Mulakan 1C:Enterprise dalam mod nyahpepijat dan buka laporan Penilaian pelanggan(Gamb. 156).

nasi. 156. Carta 3D pai dalam laporan

Sila ambil perhatian bahawa apabila anda mengarahkan kursor anda ke atas sektor carta, petua alat muncul.

Buka tetapan laporan dan tukar jenis carta kepada Mengukur. Jana semula laporan (Gamb. 157).

    Nama: Daftar pengumpulan edaran. Laporan. Memilih data daripada satu jadual. Memilih data daripada dua jadual.

    Sasaran: Belajar untuk bekerja dengan daftar maklumat dan penghitungan apabila bekerja dalam 1C 8.

    Persediaan untuk kelas:

      Menggunakan kesusasteraan yang ditentukan, kaji topik yang dibincangkan dalam peta teknologi ini

    kesusasteraan:

4.1 Ignatov A.S. manual pendidikan dan metodologi "pengaturcaraan 1C", 2014

4.2 Ignatov. A.S. Nota kuliah mengenai disiplin "pengaturcaraan 1C" 2014.

    Senarai peralatan:

5.1 PC IBM peribadi.

5.2 1C versi 8.

    Senaman:

6.1 Kaji prosedur untuk mengakses data.

6.2 Ketahui cara bekerja dengan permintaan.

6.3 Kaji tetapan dalam configurator dan dalam mod 1C:Enterprise.

    Arahan kerja:

7.1 Buat laporan Daftar Dokumen.

7.3 Tukar parameter laporan.

8.1 Muka surat tajuk

      Tajuk dan tujuan kerja

      Selesai tugasan

      Jawapan kepada soalan keselamatan

      Kesimpulan tentang kerja yang dilakukan

    Soalan kawalan:

9.1 Apakah bahagian yang mengandungi teks permintaan, dan yang manakah diwajibkan?

9.2 Apakah struktur sintaksis asas bahasa pertanyaan.

9.3 Apakah sumber data permintaan.

9.4 Apakah alias dalam bahasa pertanyaan.

9.5 Apakah parameter permintaan.

9.6 Apakah tujuan Permintaan objek bahasa terbina dalam?

9.7 Apakah tujuan sistem komposisi data?

9.8 Apakah tujuan skema komposisi data?

9.9 Untuk apa tetapan komposisi data?

9.10 Apakah perbezaan antara jadual sebenar dan maya.

Permohonan:

BAHAGIAN TEORI

Kaedah untuk mengakses data

Sistem 1C:Enterprise 8 menyokong dua cara untuk mengakses data yang disimpan dalam pangkalan data:

    objek (untuk membaca dan menulis),

    jadual (untuk bacaan).

Cara objek mengakses data dilaksanakan melalui penggunaan objek bahasa terbina dalam. Ciri penting kaedah berasaskan objek untuk mengakses data ialah apabila mengakses mana-mana objek bahasa terbina dalam, kami mengakses set data tertentu yang terletak dalam pangkalan data sebagai satu keseluruhan. Teknologi objek memastikan mengekalkan integriti objek, menyimpan cache objek, memanggil pengendali acara yang sesuai, dsb. Akses jadual kepada data dalam 1C: Perusahaan 8 dilaksanakan menggunakan pertanyaan pangkalan data yang disusun dalam bahasa pertanyaan. Dalam teknik ini, pembangun mendapat peluang untuk beroperasi dengan medan individu jadual pangkalan data di mana data tertentu disimpan. Teknik jadual direka bentuk untuk mendapatkan maklumat daripada pangkalan data mengikut syarat tertentu (pemilihan, pengelompokan, pengasingan, menggabungkan beberapa sampel, mengira jumlah, dll.). Teknologi hamparan dioptimumkan untuk memproses sejumlah besar maklumat yang terdapat dalam pangkalan data dan mendapatkan data yang memenuhi kriteria yang ditetapkan.

BAHAGIAN PRAKTIS

Memilih data daripada satu jadual

Mari buat laporan Daftar dokumen untuk penyediaan perkhidmatan menggunakan sistem komposisi data. Laporan ini akan memaparkan senarai dokumen Peruntukan Perkhidmatan yang sedia ada dalam pangkalan data mengikut susunan tarikh dan nombornya.

    Dalam mod Configurator

Mari tambahkan objek konfigurasi Report pada configurator.

Pada tab Utama: nama laporan – Daftar Dokumen Penyediaan Perkhidmatan; paparan lanjutan - Senarai perkhidmatan yang disediakan untuk pelaporan dalam antara muka program. Mari buat skema komposisi data untuk laporan, klik butang Buka skema komposisi data. Dalam kotak dialog pereka bentuk reka letak yang terbuka, klik Selesai. Dalam pereka bentuk skema komposisi data, kami akan mencipta Set Data – pertanyaan.

nasi. 13.1. Mengepos invois dalam dua daftar

Kemudian klik butang Pembina Pertanyaan dan pilih jadual objek dokumen Peruntukan Perkhidmatan sebagai sumber data untuk pertanyaan. Daripada jadual ini kami memilih medan berikut:

Pada penanda buku Kesatuan/Alias kami menunjukkan bahawa bidang Pautan akan mempunyai nama panggilan Dokumen. Pada penanda buku Pesanan kami menunjukkan bahawa hasil pertanyaan harus disusun mengikut nilai medan Dokumen.

Pada penanda buku tetapan Mari buat tetapan standard yang menentukan cara maklumat akan dipaparkan dalam laporan.

Struktur hierarki laporan boleh mengandungi tiga elemen utama dalam pelbagai kombinasi:

    Pengumpulan - untuk memaparkan maklumat dalam bentuk laporan linear biasa.

    Jadual - untuk memaparkan maklumat dalam bentuk jadual.

    Gambar rajah - untuk memaparkan maklumat dalam bentuk gambar rajah.

Untuk menambah elemen baharu, dalam kes kami kumpulan, pilih elemen akar Laporan dalam pepohon struktur laporan dan panggil menu konteksnya. Dalam tetingkap pemilihan medan kumpulan, cuma klik OK. Pengumpulan Rekod Terperinci akan muncul dalam struktur laporan. Pada tab Medan terpilih, seret dan lepas daripada senarai medan yang tersedia medan yang akan dipaparkan dalam laporan:

    dokumen,

Akibatnya, tetingkap tetapan laporan sepatutnya kelihatan seperti ini: Ini melengkapkan penciptaan laporan.

nasi. 13.2. Buat laporan

    Dalam tetingkap untuk mengedit objek konfigurasi Laporan Penyediaan Perkhidmatan Pendaftaran Dokumen, pergi ke tab Subsistem.

Mari tandai subsistem Peruntukan Perkhidmatan dalam senarai.

    Dalam 1C: mod Perusahaan

Mari lancarkan 1C: Enterprise dalam mod nyahpepijat.

Dalam tetingkap 1C: Perusahaan yang terbuka, anda boleh melihat bahawa dalam panel tindakan bahagian Penyediaan perkhidmatan, dalam kumpulan arahan untuk melaksanakan laporan, arahan telah muncul untuk menjana laporan Daftar dokumen untuk penyediaan perkhidmatan. Selain itu, jika anda menggerakkan tetikus ke atasnya, petua alat akan muncul: Senarai perkhidmatan yang disediakan, yang ditentukan oleh sifat Paparan Lanjutan.

    Mari kita laksanakan arahan Daftar dokumen untuk penyediaan perkhidmatan.

Kami akan melihat borang laporan yang dijana secara automatik oleh sistem.

    Klik butang Jana.

nasi. 13.3. Borang laporan yang dijana secara automatik oleh sistem

Anda akan melihat laporan yang mengandungi daftar dokumen Penyediaan perkhidmatan.

Dengan mengklik dua kali pada medan Dokumen, anda boleh membuka dokumen sumber, serta melakukan tindakan "penyahsulitan" lain yang disediakan oleh sistem komposisi data.

BAHAGIAN TEORI

Asas, yang memudahkan pembangun pemula untuk belajar. Walau bagaimanapun, ia bukan analog langsung daripada mana-mana bahasa yang disenaraikan.

Berikut ialah beberapa ciri yang paling penting bagi bahasa terbina dalam:

  • pra-penyusunan; sebelum pelaksanaan, modul yang mengandungi teks dalam bahasa terbina dalam ditukar kepada kod dalaman;
  • caching modul yang disusun dalam ingatan;
  • menaip lembut - jenis pembolehubah ditentukan oleh jenis nilai yang terkandung di dalamnya dan boleh berubah semasa operasi;
  • kekurangan perihalan perisian objek konfigurasi; pembangun boleh menggunakan sama ada objek yang dibina ke dalam platform atau objek yang dicipta oleh sistem sebagai hasil reka bentuk visual penyelesaian aplikasi.

Bahasa terbina dalam berorientasikan acara. Tujuan bahasa terbina dalam sistem 1C:Enterprise ditentukan oleh ideologi mencipta penyelesaian aplikasi. Penyelesaian aplikasi dalam 1C:Enterprise 8.0 tidak dikodkan sepenuhnya. Kebanyakan penyelesaian aplikasi dicipta oleh pembangun melalui reka bentuk visual - mencipta objek konfigurasi baharu, menetapkan sifatnya, bentuk persembahan, perhubungan, dsb. Bahasa terbina dalam digunakan hanya untuk menentukan kelakuan objek penyelesaian aplikasi yang berbeza daripada standard, dan untuk mencipta algoritma pemprosesan data mereka sendiri.

Atas sebab ini, modul yang mengandungi teks dalam bahasa terbina dalam digunakan oleh sistem dalam situasi tertentu yang diketahui sebelum ini yang mungkin timbul semasa pengendalian penyelesaian aplikasi. Keadaan sedemikian dipanggil peristiwa. Peristiwa boleh dikaitkan dengan fungsi objek penyelesaian aplikasi atau dengan penyelesaian aplikasi itu sendiri, seperti itu.

Sebagai contoh, beberapa peristiwa dikaitkan dengan fungsi objek penyelesaian aplikasi Direktori, antaranya ialah acara BeforeWrite. Peristiwa ini berlaku sejurus sebelum data item direktori ditulis ke pangkalan data. Pembangun, menggunakan bahasa terbina dalam, boleh menerangkan algoritma yang, sebagai contoh, akan menyemak ketepatan data yang dimasukkan oleh pengguna. Dengan meletakkan algoritma ini dalam modul yang sesuai, pembangun akan memastikan bahawa setiap kali pengguna merekodkan item direktori, sistem akan melaksanakan algoritma yang dibuat oleh pembangun dan menyemak sama ada pengguna terlupa untuk mengisi butiran direktori yang diperlukan.

Oleh itu, kita boleh mengatakan bahawa bahasa terbina dalam adalah bahasa skrip untuk logik perniagaan pengaturcaraan, dan penggunaan modul dalam bahasa terbina dalam adalah bergantung kepada peristiwa, i.e. modul dilaksanakan apabila peristiwa tertentu berlaku semasa pengendalian penyelesaian aplikasi.

Jenis Data Pratakrif

Platform 1C:Enterprise 8.0 membolehkan pembangun menggunakan pelbagai jenis data.

Terdapat sejumlah besar jenis data yang ditakrifkan pada tahap platform itu sendiri. Contohnya ini jenis data primitif, seperti rentetan, nombor, tarikh, dsb.


Penerangan jenis data primitif:

  • NULL- nilai hilang. Digunakan, sebagai contoh, dalam pertanyaan.
  • Tidak ditentukan- nilai kosong, tidak ditentukan. Ia digunakan, sebagai contoh, apabila menilai lulus parameter jika parameter ini ditinggalkan semasa memanggil prosedur atau fungsi. Butiran yang mempunyai jenis data komposit adalah daripada jenis "Tidak ditentukan" secara lalai.
  • Boolean- mengandungi dua nilai: Betul atau Salah. Digunakan, sebagai contoh, dalam ungkapan logik - ungkapan logik adalah jenis "Boolean".
  • Tarikh- mengandungi tarikh dan masa. Nilai lalai ialah 01/01/01 00:00:00 tarikh mula era kita. Masa diukur dari awal hari. Ungkapan yang mempunyai jenis literal "tarikh" ditulis seperti berikut - "00010101000000". Mula-mula tahun ditulis, kemudian bulan, kemudian tarikh dan kemudian masa. Entri berikut mungkin: "20041031". Masa lalai ialah permulaan hari.
  • Talian- boleh berubah-ubah, tetap atau panjang tanpa had. Secara umum, adalah disyorkan untuk menggunakan rentetan panjang berubah-ubah.
  • Nombor- kedalaman bit nombor telah ditingkatkan kepada 38 bit.
  • taip- berfungsi untuk menentukan jenis nilai. Digunakan, sebagai contoh, untuk membandingkan jenis data. Tidak mempunyai literal dan dikembalikan oleh fungsi Type(<Имя типа>) atau TypeValue(<Значение>).

Juga, terdapat lebih banyak lagi jenis data yang kompleks. Sebagai contoh, platform menyokong beberapa jenis yang merupakan koleksi nilai universal: tatasusunan, struktur, senarai nilai, pepohon nilai, dsb.


Jenis data "Koleksi universal" - senarai (set) objek data dari sebarang jenis, nilai yang boleh diakses dengan kekerasan atau dengan indeks (kunci) yang ditentukan. Penomboran elemen pengumpulan bermula dari 0. Semua jenis data yang ditentukan dibuat hanya secara pengaturcaraan.

Susunan. Mewakili koleksi nilai bernombor jenis arbitrari. Elemen tatasusunan boleh diakses oleh indeksnya. Unsur-unsur tatasusunan boleh, khususnya, tatasusunan lain. Ini membolehkan anda membuat tatasusunan berbilang dimensi.

Struktur. Mewakili koleksi bernama yang terdiri daripada pasangan Nilai-Kekunci. Kunci hanya boleh menjadi rentetan, nilainya boleh dari jenis arbitrari. Elemen struktur boleh diakses dengan nilai kuncinya, i.e. dengan nama. Biasanya digunakan untuk menyimpan sebilangan kecil nilai, setiap satu dengan nama yang unik.

Surat-menyurat. Sama seperti Structure, ia adalah koleksi pasangan Kunci - Nilai. Walau bagaimanapun, tidak seperti Struktur, kunci boleh terdiri daripada hampir semua jenis.

Senarai nilai. Biasanya digunakan untuk menyelesaikan masalah antara muka. Membolehkan anda membina set nilai dinamik dan memanipulasinya (menambah, mengedit, memadam elemen, mengisih). Ia boleh mengandungi nilai apa-apa jenis di samping itu, jenis nilai yang disimpan dalam satu senarai boleh berbeza.

Jadual nilai. Jadual nilai membolehkan anda membina dan memanipulasi set nilai dinamik. Ia boleh diisi dengan nilai apa-apa jenis, dan dalam satu jadual jenis nilai yang disimpan boleh berbeza.

Pokok nilai. Pohon nilai ialah set nilai yang dijana secara dinamik untuk sebarang jenis, serupa dengan jadual nilai. Tidak seperti jadual nilai, baris pokok nilai boleh membentuk struktur hierarki: setiap baris dalam pokok boleh mempunyai satu set baris bawahan, setiap baris bawahan boleh juga mempunyai satu set baris bawahan, dan seterusnya. Dalam kes ini, mencari nilai, menyusun dan mendapatkan hasil boleh dijalankan sama ada mengikut tahap hierarki semasa, atau termasuk semua yang bawahan.

COMSafeArray. Mewakili pembalut objek pada tatasusunan SAFEARRAY berbilang dimensi

Prosedur SelectFromFileClick(Element) // Memilih fail dengan viewingFileSelectionDialog = NewFileSelectionDialog(FileSelectionDialogMode.Open); FileSelectionDialog.Directory = ""; FileSelectDialog.Preview = Benar; FileSelectionDialog.FilterIndex = 0; Jika FileSelectDialog.Select() Kemudian File = New File(FileSelectDialog.FullFileName); Imej = NewValueStorage(NewImage(FileSelectionDialog.FullFileName)); PaparanImej(); endIf; EndProcedure

Akhirnya aktiviti besar dengan banyak teks!

Apakah tujuan objek permintaan bahasa terbina dalam?

Pertanyaan – digunakan untuk mendapatkan maklumat yang disimpan dalam medan pangkalan data dalam bentuk pemilihan yang dibentuk mengikut peraturan yang ditetapkan. Penjelasan penting: dalam permintaan kami bekerjasama dengan pautan. Iaitu, ia seperti mereka mengambil foto tingkap kedai dan memberikan foto itu kepada anda. Dari foto ini, anda boleh mengetahui julat barangan, mengira berapa banyak, contohnya, oren di sudut, dsb. Tetapi, jika anda mengambil penanda dan melukis gambar zakar getah yang terletak di atas kaunter, anda harus ingat bahawa tindakan ini tidak akan membuat zakar getah muncul untuk dijual, oleh itu, anda perlu menghentakkan kaki anda ke dalam kedai dan meletakkan ini barangan rumah penting di kaunter. Dalam kes permintaan, kita mesti mendapatkan objek melalui rujukan.

Apakah tujuan sistem komposisi data?

Untuk membuat laporan tersuai dalam sistem 1C:Enterprise dan terdiri daripada beberapa bahagian; Malah, pada pendapat saya, ia adalah satu perkara yang sangat menyusahkan. Maeby, ini soal tabiat.

Apakah tujuan skema komposisi data?

Untuk mendapatkan data sumber untuk susun atur laporan;

Skim komposisi data ialah perkara yang menerangkan teks permintaan, set data, sambungan antara mereka, medan yang tersedia, parameter untuk mendapatkan data, tetapan susun atur awal;

Untuk apa tetapan komposisi data?

Tetapan susun atur data berfungsi bersama-sama dengan skema susun atur data untuk membentuk reka letak;

Apakah perbezaan antara jadual sebenar dan maya?

Jadual sebenar mengandungi data jadual yang (tiba-tiba) sebenarnya disimpan dalam pangkalan data;

Maya – terbentuk daripada data daripada beberapa jadual pangkalan data; Untuk jadual maya, anda boleh menetapkan beberapa parameter yang menentukan data yang disertakan dalam jadual maya. Set parameter sedemikian mungkin berbeza untuk jadual maya yang berbeza;

Apakah bahagian yang mengandungi teks permintaan, dan yang manakah diwajibkan?

Perihalan permintaan (diperlukan) – mentakrifkan sumber data, medan pemilihan, kumpulan;

Penggabungan pertanyaan – bagaimana hasil pelaksanaan berbilang pertanyaan akan digabungkan;

Keputusan pesanan - syarat untuk memesan baris hasil pertanyaan;

Pesanan automatik – mod susunan automatik baris hasil daripada pertanyaan;

Penerangan keputusan - apakah keputusan yang perlu dikira dalam permintaan dan cara mengumpulkan hasil;

Apakah binaan sintaksis asas bahasa pertanyaan?

pilih<что>DARI<откуда>

PESANAN<признак>

Apakah sumber data pertanyaan?

Sumber data pertanyaan ialah jadual (sebenar atau maya);

Apakah alias dalam sumber pertanyaan?

Keupayaan untuk memberikan nama rawak kepada medan pilihan. Sebagai contoh, jika kita tidak hanya memilih, tetapi menggunakan isnull, atau darab medan ini secara langsung dalam pertanyaan, maka pada akhirnya ia akan dinamakan sebagai "medan1". Jadi kami akan segera memanggilnya, kerana ia akan menjadi mudah;

Apakah parameter permintaan?

Parameter dilambangkan dengan & dan digunakan untuk memindahkan data tertentu kepada permintaan (contohnya, tarikh untuk beberapa daftar);

Apakah parameter jadual maya?

Bergantung pada jenis jadual maya, anda boleh menggunakan parameter jadual maya untuk menapis data. Sebagai contoh, dalam daftar pengumpulan parameter jadual maya ialah Permulaan Tempoh dan Akhir Tempoh;

Apakah gabungan kiri?

Dua meja. keadaan. Sertai kiri – SEMUA data daripada jadual pertama dan hanya data yang memenuhi syarat daripada jadual kedua akan disertakan;

Bagaimana untuk menggunakan pembina pertanyaan?

Dengan mudah. Buka sama ada dalam Skema Komposisi Data, atau klik kanan - pembina pertanyaan dalam sebarang prosedur;

Bagaimana untuk memilih data dalam tempoh tertentu untuk laporan?

Dalam Skema Komposisi Data - tetapan - dalam tetingkap bawah jadual - parameter.

Bagaimana untuk menyusun data dalam laporan?

Dalam pereka bentuk pertanyaan, pilih tab "Pesanan", pilih medan yang dikehendaki dan kaedah pengisihan;

Bagaimana untuk menggunakan data daripada berbilang jadual dalam laporan?

Gabungkan mereka menggunakan pertanyaan;

Bagaimana untuk menggunakan pengumpulan dalam struktur laporan?

Dalam Skim Komposisi Data, tab Tetapan, klik kanan pada "Laporan" - pilih kumpulan untuk memaparkan maklumat dalam bentuk laporan linear

Bagaimana untuk mendapatkan nilai terakhir daftar maklumat?

Dalam parameter jadual maya, tetapkan tempoh, dan pilih jadual maya "Nama Daftar Maklumat Terkini";

Bagaimana untuk memaparkan data hierarki dalam laporan?

Skema Komposisi Data – tetapan – kumpulan baharu – jenis – “hierarki”

Bagaimana untuk mengawal paparan jumlah kumpulan dan jumlah keseluruhan?

Sistem Komposisi Data – tetapan – dalam tetingkap bawah “Tetapan lain” - “Lokasi jumlah”; "Lokasi medan kumpulan", "Lokasi menegak jumlah besar"

Bagaimana untuk membuat laporan yang mengandungi carta?

Gambarajah Komposisi Data – Tetapan – Laporan – Klik Kanan – Carta Baharu

Bagaimana untuk menggunakan parameter dalam Skema Komposisi Data?