Penggunaan pilihan di skd. Kumpulan data - Kueri

SKD 1C adalah singkatan dari Sistem Komposisi Data. SKD 1C adalah jalan baru menulis laporan dalam 1C, yang memungkinkan pengguna untuk menyesuaikan laporan sepenuhnya sendiri.

Kelemahan dari SKD 1C adalah pengaturannya cukup rumit dan tidak semua pengguna mempelajarinya dengan cepat.

Menulis laporan ACS memerlukan kemampuan untuk bekerja dengan kueri dalam 1C, yang telah kita bahas di.

Apa teknologi untuk membuat laporan SKD 1C:

  • Tulis permintaan 1C ke 1C SKD, yang menyediakan data
  • Tentukan SKD 1C peran bidang (bidang kalkulasi, sumber daya)
  • Masukkan pengaturan standar SKD 1C.

Pengguna memiliki kesempatan untuk mengubah banyak pengaturan sesuka hati.

Apa teknologi untuk membuat laporan tentang teknologi sebelumnya:

  • Tulis permintaan dalam program 1C
  • Kembangkan formulir pengaturan (unik untuk laporan) yang memungkinkan Anda mengubah hanya N pengaturan yang dipilih oleh pemrogram
  • Tulis kode (program) untuk mengeksekusi kueri dan membangun formulir tercetak laporan.

Seperti yang Anda lihat, SKD 1C memiliki keuntungan yang signifikan bagi pengguna dan pemrogram:

  • Programmer - menyelamatkan Anda dari menulis program untuk melakukan laporan dan pengaturan
  • Pengguna - Mendapat akses signifikan ke pengaturan laporan.

Di semua konfigurasi 1C baru, semua laporan hanya akan digunakan pada SKD 1C.

Mari kita lihat cara membuat laporan SKD 1C sendiri dari awal.

Kami membuat laporan SKD 1C

Di konfigurator, klik tombol file baru (menu File/Baru).

Pilih jenis file Laporan Baru.

Laporan baru akan dibuat. Masukkan nama - tanpa spasi untuk konfigurasi, sinonim untuk pengguna.

Mari buat skema utama ACS 1C.

Kami membuat permintaan untuk laporan SKD 1C

Ada banyak sumber data untuk SKD 1C. Untuk menggunakan, misalnya, dua kueri terpisah - pertama tambahkan "Dataset - Join", lalu beberapa kueri.

Dalam contoh kami, kami akan menggunakan kueri sederhana.

Mari kita menulis kueri untuk mendapatkan datanya.

Bekerja dengan pembuat kueri tidak berbeda dari biasanya, kami membahasnya di .

Sebagai hasil dari permintaan tersebut, SKD 1C akan membuat daftar bidang yang tersedia untuk digunakan dan mengisinya dengan nama default.

Jika namanya tidak nyaman, Anda dapat mengubahnya di sini.

Perhatikan bahwa kami menggunakan parameter &StartDate dalam kueri. Di SKD 1C ada parameter (tanggal) secara default bernama &Periode dan Anda dapat menggunakannya.

Selain itu, Anda tidak perlu menentukannya secara langsung dalam permintaan - ini akan digunakan secara otomatis. Namun, ada kehalusan - ini berlaku untuk semua tabel, termasuk gabungan kiri dan hal lain yang dapat menimbulkan kesalahan.

Misalnya, Anda mendapatkan saldo di awal bulan, dan dengan join kiri Anda mendapatkan data untuk hari ini. Saat digunakan, Titik akan diterapkan ke semua tabel secara merata dan kueri tidak akan berfungsi dengan benar.

Pengaturan SKD 1C

Pada tab Sumber Daya, tentukan bidang yang akan dijumlahkan untuk total (yaitu angka). Anda dapat menentukan fungsi penjumlahan untuk bidang. Secara default, ini adalah Sum (yaitu menjumlahkan angka dari semua baris dan mendapatkan total), atau Anda dapat menggunakan Rata-rata, Hitung, Maksimum, dll.

Pada tab Parameter, nonaktifkan yang tidak kita perlukan, dan aktifkan yang kita perlukan. Di sini Anda juga dapat mengatur nama manusia dari parameter tersebut.

Pengaturan utama dilakukan pada tab Pengaturan:


Mari kita buka dalam mode Perusahaan. Harap dicatat bahwa kami tidak melakukan pemrograman, menggambar formulir, dan hal-hal lain. Untuk mengatur parameter, klik tombol Pengaturan.

Pengguna melihat bentuk pengaturan yang hampir sama dengan pemrogram.

Voila. Laporan sedang bekerja.

Pengaturan SKD 1C

Semua pengaturan laporan SKD 1C dilakukan dengan menekan tombol Pengaturan. Setidaknya di template default. Dimungkinkan untuk membuat sendiri formulir laporan SKD 1C, dan kemudian pengaturan dapat ditransfer ke formulir lain yang digambar oleh programmer secara mandiri.

