1c formulir cetak tambahan. Menambahkan formulir pencetakan eksternal ke database

Langganan
Bergabunglah dengan komunitas “koon.ru”!
Berhubungan dengan:
Bagaimana cara membuat formulir pencetakan eksternal berdasarkan yang sudah jadi? 1C 8.0/8.1
_______________________________________________________

Diasumsikan bahwa Anda sudah mempunyai pengetahuan yang diperoleh dari membaca topik tersebut, sehingga hanya pertanyaan baru yang dibahas secara rinci.

Jadi: kami perlu sedikit mengubah tata letak faktur pembayaran kepada pembeli (kami akan bekerja dengan konfigurasi Accounting 1.6):
- hapus header pada tata letak faktur untuk pembayaran (teks “Perhatian! Pembayaran faktur ini..., tergantung pada surat kuasa dan paspor.”)
- mengubah presentasi pemasok (yaitu kami) atas permintaan bank
(tugas kehidupan nyata dengan waktu kerja 15-20 menit)

Pembuatan pemrosesan akan terdiri dari dua tahap:
1 - membuat analog lengkap dari formulir pencetakan asli
2 - modifikasi sesuai kebutuhan Anda

Tahap satu

Pertama, mari kita buat pemrosesan eksternal yang kosong, tetapi kita tidak akan membuat tata letak -
kami akan menyalinnya untuk modifikasi nanti dari konfigurasi utama. Untuk menyalin tata letak ke dalam pemrosesan dari konfigurasi, itu sudah cukup
pilih di pohon objek, lalu buka menu Sunting-Menyalin, lalu di pohon data pemrosesan di cabang tata letak, pilih
di menu Sunting-Menyisipkan Cara yang lebih mudah adalah dengan langsung menyeret tata letak ini dari konfigurasi utama ke pohon data dengan mouse
pengolahan.

Dan kami menulis kode ini:

Fungsi Cetak() Ekspor //... di sini kita akan menulis sesuatu nanti Akhir Fungsi

Apa yang kami lakukan: agar formulir pencetakan eksternal berfungsi, diperlukan fungsi ekspor (yaitu terlihat oleh objek konfigurasi lainnya) Segel,
yang akan mengembalikan dokumen spreadsheet yang dihasilkan ke program utama untuk pratinjau dan pencetakan selanjutnya.

Agar tidak menemukan kembali roda, mari kita lihat bagaimana dokumen spreadsheet dibentuk dalam konfigurasi utama: untuk ini kita akan pergi
ke modul dokumen Faktur Pembayaran kepada Pembeli Mari kita temukan fungsi dalam modul Segel, yang terlihat seperti ini:

// Prosedur mencetak dokumen. Anda dapat mengarahkan pencetakan ke // layar atau printer, dan mencetak jumlah salinan yang diperlukan. // // Nama layout cetak diteruskan sebagai parameter, // menggunakan nama yang diteruskan kita mencari nama layout yang sesuai. // // Parameter: // LayoutName - string, nama tata letak. // Prosedur Cetak(LayoutName, Number of Instances = 1, OnPrinter = False, DirectPrint = False) Ekspor // Dapatkan salinan dokumen untuk dicetak Jika LayoutName = "Invoice" Kemudian TabDocument = PrintOrderInvoice(LayoutName); berakhir jika; Mekanisme Universal.PrintDocument(TabDocument, Jumlah Instance, OnPrinter, WorkWithDialogs.GenerateDocumentTitle(ThisObject, ""), DirectPrint); Prosedur Akhir // Cetak

Dalam kasus kami, ternyata untuk mencetak faktur, parameter diteruskan ke fungsi ini Nama Tata Letak sama dengan variabel string "memeriksa",
jika kita melihat kodenya, kita akan melihat bahwa fungsi tersebut digunakan untuk menghasilkan faktur standar Cetak Faktur Pesanan(...), yang sekarang
Kita perlu menemukannya di kode modul dokumen. Biasanya letaknya tepat di atas fungsi segel(...)
Jadi, inilah teks singkat dari fungsi ini:

// Fungsi ini menghasilkan dokumen tabular dengan formulir cetak untuk pesanan atau faktur, // dikembangkan oleh ahli metodologi // // Nilai yang dikembalikan: // Dokumen tabular adalah formulir cetak yang dihasilkan // Fungsi PrintOrderInvoice(Type) Permintaan = Baru Meminta; Request.SetParameter("Dokumen Saat Ini", Objek Ini.Tautan); // ...kode program...Area Tata Letak.Parameter.Isi(Header); TabDocument.Output(LayoutArea); kembalikan TabDokumen; Fungsi Akhir // PrintOrderInvoice()

Seperti yang bisa kita lihat, di akhir fungsi ini, dokumen spreadsheet yang dihasilkan dikembalikan - yang harus kita lakukan hanyalah menyalin teks sepenuhnya
fungsi ini (dimulai dengan baris "Request = New Query;" dan diakhiri dengan baris "Return TabDocument;") dan masukkan ke dalam isi fungsi yang telah disiapkan
Segel dalam modul pemrosesan kami.

Setelah kita memasukkan teks fungsi, mari kita coba menyimpan prosesnya. Konfigurator akan memperingatkan kita bahwa ia telah mendeteksi kesalahan pada modul dan tampilan
mereka di jendela pesan layanan. Berikut adalah contoh pengujian untuk kesalahan ini:

(ExternalProcessing.ExternalProcessing1(102,7)): Variabel tidak ditentukan (Jenis) Jika<>Jenis = "Akun" Lalu (ExternalProcessing.ExternalProcessing1(224,7)): Variabel tidak ditentukan (Jenis) Jika<>Jenis = "Akun" Lalu (ExternalProcessing.ExternalProcessing1(107,15)): Variabel tidak ditentukan (StructuralUnit) IfValueType(<>StructuralUnit) = Type("DirectoryLink.BankAccounts") Kemudian (ExternalProcessing.ExternalProcessing1(108,40)): Variabel tidak ditentukan (StructuralUnit) Bank = ?(BUKAN ValueFilled(<>StructuralUnit.BankForSettlements), StructuralUnit.Bank, StructuralUnit.BankForSettlements); (ExternalProcessing.ExternalProcessing1(108,77)): Variabel tidak ditentukan (StructuralUnit) Bank = ?(BUKAN ValueFilled(StructuralUnit.BankForSettlements),<>Unit Struktural.Bank, Unit Struktural.BankUntukPenyelesaian); (ExternalProcessing.ExternalProcessing1(108,102)): Variabel tidak ditentukan (StructuralUnit) Bank = ?(NOT ValueFilled(StructuralUnit.BankForSettlements), StructuralUnit.Bank,<>Unit Struktural.BankForSettlements); (ExternalProcessing.ExternalProcessing1(112,38)): Variabel tidak ditentukan (StructuralUnit)AccountNumber = ReturnAccount(<>Unit Struktural); (ExternalProcessing.ExternalProcessing1(123,21)): Variabel tidak ditentukan (StructuralUnit) Jika BlankString(<>StructuralUnit.CorrespondentText) Kemudian (ExternalProcessing.ExternalProcessing1(125,27)): Variabel tidak ditentukan (StructuralUnit) Jika ValueFilled(<>StructuralUnit.BankForSettlements) Kemudian (ExternalProcessing.ExternalProcessing1(126,59)): Variabel tidak ditentukan (StructuralUnit)CorrespondentText =CorrespondentText + "r/s" +<>StructuralUnit.AccountNumber (ExternalProcessing.ExternalProcessing1(127,15)): Variabel tidak ditentukan (StructuralUnit) + " di " +<>StructuralUnit.Bank + " " + StructuralUnit.Bank.City; (ExternalProcessing.ExternalProcessing1(127,47)): Variabel tidak ditentukan (StructuralUnit) + " di " + StructuralUnit.Bank + " " +<>Unit Struktural.Bank.Kota; (ExternalProcessing.ExternalProcessing1(130,26)): Variabel tidak ditentukan (StructuralUnit) Teks Koresponden =<>Unit Struktural.Koresponden Teks; (ExternalProcessing.ExternalProcessing1(112,17)): Prosedur atau fungsi dengan nama yang ditentukan tidak ditentukan (Return Account) Nomor Rekening =<>ReturnAccount(Unit Struktural);

Mari kita lihat kesalahan ini:
*** 1. Variabel tidak ditentukan (Jenis)- jika Anda melihat kode sumber fungsi, menjadi jelas bahwa variabel tipe adalah parameter:
Fungsi PrintInvoiceOrder(Jenis), kami menghapus parameter ini. Dalam hal ini, parameter ini berisi baris dengan nama tata letak
untuk mencetak. Karena kita hanya perlu mencetak satu tata letak - mari kita definisikan variabel ini sebagai berikut: kita akan mengubah judul
fungsi Segel dalam modul pemrosesan:

Fungsi Cetak(Jenis = "Akun")

Apa arti notasi ini: artinya jika tidak ada parameter yang diteruskan ke fungsi, maka parameternya Jenis akan mengambil nilainya
bawaan "Memeriksa", itulah yang perlu kita kerjakan.

*** 2. Variabel tidak ditentukan (Unit Struktural)- variabel ini adalah atribut dokumen Faktur Pembayaran kepada Pembeli, Karena
dalam modul formulir cetakan eksternal kita tidak melihat atribut ini (kita tidak berada di badan objek dokumen), kita akan mendapatkan variabel ini melalui
tautan ke dokumen, mis. melalui detail pemrosesan Referensi Objek, ke mana program akan meneruskan tautan ke dokumen saat ini.
Tambahkan baris berikut ke awal fungsi:

*** 3. Prosedur atau fungsi dengan nama yang ditentukan tidak ditentukan (Return Account)- fungsi ini didefinisikan (yaitu dijelaskan) dalam modul
dokumen, oleh karena itu, kita hanya perlu mentransfer sepenuhnya kode fungsi ini ke dalam pemrosesan kita.

Jadi sekarang modul pemrosesan terlihat seperti ini:

Fungsi ReturnCurrentAccount(CounterpartyAccount) BankForSettlements = CounterpartyAccount.BankForSettlements; Hasil = ?(BankForSettlements.Empty(), Counterparty Account.AccountNumber, Counterparty Account.Bank.CorrespondentAccount); Hasil Pengembalian; Akhir Fungsi // Mengembalikan Akun Saat Ini() // Fungsi menghasilkan dokumen tabel dengan formulir tercetak untuk pesanan atau faktur, // dikembangkan oleh ahli metodologi // // Nilai pengembalian: // Dokumen tabel - menghasilkan formulir tercetak // Fungsi Cetak(Jenis = "Faktur") Ekspor StructuralUnit = ObjectLink.StructuralUnit; Permintaan = Permintaan Baru; Request.SetParameter("Dokumen Saat Ini", Objek Ini.Tautan); // ...teks program...Area Tata Letak.Parameter.Isi(Header); TabDocument.Output(LayoutArea); kembalikan TabDokumen; Fungsi Akhir // PrintOrderInvoice()

Jika semuanya dilakukan dengan benar, maka sekarang kita dapat menyimpan pemrosesan dan kita akan mendapatkan analog eksternal lengkap dari formulir pencetakan bawaan.

Tahap dua

Sekarang mari kita buat perubahan yang diperlukan pada tata letak saat mencetak (dengan asumsi Anda tahu cara bekerja dengan tata letak), dan juga ubah
teks pemasok di header faktur.

Seperti yang bisa kita lihat dari kode program, teks penerima diisi di lokasi ini:

Jika BlankString(StructuralUnit.CorrespondentText) ThenCorrespondentText = SupplierInformation.FullName; Jika Nilai Diisi (StructuralUnit.BankForSettlements) Maka CorrespondentText = CorrespondentText + "account" + StructuralUnit.AccountNumber + " in " + StructuralUnit.Bank + " " + StructuralUnit.Bank.City; berakhir jika; Jika tidak, CorrespondentText = StructuralUnit.CorrespondentText; berakhir jika; LayoutArea.Parameters.ProviderView = Teks Koresponden;

