nilai 1s scd. Menggunakan karakteristik di SCD. Tempat kemiskinan di gedung cerdas


Selamat siang, para pembaca situs blog yang budiman! Terakhir kali kita telah menyentuh topik yang membahas tentang penggunaan fungsi tersebut. Dan hari ini, di bagian pertama dari rangkaian artikel ini, kita akan mengetahuinya Untuk apa peran bidang komposisi data digunakan?, dan pertimbangkan juga contoh pengisian peran ini.

Peran bidang ACS menunjukkan bidang apa ini. Setiap peran bidang dapat berisi propertinya sendiri. Misalnya, ia memiliki nilai numerik dan berisi nomor periode jika bidangnya adalah periode. Jika nilai properti “Periode” adalah 0 (nol), berarti kolom tersebut bukan titik. Atau properti “Dimensi” – berisi indikasi bahwa bidang tersebut adalah dimensi. Jika bidang tersebut merupakan dimensi, maka informasi ini digunakan saat menghitung total bidang saldo.

Untuk setiap bidang dalam skema komposisi data, Anda dapat menentukan peran. Peran mempengaruhi kebenaran perhitungan saldo. Khususnya saldo awal dan akhir menurut beberapa tabel. Jika tabel virtual “Saldo dan Perputaran” dipilih dalam kueri, maka saldo awal dan akhir dihitung menggunakan algoritma yang kompleks, terutama jika kita menggunakan spread tambahan berdasarkan periode.

Tetapi jika dalam kueri semua ini berfungsi dengan benar, berdasarkan sekumpulan bidang keluaran, maka dalam komposisi data keadaannya menjadi lebih buruk. Lagi pula, kita tidak tahu bidang apa yang sebenarnya akan dipilih pengguna. Semuanya akan bergantung pada pengaturan versi laporannya, yang dapat dia ubah kapan saja. Oleh karena itu, sistem komposisi data memiliki mekanismenya sendiri untuk menghitung saldo awal dan akhir untuk kumpulan data tertentu, dan peran yang digunakan untuk hal ini sesuai dengan itu. Mari kita buka dan lihat bahwa Anda dapat mengatur peran untuk setiap bidang.

Mari tambahkan kumpulan data kueri. Untuk melakukan ini, kita perlu mengaktifkan elemen root “Pembuat Kueri”. Mari kita beralih ke tabel virtual “Saldo dan Perputaran” dari register akumulasi. Apa yang kita lihat?

Seperti yang terlihat dari ilustrasi di atas, kita melihat bahwa untuk beberapa field perannya telah terisi. Hal ini terjadi karena kita telah menyetel tanda AutoComplete. Namun hal ini tidak selalu memungkinkan, jadi terkadang Anda harus memasukkan peran tersebut secara manual. Mari kita lihat beberapa contoh.

Mari kita asumsikan bahwa dalam query kita menggunakan , misalnya kita menggunakan operator bahasa query “SELECT”. Mari kita uraikan kondisi berikut ini:

SELEKSI KETIKA Produk TersisaRemainingsAndTurnover.Nomenclature = Nilai(Direktori.Nomenklatur.EmptyLink) MAKA Nilai(Direktori.Nomenklatur.Sampo) LAIN Produk TersisaSisaDanPerputaran.Nomenklatur AKHIR

Entri ini berarti bahwa jika item tersebut sesuai dengan tautan kosong (kami merujuk ke direktori nilai fungsi “Tata Nama”, tautan kosong), maka nilai elemen yang telah ditentukan sebelumnya akan dikembalikan. Mari kita asumsikan bahwa dalam konfigurasi kita ada elemen yang telah ditentukan sebelumnya dan disebut "Sampo". DI DALAM jika tidak, kami mengembalikan nilai item itu sendiri. Kami mendapatkan yang berikut:

Seperti yang Anda lihat, peran untuk bidang “Nomenklatur” tidak diisi. Namun seperti yang Anda lihat pada gambar, pada kenyataannya kami tidak memiliki peran yang dimasukkan untuk bidang “Field1”, dan dalam hal ini sisanya tidak akan dihitung dengan benar.

Ada contoh lain di mana peran tersebut tidak dapat diberikan secara independen. Misalnya, ini adalah penggunaan , yaitu, tabel nilai tertentu diberikan sebagai masukan, katakanlah, diambil dari database lain, dan saldo perlu dihitung darinya. Dalam hal ini, kita sendiri yang harus menetapkan peran. Kami akan melihat bagaimana hal ini dilakukan.

Di akhir artikel saya ingin merekomendasikan Anda yang gratis dari Anatoly Sotnikov. Ini adalah kursus dari programmer berpengalaman. Ini akan menunjukkan kepada Anda secara terpisah bagaimana membuat laporan dalam sistem kontrol akses. Anda hanya perlu mendengarkan baik-baik dan mengingatnya! Anda akan menerima jawaban atas pertanyaan-pertanyaan berikut:
  • Bagaimana cara membuat laporan daftar sederhana?
  • Untuk apa kolom Bidang, Jalur, dan Judul pada tab “Bidang”?
  • Apa batasan bidang tata letak?
  • Bagaimana cara mengkonfigurasi peran dengan benar?
  • Apa peran bidang tata letak?
  • Di mana saya dapat menemukan tab komposisi data dalam kueri?
  • Bagaimana cara mengkonfigurasi parameter dalam sistem kontrol akses?
  • Itu menjadi lebih menarik...
