Dapatkan bagian tabel 1s.

Dapatkan bagian tabel 1s.
Dapatkan bagian tabel 1s.

Apa arti lingkaran biru atau oranye di Odnoklassniki?

  • Bagian tabel ada untuk banyak objek di 1C:
  • Direktori
  • Dokumen
  • Laporan dan pemrosesan
  • Bagan akun
  • Tipe rencana yang khas
  • Rencana jenis perhitungan

Proses dan tugas bisnis

Bagian tabel memungkinkan Anda menyimpan informasi terstruktur dalam jumlah tak terbatas milik satu objek.

Mari kita lihat beberapa teknik untuk bekerja dengan bagian tabel.

Cara melewati bagian tabel Untuk melintasi bagian tabel Anda dapat menggunakan loop

Untuk semua orang

Untuk setiap Baris dari Bagian Tabular dari Siklus

Report(String.Atribut TabularPart) ;

Siklus Akhir; Pada setiap iterasi ke dalam variabel Garis baris berikutnya dari bagian tabel ditransmisikan. Nilai detail baris dapat diperoleh dengan ekspresi.

Baris.Nama Atribut

Cara mendapatkan dan melewati baris yang dipilih pada bagian tabel Untuk menampilkan informasi dari bagian tabel suatu objek, gunakan elemen formulir Bidang tabel . Untuk mengaktifkan kemampuan memilih beberapa baris dalam bidang tabel, Anda perlu menetapkan nilainya Banyak di propertinya.

Modus pemilihan

Untuk mendapatkan daftar baris yang dipilih, gunakan kode berikut: Untuk melintasi bagian tabel Anda dapat menggunakan loop:

Untuk mengulangi garis yang dipilih, gunakan loop

SelectedRows = FormElements. Nama Bidang Tabel. Baris Terpilih;

Untuk setiap Baris dari Lingkaran Baris Terpilih

Report(String.Atribut TabularPart) ;

//isi ulang

Cara memilih baris bagian tabel (bidang tabel) secara terprogram dan membatalkan pilihannya

Untuk membatalkan pilihan baris bidang tabel secara terprogram:

Elemen Bentuk. Nama Bidang Tabel. Baris Terpilih. Jernih() ;

Untuk memilih semua baris bidang tabel secara terprogram:
Untuk setiap CurrentRow Dari TabularPart Loop
Report(String.Atribut TabularPart) ;

Elemen Bentuk. Nama Bidang Tabel. Garis Terpilih. Tambahkan(Baris Saat Ini) ;

Cara menghapus bagian tabel

Bagian Tabular. Jernih() ;

Cara mendapatkan baris bagian tabel saat ini

Untuk formulir biasa kodenya akan terlihat seperti ini:

Elemen Bentuk. Nama Bidang Tabel. Data Saat Ini;

Untuk formulir terkelola:

Elemen. Nama Bidang Tabel. Data Saat Ini;

Bagaimana cara menambahkan baris baru ke bagian tabel

Menambahkan baris baru ke akhir bagian tabel:

Baris Baru = TablePart. Menambahkan() ;

Menambahkan baris baru di mana saja di bagian tabel (baris berikutnya akan digeser):

Baris Baru = TablePart. Sisipkan (Indeks)
//Indeks - nomor baris yang ditambahkan. Penomoran baris dimulai dari nol.

Baris Baru. Props1 = "Nilai" ;

Cara mengisi detail baris tabel secara terprogram

Jika Anda perlu mengisi detail baris bagian tabular yang ditambahkan pengguna secara terprogram, Anda harus menggunakan event handler bagian tabular Saat Memulai Pengeditan.

Prosedur yang dibuat oleh handler memiliki tiga parameter:

  • Elemen- berisi elemen kontrol Bidang Tabular.
  • String Baru- boolean. Mengandung nilai BENAR, jika baris tabel baru ditambahkan, dan Berbohong, jika pengguna mulai mengedit baris yang sudah ada.
  • Menyalin- boolean. Mengandung nilai BENAR, jika pengguna menyalin baris, dan Berbohong dalam kasus lain.

