Cara membuat dokumen spreadsheet di 1C. Kemampuan interaktif dokumen spreadsheet. Memasukkan data ke dalam dokumen spreadsheet

Selamat bersenang-senang semuanya!

Inti dari tugas yang akan kita analisis adalah bagaimana membaca data dari sel gabungan dokumen spreadsheet menggunakan objek "TabularDocument". Kami juga akan membahas cara melintasi data yang dipilih. Jadi mari kita mulai.

MEMBACA DOKUMEN TABEL

Untuk membaca dokumen spreadsheet dalam 1C, anehnya Anda dapat menggunakan objek "TabularDocument". Sejak versi 8.3.7 (jika ingatanku), objek ini tidak hanya mampu membaca file MXL, tetapi juga XLS/XLSX/ODT dan beberapa opsi tabel lainnya (dan juga, omong-omong, menulis).

Namun seperti biasa, ada satu masalah kecil - objek hanya dibuat di server. Tetapi 1C mencoba memecahkan masalah ini dengan membuat aliran di memori dan memberi pemrogram kesempatan untuk menggunakannya alih-alih jalur ke file di konstruktor objek, tetapi jenis file yang sedang dibaca perlu ditentukan. Benar, pada platform Windows 7 pro x64 dengan 1C 8.3.10.2466, saya tidak bisa membaca Excel dengan cara ini, tetapi MXL membacanya dengan sempurna, jadi saya masih harus membuat file sementara untuk file Excel.

Jadi, kode pembacaan file:

&Prosedur OnServer LoadFileOnServer(DD, Extension) Jika Extension = "xml" Maka BH = New DataRead(DD);

Tab.Baca(BH, TabularDocumentValueReadingMethod.Value, TabularDocumentFileType.MXL);

Jika tidak, Nama File = GetTemporaryFileName(Ekstensi);

Mari kita cari tahu di mana sel yang dipilih pengguna berada. Dan inilah keanehan yang menarik dari platform ini: sel yang dipilih ini hanya tersedia di klien dalam elemen formulir yang sesuai. Mari menelusuri sel yang dipilih dan mencetak hasilnya ke baris pesan:

&Pada Laporan Prosedur KlienDipilih(Perintah) Untuk Setiap Area DARI Elemen.Tab.GetSelectedAreas() Loop Untuk X = Area.Kiri Berdasarkan Area.Loop Kanan Untuk Y = Area.Atas Berdasarkan Area.Laporan Siklus Bawah(Tab.Area(Y, X) .Teks);

Siklus Akhir;

Siklus Akhir;

Siklus Akhir; Akhir Prosedur

Jika sekarang kita memilih baris pertama tanpa sel yang digabungkan, kita mendapatkan hasil berikut:

Itu. di sini kita mencetak A, B dan C. Jika kita memilih baris kedua, kita mendapatkan gambar yang berbeda:

Seperti yang Anda lihat, keberadaan gabungan sama sekali tidak menghalangi kita untuk mendapatkan data dari baris yang telah kita gabungkan dengan baris tersebut. Selain itu, kedua baris tersebut akan berisi nilai “A”. Jika kita memilih baris ketiga, kita akan mendapatkan output "A A A" (wah, kamu sudah paham kenapa kan?)

SEL GABUNGAN

Untuk memperbaiki masalah sel yang digabungkan, Anda hanya perlu mengetahui satu detail: setiap sel memiliki detail "Kiri", "Kanan", "Atas", dan "Bawah". Dan untuk sel yang digabungkan, keduanya tidak akan sama. Untuk gabungan sederhana sepanjang sumbu X, membaca memperhitungkan gabungan akan cukup sederhana:

Untuk Setiap Area DARI Elements.Tab.GetSelectedAreas() Loop Untuk X = Area.Left By Area.Right Loop Untuk Y = Area.Top By Area.Bottom Loop Report(Tab.Area(Y,X).Text);
X = X + Tab.Area(Y,X).Kanan - Tab.Area(Y,X).Kiri;
Siklus Akhir;
Siklus Akhir;
Siklus Akhir;