Mungkin sebaiknya Anda tidak mencoba menjelajahi Internet sendiri untuk mencari informasi yang diperlukan? Apalagi semuanya sudah siap digunakan. Mulailah saja! Semua detail tentang apa yang ada di video pelajaran gratis

Kami akan memberikan contoh pada konfigurasi "Manajemen". perusahaan manufaktur" versi 1.3.B basis informasi Untuk semua elemen direktori "Organisasi", properti "Gudang utama", "Rekanan terkait" dan "Negara penempatan" telah ditambahkan. Kita perlu membuat laporan dalam sistem komposisi data (DCS), di mana kita dapat menerapkan seleksi berdasarkan karakteristik tambahan organisasi.

Dalam hal ini, kita akan menggunakan fungsionalitas ACS standar untuk bekerja dengan karakteristik objek. Kami juga akan mempertimbangkan fitur pengembangan laporan tersebut, yaitu ketidakmampuan untuk menggunakan karakteristik tambahan dalam perancang skema komposisi data dalam mode “Configurator”. Yang terakhir tidak mengizinkan penggunaan bidang karakteristik dalam menyiapkan bidang yang akan ditampilkan dalam laporan, pemilihan, pengelompokan dalam struktur laporan, dan sebagainya.

Membuat laporan dan menyiapkan karakteristik

Mari kita membuat laporan sederhana. Ini akan memiliki satu kumpulan data dengan kueri berikut:

QueryText = "PILIH | Organisasi . Tautan SEBAGAI Organisasi,| Organisasi . TIMAH,| Organisasi . pos pemeriksaan |DARI Direktori" ;

Struktur laporan hanya akan menampilkan catatan rinci dengan semua bidang yang dipilih dalam kueri. Di desainer, pengaturan struktur laporan akan terlihat seperti ini:

Tangkapan layar di bawah menunjukkan keluaran laporan dengan pengaturan saat ini.

Besar. Sekarang mari kita beralih ke pengaturan karakteristiknya, tetapi sebelum itu, izinkan saya mengingatkan Anda garis besar umum pengoperasian mekanisme karakteristik di sebagian besar konfigurasi standar, termasuk soft starter. Untuk melakukan ini, beberapa objek konfigurasi digunakan.

  1. Rencana jenis karakteristik "Properti Objek".
  2. Daftar informasi "Nilai Properti Objek".

Secara grafis hubungan suatu objek basis informasi dengan karakteristiknya dapat digambarkan dengan menggunakan diagram berikut:

Mari kita uraikan skema ini secara lebih rinci. Daftar informasi "ObjectPropertyValues" dalam dimensi "Objek" berisi tautan ke elemen basis info tempat properti disimpan. Dalam contoh kita, ini adalah tautan ke elemen direktori “Organisasi”. Semua properti yang mungkin objek ditentukan berdasarkan jenis karakteristik (PVC) "Properti Objek". Nilai karakteristik yang disimpan dalam register detail bergantung pada tipe data yang tersedia untuk elemen rencana tipe karakteristik yang dicatat dalam dimensi Properti. Deskripsi ini seharusnya hanya memberikan Ide umum tentang mekanisme tambahan properti. Dalam praktiknya, ini lebih rumit.

Sekarang mari kita beralih ke pengaturan karakteristik dalam skema komposisi data. Untuk melakukan ini, luncurkan perancang kueri dan buka tab “Karakteristik”. Di sini Anda perlu menambahkan bidang untuk menghubungkan objek infobase dengan tabel properti dan nilai properti. Sebelumnya, kita melihat skema komunikasi antar objek konfigurasi untuk menyimpan tambahan. sifat/karakteristik. Berdasarkan informasi ini, pengaturannya adalah sebagai berikut:

Setelah itu, permintaan kumpulan data akan dilengkapi dengan instruksi untuk memperoleh karakteristik objek.

" PILIH | Organisasi . Tautan SEBAGAI Organisasi,| Organisasi . TIMAH,| Organisasi . pos pemeriksaan |DARI| Direktori . Organisasi SEBAGAI Organisasi | // Menambahkan. instruksi untuk memperoleh karakteristik |(KARAKTERISTIK| JENIS (Direktori. Organisasi) | JENIS KARAKTERISTIK Rencana Jenis Karakteristik. Properti Objek | Tautan KUNCI BIDANG | NAMA BIDANG Nama | NILAI JENIS PENERBANGAN JenisNilai | KARAKTERISTIK NILAI Informasi Daftar. Nilai Properti Objek | OBYEK BIDANG Objek | Properti POLEVIDA | Arti NILAI BERMANFAAT)"