Mari kita lihat sebuah contoh. Katakanlah kita perlu mengisi rincian bagian tabel AkunAkun, jika ada baris baru yang ditambahkan. Saat mengedit baris yang ada, Anda tidak perlu mengubah akun akuntansi.

Prosedur TabularPartAtStartEditing (Elemen, Baris Baru, Salin)

//Jika pengguna mengedit baris yang ada, maka kita tidak melakukan apa pun
Jika BUKAN Baris Baru Lalu
Kembali;
AkhirJika ;

//Jika barisnya baru, atur akun akuntansi
TechString = Barang. Data Saat Ini; //Dapatkan baris bagian tabel saat ini
TechString. Akuntansi = Bagan Akun. Swadaya. Akun yang Diperlukan;
Akhir Prosedur

Beranda Untuk pengembang pemula Belajar memprogram

Bagaimana cara mendapatkan data dari bagian tabel dokumen?

Misalnya, pertimbangkan situasi di mana Anda perlu mendapatkan semua item item yang ditentukan di bagian tabel Barang-barang dokumen Penjualan Barang dan Jasa.

Untuk melakukan ini, Anda dapat menggunakan permintaan dengan teks berikut:

PILIH BERBAGAI Penjualan Barang dan Jasa. Nomenklatur SEBAGAI Nomenklatur DARI Dokumen Penjualan Barang dan Jasa

Sebagai sumber, kami menunjukkan bagian tabel dari dokumen - tabel Dokumen Penjualan Barang dan Jasa. Kami mendeklarasikan bidang keluaran sebagai bidang Tata nama, yang merupakan bagian dari tabel sumber. Selain itu, karena item produk yang sama, tentu saja, dapat muncul lebih dari satu kali dalam dokumen, kami menggunakan BERMACAM-MACAM untuk mendapatkan hanya baris berbeda di tabel keluaran kueri.

Misalnya, mari kita membuat sebuah pemrosesan Daftar Produk, tempat dokumen dipilih Penjualan Barang dan Jasa, dan dengan mengklik tombol yang sesuai, daftar item nomenklatur yang tidak berulang yang terdapat di bagian tabel dokumen ini ditampilkan di jendela pesan.

Untuk membatasi pemilihan item hanya pada item dari bagian tabel dokumen tertentu, kami menggunakan parameter Link dalam kondisi dalam permintaan ( DI MANA...):

PILIH BERBAGAI Penjualan Barang dan Jasa. Nomenklatur SEBAGAI Nomenklatur DARI Dokumen. Penjualan Barang dan Jasa. CARA Penjualan Barang dan Jasa DIMANA Penjualan Barang dan Jasa. Link = &Link

Untuk memperhitungkan uang dan barang, berbagai tabel banyak digunakan dalam bisnis. Hampir setiap dokumen adalah tabel.

Satu tabel berisi daftar barang yang akan dikirim dari gudang. Tabel lain menunjukkan kewajiban membayar barang-barang tersebut.

Oleh karena itu, dalam 1C, bekerja dengan tabel menempati tempat yang menonjol.

Tabel dalam 1C juga disebut “bagian tabel”. Direktori, dokumen, dan lainnya memilikinya.

Kueri, ketika dijalankan, mengembalikan tabel yang dapat diakses dengan dua cara berbeda.

Yang pertama - lebih cepat - seleksi, mendapatkan baris darinya hanya mungkin dilakukan secara berurutan. Yang kedua adalah mengunggah hasil kueri ke dalam tabel nilai dan kemudian mengaksesnya secara acak.

//Opsi 1 – akses berurutan ke hasil kueri

//ambil mejanya
Pilih = Kueri.Jalankan().Pilih();
// kita menelusuri semua baris hasil kueri secara berurutan
Sementara Select.Next() Loop
Laporan(Pilihan.Nama);
Siklus Akhir;