Pelanggan menetapkan syarat bahwa teks untuk kotak ini diambil dari nama pembayar dalam perintah pembayaran
transfer pajak. Teks ini disimpan dalam atribut elemen direktori Organisasi- yang tersisa hanyalah
mengaksesnya. Jika kita melihat rincian dokumen, kita akan melihat bahwa dokumen tersebut berisi informasi tentang organisasi,
sesuai dengan dokumen yang dikeluarkan, dan teks yang kita perlukan disimpan dalam detail organisasi - sekarang kita tahu cara mendapatkan akses:

Layout Area.Parameters.SupplierView = LinkToObject.Organization.Nama Pembayar Saat Mentransfer Pajak;

Itu saja - tata letaknya siap digunakan dan dapat dihubungkan ke konfigurasi!

Dalam topik tersebut Anda dapat mengambil pengobatan yang seharusnya menghasilkan hasil akhir.

PS. Diskusi, pertanyaan, saran - semuanya sesuai topik.

Artikel ini akan memberi tahu Anda secara rinci bagaimana seorang pemula dengan sedikit pengetahuan tentang 1C 8 dapat membuat formulir cetakan. Misalnya, mari kita ambil salah satu konfigurasi 1C 8 yang paling umum - Akuntansi 2.0. Membuat formulir cetak 1C tahapan penulisan :

  • Membuat file formulir pencetakan eksternal;
  • Pembuatan tata letak formulir cetak;
  • Menulis kode program untuk menampilkan data formulir tercetak di layar;
  • Membuat parameter untuk registrasi otomatis formulir cetak;
  • Menghubungkan formulir pencetakan eksternal ke pangkalan Perusahaan 1C.

Pembuatan formulir cetak 1C. Rumusan masalah

Kami diperlukan dalam konfigurasi Akuntansi 2.0 membuat formulir cetak untuk dokumen Penerimaan barang dan jasa. Di header formulir yang dicetak, tampilkan data berikut:

  • Organisasi;
  • Pihak lawan;
  • Perjanjian pihak lawan;
  • Tanggal penerimaan.

Tampilkan data di bagian tabel sebagai tabel Barang-barang dokumen. Tabel harus mencakup kolom berikut:

  • Tata nama;
  • Kuantitas;
  • Harga;
  • Jumlah;
  • Dan juga harga barang pada tanggal sekarang (berdasarkan jenis harga dari dokumen).

File pemrosesan eksternal

Mari kita beralih ke pemecahan masalah. Pertama, mari kita buka 1C 8 dalam mode konfigurator. Dalam mode inilah semua pengembangan dilakukan pada platform 1C 8. Sekarang kita perlu membuat file pemrosesan eksternal. Untuk melakukan ini, klik pada menu File -> Baru… atau dengan ikon file baru.

Di jendela yang terbuka, pilih item Pemrosesan eksternal.

Selanjutnya di lapangan Nama Anda harus memasukkan nama pemrosesan eksternal. Dalam kasus kami, kami cukup menyebutnya "Bentuk Cetak"; bidang sinonim akan terisi secara otomatis. Harap dicatat bahwa di lapangan Nama, pengolahan luar, nama harus ditulis tanpa spasi atau tanda baca.

Mari tambahkan atribut pemrosesan eksternal LinkToObject dan pilih mengetik untuknya DocumentLink Penerimaan Barang dan Jasa. Untuk melakukan ini, di pohon metadata pemrosesan eksternal 1C, pilih item Persyaratan dan tekan tombolnya Menambahkan(tombol dengan tanda tambah hijau). Jendela properti atribut akan terbuka di sisi kanan layar, di lapangan Nama Mari menulis - ReferensiKeObjek. DI DALAM bidang Jenis tekan tombol dengan tiga titik.

Mari perluas cabang di pohon tipe Tautan Dokumen, dan temukan elemen Kwitansi Barang dan Jasa di sana, centang kotak di sebelahnya dan klik OKE.

Mari simpan file pemrosesan eksternal ke hard drive, untuk melakukan ini, gunakan menu File -> Simpan, piktogram Menyimpan(floppy disk biru), atau pintasan keyboard Ctrl+S. Beri nama file yang disimpan “PrintForm”.

Membuat tata letak formulir tercetak

Mari kita mulai membuat layout formulir pencetakan 1C. Layout berfungsi sebagai template keluaran formulir cetakan, jadi jika ingin formulir cetakan Anda terlihat bagus, Anda harus memperhatikannya.

Mari tambahkan tata letak baru di pohon metadata pemrosesan eksternal; kami tidak akan mengubah apa pun di jendela perancang tata letak dan klik tombol Siap.

Pada layout baru yang terbuka, kita akan membuat beberapa area yang diperlukan untuk menampilkan formulir cetakan. Semua area tata letak yang kita butuhkan akan berbentuk horizontal, jadi untuk membuat area baru, pilih jumlah garis tata letak yang diperlukan dan masuk ke menu Tabel -> Nama -> Tetapkan nama atau gunakan pintasan keyboard Ctrl + Shift + N, lalu masukkan nama wilayah pada kotak tersebut. Saat membuat area tata letak, jangan takut membuat kesalahan dengan jumlah garis; Anda selalu dapat menambah atau menghapusnya. Untuk menghapus garis tata letak 1C, pilih garis yang diinginkan dan pilih item di menu konteks Menghapus. Untuk menambahkan baris baru ke tata letak, pilih baris mana pun dalam tata letak dan pilih item di menu konteks Memperluas.

Menambahkan Header Tata Letak

Pertama-tama, mari kita buat sebuah area Topi, ini akan menampilkan data untuk header formulir yang dicetak. Untuk area ini kita memerlukan tujuh garis tata letak. Mari kita pilih dan, seperti yang saya tulis di atas, tekan kombinasi tombol Ctrl + Shift + N, di lapangan Nama tulis "Topi" dan tekan tombol OKE.