Kita cukup menambahkan "kanan" ke "X" dan mengurangi "kiri".

Sistem 1C:Enterprise 8 mendukung mekanisme dekripsi (drill-down,rill-through), ketika pengguna mengklik baris atau sel laporan dan menerima laporan yang lebih rinci, kecuali, tentu saja, disediakan oleh pemrogram .

Transkrip dibagi menjadi standar dan non-standar. Transkrip standar diproses secara otomatis oleh sistem dan tidak memerlukan upaya tambahan dari pemrogram, misalnya formulir dokumen akan dibuka untuk dokumen, dan formulir elemen akan dibuka untuk item direktori. Jika direktori diedit dalam daftar, kursor akan ditempatkan pada elemen saat ini dalam bentuk daftar. Acara Pemrosesan Dekripsi dimaksudkan untuk melakukan dekripsi non-standar.

Peristiwa Pemrosesan Transkrip hanya dapat diproses jika dokumen spreadsheet ditempatkan pada formulir sebagai kontrol dan bukan dibuka di jendela terpisah, karena peristiwa ini hanya ada untuk kontrol SpreadsheetDocumentField. Di bawah ini adalah kategori properti "Peristiwa" dari elemen kontrol "TabularDocumentField", tempat prosedur penangan dekripsi ditetapkan.

Prosedur “DecryptString” itu sendiri mungkin terlihat seperti ini (sebagai contoh):

Prosedur DecryptString (Elemen, Dekripsi, Pemrosesan Standar)
Jika TypeValue(Dekripsi) = Type("DocumentLink.Perjanjian Penjualan") Lalu

Pemrosesan Standar = Salah;
Laporan = Laporan.ContractAnalysis.Create();
Laporan.Kontrak = Penjelasan; //isi rincian laporan
Laporan.Hasilkan(FormElements.TabularDocumentField1);
akhirJika;
Akhir Prosedur

Catatan 1. Pada modul aplikasi (analog dengan modul global pada versi 7.7) tidak ada lagi event TableCellProcessing. Semua pemrosesan transkrip harus dilakukan dalam modul formulir tempat elemen kontrol "TabularDocumentField" berada.

Catatan 2. Peristiwa Pemrosesan Transkrip terjadi ketika Anda mengklik sel atau gambar yang berisi transkrip. Jangan bingung dengan peristiwa "Pilih" yang terjadi pada semua sel dan gambar saat Anda mengklik dua kali atau menekan tombol Enter, dan peristiwa "Pilih" terjadi terlebih dahulu, lalu peristiwa "Pemrosesan Dekripsi".

Grup

Di 1C:Enterprise 8, dimungkinkan untuk mengelompokkan data dalam sebuah laporan. Pengelompokan dapat dilakukan secara horizontal atau vertikal, kemudian penanda khusus muncul di kiri dan atas, memungkinkan pengguna untuk memperluas dan menciutkan grup.

Cara termudah untuk menambahkan pengelompokan ke laporan adalah dengan mempercayakan tugas ini ke sistem, maka upaya minimal akan diperlukan dari pemrogram. Anda hanya perlu menerapkan metode StartAutoGroupingRows/StartAutoGroupingColumns dan EndAutoGroupingRows/EndAutoGroupingColumns, yang mengaktifkan mode pengelompokan baris atau kolom secara otomatis. Dalam mode ini, saat memanggil metode Output (untuk baris) dan Lampirkan (untuk kolom), parameter tambahan untuk pengelompokan ditentukan:

Keluaran(<Таблица>, <Уровень>, <Имя группы>, <Открыта>)
Bergabung(<Таблица>, <Уровень>, <Имя группы>, <Открыта>)

Saat menggunakan pengelompokan, akan sangat berguna untuk mengatur properti AutoIndent sel ke nilai bukan nol, seperti 5. Sistem kemudian akan secara otomatis menambahkan jumlah spasi tertentu di sebelah kiri teks sel, berdasarkan tingkat pengelompokan saat ini. . Hasilnya, laporan akan terlihat nyaman untuk menampilkan hierarki data.