//Opsi 2 – mengunggah ke tabel nilai
Permintaan = Permintaan Baru("PILIH Nama DARI Direktori.Nomenklatur");
//ambil mejanya
Tabel = Query.Run().Unload().
//selanjutnya kita juga dapat mengulangi semua baris
Untuk setiap Baris dari Siklus Tabel
Laporan(String.Nama);
Siklus Akhir;
//atau mengakses string secara sewenang-wenang
Baris = Tabel.Temukan("Sekop", "Nama");

Fitur penting adalah pada tabel yang diperoleh dari hasil query, semua kolom akan diketik secara ketat. Artinya dengan meminta kolom Nama dari direktori Nomenklatur, Anda akan menerima kolom bertipe String dengan panjang yang diperbolehkan tidak lebih dari N karakter.

Tabel pada formulir (klien tebal)

Pengguna bekerja dengan tabel ketika ditempatkan pada formulir.

Prinsip-prinsip dasar bekerja dengan formulir telah kita diskusikan dalam pelajaran tentang dan dalam pelajaran tentang

Jadi, mari kita letakkan tabelnya di formulir. Untuk melakukan ini, Anda dapat menyeret tabel dari panel Kontrol. Demikian pula, Anda dapat memilih Kontrol Formulir/Sisipkan dari menu.

Data dapat disimpan dalam konfigurasi - maka Anda perlu memilih bagian tabel yang ada (sebelumnya ditambahkan) dari objek konfigurasi yang bentuknya sedang Anda edit.

Klik tombol "..." di properti Data. Untuk melihat daftar bagian tabel, Anda perlu memperluas cabang Object.

Saat Anda memilih bagian tabel, 1C sendiri akan menambahkan kolom ke tabel di formulir. Baris yang dimasukkan oleh pengguna ke dalam tabel tersebut akan disimpan secara otomatis bersama dengan buku referensi/dokumen.

Di properti Data yang sama, Anda dapat memasukkan nama arbitrer dan memilih jenis Tabel Nilai.

Ini berarti tabel nilai arbitrer telah dipilih. Itu tidak akan menambahkan kolom secara otomatis, juga tidak akan disimpan secara otomatis, tetapi Anda dapat melakukan apa pun yang Anda inginkan dengannya.

Dengan mengklik kanan pada tabel Anda dapat menambahkan kolom. Di properti kolom, Anda dapat menentukan namanya (untuk referensi dalam kode 1C), judul kolom pada formulir, hubungannya dengan atribut bagian tabel (yang terakhir - jika bukan tabel arbitrer, tetapi bagian tabel dipilih).

Di properti tabel pada formulir, Anda bisa menentukan apakah pengguna bisa menambah/menghapus baris. Formulir yang lebih canggih adalah kotak centang Lihat Saja. Properti ini nyaman digunakan untuk mengatur tabel yang dimaksudkan untuk menampilkan informasi, tetapi tidak untuk mengedit.

Untuk mengelola tabel, Anda perlu menampilkan panel perintah pada formulir. Pilih item menu Formulir/Sisipkan Kontrol/Bilah Perintah.

Di properti bilah perintah, pilih kotak centang IsiOtomatis sehingga tombol pada panel muncul secara otomatis.

Tabel pada formulir (klien tipis/terkelola)

Pada formulir terkelola, tindakan ini terlihat sedikit berbeda. Jika Anda perlu menempatkan bagian tabel pada formulir, perluas cabang Objek dan seret salah satu bagian tabel ke kiri. Itu saja!

Jika Anda perlu menempatkan tabel nilai, tambahkan atribut formulir baru dan di propertinya tentukan jenis – tabel nilai.

Untuk menambahkan kolom, gunakan menu klik kanan pada atribut form ini, pilih Tambahkan kolom atribut.

Kemudian seret juga tabelnya ke kiri.

Agar tabel memiliki bilah perintah, pada properti tabel, pilih nilai di bagian Penggunaan – Posisi bilah perintah.

Mengunggah tabel ke Excel

Tabel 1C apa pun yang ada di formulir dapat dicetak atau diunggah ke Excel.

Untuk melakukan ini, klik kanan pada ruang kosong di tabel dan pilih Daftar.

Di klien yang dikelola (thin), tindakan serupa dapat dilakukan menggunakan item menu Semua tindakan/Daftar tampilan.