Mari kita isi area layout dengan data yang kita butuhkan. Biasanya, tidak ada formulir cetak yang lengkap tanpa judul, jadi mari kita buat juga di header tata letak kita. Karena pada judul selain nama formulir yang dicetak, kita juga akan menampilkan nomor dokumen asal cetakannya, maka kita akan mengatur teks judul pada layout sebagai parameternya. Parameter tata letak adalah sel tata letak yang dirancang khusus di mana berbagai data dapat dikeluarkan menggunakan bahasa 1C 8 bawaan. Judul harus ditampilkan di seluruh lebar formulir yang dicetak, jadi mari kita putuskan berapa banyak sel tata letak yang cukup untuk kita cetak pada orientasi lanskap standar lembar tersebut.

Biasanya tiga belas atau empat belas sel tata letak sudah cukup, pilih sel tersebut di baris pertama area Topi dan digabungkan menjadi satu sel ( Menu konteks -> Gabung). Setelah ini, klik dua kali pada sel besar yang dihasilkan dan tulis nama parameternya, dalam kasus kita “TitleText”. Agar teks yang dimasukkan menjadi parameter lengkap, klik kanan pada sel dan pilih item di menu konteks Properti. Di penanda Tata Letak ayo cari lapangannya Isian dan pilih nilainya Parameter. Parameter dalam tata letak 1C ditunjukkan dengan tanda kurung “<>».

Judul formulir yang dicetak harus menonjol di antara teks lainnya, jadi pilih kembali sel tersebut dan gunakan ikon pada panel pemformatan tata letak untuk mengatur perataan teks terpusat dan ukuran font 14.

Setelah teks judul akan kita tampilkan di area tersebut Topi informasi tentang organisasi, rekanan, perjanjian rekanan dan tanggal penerimaan barang. Karena semua data ini juga diambil dari dokumen, kami juga akan memformalkannya dengan parameter. Selain itu, sebelum setiap parameter, Anda harus menulis teks penjelasan sehingga pengguna dapat dengan mudah memahami lokasi organisasi, lokasi rekanan, dll. Semua tindakan ini mirip dengan membuat judul, jadi saya tidak akan membahasnya secara detail, saya hanya akan memberikan gambaran apa yang akan terjadi pada akhirnya.

Gambar tersebut menunjukkan perbedaan parameter tata letak dari teks biasa.

Menambahkan Header Tabel Tata Letak

Hal terakhir yang perlu kita buat di area tata letak ini adalah header tabel, di mana data bagian tabel akan ditampilkan Barang-barang. Kolom yang diperlukan untuk tabel dijelaskan di bagian “Pernyataan Masalah”. Kita juga akan membuat header tabel dengan menggunakan kombinasi sel dan tulisan teks (nama kolom). Pilih batas header tabel menggunakan alat ini Bingkai, yang terletak di panel pemformatan tata letak.

Menambahkan tabel ke tata letak

Mari buat area lain di tata letak - Data. Tabel data bagian tabel akan ditampilkan di dalamnya Barang-barang. Untuk area ini, kita hanya membutuhkan satu baris layout. Untuk menampilkan semua baris bagian tabel dalam bentuk cetakan, kami akan mengisi dan menampilkan area ini sebanyak yang diperlukan. Kolom di area tersebut Data harus sesuai dengan kolom-kolom pada header tabel, sehingga pengisiannya tidak akan sulit. Perbedaannya hanya pada wilayahnya saja Data kita membutuhkan parameter, bukan hanya teks. Perhatikan juga bahwa secara default, parameter numerik diformat ke kanan dan parameter teks diformat ke kiri. Untuk memilih kolom, Anda juga perlu menggunakan alat ini Bingkai.

Menambahkan Footer ke Tata Letak

Area tata letak terakhir yang kita butuhkan adalah Ruang bawah tanah. Ini akan menampilkan total berdasarkan kuantitas dan jumlah. Penciptaan mirip dengan menciptakan suatu area Data, namun selain itu hasilnya harus disorot dalam huruf tebal.

Hasil akhirnya akan berupa tata letak seperti ini:

Pembuatan formulir cetak 1C. Pemrograman

Mari kita mulai pemrograman - ini adalah tahap terpenting dalam membuat formulir cetak. Pertama-tama, mari kita pergi ke modul objek formulir pencetakan eksternal, di sinilah kita akan memprogram. Untuk melakukan ini, di jendela pemrosesan eksternal utama, klik Tindakan -> Buka modul objek.

Anda perlu membuat fungsi ekspor di modul objek formulir pencetakan eksternal Segel().

Fungsi Cetak() Ekspor Fungsi Akhir

Perlu diketahui bahwa fitur ini diperlukan untuk pencetakan formulir eksternal dalam konfigurasi menggunakan aplikasi biasa. Semua kode program selanjutnya yang diperlukan untuk menampilkan formulir cetakan akan ditulis di dalam fungsi ini.

Inisialisasi Variabel Dasar

Mari buat variabel TabDok, yang akan berisi dokumen spreadsheet - ini adalah formulir cetak di mana kita akan menampilkan area tata letak yang terisi.

TabDoc = Dokumen Tabular baru;

Ke suatu variabel Tata Letak Kita akan mendapatkan tata letak formulir cetak yang kita buat. Untuk melakukan ini kami menggunakan fungsi bawaan Dapatkan Tata Letak(<ИмяМакета>).

Tata Letak = GetLayout("Tata Letak");

Kami akan mengubah semua area tata letak menjadi variabel. Untuk melakukan ini kami menggunakan metode tata letak Dapatkan Area(<ИмяОбласти>) .

HeaderArea = Tata Letak.GetArea("Header"); AreaData = Tata Letak.GetArea("Data"); AreaFooter = Layout.GetArea("Footer");

Mengeluarkan header formulir cetak ke dalam dokumen spreadsheet