Seret Gudang dari Kolom ke Baris.

Mari seret Nomenklatur ke Gudang.

Klik OK dan buat laporannya. Hore - kami baru saja mengubah cara kerja laporan dalam mode Pemrograman tanpa pemrograman.

Klik klik kanan ke Baris (atau salah satu bidang) dan pilih Pengelompokan baru.

Perluas bidang Gudang dan pilih salah satu bidangnya, misalnya jenis Gudang.

Setelah berpikir, kami ingat bahwa kami ingin beberapa bidang ditampilkan dalam satu kolom sekaligus. Klik bidang yang baru dibuat dua kali dengan tombol kiri mouse. Anda dapat menambahkan bidang di sini.

Jika Anda menambahkan pengelompokan baru tetapi tidak memilih bidang, berarti "Semua bidang" (ditampilkan sebagai "Data detail"). Sepertinya ini.

Ambil pengelompokan kami (Gudang / Nomenklatur) dengan tombol kiri mouse dan seret ke pengelompokan baru (tipe Gudang).

Hasil dari pengaturan kita.

Selain pengaturan, yang efeknya mudah ditebak dengan namanya (Seleksi, Penyortiran, dll.), Ada tab "Other settings". Ini memungkinkan Anda untuk mengaktifkan atau menonaktifkan hal-hal seperti tampilan total, lokasi pengelompokan dalam kolom, dll.

Perhatikan bahwa pengaturan dapat diatur untuk keseluruhan laporan (Laporan dipilih) atau untuk baris bidang tertentu (pilih baris, seperti Nomenklatur, dan pilih Pengaturan:Nomenklatur).

Di artikel terakhir saya, saya sudah menulis bahwa 1C adalah platform paradoks. Sistem penautan data adalah salah satu paradoks tersebut. SKD dimaksudkan untuk merancang laporan yang kompleks dan melibatkan penggantian pemrograman laporan "manual" dengan merancang dalam perangkat multifungsi. Kemampuan untuk menggunakan ACS muncul di versi kedelapan, tetapi butuh waktu lama untuk versi 8.2 muncul sehingga 1C dapat menggunakannya di produk standarnya. Di satu sisi, ACS adalah toolkit multifungsi, yang dengannya Anda dapat membuat laporan yang sangat kompleks tanpa satu baris kode pun. Namun, sistem kontrol akses memiliki ambang masuk yang agak tinggi, sangat sulit untuk mempelajari dan mulai menggunakannya sepenuhnya "dari satu gerakan", karena antarmuka tidak sepenuhnya intuitif, tetapi sebagian besar panduan lengkap penggunaan hanya tersedia dalam bentuk literatur berbayar.

Dalam perjalanan saya mempelajari SKD, muncul masalah. Diperlukan untuk mendapatkan data dari tabel nilai pihak ketiga menggunakan bahasa kueri dan kemudian mengoperasikan data ini seperti data serupa dari tabel database (operasi pivot, pengelompokan, dan sebagainya). Dalam format klasik, kami akan membuat kueri yang menerima informasi dari tabel yang diteruskan ke kueri sebagai parameter.