Contoh berikut menampilkan daftar produk dengan pengelompokan:


TabDoc = Dokumen Tabular Baru;

Area = Tata Letak.GetArea("String");

Pilihan = Direktori.Nomenklatur.SelectHierarchically();
TabDoc.StartAutoGroupingRows();
Sementara Select.Next() Loop
Area.Parameters.Nomenclature = Pilihan.Link;
TabDoc.Output(Area, Pilihan.Tautan.Level(), Pilihan.Nama, Benar);
Siklus Akhir;

TabDoc.FinishAutoGroupingRows();
TabDoc.Tampilkan();

Catatan

Sel dokumen spreadsheet bisa memiliki catatan, dalam hal ini segitiga merah kecil muncul di sudut kanan atas sel. Saat Anda mengarahkan mouse ke sel, komentar akan muncul di jendela pop-up.

Instalasi perangkat lunak catatan diimplementasikan sebagai berikut:

TabDoc = FormElements.TabularDocumentField1;
TabDoc.Hapus();

Tata Letak = Direktori.Nomenklatur.GetLayout("Katalog");
Pilihan = Direktori.Nomenklatur.Pilih();
Sementara Select.Next() Loop

LayoutCellsArea = Layout.Area("Nama Sel");
LayoutCellsArea.Note.Text = Pilihan.Link.Comment;

TabDocArea = Tata Letak.GetArea("String");
AreaTabDoc.Parameters.Nomenclature = Pilihan.Tautan;
TabDoc.Output(AreaTabDoc);

Siklus Akhir;

Perhatikan bahwa properti Note dari objek LayoutCellArea adalah objek Gambar, bukan string sederhana. Melalui objek ini Anda dapat mengedit tampilan catatan, font dan warna teks, latar belakang, garis, dll.

Melanjutkan
- Dokumen spreadsheet tidak hanya berfungsi untuk mencetak dokumen dan laporan, tetapi juga memiliki kemampuan interaktif yang kuat. Fitur-fitur ini terutama mencakup transkrip, pengelompokan, dan catatan (dibahas di bagian ini), serta tabel pivot dan kontrol (dibahas di bagian lain).
- Transkrip non-standar, mis. diproses oleh pemrogram, dapat diimplementasikan jika hanya dokumen spreadsheet yang ditampilkan dalam bentuk layar (elemen kontrol "TabularDocumentField").
- Cara termudah untuk menggunakan pengelompokan adalah dengan mengaktifkan mode pengelompokan otomatis baris, dan saat menampilkan setiap area dalam dokumen spreadsheet, tunjukkan tingkatannya. Disarankan juga untuk menyetel properti "Indentasi Otomatis" untuk sel yang diperlukan dalam tata letak.
- Catatan "muncul" saat Anda mengarahkan mouse ke sel. Dimungkinkan untuk mengubah tampilan catatan menggunakan bahasa bawaan.

Sebagian besar materi pelatihan pemrograman dalam sistem 1C menjelaskan tentang pembentukan formulir cetak berdasarkan suatu objek "Dokumen Tabel" terbatas pada menampilkan formulir yang sudah jadi di layar. Bagi pengguna, yang lebih penting adalah tampilan dokumen saat dicetak. Di sini, selain tata letak yang dirancang dengan baik, parameter pencetakan juga berperan.

Hampir semua parameter yang tersedia dalam dialog pengaturan pencetakan (pengaturan printer, properti halaman) dapat ditentukan secara langsung saat membuat dokumen spreadsheet.

Mari kita lihat properti dan metode dokumen spreadsheet yang terkait dengan pengaturan pencetakan (dalam contoh yang diberikan, “TabDoc” adalah objek bertipe “Dokumen Spreadsheet”).

