Daftar dinamis 1s 8.2 parameter permintaan sewenang-wenang. Cari dalam daftar dinamis

Dalam proses menyelesaikan konfigurasi, setiap pemrogram 1C menemukan daftar dinamis.
Daftar dinamis adalah objek antarmuka yang digunakan untuk menampilkan berbagai daftar objek database atau data non-objek - entri register.
Misalnya, daftar dinamis digunakan untuk menampilkan daftar item:

Untuk menunjukkan kemungkinan daftar dinamis membuat pemrosesan eksternal, tambahkan formulir utama. Mari tambahkan atribut baru dengan jenis "Daftar Dinamis" ke formulir. Mari kita pergi ke propertinya dan lihat apa yang ada di sana.
Kami tertarik dengan properti "Permintaan khusus". Mengaktifkannya akan menunjukkan kepada kita semua kemungkinan daftar dinamis. Kami akan dapat menulis kueri menggunakan hampir semua fitur bahasa kueri sistem 1C: Perusahaan. Centang kotak dan klik tautan "Buka":

Secara default, daftar kami akan menampilkan daftar item dengan total saldo untuk semua gudang. Untuk mengimplementasikan daftar tersebut, tambahkan kueri berikut:


Sebagai tabel utama, kami akan memilih "Direktori. Nomenklatur", ini memungkinkan kami untuk bekerja dengan daftar dinamis, seperti daftar nomenklatur - tambahkan, ubah, tandai untuk menghapus elemen direktori. Selain itu, pengaturan tabel utama memungkinkan pembacaan data dinamis - ini berarti pemilihan akan dilakukan dalam porsi, sesuai kebutuhan.
Selanjutnya, kita perlu membuat elemen formulir untuk daftar kita:

Jika kami mencoba menjalankan pemrosesan kami dalam formulir ini, kami akan mendapatkan kesalahan:


Untuk menghilangkannya, Anda harus mengatur nilai parameter "Periode". Untuk melakukannya, Anda dapat menggunakan metode "SetParameterValue" dari kumpulan "Parameter" dari daftar dinamis. Metode ini mengambil dua parameter:
. "Parameter" - Jenis: Tali; DataCompositionParameter. Nama parameter atau parameter komposisi data yang nilainya akan ditetapkan;
. "Nilai" - Jenis: Sewenang-wenang. Nilai yang akan ditetapkan.
Dapat dipanggil dalam penangan "OnCreateOnServer" dari formulir:

Apakah Anda memiliki pertanyaan, apakah Anda memerlukan bantuan konsultan?


Mari beri pengguna kemampuan untuk mengubah periode penerimaan saldo. Untuk melakukannya, mari tambahkan atribut dan elemen formulir "Tanggal" yang terkait dengannya:


Dalam penangan "OnChange" elemen formulir "Tanggal", panggil metode "SetParameterValue", meneruskan nilai atribut terkait sebagai nilai. Demikian pula, kami akan mengubah prosedur "On CreationAtServer" dari formulir. Karena metode ini tersedia di klien, tidak perlu memanggil server:


Sekarang, ketika tanggal berubah, saldo akan diperbarui secara otomatis:




Misalkan pengguna ingin melihat saldo saat ini atau penerimaan yang diproyeksikan. Mari pertimbangkan salah satu opsi implementasi. Mari tambahkan atribut bentuk Boolean dan tombol radio terkait:


Saat mengubah nilai sakelar, kami akan mengubah teks permintaan. Untuk melakukannya, kita akan menggunakan event handler "OnChange" dari elemen form "DisplayQuantityToReceipt". Kita perlu mengubah properti "QueryText" dari daftar dinamis tergantung pada nilai atributnya. Karena properti ini tidak tersedia di klien, diperlukan panggilan ke prosedur server:


Hasil perubahan:



Selain tipe data primitif yang dapat ditemukan di bahasa pemrograman apa pun, ada tipe unik di 1C. Masing-masing memiliki properti, metode, fungsi, tujuan, dan nuansa penggunaannya sendiri dalam sistem. Salah satu jenis ini adalah daftar dinamis, yang sangat menyederhanakan banyak tugas yang diterapkan. Itu sebabnya pengembang harus mengetahui dan mampu menangani alat serbaguna ini.

Fitur daftar dinamis di 1C