Itu saja. Fungsi laporan sekarang memungkinkan Anda memilih bidang untuk karakteristik tambahan dalam laporan (bidang keluaran, pilihan, dll.). Tapi ada satu TAPI. Kita dapat menggunakan bidang ini dalam pengaturan laporan hanya dalam mode 1C:Enterprise. Di konfigurator kita tidak bisa melihat kolom karakteristik, yang logis, karena karakteristik dimasukkan oleh pengguna dan disimpan di basis informasi.

Namun jika perlu, kita bisa menambahkan kolom karakteristik, misalnya pada pilihan sebelum membukanya. Mari kita lihat contoh kecilnya.

Pekerjaan terprogram dengan karakteristik

Saat membuka formulir laporan, jalankan kode program berikut:

Pengaturan Saat Ini = Pengaturan Komposer. Pengaturan; CollectionCollection = Pengaturan Saat Ini. Pilihan. Elemen; // Tambahkan pilihan dengan tambahan. ke detail item "Gudang utama". [Gudang utama] // Tambahkan pilihan dengan tambahan. ke detail nomenklatur "Negara penempatan" NovEl = KoleksiSeleksi. Tambahkan(Jenis(" Pemilihan Tata Letak ElementData" ) ) ; NewEl.ComparisonType = DataCompositionComparisonType. Sama dengan; NewEl.LeftValue = . [Negara pengeposan]" ); NewEl. Penggunaan = Salah ; // Tambahkan pilihan dengan tambahan. ke detail item "Rekanan terkait" NovEl = KoleksiSeleksi. Tambahkan(Jenis(" Pemilihan Tata Letak ElementData" ) ); NewEl.ComparisonView = DataCompositionComparisonView. Sama dengan; NewEl.LeftValue = NewDataCompositionField("Organisasi . [Rekanan Terkait]" ); NewEl. Penggunaan = Salah ;

Kemudian jika kita melihat pilihan laporan pada mode 1C:Enterprise, kita akan melihat gambar berikut:

Oleh karena itu, kami secara terprogram menambahkan pilihan berdasarkan karakteristik tambahan dari direktori “Organisasi”, meskipun faktanya bidang ini tidak tersedia di perancang ACS. Perhatikan sintaks untuk mendefinisikan bidang komposisi data.

BidangKomposisiDataBaru("Organisasi . [Rekanan Terkait]" ) ,

yaitu teks “[Linked Counterparty]”. Jika kita menulis seperti ini:

BidangKomposisiDataBaru("Organisasi . Pihak Rekanan Terkait" ) ,

kemudian saat menjalankan laporan, ACS salah mendeteksi kolom tata letak. Dalam pengaturan, bidang pilihan akan disorot sebagai salah:

Untuk properti dan detail tambahan yang tidak tersedia di perancang ACS, saat mengakses secara terprogram, Anda harus menggunakan sintaks berikut:

BidangKomposisiData Baru(" . " )

Dengan demikian, kita dapat mengatur pengaturan laporan meskipun kolom tersebut tidak tersedia di desainer ACS.

Kesimpulan

Menggunakan pengaturan karakteristik di ACS dapat menyederhanakan pengembangan laporan yang kompleks secara signifikan. Meskipun ada beberapa kekurangan dalam pekerjaan, seperti kurangnya kemampuan untuk mengkonfigurasi pilihan tambahan. properti di perancang, dll., mekanisme karakteristik dapat dianggap sebagai langkah signifikan dalam menyederhanakan pengembangan laporan dalam sistem 1C:Enterprise.

Dalam artikel tersebut, kami tidak mempertimbangkan semua kemampuan karakteristik di ACS. Di luar cakupan artikel terdapat kemungkinan-kemungkinan seperti: penentuan sumber data secara sewenang-wenang, baik untuk properti maupun nilai karakteristik, serta pemilihan oleh pemilik untuk semua karakteristik yang tersedia di basis informasi, dan banyak lagi. Topiknya besar, ada ruang untuk memperluas lingkaran pengetahuan Anda.

Salah satu bidang terpenting perangkat lunak bisnis adalah pelaporan. Nasib sebuah bisnis, baik itu laporannya kantor Pajak atau diagram ketergantungan permintaan barang terhadap musim dan faktor lainnya. Sistem pelaporan yang kuat dan fleksibel yang memudahkan untuk mengekstrak data yang diperlukan dari sistem, menyajikannya dalam bentuk yang dapat dimengerti, memungkinkan pengguna akhir untuk mengkonfigurasi ulang laporan standar untuk melihat data dengan cara yang baru - ini adalah cita-cita yang setiap sistem bisnis harus diperjuangkan.

Dalam platform 1C:Enterprise, mekanisme yang disebut “Sistem Komposisi Data” (disingkat DCS) bertanggung jawab untuk menghasilkan laporan. Pada artikel kali ini kami akan mencoba memberikannya Deskripsi Singkat ide dan arsitektur mekanisme ACS dan kemampuannya.