Semua variabel yang diperlukan diinisialisasi. Mari mulai mengisi dan menampilkan area tata letak dalam dokumen spreadsheet. Pertama-tama, mari kita isi judul formulir yang dapat dicetak; untuk ini kita perlu memasukkan parameternya Teks Judul, yang kita buat di layout, teks yang kita butuhkan. Untuk mengisi nilai parameter area tata letak, ada koleksi khusus yang disebut - Pilihan. Dari mana melalui “.” Anda bisa mendapatkan parameter apa pun. Di teks header kami akan mentransfer teks: "Formulir tercetak", serta nomor dokumen.

Area Header.Parameters.TitleText = "Cetak formulir"+LinkToObject.Number;

Kami akan mengisi parameter header yang tersisa dengan cara yang sama; kami akan mendapatkan semua nilai yang diperlukan untuk parameter tersebut dari detailnya Referensi Objek, yang berisi link ke dokumen yang akan dicetak.

HeaderArea.Parameters.Organization = LinkToObject.Organisasi; HeaderArea.Parameters.Akun = LinkToObject.Akun; HeaderArea.Parameters.ReceiptDate = ObjectLink.Date; Area Header.Parameters.Counterparty Agreement = LinkToObject.Counterparty Agreement;

Semua parameter header sudah terisi, kita akan menampilkannya di dokumen spreadsheet yang kita buat, untuk ini kita menggunakan metode Keluaran(<Область>) .

TabDoc.Output(Area Header);

Menulis permintaan untuk handicap tercetak

Mari kita mulai mengisi dan menggambar area tersebut Data. Membuat formulir cetak 1C juga melibatkan penulisan kueri, kita membutuhkannya untuk mendapatkan data tabular Barang-barang dan harga Nomenklatur untuk tanggal saat ini yang akan kita gunakan Meminta. Bahasa kueri 1C 8 mirip dengan SQL, atau lebih tepatnya menyalin kemampuan operator SELECT-nya, tetapi seluruh kueri ditulis dalam bahasa Rusia. Oleh karena itu, jika Anda setidaknya sedikit familiar dengan SQL, maka Anda akan dengan mudah memahami bahasa kueri 1C 8.

Dalam bentuk cetak ini, permintaan akan cukup sederhana dan banyak yang akan mengatakan bahwa permintaan tersebut dapat dilakukan tanpanya, tetapi pengetahuan tentang bahasa kueri dan kemampuan untuk menggunakannya dengan benar adalah salah satu keterampilan utama seorang programmer 1C. Kueri memungkinkan Anda memperoleh sampel data yang kompleks menggunakan sumber daya yang lebih sedikit, dan teks kueri jauh lebih mudah dipahami daripada kode program yang ditulis tanpa menggunakan kueri (atau dengan penggunaan minimal). Selain itu, 1C 8 memiliki perancang kueri yang sangat baik yang memungkinkan Anda menyusun kueri secara interaktif dari tabel yang diperlukan.

Mari kita buat variabel yang akan berisi permintaan tersebut.

Permintaan = Permintaan Baru;

Kami akan membuat teks permintaan menggunakan konstruktor permintaan. Untuk memulainya, mari kita tulis:

Permintaan.Teks = "";

Tempatkan kursor mouse di antara tanda kutip dan tekan tombol kanan mouse. Di menu konteks yang terbuka, pilih item Minta konstruktor, ini akan banyak membantu kita dalam membuat formulir pencetakan 1C. Setelah ini, jendela perancang kueri akan terbuka; berisi banyak tab, tetapi untuk kueri kita, kita hanya memerlukan empat: "Tabel dan Bidang", "Relasi", "Kondisi", "Gabungan / Alias".

Untuk kueri kita, kita memerlukan dua tabel: bagian tabel Barang-barang dokumen Penerimaan barang dan jasa dan cuplikan informasi terkini pada tanggal pendaftaran saat ini Harga barang.

Di sisi kiri jendela desainer kita menemukan kolom Basis data. Ini berisi pohon dari semua objek metadata, mari temukan yang kita butuhkan. Untuk melakukan ini, mari kita buka threadnya Dokumentasi dan temukan dokumennya Penerimaan Barang dan Jasa, mari kita buka dan temukan bagian tabelnya Barang-barang, seret ke kolom perancang kueri Tabel. Anda dapat menyeret dengan tiga cara: dengan menyeret, dengan mengklik dua kali pada tabel, atau dengan memilihnya dan mengklik tombol “>”. Mari kita buka threadnya Register Informasi dan temukan meja di sana HargaNomenklatur.PintasanTerbaru, seret juga ke dalam kolom Tabel. Kedua tabel ini cukup untuk kueri kita.

Mari pilih bidang yang kita perlukan dari tabel yang dihasilkan. Untuk melakukan ini, di kolom Tabel ayo buka mejanya dan temukan bidangnya: Nomenklatur, Jumlah, Harga, Kuantitas dan seret ke kolom ketiga konstruktor - Bidang. Mari kita perluas tabelnya , ayo cari lapangannya Harga dan juga seret ke Bidang.

Struktur tabel dan field permintaan kita sudah siap, sekarang mari kita beralih ke ketentuan. Kami membutuhkan data tabel Barang-barang tidak diambil dari semua kwitansi, melainkan hanya dari kwitansi yang kami cetak saja. Untuk melakukan ini, kami akan menerapkan kondisi pada tabel Penerimaan BarangJasaBarang. Mari buka tab "Kondisi" pada perancang kueri. Dalam sebuah kolom Bidang tabel yang kita pilih tadi letaknya, untuk syaratnya kita membutuhkan sebuah field Tautan dari meja Penerimaan Barang dan Jasa Barang, Mari seret ke jendela Kondisi.

Dalam kueri 1C, Anda dapat menggunakan parameter, parameter tersebut diperlukan untuk mentransfer data ke permintaan. Misalnya, jika kita ingin membatasi pemilihan dokumen ke dokumen tertentu, maka kita dapat menggunakan parameter untuk meneruskan tautan ke dokumen ini ke permintaan dan menggunakan parameter ini dalam kondisi tersebut. Inilah yang akan kami lakukan dalam permintaan kami.