tujuan dari jenis ini adalah untuk menampilkan informasi dari tabel database apa pun, terlepas dari jenisnya. Mekanismenya dibuat berdasarkan SKD dan memiliki kemampuan serupa. Tetapi ini tidak berarti bahwa Anda pasti harus menulis kueri dalam bahasa 1C, meskipun kemungkinan ini ada dan Anda perlu menggunakannya. Anda cukup menentukan tabel, informasi yang Anda minati, dan 1C secara mandiri akan menghasilkan kueri sederhana.

Untuk melihat bagaimana daftar dinamis dibentuk dan data apa yang ditampilkan, Anda perlu membuka formulir terkelola, di mana letaknya, di konfigurator: di daftar detail melalui menu konteks buka propertinya dan perhatikan item "Permintaan Sewenang-wenang". Jika tidak ada kotak centang, maka parameter "Tabel utama" mencerminkan tabel database tempat data diambil. Jika tidak, daftar dinamis mencerminkan data kueri khusus, yang dapat dilihat dengan membuka penyiapan daftar.

Skema kueri sewenang-wenang jauh lebih umum digunakan, karena memberikan peluang besar untuk menggabungkan dan menampilkan berbagai macam data. Paling sering, mekanisme ini digunakan untuk mencerminkan saldo stok, harga barang, pendapatan, pengeluaran, atau pembelian. Anda harus menggunakannya dengan hati-hati, karena kinerjanya mungkin turun dengan kueri yang kompleks.

Properti lain yang berguna dari daftar dinamis dibuka dengan mengklik tulisan "Pengaturan daftar". Menu ini memungkinkan, bahkan saat menggunakan sekumpulan bidang standar, untuk membuat informasi lebih mudah diakses dan dimengerti oleh pengguna akhir. Apakah itu permintaan arbitrer atau tidak, Anda akan melihat tab "Pengaturan" tempat Anda dapat menentukan:

  • Pemilihan daftar dinamis;
  • pengelompokan;
  • penyortiran;
  • Dekorasi.

Penggunaan parameter membuat daftar dinamis cukup fleksibel dan fleksibel. Anda juga dapat mengikatnya ke alat peraga pada formulir terkelola, dan data akan berubah tergantung pada opsi yang dipilih oleh pengguna. Penggunaan mekanisme ini dapat dipahami dan diapresiasi dengan melihat contoh masalah dunia nyata.

Sebagai contoh, pertimbangkan masalah mencerminkan sisa-sisa nomenklatur pada formulir yang dikelola. Dalam praktik nyata, urutan seperti itu cukup umum dalam berbagai konfigurasi, dan daftar dinamis sangat ideal sebagai alat. Untuk tugas ini, kita harus menggunakan kueri arbitrer, parameter daftar dinamis, dan pengaturannya.

Untuk kejelasan yang lebih baik, mari buat pemrosesan eksternal terpisah dan tempatkan daftar dinamis di atasnya. Untuk mengimplementasikan rencana kami, akan ada beberapa tabel dengan nomenklatur, jadi kami perlu mengizinkan permintaan sewenang-wenang. Di dalamnya, kami akan menjelaskan koneksi kiri buku referensi dengan daftar nomenklatur dan daftar residu dan menetapkan buku referensi sebagai tabel utama. Skema semacam itu akan memungkinkan pengguna, saat bekerja dengan daftar dinamis, untuk menambah atau mengubah nomenklatur.



Pilih nomenklatur Nama Nama sebagai nama, barang dan biaya penjualan Sklad sebagai gudang, barang dan biaya penjualan Sosial -desain sebagai sejumlah instalasi dari direktori Nomenklatur sebagai nomenklatur koneksi kiri register. Kontinuitas Keluaran (iv auhitsaydata,)

Karena parameter CurrentDate digunakan dalam permintaan kami, kami perlu menetapkan nilainya sebelum menggunakan pemrosesan. Untuk melakukan ini, dalam modul formulir dalam prosedur "On CreationOnServer" dengan perintah standar, tetapkan fungsi "CurrentSessionDate" dengan perintah standar. Kami juga perlu menampilkan daftar dinamis pada formulir kontrol dan mengubah urutan bidang untuk kejelasan. Seret alat peraga "Nomenclature Remains" ke dalam elemen formulir (kiri atas) dan gunakan panah biru untuk mengubah urutan bidang dalam tabel pada formulir.