Permintaan = Permintaan Baru(
"MEMILIH
| Tabel Nomenklatur,
| Meja Gudang
| DARI
| & TK SEBAGAI Tabel");
Permintaan.SetParameter("TK", TK);

Tetapi dengan SKD tidak sesederhana itu. Sayangnya, operasi yang dijelaskan di atas tidak dapat dilakukan dalam sistem komposisi data. Namun demikian, kemungkinan memuat tabel nilai eksternal dalam sistem diimplementasikan.

Di sini ada baiknya membuat sedikit penyimpangan lirik dan berbicara tentang Kumpulan Data. Dataset adalah sumber informasi dari mana SKD memperoleh data yang kemudian disusun menjadi sebuah laporan. Kumpulan data dibagi menjadi beberapa tipe, terutama menggunakan tipe "Permintaan", di mana programmer menulis kueri ke database. Jenis "Objek" digunakan untuk memuat data dari objek eksternal. Dalam kedua kasus tersebut, pada keluaran kami memiliki sekumpulan bidang tertentu yang diperoleh sebagai hasil dari mengeksekusi permintaan atau memuat objek eksternal. Nantinya, bidang ini dapat dioperasikan di tab "Pengaturan", bersama dengan konfigurasi mendetail dari struktur laporan. Untuk interkoneksi kumpulan yang berbeda di ACS, dimungkinkan untuk menentukan tautan kumpulan data di tab dengan nama yang sama. Tautan ini adalah analog langsung dari gabungan kiri dalam kueri klasik. Namun, perlu diperhatikan bahwa kueri di kumpulan data mana pun tidak "tahu" tentang keberadaan kumpulan data lain, pada akhirnya hubungan kumpulan data akan memengaruhi tata letak data sesuai dengan struktur yang ditentukan di tab "Pengaturan".

Kami merinci masalah ke beberapa contoh. Ada laporan standar Pernyataan penyelesaian organisasi konfigurasi ZiK 8. Perlu bahwa jenis perhitungan dalam laporan dikelompokkan ke dalam kelompok tertentu. Jenis-Grup Perhitungan Korespondensi disimpan dalam tabel nilai eksternal. Untuk memuatnya ke skema tata letak data utama, kami membuat "objek kumpulan data" dengan nama "Grup" (Gambar 2). Kami membuat koneksi dengan "kumpulan data permintaan" - "Akrual" berdasarkan jenis perhitungan (Gambar 3). Dalam "permintaan kumpulan data" - "Akrual" ada informasi tentang grup, kami menghapus semua kejadian. Setelah itu, pada tab "Pengaturan", kita dapat menggunakan bidang "Grup", yang nilainya dimuat dari sumber data eksternal (Gambar 4). Dalam fungsi pembuatan laporan, kami melengkapi pemuatan data eksternal.

Fungsi GenerateReport(Hasil = Undefined, DecodeData = Undefined, OutputToReportForm = True) Ekspor

//mendapatkan atau membentuk tabel nilai "Grup" yang diinginkan dan menuliskannya ke variabel dengan nama yang sama

ExternalData = New Structure();//membuat dan mengisi struktur data eksternal
ExternalData.Insert(Group);

UserPanelValue = GenericReports.GetUserPanelSettingsValuesofObject(ThisObject);
DefaultSettings = SettingsComposer.GetSettings();
GenericReports.GetAppliedSetting(ThisObject);
GenericReports.Generate GenericReport(ThisObject, Result, Data Dekripsi, OutputToReportForm, ExternalData);
SettingsComposer.LoadSettings(Pengaturan Default);
Hasil Pengembalian;

Fungsi Akhir

Jika kita membuat laporan dari awal, maka kode awal pembuatan laporan akan terlihat seperti ini:

ExternalDataSets = Struktur baru;
ExternalDataSets.Insert("Grup", Grup); //Groups - tabel nilai yang diperlukan
DataCompositionSchema = GetLayout("MainDataCompositionSchema"); // tata letak kami dengan tata letak data
Pengaturan = DataCompositionSchema.Pengaturan Default;
Pembuat Tata Letak Tata Letak = Pembangun Tata Letak Tata Letak Data Baru;
LayoutLayout = LayoutComposer.Run(DataCompositionScheme, Setting);
DataCompositionProcessor = DataCompositionProcessor Baru;
DataCompositionProcessor.Initialize(LayoutLayout, ExternalDataSets);
TabDoc = Dokumen Spreadsheet Baru;
OutputProcessor = OutputProcessorofDataCompositionResultIntoSpreadsheetDocument Baru;
OutputProcessor.SetDocument(TabDoc);
OutputProcessor.Output(DataCompositionProcessor);

Membaca 9660 sekali

Perhatian! Ini adalah versi percobaan dari pelajaran yang materinya mungkin tidak lengkap.

Masuk sebagai siswa

Masuk sebagai siswa untuk mengakses konten sekolah

Sistem komposisi data 1C 8.3 untuk pemula: membuat koneksi antar set data

  • Tulis laporan yang menampilkan pelanggan dan produk favorit mereka. Setiap klien memiliki warna favorit, dan setiap produk memiliki warnanya sendiri - berdasarkan warna inilah Anda perlu menentukan produk "favorit". Misalnya, jika warna favorit Andrei adalah merah, maka salah satu makanan favoritnya adalah tomat (berwarna merah).
  • Terapkan dua set data ke laporan. Set pertama adalah data dari tabel referensi "Klien". Yang kedua - data dari tabel buku referensi "Makanan".
  • Melaksanakan koneksi dari dua set ini sehingga hanya produk favorit untuk masing-masing pelanggan yang tetap ada di laporan.

Membuat laporan baru

Buka database "Gastronom" di konfigurator dan buat laporan baru melalui menu utama:

Jenis dokumen - "Laporan eksternal":

Dalam bentuk laporan baru, tentukan nama "Lesson6" dan klik tombol "Buka skema komposisi data":

Biarkan nama skema default:

Menambahkan dataset pertama

Dalam skema yang terbuka, buka tab "Datasets" dan pilih "Add dataset - query" melalui tanda tambah hijau:

Kami memanggil konstruktor kueri:

Tentukan tabel "Pelanggan" dan bidang yang ingin Anda dapatkan dari kueri:

Menambahkan set data kedua

Menambahkan set data kedua:

Pilih itu (DataSet2) dan panggil lagi konstruktor kueri:

Tentukan tabel buku referensi "Makanan" dan bidang yang ingin Anda dapatkan dari permintaan:

Ini adalah teks permintaannya:

Harap dicatat bahwa kami sekarang memiliki dua set data dalam laporan: DataSet1 dan DataSet2. Masing-masing memiliki teks dan data permintaan sendiri.

Membuat nama lebih deskriptif

Untuk lebih jelasnya, mari ganti nama Dataset1 menjadi Clients dan Dataset2 menjadi Food.

Lakukan ini dengan mengklik dua kali pada setiap set:

Kami dapat menggunakan data dari masing-masing set dalam laporan kami. Kami akan mengakses data ini melalui bidang.

DI DALAM saat ini kumpulan "Pelanggan" memiliki bidang berikut: "Nama" dan "Warna Favorit", dan kumpulan "Makanan": "Nama" dan "Warna".

Kami melihat bahwa nama-nama itu berpotongan dan kami dapat dengan mudah menjadi bingung. Jadi mari kita ubah nama field menjadi lebih deskriptif.

Pilih set "Klien" dan ubah nama bidang seperti ini:

Kemudian pilih set "Makanan" dan ubah nama bidang seperti ini:

Memanggil konstruktor pengaturan

Terakhir, buka tab "Pengaturan" dan klik tongkat sihir untuk memanggil konstruktor pengaturan:

Jenis laporan - "Daftar...":

Pilih bidang untuk laporan dari kedua kumpulan:

Lihat mengapa sangat penting untuk mengubah nama bidang? Pada tahap pengaturan komposisi data, kami tidak melihat dari mana set bidang ini berasal. Kita hanya melihat nama mereka.

Memeriksa laporan

Kami menyimpan laporan dan membuatnya dalam mode pengguna:

Ya. Oke, tapi tidak juga. Apa yang disebut gabung silang dari dua set telah terjadi (Anda harus mengetahuinya dari gabungan dalam kueri yang kita pelajari di modul sebelumnya). Setiap rekaman dari tabel "Pelanggan" memiliki rekaman terkait dari tabel "Makanan".

Namun dari semua record ini, kita hanya perlu menyisakan yang memiliki field "FavoriteCustomerColor" sama dengan field "FoodColor":

Menghubungkan dua set data

Untuk melakukannya, mari tautkan dua kumpulan data (Pelanggan dan Makanan) dengan bidang Warna Favorit Pelanggan dan Warna Makanan.

Buka tab "Dataset Links" dan klik tombol plus untuk menambahkan tautan baru:

Atur parameter seperti yang ditunjukkan di bawah ini:

Saya akan membuat penjelasan.

Sumber dan penerima komunikasi. Nah, semuanya jelas di sini. Tentukan data set pertama (Pelanggan) dan set kedua (Makanan). saya ingin menggambar Perhatian khusus bahwa komunikasi akan dilakukan sesuai dengan prinsip sambungan kiri luar(kami membahasnya di topik permintaan di modul sebelumnya). Berdasarkan ini, Anda harus memilih set mana yang akan menjadi sumber dan penerima mana.

ekspresi sumber. Tentukan di sini ekspresi atau hanya bidang dari kumpulan data sumber (kami telah menentukan bidang Warna Favorit Klien dari kumpulan Klien di sini).

ekspresi penerima. Di sini kami menunjukkan ekspresi atau hanya bidang dari kumpulan data penerima (kami menunjukkan bidang Warna Makanan dari kumpulan Makanan di sini).

Dengan demikian, tautan ini akan meninggalkan dari daftar sebelumnya hanya baris-baris yang bidang WarnaPelanggan Favorit sama dengan bidang WarnaMakanan.

Simpan laporan dan jalankan dalam mode pengguna:

Besar!

Saya akan membuat penjelasan tentang lapangan " Kondisi komunikasi", tentang programmer pemula mana yang sering memukul tombak mereka.

Kondisi tautan adalah bidang tambahan. Anda dapat menulis ekspresi di sana. melibatkan bidang hanya dari kumpulan data yang ditentukan dalam sumber tautan.

Dalam hal ini, untuk semua baris dari sumber tautan, ekspresi ini (kondisi tautan) akan diperiksa sebelum ditautkan. Dan jika ungkapan ini BENAR, maka upaya akan dilakukan untuk menautkan string ini ke string dari link sink. Jika ekspresinya SALAH, upaya seperti itu tidak akan dilakukan.

Selamat siang, para pembacaku! Hari ini kita akan terus melihat dasar-dasar sistem tata letak. Dalam rangkaian artikel ini, Anda mempelajari apa itu SKD dan mengenal komponen utama SKD. Kami juga mempertimbangkan input data untuk membuat laporan dan mempelajari tahapan utama menjalankan laporan di ACS. Selain itu, banyak yang berkesempatan menguji ilmunya dengan melalui yang kecil. Dan sekarang Anda bisa melihat isi artikel dan melihat apa yang akan dibahas di dalamnya.

Kumpulan data - kueri.

  1. Tidak seperti kueri biasa, kueri komposisi data tidak berisi klausa TOTAL. Sebagai gantinya, total dibuat di tab Sumber Daya. Pada tab ini, Anda memilih bidang yang ingin Anda dapatkan ekspresi akhirnya. Dan pada tab "Pengaturan", ditunjukkan di bagian mana hasil akan diperoleh, yaitu pengelompokan yang sesuai dibuat di sini dan sumber daya dihitung darinya. Anda dapat membaca lebih lanjut tentang ini di artikel.
  2. Poin selanjutnya menyangkut pengaturan pemilihan. Ada dua kemungkinan implementasi.
    1. Melalui pengaturan opsi laporan. Ini dapat dilakukan di tab "Pengaturan" - "Pilihan". Jika kami menggunakan opsi ini, maka ini yang paling fleksibel, karena Anda dapat menentukannya jenis yang berbeda perbandingan yang bahkan dapat dipilih oleh pengguna. Selain itu, saat menggunakan opsi ini, kondisi pemfilteran diterapkan dalam kueri itu sendiri. Jika laporan didasarkan pada kueri kumpulan menggunakan tabel sementara, maka pemilihan akan memengaruhi semua tabel kueri kumpulan tempat bidang filter muncul.
    2. pada tingkat permintaan. Jika kami menggunakan kueri, maka kami tidak dapat menggunakan apa pun selain operasi kesetaraan.
      Pengecualian terjadi ketika kita perlu melakukan pemfilteran data "keras" dengan beberapa nilai. Katakanlah dengan nilai pencacahan. Di tab "Parameter", kita dapat mengatur kondisinya. Jika kami mengaktifkan tanda "Batasi aksesibilitas", pengguna tidak akan dapat membatalkan ketentuan ini.
  3. Penyortiran juga lebih tepat untuk diterapkan pada level pengaturan varian laporan.
    1. Jika Anda menentukan bidang pengurutan dalam permintaan, lalu pengguna akan menentukan bidang lain dalam menyiapkan opsi laporannya, maka pengaturan kami yang dilakukan pada tingkat permintaan akan memiliki prioritas terendah. Pengurutan yang ditetapkan oleh pengguna dalam penyiapan varian laporan akan dilakukan terlebih dahulu. Oleh karena itu, jika Anda perlu menyetel penyortiran "secara default", gunakan setelan varian laporan di Configurator.
    2. Dan jika Anda perlu mengatur penyortiran "keras" dalam laporan sehingga pengguna tidak dapat mengubahnya? Kemudian kami mengatur penyortiran di tingkat permintaan, dan pada tab "Kumpulan Data", kami mengatur batasan bidang. Pilih kumpulan data yang diinginkan dan di kolom "Pembatasan bidang" - "Pemesanan" centang kotaknya.

Opsi tabel virtual.

  • Konstruksi tabel virtual register akuntansi, register akumulasi, register informasi tergantung pada tanggal yang ditentukan. Ini bisa berupa satu tanggal atau interval, seperti, misalnya, untuk tabel saldo dan perputaran. ACS dirancang sedemikian rupa sehingga jika laporan didasarkan pada tabel virtual, maka perlu untuk membiarkan pengguna memilih interval atau tanggal berapa untuk menghasilkan laporan. ACS secara otomatis menambahkan parameter periode yang diperlukan ke skema tata letak.
  • Jika daftar saldo virtual atau daftar informasi tabel virtual dipilih dalam kueri, maka parameter yang disebut "Periode" ditambahkan secara otomatis.
  • Jika tabel saldo dan perputaran virtual atau tabel perputaran virtual dipilih dalam kueri, maka parameter "Awal Periode" dan "Akhir Periode" ditambahkan secara otomatis.
  • Apa yang harus dilakukan jika Anda perlu mendapatkan saldo di akhir periode? Ada dua cara:
    1. Kami pergi ke tab "Parameter" dan di parameter "Periode" di kolom "Ekspresi" kami menulis yang berikut:
      &AkhirPeriode. Aktifkan juga bendera "Batasi aksesibilitas".
    2. Kami benar-benar membuang parameter "Periode" dan menggantinya dengan parameter "Periode Akhir". Siapkan parameter opsional meja maya:
      • Buka tab "Datasets" dan klik tombol "Query Builder...".
      • Pada tab "Komposisi Data" di sudut kiri atas, klik tombol untuk membuka dialog "Opsi Tabel Virtual" (ini adalah tombol persegi abu-abu dengan roda gigi di latar belakang meja kecil).
      • Di bidang "Periode" pada kotak dialog, tulis: &PeriodeAkhir.
      • Sekarang dalam teks kueri kumpulan data di parameter tabel virtual, parameter ini akan muncul dikelilingi oleh kurung kurawal:
DaftarAkumulasi. Sisa Barang. Sisa(((&EndPeriod) ), ) Sisa SEBAGAI

Kurung kurawal menunjukkan ekstensi bahasa kueri komposisi data. Ini juga menunjukkan bahwa parameter ini opsional. Artinya, jika tidak ditentukan dalam skema komposisi data, maka saldo akan diterima pada tanggal saat ini.

Ekstensi bahasa kueri.

Ini adalah instruksi khusus yang disertakan dalam kurung kurawal di badan permintaan. Petunjuk ini menentukan bidang dan parameter yang dapat dioperasikan saat menyiapkan varian laporan. Data dalam kurung kurawal akan ditampilkan dalam tata letak meskipun kotak centang LengkapiOtomatis dinonaktifkan.

Saat kumpulan data kueri dibuat, secara default, bidang skema komposisi data yang tersedia diisi secara otomatis berdasarkan kueri yang dibuat (kotak centang "Pelengkapan Otomatis" dicentang pada tab "Kueri Data").

Bagaimana cara kerja bidang skema komposisi data yang tersedia secara otomatis?

    1. Bidang dari daftar pilihan kueri dan bidang turunannya akan tersedia.
    2. Jika kita memilih dari daftar akumulasi, maka bahkan bidang register yang tidak termasuk dalam permintaan akan tersedia di bidang komposisi data. Tetapi bidang ini hanya tersedia untuk dipilih (dalam ekspresi bersyarat)
      dan mereka tidak dapat digunakan sebagai bidang keluaran.
    3. Parameter dari tabel virtual "Period", "StartPeriod" dan "EndPeriod" menjadi
      tersedia untuk seleksi.
    4. Jika kondisi "keras" ditentukan dalam teks permintaan, maka parameter ini juga akan ditambahkan pada tab "Parameter".

Jika kotak centang LengkapiOtomatis dikosongkan, bidang skema komposisi data akan dihapus, tetapi parameter yang dimasukkan dalam kurung kurawal di badan kueri tetap ada.

Bagaimana saya bisa mengisi kolom skema komposisi data sendiri?

Hapus centang pada kotak "Pelengkapan Otomatis" pada tab "Kumpulan Data".

Klik tombol "Pembuat Kueri...". Mari buat kueri berikut:

PILIH Sisa. Nomenklatur SEBAGAI Nomenklatur, Tetap. Kuantitas SEBAGAI Daftar Akumulasi Kuantitas. Sisa Barang. Sisa(((&EndPeriod) ), ) Sisa SEBAGAI

Pada tab "Tabel", kita dapat mengatur parameter tabel virtual untuk semua tabel.

Sekarang pada tab "Komposisi Data", pilih tab "Bidang". Di sini kami mengatur bidang pemilihan, yang mana
akan ditampilkan dalam diagram tata letak.

Bidang "Dan.." berarti catatan anak akan disertakan dalam pemilihan
bidang dari jenis yang kompleks, seperti direktori dan dokumen, dll. Jika bidangnya adalah , seperti angka, maka tidak mungkin untuk meletakkan bendera di bidang "DAN..".

Pilih dua bidang "Nomenklatur" dan "Kuantitas". Untuk bidang "Nomenklatur" setel bendera "Dan ..",
untuk memilih rekaman anak. Dapatkan kueri berikut:

PILIH Sisa. Nomenklatur SEBAGAI Nomenklatur, Tetap. Kuantitas SEBAGAI Kuantitas (PILIH Nomenklatur. * , Kuantitas) Register akumulasi. Sisa Barang. Sisa(((&EndPeriod) ), ) Sisa SEBAGAI

Dalam kueri baru, di dalam kurung kurawal, ada satu lagi bagian PILIH - ini adalah teks ekstensi yang menunjukkan bidang yang akan tersedia di tata letak. Kolom "Nomenklatur.*" menunjukkan bahwa kolom "Nomenklatur" dan detail turunannya, seperti "Kode", "Nama", dll., akan tersedia. Jadi, kami mengisi sendiri bidang tata letak.

Namun saat ini kami tidak dapat menggunakan margin dalam kondisi tata letak. Jika Anda pergi ke tab "Pengaturan" dan memilih tab "Pilihan", maka Anda tidak dapat menyetel ketentuan untuk salah satu bidang yang kami pilih di paragraf sebelumnya. Mengapa?

Pengenaan ketentuan pada parameter tabel virtual juga harus ditentukan pada tab Komposisi Data dari Pembuat Kueri. Di sudut kiri atas, klik tombol untuk membuka dialog "Opsi Tabel Virtual".
(ini adalah tombol persegi abu-abu dengan roda gigi di latar belakang meja kecil). Di bidang "Kondisi" pada kotak dialog, tulis: Nomenklatur. Sekarang dalam teks kueri kumpulan data dalam parameter tabel virtual, parameter "Nomenklatur" ini akan muncul dikelilingi oleh kurung kurawal:

DaftarAkumulasi. Sisa Barang. Sisa(((&EndPeriod) ), ((Nomenklatur) )) Sisa AS

Dalam bahasa kueri reguler, menentukan parameter terlihat seperti ini: Nomenklatur = &Nomenklatur. Namun dalam ekstensi bahasa kueri, ini ditulis secara berbeda. Hanya nama bidang yang ditentukan. Di sini kami tidak menentukan operasi kesetaraan, ketidaksetaraan, atau dalam hierarki, karena pengguna sendiri yang akan memilih operasi yang diinginkan dalam pengaturannya.

Pada tab Komposisi Data Pembuat Kueri, kita melihat tab lain, Ketentuan. Diperlukan untuk menentukan ketentuan untuk klausa WHERE dalam ekstensi bahasa kueri. Pilih bidang "Jumlah". Sekarang bidang ini tersedia dalam kondisi di tab "Pengaturan" - "Pilihan". Dan dalam teks permintaan, baris baru muncul, diapit tanda kurung kurawal.

(DI MANA Tetap. Kuantitas)

Jika pemilihan bidang kuantitas ditentukan, maka kalimat ini akan dimasukkan ke dalam kueri terakhir. Dimana jenis kondisi dan nilai perbandingan akan ditentukan dengan mengatur varian laporan.

Jadi, saya rasa cukup untuk materi hari ini. Jika masih ada poin yang kurang jelas, maka jangan sungkan untuk bertanya, karena disini disediakan kemungkinan untuk berkomentar. Akan segera disiapkan untuk mengkonsolidasikan materi ini, jadi berlanggananlah pembaruan di situs web kami agar tidak ketinggalan!

Dan dalam rangkaian pelajaran ini, kita akan melihat fungsi bahasa ekspresi SKD, berbicara tentang fitur sistem tata letak, dan juga menganalisis pengaturan dasar untuk bidang tata letak. Semoga berhasil dalam memahami materi yang sulit ini!

Di akhir artikel saya ingin menasihati Anda bebas dari Anatoly Sotnikov. Ini adalah kursus dari programmer yang berpengalaman. Dia akan menunjukkan kepada Anda secara terpisah bagaimana membuat laporan di ACS. Anda hanya perlu mendengarkan dengan cermat dan mengingat! Anda akan menerima jawaban atas pertanyaan seperti:
  • Bagaimana cara membuat laporan daftar sederhana?
  • Untuk apa kolom Bidang, Jalur, dan Judul pada tab Bidang?
  • Apa batasan bidang tata letak?
  • Bagaimana cara mengatur peran dengan benar?
  • Apa peran bidang tata letak?
  • Di mana saya dapat menemukan tab tata letak data dalam kueri?
  • Bagaimana cara mengkonfigurasi parameter di SKD?
  • Selanjutnya lebih menarik...
Mungkin, Anda sebaiknya tidak mencoba menjelajahi Internet untuk mencari informasi yang perlu? Apalagi semuanya sudah siap digunakan. Mulailah saja! Semua detail tentang apa yang ada di tutorial video gratis di halaman penulis pembuat lembut http://www..pngpembuat lembut 2015-12-07 14:51:12 2018-06-12 13:14:13 Sistem penyusunan data (SKD). Bagian 2.

Ekstensi Bahasa Kueri untuk Sistem Komposisi Data

Perpanjangan bahasa kueri untuk sistem komposisi data dilakukan dengan menggunakan instruksi sintaksis khusus yang diapit oleh kurung kurawal dan ditempatkan langsung di dalam teks kueri.

Elemen Sintaks Ekstensi Bahasa Kueri Sistem Komposisi Data

MEMILIH

Kalimat ini menjelaskan bidang yang dapat dipilih pengguna untuk keluaran. Sesudah ini kata kunci alias bidang dari daftar pilihan kueri utama, yang akan tersedia untuk penyesuaian, dicantumkan dipisahkan dengan koma.

Misalnya:

(PILIH Nomenklatur, Gudang)

Alias ​​​​bidang dapat diikuti dengan kombinasi karakter ".*", yang menunjukkan kemungkinan menggunakan bidang turunan dari bidang ini.

Misalnya, entri Nomenklatur.* menunjukkan kemungkinan menggunakan bidang turunan dari bidang "Nomenklatur" (misalnya, bidang "Nomenklatur.Kode"). Elemen SELECT hanya dapat hadir dalam kueri gabungan pertama.

DI MANA

Menjelaskan bidang tempat pengguna dapat menerapkan pilihan. Proposal ini menggunakan bidang tabel. Penggunaan alias bidang daftar pilih tidak diperbolehkan. Setiap bagian gabungan dapat berisi elemen WHERE-nya sendiri.

(DI MANA Nomenklatur.*, Gudang)

Contoh sederhana

Anda perlu mendapatkan penjualan untuk periode tersebut + menampilkan seluruh rentang, terlepas dari apakah ada penjualan atau tidak. Artinya, Anda perlu memilih data dari tabel omset register Penjualan, data dari direktori nomenklatur. Mari kita hilangkan pertanyaan mengapa kita membutuhkan semua nomenklatur.

Untuk mengatasi masalah tersebut, Anda dapat membuat kueri yang menghubungkan item dan tabel omset penjualan dengan join kiri, sebagai hasilnya, untuk item yang tidak terjual pada periode yang dipilih, kami akan mendapatkan nilai bidang rekanan, Perjanjian, Kuantitas, Jumlah= Nol. Permintaan seperti itu:

Pilih penawaran sprnome. Dink sebagai nomenklatur, biaya penjualan. Kontrol, penjualan, kontrak, penjualan, penjualan. Saat ini sebagai kuantitas, penjualan, biaya sebagai biaya dari buku referensi. Nomenklatur sebagai koneksi satu-terbungkus tulang belakang register. Pengembangan sebagai penjualan sprnies.

Inilah hasilnya:

rekanan Perjanjian Tata nama Kuantitas Jumlah
batal batal _Uji1 batal batal
LLC "Tanduk dan kuku" Perjanjian1 Sandal 10 1200
"Gazprom" kesepakatan keren Sepatu bot 5 13000
batal batal Galosh batal batal
batal batal Papan tulis batal batal

Dalam contoh ini, tidak ada penjualan item: "Galoshes" dan "Slates"

Dan semuanya akan baik-baik saja, jika kita mengelompokkan pemilihan berdasarkan rekanan, maka semua item yang tidak dapat dijual akan jatuh ke dalam pengelompokan terpisah, di mana Rekanan = Null, tetapi klien ingin memiliki pilihan sewenang-wenang dalam laporan oleh bidang rekanan (dari tentu saja, ini berarti rekanan dari register Penjualan). Bagaimana menjadi? Toh sebenarnya kita hanya perlu memfilter tabelnya Penjualan. Jika kita menggunakan pelengkapan otomatis di konstruktor ACS, maka bidang pilihan yang tersedia akan menyertakan bidang tersebut rekanan, semuanya tampak baik-baik saja, tetapi saat menjalankan laporan dengan pemilihan oleh rekanan, kami akan kehilangan semua catatan dari koneksi dengan nomenklatur. Misalnya, mari kita tentukan pilihan: rekanan = LLC Tanduk dan Kuku. Hasilnya akan terlihat seperti ini:

Tidak persis apa yang kita butuhkan, bukan?

Untuk mengatasi masalah tersebut, tentu saja Anda dapat menambahkan parameter ke kueri, misalnya, ke parameter tabel virtual Perputaran Penjualan, tetapi pada saat yang sama, fleksibilitas pengaturan jenis perbandingan hilang.

Ada solusinya: untuk ini, di pembuat kueri tab Tata letak data => tabel tambahkan bidang kondisi ke kondisi tabel virtual Perputaran Penjualan dan ubah aliasnya menjadi Seleksi Counterparty

Agar tidak membingungkan pengguna dengan kolom pilihan, nonaktifkan kolom kondisi rekanan dan ubah judul untuk bidang tersebut Seleksi Counterparty


Sebagai hasil dari eksekusi skema ini dengan pemfilteran yang diaktifkan oleh bidang rekanan, kueri yang dihasilkan akan berupa:

Pilih sprnome. Dink sebagai nomenklatur, penjualan omset. Kontraktor sebagai rekanan, penjualan, kontrak sebagai kontrak - kontrak, penjualan. Saat ini. Penyelesaian sebagai> kuantitas, biaya penjualan sebagai biaya, representasi (penjualan omset. Kontrak kontrak) sebagai personel kontrak, representasi, representasi (kontrol penjualan. RefNomenklatur.Representasi AS NomenklaturRepresentasi DARI Direktori.Nomenklatur AS ReferensiNomenklatur LEFT JOIN Daftar Akumulasi.Penjualan.Perputaran(&P , , , Counterparty = &P3 ) SEBAGAI Perputaran Penjualan ON SprNomenclature.Referensi = Perputaran Penjualan.Nomenklatur

Dan hasil yang sesuai:

rekanan Perjanjian Tata nama Kuantitas Jumlah
batal batal _Uji1 batal batal
LLC "Tanduk dan kuku" Perjanjian1 Sandal 10 1200
batal batal Sepatu bot batal batal
batal batal Galosh batal batal
batal batal Papan tulis batal batal

Test1 adalah grup dalam direktori Nomenklatur, di mana semuanya berada

Terlampir pada publikasi adalah Skema XML dari laporan yang digunakan dalam publikasi. Saya membuat skema di Otomasi Terintegrasi, tetapi menurut saya semuanya akan bekerja dengan baik di SCP dan UT 10

Meringkas

Contoh ini menunjukkan cara membuat pengaturan pilihan Anda sendiri di ACS dan menonaktifkan yang dibuat otomatis jika Anda merancang skema dengan bendera diaktifkan Pelengkapan otomatis.

Jika Anda memiliki cukup pengalaman untuk membuat sirkuit tanpa menggunakan Pelengkapan otomatis- maka nasehat ini tidak masuk akal.

Perangkat lunak yang digunakan

  • Program tangkapan layar Jepret!
  • editor file XML


Memuat...
Atas