ACS adalah mekanisme yang didasarkan pada deskripsi laporan yang bersifat deklaratif. Sistem kontrol akses dirancang untuk menghasilkan laporan dan menampilkan informasi dengan struktur yang kompleks. Omong-omong, selain mengembangkan laporan, mekanisme ACS juga digunakan di 1C:Enterprise dalam daftar dinamis, alat untuk menampilkan informasi daftar dengan fungsionalitas yang kaya (menampilkan daftar datar dan hierarki, desain baris bersyarat, pengelompokan, dll. ).

Sedikit sejarah

Pada versi pertama platform 1C:Enterprise 8, versi 8.0, laporan dibuat seperti ini:
  1. Satu atau lebih kueri ditulis dalam bahasa kueri 1C (bahasa mirip SQL, selengkapnya di bawah).
  2. Kode ditulis yang mentransfer hasil kueri yang dieksekusi ke dokumen atau bagan spreadsheet. Kode juga dapat melakukan pekerjaan yang tidak dapat dilakukan dalam kueri - misalnya, menghitung nilai menggunakan bahasa bawaan 1C.
Pendekatannya mudah, tetapi bukan yang paling nyaman - pengaturan visualnya minimal, semuanya harus diprogram “tangan-ke-tangan”. Dan salah satu kartu truf pada saat itu dari platform yang benar-benar baru “1C:Enterprise 8” adalah minimalisasi solusi aplikasi dari jumlah kode yang harus ditulis secara manual, khususnya melalui desain visual. Adalah logis untuk mengikuti jalur yang sama dalam mekanisme pelaporan. Hal ini dilakukan dengan mengembangkan mekanisme baru – Sistem Komposisi Data.

Salah satu ide yang menjadi dasar sistem kontrol akses adalah fleksibilitas dan penyesuaian laporan, yang dapat diakses oleh pengembang dan pengguna akhir. Idealnya, saya ingin memberikan pengguna akhir akses ke seperangkat alat desain laporan yang sama dengan pengembang. Adalah logis untuk membuat satu set alat yang tersedia untuk semua orang. Karena alat memerlukan partisipasi pengguna akhir, itu berarti penggunaan pemrograman di dalamnya harus dikurangi seminimal mungkin (yang terbaik adalah menghilangkannya sepenuhnya), dan pengaturan visual harus digunakan secara maksimal.

Rumusan masalah

Tugas tim pengembangan adalah membuat sistem pelaporan tidak berdasarkan algoritmik (yaitu melalui penulisan kode), tetapi pada pendekatan deklaratif untuk membuat laporan. Dan kami yakin masalah ini telah berhasil diselesaikan. Berdasarkan pengalaman kami, sekitar 80% pelaporan yang diperlukan dapat diimplementasikan menggunakan ACS tanpa satu baris kode pun (kecuali untuk menulis rumus untuk kolom kalkulasi), sebagian besar melalui pengaturan visual.
Pengembangan SDS versi pertama memakan waktu sekitar 5 orang-tahun.

Dua bahasa

Ada dua bahasa yang terlibat dalam pembuatan laporan. Salah satunya adalah bahasa kueri yang digunakan untuk mengambil data. Yang kedua adalah bahasa ekspresi komposisi data, dimaksudkan untuk menulis ekspresi yang digunakan di berbagai bagian sistem, misalnya dalam pengaturan komposisi data, untuk mendeskripsikan ekspresi bidang pengguna.

Bahasa kueri

Bahasa kueri didasarkan pada SQL dan mudah dipelajari bagi mereka yang ahli dalam SQL. Contoh permintaan:

Sangat mudah untuk melihat analog dari bagian standar untuk kueri SQL - SELECT, FROM, GROUP BY, ORDER BY.

Pada saat yang sama, bahasa kueri berisi sejumlah besar ekstensi yang bertujuan untuk mencerminkan masalah keuangan dan ekonomi secara spesifik dan meminimalkan upaya yang diperlukan untuk mengembangkan solusi aplikasi:

  • Mengakses bidang menggunakan titik. Jika bidang tabel adalah tipe referensi (menyimpan tautan ke objek tabel lain), pengembang dapat merujuknya dalam teks permintaan melalui ".", dan sistem tidak membatasi jumlah tingkat bersarang tautan tersebut (misalnya, Pesanan Pelanggan. Perjanjian. Organisasi. Telepon).
  • Pembentukan hasil yang multidimensi dan bertingkat. Total dan subtotal dibentuk dengan mempertimbangkan pengelompokan dan hierarki, level dapat dilalui dalam urutan apa pun dengan penjumlahan, dan konstruksi total yang benar berdasarkan dimensi waktu dipastikan.
  • Dukungan untuk tabel virtual. Tabel virtual yang disediakan oleh sistem memungkinkan Anda memperoleh data yang hampir siap pakai untuk sebagian besar tugas aplikasi tanpa perlu membuat kueri yang rumit. Dengan demikian, tabel virtual dapat menyediakan data saldo produk berdasarkan periode pada titik waktu tertentu. Pada saat yang sama, tabel virtual memanfaatkan informasi yang disimpan secara maksimal, misalnya, total yang dihitung sebelumnya, dll.
  • Tabel sementara. Bahasa kueri memungkinkan Anda menggunakan tabel sementara dalam kueri. Dengan bantuan mereka, Anda dapat meningkatkan kinerja kueri, dalam beberapa kasus mengurangi jumlah pemblokiran dan membuat teks kueri lebih mudah dibaca.
  • Permintaan batch. Untuk membuat bekerja dengan tabel sementara lebih nyaman, bahasa kueri mendukung pengerjaan dengan kueri batch - dengan demikian, pembuatan tabel sementara dan penggunaannya ditempatkan dalam satu kueri. Permintaan batch adalah urutan permintaan yang dipisahkan dengan titik koma (“;”). Permintaan dalam batch dieksekusi satu demi satu. Hasil dari mengeksekusi permintaan batch, bergantung pada metode yang digunakan, akan berupa hasil yang dikembalikan oleh permintaan terakhir dalam batch, atau array hasil dari semua kueri dalam batch dalam urutan yang diikuti oleh kueri dalam batch. .
  • Mengambil representasi bidang referensi. Setiap tabel objek (tempat direktori atau dokumen disimpan) memiliki bidang virtual - "Tampilan". Bidang ini berisi representasi tekstual objek dan memudahkan pekerjaan pembuat laporan. Jadi, untuk sebuah dokumen, bidang ini berisi semuanya informasi kunci- nama jenis dokumen, nomor dan tanggalnya (misalnya, “Penjualan 000000003 mulai 06/07/2017 17:49:14”), sehingga pengembang tidak perlu menulis bidang terhitung.
  • dan sebagainya.