Milik "Nama Pencetak" Memungkinkan Anda menentukan printer selain printer default untuk pencetakan. Nama tersebut harus sesuai dengan nama printer yang dikonfigurasi pada sistem:

TabDok. Nama Printer = "HP LaserJet 3050 Seri PCL 6";

Saat mencetak sekumpulan dokumen, Anda dapat menghemat waktu dengan mengatur opsi susunan:

TabDok. ParseByCopies = benar;

Jumlah salinan dapat ditentukan sebagai berikut:

TabDok. Jumlah Instance= 5 ;

Tentu saja, Anda dapat mengatur kolom:

TabDok. BidangKiri = 20 ; //Margin kiri adalah 20mm, margin lainnya adalah 10mm (default)

Beberapa properti halaman lainnya:

TabDok. Halaman Orientasi= Halaman Orientasi. Lanskap;
TabDok. InstancesOnPage= 2 ; //akan ada 2 halaman pada lembar tersebut
TabDok. Skala otomatis = benar; //mirip dengan pengaturan skala “lebar halaman”.

Jika perlu, Anda dapat menentukan nilai skala tertentu dalam persentase (properti "Skala Cetak").

Milik "Ukuran Halaman" memungkinkan Anda mengatur format halaman standar - “ A 3”, “A4”, “A 5” (daftar lengkap opsi tersedia di bantuan 1C).

TabDok. Ukuran Halaman = "A3" ; // huruf A harus bahasa Inggris

Untuk ukuran kertas non-standar (Custom), Anda dapat menentukan tinggi dan lebar halaman (dalam mm):

TabDok. Ukuran Halaman = "Kustom" ; //ukuran non-standar
TabDok. Tinggi Halaman = 350 ;
TabDok. Lebar Halaman = 350 ;

Juga dalam dokumen spreadsheet, Anda dapat mengontrol output header dan footer serta kontennya. Ini dilakukan dengan menggunakan properti "Tajuk" Dan "Catatan kaki". Misalnya:

TabDok. Tajuk. Keluaran = benar; //header akan dicetak
TabDok. Ukuran HeaderAtas= 7 ; //ukuran footer 7mm (default 10mm)
TabDok. Tajuk. Posisi Vertikal= Posisi Vertikal. Atas ;
TabDok. Tajuk. Halaman Beranda= 2 ; //footer ditampilkan dari halaman kedua
FontFooter=Font Baru("Kurir Baru", 8,Benar);
TabDok. Tajuk. Huruf = FontFooter; //font miring
TabDok. Tajuk. TextInCenter = "Tajuk";
TabDok. Tajuk. Teks Kanan = "Halaman[&Nomor Halaman] dari [&Total Halaman]"; // paginasi
TabDok. Tajuk. TextLeft = "[&Tanggal]" ; //tanggal sekarang

Dokumen yang dihasilkan dikirim untuk dicetak menggunakan metode ini "Jenis()". Ada dua opsi panggilan yang memungkinkan.

1) Langsung ke printer:

TabDok. Cetak(.Tidak Digunakan);
TabDok. Cetak(benar);

2) Sebelum mencetak, dialog cetak akan ditampilkan:

TabDok. Cetak ( DialogUsageModePrint. Menggunakan );
TabDok. Cetak (salah);

Selain itu, Anda dapat mengontrol bagaimana dokumen dibagi menjadi beberapa halaman. Anda dapat memperkirakan jumlah halaman dalam dokumen berdasarkan pengaturan printer saat ini:

TabDok. Jumlah Halaman();

Menggunakan metode "Periksa Keluaran()" Dan "Periksa Lampirkan ()" Anda dapat menentukan apakah dokumen spreadsheet atau serangkaian area dokumen spreadsheet akan sesuai dengan tinggi dan lebar halaman pada pengaturan printer saat ini.

Perlu diingat bahwa pengoperasian tiga metode terakhir bergantung pada printer yang diinstal. Jika metode tidak dapat menemukannya, pengecualian akan diberikan.