&Di Server Prosedur Pembuatan Di Server(Kegagalan, Pemrosesan Standar) Nomenklatur Tetap.Parameters.SetParameterValue("CurrentDate",CurrentSessionDate()) EndProcedure


Sudah pada tahap ini, kita dapat membuka pemrosesan eksternal kita di 1C dan melihat bahwa daftar dinamis berfungsi. Kita dapat melihat saldo, membuat nomenklatur dan grup, dan mencari. Seringkali pelanggan meminta untuk menambahkan kemampuan untuk memilih tanggal yang akan mereka lihat saldonya. Dalam kasus formulir dengan daftar dinamis, ini disediakan oleh bidang tambahan dan mengatur parameter dengan itu.

Kami menambahkan atribut "Remains Date" dari tipe "Date" dan mentransfernya ke elemen form. Di bidang acara, kami membuat acara "OnChange" dan menulis kode untuk menyetel parameter "Tanggal Saat Ini" yang digunakan dalam kueri dinamis. Agar saat membuka formulir, pengguna langsung mengerti pada tanggal berapa dia melihat saldo, kami akan melakukan sedikit perubahan pada prosedur OnCreateOnServer.



&OnServerProcedureOnCreateOnServer(Gagal, Pemrosesan Standar)RemainsDate = CurrentSessionDate(); Item Remains.Parameters.SetParameterValue("CurrentDate", RemainsDate); Akhir Prosedur &Pada Prosedur Klien RemainsDateOnChange(Element) Item Remains.Parameters.SetParameterValue("CurrentDate",RemainsDate); Prosedur Akhir

Akibatnya, formulir Daftar Dinamis kami dapat menampilkan saldo untuk setiap tanggal.

Kami hanya membahas sebagian kecil dari kemampuan toolkit ini, tetapi ini sudah cukup untuk memahami kemudahan daftar dinamis jenis ini. Mekanisme serupa digunakan untuk berbagai tugas, tetapi paling sering ditemukan di konfigurasi tipikal V formulir yang dikelola:

  1. pilihan;
  2. Daftar.

Untuk mendapatkan daftar dinamis dan permintaannya dalam formulir terkelola biasa, pengembang perlu membuka formulir yang diperlukan di konfigurator. Di bagian atribut, temukan atribut dengan tipe data "DynamicList" (paling sering dicetak tebal). Propertinya berisi teks permintaan, pilihan, dan pengaturan lainnya.

Akhirnya, impian "tujuh pemain" menjadi kenyataan. Seberapa sering pengguna program 7.7 diminta untuk membuat pilihan item yang normal. Sehingga Anda dapat melihat saldo, harga, dan filter yang ditetapkan. Saya harus memikirkan berbagai trik, hingga menulis komponen eksternal. Di 1C 8.2, daftar dinamis muncul. Saya mengusulkan untuk mempertimbangkan apa itu dan apa yang dapat mereka berikan kepada kita di 1C 8.3.

Mari kita ambil beberapa sebagai dasar konfigurasi pengujian 1C: "Akuntansi perusahaan 3.0". Kami tidak akan membuat pilihan sekarang, cukup tambahkan formulir pemilihan lain di buku referensi "Nomenklatur" dan buat sementara yang utama:

Saat dibuat, sistem secara default akan menambahkan bidang tabel dengan tipe "Daftar dinamis" ke formulir.

Mari kita pergi ke propertinya dan lihat apa yang ada di sana.

Pertama-tama, kami tertarik pada kotak centang "Permintaan sewenang-wenang". Dialah yang akan mengungkapkan kepada kita semua keuntungan dari daftar dinamis. Kami akan memiliki kesempatan untuk menulis kueri kami sendiri, dan dengan parameter. Centang kotak dan klik tautan "Buka":

Sebuah jendela akan terbuka dengan kode siap pakai untuk . Sejauh ini, semua bidang direktori "Nomenklatur" hanya dicantumkan di sana.

Dapatkan 267 pelajaran video 1C gratis:

Seperti yang Anda lihat, ada tombol panggil "" dan kotak centang yang memungkinkan Anda mengubah konten daftar secara dinamis. Artinya, ketika pengguna lain mengubah sesuatu di direktori, itu juga akan berubah di daftar kami. Selain itu, ada tab Pengaturan, tetapi kami akan membahasnya nanti.

Kueri khusus dalam daftar dinamis

Pertama, mari buat kueri yang kita perlukan dengan saldo dan harga. Seperti itu:

tab pengaturan