Setelah jendela Kondisi kami menambahkan bidang Tautan, perancang kueri sendiri akan membuat parameter dengan nama yang sama dan menempatkannya setelah tanda “=”. Parameter ini dapat diubah namanya jika diinginkan. Dalam teks permintaan, parameter ditandai dengan tanda “&”, tetapi dalam kasus ini hal ini tidak diperlukan, karena diasumsikan bahwa bagian kedua dari kondisi berisi parameter, Anda hanya perlu mengingatnya. Cara meneruskan nilai ke parameter permintaan 1C akan dibahas di bawah.

Karena dalam permintaan kami tidak menggunakan tabel lengkap harga produk, tetapi tabel virtual (dalam kasus ini bagian dari tabel tersebut), kami perlu menetapkan kondisi untuk pembentukan tabel virtual ini, dalam kasus kami ini adalah tanggal batas waktu dan ketentuan jenis harga (harga yang jenis harga sudah ditentukan secara ketat adalah yang tertera pada dokumen kwitansi yang kami cetak).

Untuk mengisi parameter tabel virtual, buka tab Tabel dan bidang konstruktor kueri, di kolom Tabel pilih tabel HargaNomenklaturPemotonganTerbaru dan tekan tombolnya Opsi Tabel Virtual, terletak di bagian atas. Di jendela yang terbuka, di lapangan Periode Anda harus menetapkan parameter ke mana tanggal pemotongan harga akan dilakukan. Dalam kasus kami, ini akan menjadi tanggal saat ini (yaitu, hari ini), jadi kami akan memanggil parameter “&Tanggal Saat Ini”. Pada kolom condition kita akan menuliskan ketentuan untuk jenis harga, kita juga akan meneruskannya ke parameter yang kita sebut “&TypePrice”. Kondisi yang dihasilkan akan terlihat seperti ini (di mana JenisHarga- mendaftar pengukuran Harga barang):

Tipe Harga = &Tipe Harga

Parameter tabel virtual diisi, klik tombol OKE.

Sekarang kita telah membatasi pilihan hanya pada dokumen yang kita perlukan, mari buat koneksi antar tabel kueri. Jika hal ini tidak dilakukan, maka harga dari tabel PriceNomenclatureSliceLast tidak akan dikaitkan dengan item dari tanda terima. Ayo pergi ke tab Koneksi desainer kueri. Mari kita ciptakan koneksi lintas bidang Tata nama antara dua meja kami. Untuk melakukan ini, tekan tombol Menambahkan, di lapangan Tabel 1 pilih tabel Penerimaan BarangJasaBarang, dan di lapangan Tabel 2 - HargaNomenklaturIrisanTerakhir. Dalam kondisi komunikasi, pilih bidang Tata nama dari kedua tabel.

Perlu juga dicatat bahwa dalam pemilihan kueri kita perlu mendapatkan semua baris dari bagian tab Barang-barang dan harga hanya jika tersedia pada tanggal saat ini untuk jenis harga dokumen. Jadi, data tabel Barang-barang bersifat wajib, namun data rincian harga tidak tersedia. Oleh karena itu, dalam hubungan antara tabel-tabel ini, perlu menggunakan apa yang disebut LEFT JOIN, dan tabel kiri (atau wajib) akan menjadi Penerimaan BarangJasaBarang, dan PriceNomenclatureSliceLast yang tepat (atau opsional). Agar gabungan kiri tabel kueri berfungsi seperti yang saya jelaskan di atas, Anda perlu mencentang kotaknya Semua setelah lapangan Tabel 1.


Permintaannya hampir siap, tinggal bekerja sedikit di lapangan alias. Ayo pergi ke penanda Serikat Pekerja/Alias dan menetapkan alias untuk bidang tersebut HargaNomenklatur Slice Terbaru.Harga. Nama panggilannya adalah - Harga Seperti Hari Ini, diperlukan agar nama bidang pilihan kueri dan nama parameter dalam tata letak formulir yang dicetak cocok.

Pekerjaan di perancang kueri sekarang selesai, klik OK. Setelah jendela desainer ditutup, Anda akan melihat bahwa baris dengan teks permintaan terisi dan terlihat seperti ini:

Request.Text = "PILIH | Kwitansi BarangJasaProduk.Nomenklatur, | Kwitansi BarangJasaBarang.Jumlah, | Kwitansi BarangJasaProduk.Harga, | Kwitansi BarangJasaProduk.Jumlah, | HargaNomenklatur Sepotong Terbaru.Harga SEBAGAI HargaHari Ini | DARI | Dokumen. Kwitansi BarangJasa.Barang SEBAGAI Tanda TerimaKe varsLayananProduk KONEKSI KIRI RegisterInformasi.HargaNomenklatur.SliceLast (| &Tanggal Sekarang, Tipe Harga = &Jenis Harga) CARA Nomenklatur HargaSliceLast | PADA Penerimaan BarangJasaProduk.Nomenklatur | = HargaNomenklaturIrisanTerakhir.Nomenklatur |WHERE | Kwitansi BarangJasaProduk.Link = &Tautan";

Menjalankan permintaan

Mari kita berikan parameter yang diperlukan ke permintaan; untuk ini kita akan menggunakan metode permintaan Atur Parameter(<ИмяПараметра>,<Значение>). Untuk mendapatkan tanggal sekarang, gunakan fungsi bawaan Tanggal saat ini(), ini mengembalikan tanggal dan waktu komputer.

Mari jalankan kueri untuk mendapatkan sampel dengan data yang kita butuhkan. Untuk melakukan ini, pertama-tama gunakan metode permintaan Berlari(), lalu metodenya Memilih().

Pilih = Kueri.Jalankan().Pilih();

Mengisi tabel formulir yang telah dicetak

Akibatnya, dalam variabel Sampel akan berisi pilihan hasil kueri, Anda dapat menavigasinya menggunakan metode ini Berikutnya(), dan untuk menyelesaikan semuanya, Anda memerlukan satu putaran Selamat tinggal. Desainnya akan menjadi sebagai berikut:

Sementara Select.Next() Loop EndLoop;

Di loop inilah kita akan mengisi dan menampilkan area tata letak Data. Tapi pertama-tama, mari kita inisialisasi dua variabel bertipe numerik. Di dalamnya kami akan mengumpulkan total berdasarkan kuantitas dan jumlah yang perlu kami tampilkan di area tersebut Ruang bawah tanah.

Jumlah Total = 0; JumlahJumlah = 0;

Di dalam loop kita akan mengisi area tersebut Data data dari elemen pilihan saat ini menjadi variabel Jumlah total Dan Jumlah total tambahkan nilai jumlah dan kuantitas, dan terakhir, tampilkan area dalam dokumen spreadsheet menggunakan metode yang sudah kita kenal Keluaran(). Karena nama bidang permintaan kami sepenuhnya bertepatan dengan nama parameter area Data, lalu untuk mengisi kita akan menggunakan prosedur bawaan FillPropertyValues(<Приемник>, <Источник>), yang menyalin nilai properti<Источника>ke properti<Приемника>.

Sementara Selection.Next() Loop FillPropertyValues(AreaData.Parameters,Selection); TotalJumlah = JumlahTotal + Sampel.Jumlah; TotalQuantity = TotalQuantity + Sampel.Kuantitas; TabDoc.Output(AreaData); Siklus Akhir;

Mengeluarkan footer dari formulir yang dicetak ke dalam dokumen spreadsheet

Tetap mengisi dan menampilkan area terakhir tata letak - Ruang bawah tanah. Data sudah kami siapkan, pengisian, pengisian dan penarikan dilakukan dengan skema yang sama.

AreaFooter.Parameters.TotalQuantity = TotalQuantity; AreaFooter.Parameters.TotalSum = TotalJumlah; TabDoc.Output(AreaFooter);

Dokumen spreadsheet sudah terisi lengkap, yang tersisa hanyalah menampilkannya di layar sehingga pengguna dapat melihat formulir yang dicetak dan mencetaknya jika perlu. Namun dalam konfigurasi khas 1C 8, prosedur modul khusus bertanggung jawab atas keluaran formulir cetakan eksternal. Oleh karena itu, cukup kembali dari fungsinya Segel() dokumen spreadsheet yang sudah selesai.

Kembalikan TabDoc;

Sampai disini tahap pemrograman telah selesai dan pembuatan form pencetakan 1c hampir selesai. Teks lengkap dari fungsi tersebut Segel() Saya tidak akan memberikannya di sini, Anda dapat melihatnya di file yang dapat dicetak, yang dapat Anda unduh di bagian bawah artikel.

Pembuatan formulir cetak 1C. Opsi pendaftaran otomatis

Saat menghubungkan formulir pencetakan eksternal ke database, sistem tidak secara otomatis menentukan dokumen atau buku referensi mana yang dimaksudkan untuk formulir pencetakan; Anda harus memilihnya secara manual. Dan jika formulir cetakannya ditulis oleh orang lain, dan Anda hanya ditugaskan untuk menghubungkannya, maka pilihannya mungkin menjadi ambigu. Untuk menghindari masalah seperti itu, di semua formulir pencetakan eksternal perlu dibuat tata letak dengan parameter registrasi otomatis. Jika dibuat dan diformat dengan benar, sistem secara otomatis menentukan dokumen atau buku referensi mana yang dimaksudkan untuk formulir cetak tersebut.

Hal ini dilakukan sebagai berikut:

  • Dalam pemrosesan eksternal kami membuat tata letak baru. Kami menyebutnya “Settings_Auto-Registration” (penting untuk tidak membuat kesalahan!).
  • Di sel pertama tata letak yang kita tulis Dokumentasi.(atau Direktori.) dan nama dokumen yang ingin Anda sambungkan dengan formulir cetak.

Menghubungkan formulir pencetakan eksternal ke pangkalan

  • Mulai 1C 8 dalam mode Perusahaan;
  • Buka menu Layanan -> Laporan dan pemrosesan tambahan -> Formulir cetak eksternal tambahan;
  • Klik tombolnya Menambahkan;
  • Di jendela yang terbuka, klik ikon Ganti file pemrosesan eksternal;
  • Jika Anda telah membuat parameter registrasi otomatis, maka kami setuju untuk menggunakannya;
  • Jika Anda belum membuat parameter registrasi otomatis, maka di bagian tabel Aksesori pelat cetak menambahkan dokumen atau buku referensi yang diperlukan;
  • tekan tombolnya OKE.

Setelah ini, formulir pencetakan eksternal akan tersedia di menu Segel dokumen Penerimaan barang dan jasa. Pembuatan formulir cetak 1C kini sudah dianggap selesai.

instruksi

Buka program 1C:Enterprise versi 8. Perhatikan item menu "Layanan" - "Pemrosesan eksternal dan formulir pencetakan". Dengan bantuannya, Anda dapat menyimpan laporan eksternal, pemrosesan, formulir cetak, serta pemrosesan untuk mengisi elemen tabel. Anda juga dapat menghubungkan formulir eksternal alih-alih mengubah formulir yang sudah ada, yang akan mengganggu konfigurasi program.

Luncurkan program 1C:Enterprise dalam mode konfigurator, lalu buat pemrosesan eksternal, untuk melakukan ini, jalankan perintah "File" - "Baru". Di jendela yang muncul, pilih “Pemrosesan Eksternal”. Formulir pemrosesan eksternal baru akan muncul di layar. Beri nama "Eksternal". Kemudian tambahkan atribut baru yang disebut “Referensi objek”, tentukan jenisnya – “Dokumen. Tautan. Penjualan barang dan jasa.” Untuk membuat dokumen yang dapat dicetak untuk jenis dokumen lain, gunakan jenis tautan yang sesuai.

Tambahkan tata letak baru dengan mengklik tombol yang sesuai di jendela formulir baru. Beri nama “Layout”, buat area bernama “Header”, beri parameter “Header Text”. Kemudian klik tombol “Actions”, pilih perintah “Open object module”. Kemudian masukkan teks modul, Anda dapat menggunakan contoh yang diposting di website http://www.uasoft.com.ua/content/articles/315/.