Anda dapat memaksa hentian halaman untuk disisipkan menggunakan metode berikut:"KeluaranVerticalPageSeparator()" Dan "KeluaranHorizontalPageSeparator()".

Dengan demikian, Anda dapat mengontrol pencetakan halaman demi halaman dan mengontrol pengisian halaman:

Jika Bukan TabDoc. Periksa Keluaran ( Array Area Keluaran) Kemudian
TabDok. Pemisah Halaman OutputHorizontal();
akhirJika;

Karakteristik penting dari platform 1C:Enterprise 8.2 adalah pemisahan properti dan metode yang ketat berdasarkan konteks eksekusi. Meskipun semua properti di atas tersedia dalam konteks apa pun, metode yang tercantum tidak tersedia di thin client. Pengecualiannya adalah metode “Cetak()”, yang ketersediaannya terbatas pada bagian klien karena alasan yang jelas. Ini berarti bahwa pembentukan dokumen spreadsheet harus dilakukan di server, dan harus dikirim untuk dicetak melalui prosedur klien.

Dokumen spreadsheet digunakan untuk membuat dokumen dan laporan utama yang terdiri dari sel-sel yang disusun dalam baris dan kolom. Setiap baris dan kolom mempunyai nomor uniknya masing-masing. Dalam hal ini, sel individual, rentang, dan objek grafik dapat diberi nama dengan memilih area yang diinginkan menggunakan bagian “Tabel - Nama”. Kemudian masukkan nama di kolom input dan klik "Tetapkan".

Untuk menghapus nama, pilih nama tersebut dari daftar dan klik tombol “Hapus”. Area yang belum diberi nama oleh pengguna akan diberi nama secara otomatis oleh program. Nama-nama ini dapat dilihat di palet Properties. Editor tabel dapat digunakan untuk membuat dokumen baru, melihat hasil laporan sebelumnya, dan mengedit dokumen tabel.

Cara membuat dokumen spreadsheet di 1C

Untuk membuat dokumen baru, klik pada bagian “File” - “New”, lalu pilih baris “Table document” dan konfirmasi dengan tombol “OK”. Jika Anda perlu membuka dokumen yang sudah dibuat, maka di bagian "File" - "Open", pilih nama file dari dokumen yang diperlukan dari daftar. Dalam hal ini, Anda dapat memilih format dokumen apa pun yang akan dibuka dengan mengklik kolom “Jenis file”.

Saat membuat tabel, pilih sel dan masukkan data (teks, rumus, data numerik). Jika Anda perlu mengubah ukuran sel, maka di Menu pilih “Format - Baris - Tinggi pas otomatis - Kolom - Lebar pas otomatis”. Untuk melakukannya, gerakkan mouse ke atas batas header baris atau kolom, tahan tombol kiri mouse, dan seret untuk mengubah ukurannya. Dalam 1C, tinggi baris dokumen spreadsheet dan lebar kolom akan berubah. Perintah pemilihan otomatis dibuka dengan mengklik dua kali pada batas judul.


Anda dapat mengulangi semua langkah dengan aman di database Anda atau dengan mudah membuat dokumen spreadsheet di 1C: Solusi siap pakai - versi cloud dari program berlisensi 1C. Uji layanan gratis selama 14 hari di 1C Online.

Cara mengubah tinggi baris dan lebar kolom dalam 1C

Anda dapat mengubah ukuran baris dan kolom dokumen spreadsheet secara manual atau otomatis.

Pada program 1C, tinggi baris dokumen spreadsheet akan berubah secara manual, jika Anda mengarahkan mouse ke batas bawah header baris dan menunggu hingga kursor mouse berubah menjadi panah vertikal bercabang. Setelah ini, kita mengatur tinggi garis yang kita butuhkan dengan memindahkan batas header.

Anda dapat mengubah lebar kolom dengan menempatkan penunjuk tetikus di tepi kanan header dan menunggu hingga kursor tetikus berubah menjadi panah horizontal bercabang. Pindahkan batas header dengan mouse untuk mengatur lebar yang diperlukan.