Mekanisme permintaan secara otomatis mengubah permintaan dengan mempertimbangkan peran pengguna yang atas nama permintaan tersebut dieksekusi (yaitu, pengguna hanya akan melihat data yang berhak dilihatnya) dan opsi fungsional (yaitu, sesuai dengan yang dikonfigurasi dalam fungsionalitas solusi aplikasi).

Ada juga ekstensi bahasa kueri khusus untuk sistem kontrol akses. Perluasan dilakukan dengan menggunakan instruksi sintaksis khusus yang diapit kurung kurawal dan ditempatkan langsung di badan permintaan. Dengan menggunakan ekstensi, pengembang menentukan operasi apa yang dapat dilakukan pengguna akhir saat menyesuaikan laporan.

Misalnya:

  • MEMILIH. Kalimat ini menjelaskan bidang yang dapat dipilih pengguna untuk keluaran. Setelah kata kunci ini, alias bidang dari daftar pilihan kueri utama yang akan tersedia untuk konfigurasi dicantumkan, dipisahkan dengan koma. Contoh: (PILIH Barang, Gudang)
  • DI MANA. Bidang di mana pengguna dapat menerapkan pilihan dijelaskan. Proposal ini menggunakan kolom tabel. Penggunaan alias kolom daftar pilihan tidak diperbolehkan. Setiap bagian dari gabungan dapat memuat elemen WHERE-nya sendiri. Contoh: (WHERE Item.*, Gudang), (WHERE Document.Date >= &StartDate, Document.Date<= &ДатаКонца}
  • dan sebagainya.
Contoh penggunaan ekstensi:

Bahasa Ekspresi Komposisi Data

Bahasa Ekspresi Komposisi Data dirancang untuk menulis ekspresi yang digunakan, khususnya, untuk mendeskripsikan ekspresi bidang khusus. SKD memungkinkan Anda menentukan bidang khusus dalam laporan menggunakan ekspresi Anda sendiri atau kumpulan opsi dengan ketentuan pemilihannya (analog dengan CASE dalam SQL). Bidang khusus serupa dengan bidang terhitung. Mereka dapat diatur baik di konfigurator maupun dalam mode 1C:Enterprise, tetapi fungsi modul umum tidak dapat digunakan dalam ekspresi bidang khusus. Oleh karena itu, bidang khusus ditujukan untuk pengguna, bukan pengembang.

Contoh:

Proses pembuatan laporan pada sistem kontrol akses

Saat membuat laporan, kita perlu membuat tata letak yang menentukan bagaimana data akan ditampilkan dalam laporan. Anda dapat membuat tata letak berdasarkan diagram tata letak data. Diagram tata letak data menjelaskan esensi data yang diberikan ke laporan (dari mana mendapatkan data dan bagaimana Anda dapat mengontrol tata letaknya). Skema komposisi data adalah dasar untuk menghasilkan semua jenis laporan. Skema komposisi data mungkin berisi:
  • teks permintaan dengan instruksi untuk sistem komposisi data;
  • deskripsi beberapa kumpulan data;
  • penjelasan rinci tentang bidang yang tersedia;
  • menggambarkan hubungan antara beberapa kumpulan data;
  • deskripsi parameter perolehan data;
  • uraian tata letak dan pengelompokan lapangan;
  • dan sebagainya.

Misalnya, Anda dapat menambahkan kueri ke skema komposisi data sebagai kumpulan data dan memanggil konstruktor kueri, yang memungkinkan Anda membuat kueri dengan kompleksitas arbitrer secara grafis:

Hasil peluncuran perancang kueri akan menjadi teks kueri (dalam bahasa kueri 1C:Enterprise). Teks ini dapat disesuaikan secara manual jika perlu:

Mungkin terdapat beberapa kumpulan data dalam skema tata letak data, kumpulan data dapat ditautkan dalam tata letak dengan cara apa pun, bidang terhitung dapat ditambahkan, parameter laporan dapat ditentukan, dll. Perlu disebutkan fitur menarik dari mekanisme kueri di 1C:Enterprise. Kueri pada akhirnya diterjemahkan ke dalam dialek SQL khusus untuk DBMS yang digunakan aplikasi untuk beroperasi secara langsung. Secara umum, kami mencoba menggunakan kemampuan server DBMS secara maksimal (kami dibatasi oleh fakta bahwa kami hanya menggunakan kemampuan yang tersedia secara bersamaan di semua DBMS yang didukung oleh platform 1C:Enterprise - MS SQL, Oracle, IBM DB2 , PostgreSQL). Jadi, pada tingkat kueri di bidang terhitung, kita hanya bisa menggunakan fungsi yang diterjemahkan ke dalam SQL.

Namun pada tingkat skema komposisi data, kami sudah dapat menambahkan bidang khusus dan menggunakan fungsi di dalamnya dalam bahasa pengembangan 1C bawaan (termasuk yang kami tulis), yang sangat memperluas kemampuan laporan. Secara teknis, tampilannya seperti ini - segala sesuatu yang dapat diterjemahkan ke dalam SQL diterjemahkan ke dalam SQL, kueri dieksekusi di tingkat DBMS, hasil kueri ditempatkan di memori server aplikasi 1C dan SKD menghitung nilai untuk setiap catatan ​​bidang kalkulasi yang rumusnya ditulis dalam bahasa 1C.


Menambahkan Bidang Kustom

Anda dapat menambahkan tabel dan diagram dalam jumlah berapa pun ke laporan:


Perancang laporan


Laporan waktu proses

Dengan menggunakan SKD, pengguna dapat menambahkan pilihan kompleks ke laporan (yang akan ditambahkan ke permintaan di tempat yang tepat), desain bersyarat (memungkinkan bidang yang ditampilkan diformat secara berbeda - dengan font, warna, dll., bergantung pada nilainya ) dan banyak lagi. .

Proses pembuatan dan pembuatan laporan dapat dijelaskan secara singkat sebagai berikut:

  • Pengembang dalam waktu desain dengan bantuan seorang desainer (atau saat runtime menggunakan kode) menentukan skema tata letak data:
    • Teks permintaan/permintaan
    • Deskripsi bidang terhitung
    • Hubungan antar permintaan (jika ada beberapa)
    • Opsi Laporan
    • Pengaturan bawaan
    • Dll.
  • Pengaturan di atas disimpan dalam tata letak
  • Pengguna membuka laporan
    • Mungkin membuat pengaturan tambahan (misalnya, mengubah nilai parameter)
    • Klik tombol "Hasilkan".
  • Pengaturan pengguna diterapkan pada skema komposisi data yang ditentukan oleh pengembang.
  • Tata letak komposisi data perantara dibentuk, berisi instruksi dari mana menerima data. Secara khusus, kueri yang ditentukan dalam tata letak disesuaikan. Dengan demikian, kolom yang tidak digunakan dalam laporan akan dihapus dari permintaan (hal ini dilakukan untuk meminimalkan jumlah data yang diterima). Semua bidang yang berpartisipasi dalam rumus bidang terhitung ditambahkan ke kueri.
  • Pemroses komposisi data ikut berperan. Pemroses tata letak mengeksekusi kueri, menautkan kumpulan data, menghitung nilai untuk bidang terhitung dan sumber daya, dan melakukan pengelompokan. Singkatnya, ini membuat semua perhitungan yang tidak dilakukan pada tingkat DBMS.
  • Pemroses keluaran data meluncurkan permintaan eksekusi dan menampilkan data yang diterima dalam dokumen spreadsheet, bagan, dll.


Proses pembuatan laporan menggunakan mekanisme ACS

Kami mencoba meminimalkan jumlah data laporan yang ditransfer dari server ke aplikasi klien. Saat menampilkan data dalam dokumen spreadsheet, saat membuka dokumen spreadsheet, kami mentransfer dari server hanya baris-baris yang dilihat pengguna di awal dokumen. Saat pengguna berpindah sepanjang baris dokumen, data yang hilang diunduh dari server ke klien.

Pengaturan Kustom

Semua alat ACS tersedia untuk pengembang dan pengguna akhir. Namun praktik menunjukkan bahwa pengguna akhir sering kali terintimidasi oleh banyaknya kemampuan alat. Selain itu, dalam banyak kasus, pengguna akhir tidak memerlukan semua kemampuan pengaturan - dia cukup memiliki akses cepat untuk menyiapkan satu atau dua parameter laporan (misalnya, periode dan rekanan). Mulai dari versi platform tertentu, pengembang laporan mempunyai kesempatan untuk menandai pengaturan laporan mana yang tersedia untuk pengguna. Ini dilakukan dengan menggunakan kotak centang “Sertakan dalam pengaturan pengguna”. Selain itu, setelan laporan kini memiliki tanda “Mode Tampilan”, yang mengambil salah satu dari tiga nilai:
  • Akses cepat. Pengaturan akan ditampilkan langsung di bagian atas jendela laporan.
  • Biasa. Pengaturan akan tersedia melalui tombol “Pengaturan”.
  • Tidak tersedia. Pengaturan ini tidak akan tersedia untuk pengguna akhir.