Dan sekarang yang paling enak! Buka tab "Pengaturan". Dan kami segera melihat bahwa pada tab pertama kami dapat membuat pilihan apa pun untuk bidang apa pun dalam permintaan:

Pengaturan parameter kueri secara terprogram dalam daftar dinamis 1C 8.3

Jangan lupa bahwa kami memiliki dua parameter dalam permintaan: "Periode" dan "Tipe Harga". Kami harus meneruskannya ke permintaan, jika tidak akan ada kesalahan.

Mari tulis parameter ini di parameter formulir, dan tambahkan baris berikut di modul formulir:

&OnServerProcedure Daftar OnCreateOnServer(Kegagalan, Pemrosesan Standar). Pilihan. SetParameterValue("Periode", Parameters.Tanggal); Daftar. Pilihan. SetParameterValue("TipeHarga" , Parameter.TipeHarga); EndProcedures Home Notes Through the Looking-Glass

04/21/2014 Mendapatkan data daftar dinamis

Diimplementasikan dalam versi 8.3.6.1977.

Kami telah menerapkan kemampuan untuk mendapatkan data yang ditampilkan dengan mudah dan nyaman menggunakan daftar dinamis.

Anda mungkin memerlukan data daftar dinamis untuk mencetaknya dalam bentuk "spesifik" yang tidak standar. Atau untuk melakukan tindakan tertentu dengan mereka. Misalnya mengirim surat ke semua rekanan yang telah Anda pilih dalam daftar sesuai dengan beberapa kriteria.

Selain itu, ada sejumlah tugas di mana pengguna, selain daftar elemen, juga ingin melihat ringkasan data yang terkait dengan daftar ini. Misalnya, setelah memilih barang dari kelompok produk tertentu dan pemasok tertentu, dia langsung ingin melihat jumlah total barang tersebut di database.

Daftar dinamis itu sendiri tidak dapat memberi Anda informasi ini. Tujuan dari daftar dinamis adalah untuk menyediakan Lihat sekilas sejumlah besar data. Oleh karena itu, ia membaca data dalam potongan yang diperlukan untuk ditampilkan pada satu atau dua layar. Dan "tidak tahu apa-apa", misalnya tentang jumlah total data yang harus dia baca.

Secara umum, untuk mendapatkan Informasi tambahan yang diinginkan pengguna, Anda perlu menanyakan database. Persis sama dengan yang digunakan dalam daftar dinamis.

Anda bisa melakukannya sebelumnya. Tapi itu tidak selalu mudah. Lagi pula, selain teks kueri asli, yang dengannya daftar dinamis berfungsi, Anda perlu mengetahui semua pilihan, penyortiran, dan parameter lain yang diatur pengguna secara interaktif dalam tabel yang menampilkan data.

Sekarang tugas ini mudah diselesaikan. Tabel daftar dinamis memiliki dua metode baru:

  • GetExecutableDataCompositionSchema();
  • GetExecutableDataCompositionSettings().

Dengan demikian, Anda mendapatkan skema komposisi data itu sendiri, dan yang terpenting, semua pengaturannya, berkat itu pengguna melihat daftarnya persis seperti apa adanya. Yang harus Anda lakukan adalah menyusun tata letak secara terprogram dan menampilkannya ke kumpulan nilai (untuk pemrosesan perangkat lunak) atau di dokumen spreadsheet(menampilkan):

Hasilnya, Anda akan mendapatkan struktur (atau laporan) yang berisi kolom dan baris yang ditampilkan dalam tabel daftar dinamis.

Poin pentingnya adalah tata letak dan pengaturan yang Anda peroleh dari tabel daftar dinamis memperhitungkan, antara lain, visibilitas kolom dan pencarian yang diterapkan. Karena pengaturan diperoleh secara terpisah, Anda dapat mengubah komposisi bidang untuk tujuan Anda sendiri dan mendapatkan, misalnya, semua kolom daftar, dan bukan hanya yang terlihat oleh pengguna.

Saat mengeluarkan ke dokumen spreadsheet, ada momen menyenangkan lainnya. Secara umum tampilan laporan akan sesuai dengan penampilan tabel daftar dinamis pada saat skema dan pengaturan diterima. Termasuk desain meja bersyarat. Anda memerlukan beberapa tindakan tambahan hanya jika Anda juga ingin mentransfer desain kondisional formulir ke laporan.



Memuat...
Atas