Lebar kolom minimum yang diperlukan dapat diatur dengan dua klik pada batas header. Editor akan secara mandiri mengatur lebar yang sesuai dengan keseluruhan teks.

Ada cara lain untuk mengubahnya secara manual. Tekan tombol “Ctrl” dan gerakkan mouse ke batas sel yang diinginkan. Setelah bentuk kursor berubah, atur ukuran yang diinginkan.

Di 1C, lebar kolom dokumen spreadsheet akan berubah secara otomatis, jika Anda memilih kolom yang diperlukan dan memilih bagian “Tabel” - “Sel” - “Lebar Kolom”. Di jendela yang muncul, tentukan lebarnya dan klik "OK".

Saat membuat dokumen spreadsheet baru, lebar semua kolom diatur secara default. Tapi itu juga bisa diubah. Untuk melakukan ini, di "Tabel" pilih "Sel" - "Lebar Kolom". Di jendela yang muncul, atur ukuran kolom dan klik “OK”. Jika Anda memilih “Otomatis”, maka ukurannya diatur ke seluruh dokumen.

Ketinggian garis akan berubah secara otomatis jika Anda mencentang kotak “Ketinggian garis otomatis”. Jika kotak centang tidak dicentang, maka ukuran baris tetap diatur di bidang “Tinggi Baris”.

Untuk mengatur lebar kolom berbeda untuk baris berbeda, Anda perlu memilih satu atau lebih baris dokumen.

Gerakkan mouse ke pemisah kolom dan tekan tombol kiri mouse. Tanpa melepaskan tombol, tarik kolom ke arah yang diinginkan (misalnya ke kiri) dan lepaskan tombol. Di jendela yang muncul, klik “OK”.

Anda juga dapat mengontrol warna teks, latar belakang, dan bingkai.


Biasanya, dokumen spreadsheet dibentuk berdasarkan tata letak, yang merupakan templat untuk membuat formulir cetak. Tata letaknya sendiri dapat berupa gambar, diagram, dan tabel pivot. Contoh ini menunjukkan tata letak untuk mencetak faktur habis pakai:


Beberapa sel hanya berisi teks, yang lain berisi nama parameter yang harus ditentukan dalam modul program melalui "Parameter" dari objek "Dokumen Spreadsheet".

Mengelompokkan baris dalam dokumen spreadsheet

Dalam dokumen spreadsheet, Anda dapat mengelompokkan baris dan kolom untuk mengkategorikan data dalam laporan. Ada pengelompokan horizontal yang letaknya bisa di kanan atau kiri, dan pengelompokan vertikal yang letaknya di atas atau di bawah.

Anda juga dapat menampilkan level pengelompokan. Saat Anda mengklik angka di header, semua grup akan diperluas sekaligus. Saat menerapkan pengelompokan, lekukan level terbentuk secara otomatis:


Decoding dokumen spreadsheet 1C

Kami akan menggunakan mekanisme dekripsi untuk mendapatkan laporan rinci atau tambahan. Untuk melakukan ini, klik pada baris atau sel di dokumen.

Ada dua tindakan saat mendekripsi dokumen:

  • Standar - klik pada elemen dokumen atau direktori, setelah itu sistem akan membuka objek ini untuk dilihat.
  • Non-standar - kami akan menetapkan algoritme untuk mendapatkan laporan terperinci. Untuk melakukan ini, Anda perlu memformat ulang yang sudah ada menggunakan ketentuan pemilihan tambahan (“tampilkan penjualan hanya untuk rekanan ini”). Atau,

Saat menggunakan dekripsi, Anda bisa mendapatkan laporan yang benar-benar baru (misalnya, “tampilkan faktur yang berkontribusi terhadap volume penjualan untuk rekanan ini”).

Karena laporan yang terdapat dalam solusi aplikasi tertentu dipanggil secara otomatis, hal ini mempersulit pekerjaan pengguna. Untuk mempermudah pekerjaannya, diperlukan mekanisme dekripsi.