Luncurkan program 1C:Enterprise, masuk ke menu Tools, pilih External Printing Forms. Tambahkan entri baru ke daftar formulir. Untuk melakukan ini, pilih file pemrosesan yang dibuat, dan di bagian tabel, tunjukkan bahwa formulir tersebut milik dokumen "Penjualan barang". Periksa apakah pelat cetak baru berfungsi dengan benar. Untuk melakukan ini, buka dokumen yang dibuat, lacak, lalu di bagian bawah layar klik tombol "Cetak", pilih opsi "Formulir pencetakan eksternal".

Sumber:

  • cara mengubah formulir cetak di 1c

Untuk membuat dan mengedit formulir objek, program 1C:Enterprise menyediakan editor formulir khusus (atau Perancang Formulir). Formulir objek solusi aplikasi dirancang untuk merepresentasikan data secara visual saat bekerja dengan program. Editor formulir berisi beberapa tab yang menyediakan kemampuan untuk mengedit semua elemen formulir.

Anda akan perlu

  • komputer, program 1C

instruksi

Dengan menggunakan editor formulir, Anda bisa menambahkan satu atau lebih elemen “Grup – Halaman” ke formulir; untuk melakukan ini, klik tanda tambah hijau di sudut kiri atas editor saat berada di tab “Elemen”.
Dalam mode 1C:Enterprise, semua elemen grup yang ada akan ditampilkan masing-masing pada tab terpisah. Untuk memposisikannya di atas atau di bawah yang berfungsi, di jendela “Properti” grup tertentu, di item “Tampilan”, pilih perintah yang sesuai.

Anda juga dapat menambahkan elemen ke formulir dengan menyeret detail yang diperlukan ke dalam pohon elemen. Untuk mempermudah menavigasi kontrol formulir saat mengedit atau memasukkan data, atur urutan yang sesuai untuk Anda, susun elemen di pohon dan subordinasikan ke elemen lain, dan atur properti elemen grup sesuai kebutuhan Anda.
Untuk mengedit detail formulir - mengubahnya, membuat yang baru, atau menghapusnya, gunakan panel di area pohon detail pada tab yang sesuai.

Untuk mengedit antarmuka perintah, buka tab yang sesuai. Anda akan melihat pohon perintah, cabang utamanya adalah “Panel Navigasi” dan “Panel Perintah”. Beberapa perintah ditambahkan ke pohon antarmuka perintah secara otomatis, tetapi Anda juga dapat menambahkannya sendiri dengan menyeret perintah yang Anda perlukan dari daftar perintah global (umum) atau dari daftar perintah formulir.

Perintah formulir diedit dalam daftar yang sesuai. Anda dapat menambahkannya, menghapusnya dari daftar, mengatur properti untuk setiap perintah menggunakan palet properti, yang dapat Anda panggil dengan mengklik ikon pensil di baris perintah daftar.
Untuk mengedit parameter formulir, buka tab “Parameter”, di mana Anda juga dapat menambahkan, menghapus, dan mengatur properti yang diinginkan.

Video tentang topik tersebut

Bagan akun, yang digunakan dalam akuntansi untuk menampilkan aktivitas ekonomi suatu perusahaan, mendukung hierarki multi-level: akun - sub-akun. Agar pengguna dapat melihat data yang terdapat dalam bagan akun dan memperbaikinya, sistem 1C memungkinkan Anda mengubah bentuk akun. Selain itu, bentuk cetakan faktur dapat diubah di dokumen lain mana pun di 1C.

Anda akan perlu

  • - komputer pribadi dengan 1C.

instruksi

Akuntansi analitik disediakan untuk setiap akun atau sub-akun. Oleh karena itu, saat membuat dan selanjutnya mengedit bagan akun di 1C, jumlah sub-akun yang diperlukan, yaitu objek akuntansi analitik, dapat disediakan. Selain itu, penyesuaian pada akun dan sub-akun dapat dilakukan oleh pengguna yang bekerja dengan sistem akuntansi otomatis atau oleh pengembang perangkat lunak.

Cara menambah (mendaftarkan) formulir cetak eksternal (atau pemrosesan) di 1C Accounting 8.3 (revisi 3.0)

15-05-2019T13:40:54+00:00

Seringkali seorang akuntan memerlukan formulir cetak tambahan untuk salah satu dokumen standar 1C: Accounting 8.3 (revisi 3.0). Atau diperlukan proses tambahan, misalnya untuk mengisi dokumen secara otomatis atau memasukkan dokumen baru berdasarkan dokumen tersebut. Biasanya seseorang telah mengembangkan fitur seperti itu dan dapat ditemukan atau dipesan dari seorang programmer. Dan sekarang sudah diterima revisinya, tinggal ditambah saja di bagian akuntansi. Bagaimana cara melakukannya? Lebih lanjut tentang ini di bawah, langkah demi langkah.

1. Buka 1C Accounting 3.0 dan pilih bagian “Administrasi” -> “Cetak formulir, laporan, dan pemrosesan” di panel kiri:

2. Di sini, cari dan pilih “Laporan dan pemrosesan tambahan”, setelah mencentang kotak “Laporan dan pemrosesan tambahan” di sebelah kiri:

3. Klik tombol "Tambahkan dari file...".

4. Dan pilih file dengan bentuk pencetakan atau pemrosesan eksternal (ekstensi epf).

5. Di jendela baru, klik tombol "Simpan dan tutup".

6. Buka dokumen yang diinginkan dan pastikan opsi formulir lain yang dapat dicetak muncul di tombol cetak atau item di menu “Buat berdasarkan” atau tombol baru di toolbar formulir. Siap!

Sungguh-sungguh, Vladimir Milkin(guru dan pengembang).

Kembali

×
Bergabunglah dengan komunitas “koon.ru”!
Berhubungan dengan:
Saya sudah berlangganan komunitas “koon.ru”