Mengatur mode tampilan dalam waktu desain


Tampilkan pengaturan dalam mode Akses Cepat saat runtime (di bawah tombol Hasilkan)

Rencana pembangunan

Salah satu bidang prioritas kami dalam pengembangan sistem kontrol akses adalah menyederhanakan pengaturan pengguna. Pengalaman kami menunjukkan bahwa bagi sebagian pengguna akhir, bekerja dengan pengaturan pengguna masih merupakan tugas besar. Kami mempertimbangkan hal ini dan berupaya ke arah itu. Oleh karena itu, pengembang juga akan lebih mudah untuk bekerja dengan sistem kontrol akses, karena Kami, seperti sebelumnya, ingin menyediakan alat tunggal untuk menyiapkan laporan bagi pengembang dan pengguna akhir.

Di perancang kueri, saat dipanggil dari formulir penyiapan sumber data, untuk skema komposisi data. Ada tab “karakteristik”, yang penggunaannya tidak dijelaskan dengan jelas dalam dokumentasi. Pada artikel kali ini saya akan mencoba menjelaskan bagaimana dan mengapa karakteristik digunakan pada ACS.

Konfigurasi tipikal secara aktif menggunakan mekanisme properti dan nilai properti, tersedia untuk hampir semua objek. Secara primitif, dalam buku referensi, mekanisme ini diimplementasikan dalam konfigurasi 7.7. Sekarang mekanisme ini diimplementasikan dengan menggunakan rencana tipe karakteristik dan register informasi, namun idenya tetap sama.

Ketika saya pertama kali menghadapi kebutuhan untuk menggunakan mekanisme ini dalam skema kontrol akses, saya berjuang untuk waktu yang sangat lama, mengatur kueri bersarang, menggabungkannya ke pilihan utama dan memikirkan bagaimana memperhitungkan kemungkinan munculnya jenis properti baru yang belum ada pada saat pengembangan laporan. Seluruh mekanisme properti, yang sederhana dan logis dari sudut pandang pengguna, tidak dapat diproses secara normal sampai saya menemukan tab "Karakteristik".

Tabel pada tab sangat berubah-ubah, baik Anda memasukkan seluruh baris dengan benar, atau menolak memasukkan baris sama sekali; sistem tidak akan mengizinkan Anda meninggalkan baris yang tidak terisi lengkap "untuk nanti".

Jadi, mari kita bahas secara spesifik. Kolom pertama: Jenis– disini kita pilih jenis objek yang akan dilampirkan ciri-cirinya, misalnya “DirectoryLink.Nomenclature”

Ini berarti bahwa sekarang dimungkinkan untuk memperoleh nilai properti untuk semua objek dari tipe yang ditentukan.

Selanjutnya di kolom berikutnya Sumber spesies kita harus mengatur parameter sumber tampilan properti. Opsi yang memungkinkan meja M meminta, mengapa kita memerlukan pilihan? meminta Saya akan memberitahu Anda nanti, sekarang mari kita pilih item meja.

Dalam sebuah kolom Jenis karakteristik kita harus memilih tabel infobase di mana jenis karakteristik yang diperlukan disimpan, dalam contoh kita adalah “Rencana Jenis Karakteristik.Properti Objek”.

Selanjutnya, nilai-nilai yang tersedia bagi kita untuk dipilih di kolom Bidang kunci, Bidang nama Dan Bidang tipe nilai, bergantung langsung pada bidang tabel yang kita pilih. DI DALAM Bidang kunci kami memilih Tautan, V Bidang namaPertunjukan(pengguna akan melihatnya sebagai nama atribut), dan masuk Ketik bidang masing-masing TipeNilai.

Sekarang mari kita beralih ke sumber nilai. Sumber nilai kita adalah register informasi “ObjectPropertyValues”, jadi kita pilih di kolom Sumber nilaimeja, dan di kolom Nilai Atribut– “Daftar Informasi.Nilai Properti Objek.” Di kolom Sebuah Objek, Properti, Arti, pilih bidang register yang sesuai Sebuah Objek, Properti, Arti.

Tampaknya itu saja. Kami pergi ke pengaturan skema, menambahkan pengelompokan berdasarkan produk, dan menambahkan pengelompokan bawahan, misalnya berdasarkan Merek, kami memiliki properti seperti itu.

Kami memperluas daftar detail grup Tata Nama dan... kami tidak melihat properti apa pun di sana:

Faktanya adalah kita berada di konfigurator, dari mana tidak ada akses ke data. Bagaimana cara membuat pengaturan yang diperlukan? Cara paling mudah untuk melakukan ini adalah dengan menggunakan konsol komposisi data, yang ada di disk ITS, atau yang termasuk dalam subsistem “Alat Pengembang”. Tapi Anda cukup membuka pengaturan laporan dalam mode perusahaan.

Jadi, mari kita buka pengaturan yang sama, tetapi dalam mode perusahaan:

Seperti yang Anda lihat, kami telah menambahkan “Detail” baru, dan properti “ Merek” secara lahiriah tidak berbeda dengan detail direktori biasanya. Dan properti “ Tipe produk” berada dalam tanda kurung siku karena representasi propertinya mengandung spasi.

Namun, kami juga memiliki properti “ Jenis perjanjian” yang ditautkan ke direktori “ Perjanjian” dan tidak ada hubungannya dengan “ Tata nama“. Jika tidak digunakan dalam pengaturan “ Jenis perjanjian” maka semuanya akan berfungsi dengan benar, tetapi jika Anda memilihnya, hasilnya akan menjadi tidak terisi, karena tidak ada satu pun item dalam nomenklatur yang properti ini benar-benar terisi. Namun bagaimana Anda bisa memfilter properti yang tidak perlu agar tidak mengganggu Anda?

Untuk melakukan ini, kita perlu mengubah pengaturan sumber tampilan di perancang kueri, pada tab “Karakteristik”. Ingat, di awal artikel saya berjanji untuk memberi tahu Anda mengapa jenis sumber tampilan diperlukan meminta? Sekarang adalah kasus seperti itu. Ubah jenis sumber tampilan menjadi meminta. Di kolom jenis karakteristik, klik tombol “[...]” dan jendela perancang kueri baru akan terbuka.

Masukkan kueri berikut di sana:

MEMILIH
Properti Objek.Ref.
Properti Objek.Nama + “(properti)” SEBAGAI Nama,
Properti Objek.TypeValues
DARI
Rencana Jenis Ciri Sifat Benda SEBAGAI Sifat Benda
DI MANA
Properti Objek Tujuan Properti = NILAI (Rencana Jenis Karakteristik. Tujuan Properti Kategori Objek. Direktori_Nomenklatur)
DAN (BUKAN ObjectProperties.DeletionMark)
DAN (BUKAN ObjectProperties.Category)

Di kolom Bidang kunci, Bidang nama Dan Bidang tipe nilai, pilih bidang pilihan yang sesuai: Tautan, Nama Dan TipeNilai. Ini akan menjadi seperti ini:

Sekarang, saat kita melanjutkan ke pengaturan laporan, gambar di daftar detail Nomenklatur akan berubah:

Sekarang produk hanya memiliki properti yang ditetapkan padanya, terlebih lagi, sekarang sangat berbeda dari detail biasanya, berkat catatan tambahan (Properti), yang kami tambahkan ke nama properti dalam permintaan.

Itu saja, tetapi banyak yang mungkin bingung dengan ketidakmungkinan mengaturnya di konfigurator. Sebenarnya tidak ada yang salah dengan hal itu. Cukup dengan menyimpan pengaturan (atau seluruh rangkaian) ke file dan memulihkannya di konfigurator.

Konfigurator akan menampilkan detail yang tidak dipahami dengan tanda silang merah sebagai tidak tersedia:

Namun hal ini tidak lagi menakutkan, karena laporan dengan pengaturan seperti itu dapat disimpan dalam konfigurasi dan akan berfungsi dengan baik saat dibuka oleh pengguna.

Pilihan Editor
Analisis diri adalah studi seseorang tentang dirinya sendiri, keinginan untuk mengetahui dunia batinnya, upaya untuk menembus kedalaman dirinya...

Semua wajib pajak yang menggunakan sistem perpajakan yang disederhanakan (STS) wajib menyelenggarakan Buku Pendapatan dan Pengeluaran (KUDiR). Jika...

Nassim Nicholas Taleb. Angsa hitam. Di bawah tanda ketidakpastian (koleksi)Angsa Hitam. Di bawah tanda ketidakpastian Didedikasikan untuk Benoit...

Studi genetik tentang perilaku mempunyai implikasi yang signifikan terhadap sejumlah bidang biologi dan kedokteran. Pertama, mereka harus menjadi...
Nassim Nicholas Taleb adalah seorang ekonom, pedagang dan penulis. Talleb dikenal sebagai orang yang mempelajari dampak peristiwa acak terhadap perekonomian dan...
mengubah dari 29/06/2015 - () Semua materi yang disajikan di bawah ini sebenarnya sudah ditemukan di artikel lain. Dalam artikel ini dikumpulkan dan dibahas...
(peringkat: 2, rata-rata: 3,00 dari 5) Judul: Black Swan. Di bawah tanda ketidakpastian (koleksi) Penulis: Nassim Nicholas Taleb Tahun: 2010...
Sistem tiga tahap regulasi pasar asuransi sedang dibentuk di Rusia: Kode Sipil dan Pajak Federasi Rusia; Undang-undang khusus tentang...
Kemanusiaan modern pada saat ini memiliki cukup banyak jenis bukti keberadaan dunia selain...