Bagaimana cara menyimpan dokumen spreadsheet dalam 1C

Agar dapat menggunakan dokumen spreadsheet di masa mendatang (membuka, melihat, mencetak), Anda perlu menyimpannya. Pilih bagian "File" dan klik "Simpan". Setelah ini, sebuah jendela akan muncul di layar di mana kami menunjukkan direktori dan nama file. Jika Anda perlu mengganti nama dokumen, atau menyimpannya dalam format lain, pilih bagian “File” dan “Save As”.

Biasanya, dokumen disimpan dalam format yang digunakan oleh sistem 1C:Enterprise (*.mxl). Namun, dokumen spreadsheet dapat diekspor ke format penyimpanan data lainnya, termasuk format spreadsheet ODF (*.ods), dokumen Word (*.docx), dokumen HTML (*.htm) atau file teks UNICODE (*. txt). Selain itu, dimungkinkan untuk menyimpan dokumen spreadsheet dalam 1C di excel atau pdf.

Mencetak dokumen spreadsheet dalam 1C

Untuk melihat dokumen sebelum dicetak, pilih bagian “File - Pratinjau”. Untuk keluar dari pratinjau, klik tombol "Tutup".

Di pengaturan halaman, kami akan mengatur parameter untuk mencetak dokumen spreadsheet dalam 1C - skala, ukuran, batas, dll. Di editor tabel, atur parameter untuk menempatkan baris dan kolom. "Posisi Halaman" memaksa penomoran halaman, pengulangan baris dan kolom, dll.

Kami akan mengeluarkan dokumen ke printer dengan mengklik bagian "File" - "Print". Sebuah jendela dengan pengaturan akan muncul di halaman, di mana Anda perlu mengatur parameter pencetakan - pilih printer, rentang halaman dan jumlah salinan - dan klik "OK".

Apakah Anda memiliki pertanyaan? Tanyakan kepada mereka di komentar dan kami akan melakukannya
Kami pasti akan menjawabnya.

Sebagian besar materi pelatihan pemrograman dalam sistem 1C menjelaskan tentang pembentukan formulir cetak berdasarkan suatu objek "Dokumen Tabel" terbatas pada menampilkan formulir yang sudah jadi di layar. Bagi pengguna, yang lebih penting adalah tampilan dokumen saat dicetak. Di sini, selain tata letak yang dirancang dengan baik, parameter pencetakan juga berperan.

Hampir semua parameter yang tersedia dalam dialog pengaturan pencetakan (pengaturan printer, properti halaman) dapat ditentukan secara langsung saat membuat dokumen spreadsheet.

Mari kita lihat properti dan metode dokumen spreadsheet yang terkait dengan pengaturan pencetakan (dalam contoh yang diberikan, “TabDoc” adalah objek bertipe “Dokumen Spreadsheet”).

Milik "Nama Pencetak" Memungkinkan Anda menentukan printer selain printer default untuk pencetakan. Nama tersebut harus sesuai dengan nama printer yang dikonfigurasi pada sistem:

TabDok. Nama Printer = "HP LaserJet 3050 Seri PCL 6";

Saat mencetak sekumpulan dokumen, Anda dapat menghemat waktu dengan mengatur opsi susunan:

TabDok. ParseByCopies = benar;

Jumlah salinan dapat ditentukan sebagai berikut:

TabDok. Jumlah Instance= 5 ;

Tentu saja, Anda dapat mengatur kolom:

TabDok. BidangKiri = 20 ; //Margin kiri adalah 20mm, margin lainnya adalah 10mm (default)

Beberapa properti halaman lainnya:

TabDok. Halaman Orientasi= Halaman Orientasi. Lanskap;
TabDok. InstancesOnPage= 2 ; //akan ada 2 halaman pada lembar tersebut
TabDok. Skala otomatis = benar; //mirip dengan pengaturan skala “lebar halaman”.

Jika perlu, Anda dapat menentukan nilai skala tertentu dalam persentase (properti "Skala Cetak").

Milik "Ukuran Halaman" memungkinkan Anda mengatur format halaman standar - “ A 3”, “A4”, “A 5” (daftar lengkap opsi tersedia di bantuan 1C).

TabDok. Ukuran Halaman = "A3" ; // huruf A harus bahasa Inggris

Untuk ukuran kertas non-standar (Custom), Anda dapat menentukan tinggi dan lebar halaman (dalam mm):

TabDok. Ukuran Halaman = "Kustom" ; //ukuran non-standar
TabDok. Tinggi Halaman = 350 ;
TabDok. Lebar Halaman = 350 ;

Juga dalam dokumen spreadsheet, Anda dapat mengontrol output header dan footer serta kontennya. Ini dilakukan dengan menggunakan properti "Tajuk" Dan "Catatan kaki". Misalnya:

TabDok. Tajuk. Keluaran = benar; //header akan dicetak
TabDok. Ukuran HeaderAtas= 7 ; //ukuran footer 7mm (default 10mm)
TabDok. Tajuk. Posisi Vertikal= Posisi Vertikal. Atas ;
TabDok. Tajuk. Halaman Beranda= 2 ; //footer ditampilkan dari halaman kedua
FontFooter=Font Baru("Kurir Baru", 8,Benar);
TabDok. Tajuk. Huruf = FontFooter; //font miring
TabDok. Tajuk. TextInCenter = "Tajuk";
TabDok. Tajuk. Teks Kanan = "Halaman[&Nomor Halaman] dari [&Total Halaman]"; // paginasi
TabDok. Tajuk. TextLeft = "[&Tanggal]" ; //tanggal sekarang

Dokumen yang dihasilkan dikirim untuk dicetak menggunakan metode ini "Jenis()". Ada dua opsi panggilan yang memungkinkan.

1) Langsung ke printer:

TabDok. Cetak(.Tidak Digunakan);
TabDok. Cetak(benar);

2) Sebelum mencetak, dialog cetak akan ditampilkan:

TabDok. Cetak ( DialogUsageModePrint. Menggunakan );
TabDok. Cetak (salah);

Selain itu, Anda dapat mengontrol bagaimana dokumen dibagi menjadi beberapa halaman. Anda dapat memperkirakan jumlah halaman dalam dokumen berdasarkan pengaturan printer saat ini:

TabDok. Jumlah Halaman();

Menggunakan metode "Periksa Keluaran()" Dan "Periksa Lampirkan ()" Anda dapat menentukan apakah dokumen spreadsheet atau serangkaian area dokumen spreadsheet akan sesuai dengan tinggi dan lebar halaman pada pengaturan printer saat ini.

Perlu diingat bahwa pengoperasian tiga metode terakhir bergantung pada printer yang diinstal. Jika metode tidak dapat menemukannya, pengecualian akan diberikan.

Anda dapat memaksa hentian halaman untuk disisipkan menggunakan metode berikut:"KeluaranVerticalPageSeparator()" Dan "KeluaranHorizontalPageSeparator()".

Dengan demikian, Anda dapat mengontrol pencetakan halaman demi halaman dan mengontrol pengisian halaman:

Jika Bukan TabDoc. Periksa Keluaran ( Array Area Keluaran) Kemudian
TabDok. Pemisah Halaman OutputHorizontal();
akhirJika;

Karakteristik penting dari platform 1C:Enterprise 8.2 adalah pemisahan properti dan metode yang ketat berdasarkan konteks eksekusi. Meskipun semua properti di atas tersedia dalam konteks apa pun, metode yang tercantum tidak tersedia di thin client. Pengecualiannya adalah metode “Cetak()”, yang ketersediaannya terbatas pada bagian klien karena alasan yang jelas. Ini berarti bahwa pembentukan dokumen spreadsheet harus dilakukan di server, dan harus dikirim untuk dicetak melalui prosedur klien.

  • Sergei Savenkov

    semacam ulasan "pendek"... seolah-olah mereka sedang terburu-buru di suatu tempat