1c laporan dan pemrosesan. Menambahkan pemrosesan eksternal ke database

Pergi ke bagian atas menu Melayani->->.

Bentuk daftar buku referensi pemrosesan eksternal muncul. Di menu atas, tekan tombol Menambahkan.

Formulir untuk menambahkan objek baru akan muncul. Kami menekan tombol buka, dan pilih file dengan pemrosesan yang diinginkan. Setelah Anda memilih file yang diinginkan, jika perlu, tentukan nama perawatan (bidang Nama). Setelah itu, Anda perlu mengklik OK untuk menyimpan perubahan yang dilakukan.

Setelah itu, jendela untuk membuat item katalog ditutup, dan Anda dibawa kembali ke formulir daftar, di mana sudah ada pemrosesan baru.

Itu saja! Proses penambahan pemrosesan ke konfigurasi selesai. Untuk membuka pemrosesan ini nanti, ikuti jalur lama: Melayani->Laporan dan pemrosesan tambahan->Perawatan eksternal tambahan.

Untuk BP 3.0, ZUP 3.0, UT 11, ERP 2.0.

Perawatan eksternal untuk 1C: Enterprise 8 terdiri dari beberapa jenis. Dalam tutorial ini, saya akan menunjukkan cara melampirkan pemrosesan untuk modifikasi batch dan pemrosesan untuk mengisi objek tertentu.

Untuk kasus pertama, mari tambahkan pemrosesan untuk mengisi daftar stok dari Excel.

Pergi ke bagian program yang sesuai:


Tanda penggunaan laporan dan pemrosesan tambahan harus ditetapkan, ikuti hyperlink ke daftar objek eksternal:

Dalam daftar, klik Membuat:


Di kotak dialog yang terbuka, pilih file yang diinginkan dengan pemrosesan:


Kartu objek eksternal baru dalam program telah diisi, hanya tinggal mengkonfigurasi akomodasi(bagian program dari mana pemrosesan akan tersedia):


Pilih bagian arbitrer (atau beberapa) sebagai penempatan:


Kami menuliskan dan menutup kartu objek eksternal:


Sekarang mari kita buka pemrosesan dari antarmuka:


Daftarnya kosong, klik Sesuaikan daftar:


Kami memilih pemrosesan kami:


Sekarang tersedia untuk seleksi. Untuk membuka pemrosesan, Anda perlu mengklik Menjalankan:


Sekarang mari kita lihat bagaimana pemrosesan untuk mengisi (memodifikasi) objek tertentu ditambahkan. Misalnya, ambil pemrosesan eksternal, yang melampirkan pindaian ke elemen direktori atau dokumen sistem yang dipilih. Awal menambahkan pemrosesan seperti itu tidak berbeda dari opsi sebelumnya. Bedanya di pada kasus ini lokasi diisi secara otomatis (dan bukan oleh bagian program, tetapi oleh jenis objek database):


Jika diinginkan, daftar penempatan dapat disesuaikan ( jangan tambahkan penempatan tambahan, tetapi hapus yang tidak perlu):


Untuk menerima perubahan, kartu objek eksternal juga harus direkam.

Untuk menggunakan pemrosesan, Anda harus pergi ke objek dasar tertentu (dari daftar penempatan), klik Mengisi di panel perintah dan pilih perintah:

Perhatian!
Semua pemrosesan dari disk ITS dimaksudkan untuk tujuan informasi dan khusus untuk pengguna ITS yang terdaftar.

Seleksi dan pemrosesan objek. (Universal)

Mencari objek dalam dokumen dan direktori yang memenuhi kondisi tertentu. Memproses hasil pencarian.

Lipat infobase. (Universal)

Menggulung konfigurasi khas keamanan informasi:

  • SCP 3.1.
  • BP 1.6.
  • UT 10.3.

Pendaftaran perubahan untuk pertukaran. (Universal)

Suntingan, dalam mode aplikasi terkelola, pendaftaran perubahan untuk bertukar objek. Memungkinkan Anda untuk mengubah pendaftaran saat ini di berbagai node. Mengubah jumlah pesan yang diterima dan dikirim.

Konversi log aktivitas pengguna. (Universal)

Mengonversi log aktivitas pengguna ke program bawaan.

Pencarian data teks lengkap. (Universal)

Pengindeksan dan pencarian data.

Menemukan dan mengganti nilai. (Universal)

Mencari dan mengganti nilai referensi di objek IB.

Menyiapkan log teknologi. (Universal)

Membuat atau mengedit file log teknologi. Memiliki kemampuan untuk mengonfigurasi pembuatan dump dari penghentian yang tidak normal, mengonfigurasi kondisi dan peristiwa, setelah terjadinya, informasi akan ditulis ke log ini.

Konsol Pencarian. (Universal)

Memantau latar belakang dan pekerjaan terjadwal. Menghapus, membuat yang baru.

Konversi perawatan eksternal. (Universal)

Perubahan informasi rahasia. (Universal)

Perubahan selektif atau pembersihan keamanan informasi dari informasi tertentu.

Perubahan grup detail. (Universal)

Mengubah detail dan bagian tabular dalam dokumen dan buku referensi.

Membongkar dan memuat pengguna. (Universal)

Membongkar dan memuat pengguna IB ke dalam file XML.

Mengunggah data ke database eksternal. (Universal)

Mengunggah struktur data ke DBMS eksternal menggunakan ADO dalam dua mode:

  • Bongkar Semua
  • Unggah perubahan (digunakan untuk menyinkronkan perubahan dalam IS yang berfungsi, dengan IS - penerima). Mode ini menggunakan mekanisme rencana pertukaran.

Mendukung DBMS berikut:

  • Microsoft SQL
  • IBM DB2
  • Peramal
  • PostgreSQL
  • MySQL

Membongkar dan memuat data XML. (Universal)

Membongkar dan memuat data ke IB, baik secara keseluruhan maupun sebagian. Digunakan untuk mentransfer data antar konfigurasi dengan komposisi objek yang serupa.

Memuat data dari dokumen spreadsheet. (Universal)

Ini memuat data ke dalam direktori dan bagian tabular dari dokumen tabular.

Berjalan di klien tebal sebagai aplikasi biasa.

Konsol kueri. (Universal)

Memberikan bantuan luar biasa dalam melaporkan dan membuat kueri.

Cukup sering, ketika selama konsultasi ada kebutuhan untuk menyelesaikan masalah yang sulit, saya menyarankan klien saya untuk mengimplementasikannya dalam program 1C menggunakan salah satu pemrosesan eksternal atau pelat cetak eksternal... Dan saya sering menemukan fakta bahwa seseorang tidak terbiasa dengan kemungkinan program ini di 1C Enterprise 8. Kadang-kadang mereka bahkan bersumpah kepada saya, percaya bahwa pengembangan dan implementasi pemrosesan seperti itu dalam konfigurasi mereka akan menyebabkan ketidakmungkinan memperbarui program secara otomatis. Bahwa Anda harus membayar banyak uang untuk memperbarui program.

Untuk memperjelas pertanyaan seperti itu, serta berbicara tentang apa fitur yang berguna memberikan pemrosesan eksternal dan pelat cetak eksternal Saya memutuskan untuk menulis artikel ini. Dalam artikel ini, saya tidak akan mempertimbangkan sisi teknis dari proses pembuatan pemrosesan. Ini kemungkinan besar akan dibahas dalam publikasi lain. Di sini saya akan mencoba menjelaskan esensi mekanisme dan memberikan contoh spesifik dari kasus-kasus di mana pemrosesan eksternal dan formulir pencetakan dapat bermanfaat bagi pengguna.

Artikel ini akan membahas opsi berikut untuk objek pluggable eksternal tambahan:

  • Pemrosesan eksternal tambahan dari bagian tabular;
  • Pelat cetak eksternal tambahan;
  • Tambahan laporan eksternal;
  • Perawatan eksternal tambahan.

Apa yang dimaksud dengan pemrosesan eksternal, laporan, dan formulir yang dapat dicetak?




Untuk memulainya, saya ingin berbicara secara umum tentang apa ini pemrosesan eksternal, laporan, dan formulir pencetakan?... Cukup sering, ketika bekerja dengan konfigurasi tipikal, apakah itu 1C ZUP atau 1C Enterprise Accounting atau konfigurasi lainnya, ada kebutuhan untuk beberapa fungsi yang tidak disediakan oleh pengembang 1C. Misalnya, Anda mungkin perlu formulir tercetak, yang tidak diatur, tetapi digunakan untuk kebutuhan internal organisasi. Atau diperlukan dengan cara tertentu proses (ubah, benar) tersedia dalam basis data. Misalnya, untuk mengubah atribut tertentu dalam dokumen untuk periode yang diperlukan, yang tidak nyaman dilakukan secara manual dengan sejumlah besar informasi.

Dalam hal ini, ada dua opsi. Pertama, kita dapat memodifikasi konfigurasi itu sendiri, program itu sendiri. Setelah itu, itu akan berhenti menjadi khas dan memperbaruinya dengan itu dengan cara sederhana, yang saya tulis tentang, tidak akan bekerja. Memperbarui konfigurasi atipikal adalah proses yang lebih lama dan lebih serius, oleh karena itu, dengan pendekatan ini, kemungkinan besar Anda harus membayar spesialis 1C setiap bulan untuk memperbarui program. Kedua pilihannya adalah mengembangkan atau meminta untuk mengembangkan pemrosesan eksternal atau formulir cetak (laporan). Ini pada dasarnya adalah modul eksternal, yang juga dikembangkan dalam bahasa pemrograman 1C di Configurator, tetapi tidak membuat perubahan pada konfigurasi tipikal. Itu ada secara independen dari konfigurasi itu sendiri. Untuk menyimpannya, buku referensi khusus digunakan: item menu utama "Layanan" -> "Laporan dan pemrosesan tambahan".

Pemrosesan eksternal tambahan untuk mengisi bagian tabel

Seminar "Retas kehidupan di 1C ZUP 3.1"
Analisis 15 peretasan kehidupan untuk akuntansi dalam 1s ZUP 3.1:

DAFTAR PERIKSA untuk memeriksa penggajian di 1C ZUP 3.1
VIDEO - pemeriksaan mandiri akuntansi bulanan:

Penggajian di 1C ZUP 3.1
Petunjuk langkah demi langkah untuk pemula:

Sekarang mari kita lihat apa peluang masing-masing dari empat yang tersedia modul eksternal... Mari kita mulai dengan pemrosesan eksternal bagian tabular... Bagi saya, pemrosesan bagian tabular dokumen ini paling menggambarkan bagaimana Anda dapat dengan serius memodifikasi program, tanpa menggunakan pengeditan konfigurasi tipikal, tetapi hanya melakukan pemrosesan eksternal.

Untuk membuatnya lebih jelas, saya akan memberikan contoh spesifik dari latihan saya, di mana saya menggunakan pemrosesan eksternal dari bagian tabular... Dalam konfigurasi "1C Gaji dan Manajemen Sumber Daya Manusia" versi 2.5 ada dokumen "Pembayaran untuk hari libur dan akhir pekan"(dokumen ini telah ditulis secara rinci). V bentuk khas dokumen ini memberikan kemampuan untuk secara otomatis mengisi bagian tabel oleh karyawan "Bekerja di Hari Libur".

Akuntan meminta untuk menerapkan kemungkinan pengisian dokumen ini oleh karyawan yang hari kerjanya jatuh pada akhir pekan sesuai jadwal, yaitu. "Bekerja di akhir pekan".

File ini telah diunggah ke direktori "Pemrosesan eksternal bagian tabular"(item menu "Layanan" -> "Laporan dan pemrosesan tambahan" -> "Pemrosesan eksternal tambahan dari bagian tabel"). Saat membuat elemen direktori ini, ditunjukkan ke dokumen mana pemrosesan yang dimuat berlaku - "Pembayaran untuk liburan dan akhir pekan organisasi", serta bagian tabel mana - "Karyawan". Dalam contoh kami, dokumen memiliki satu bagian tabular, tetapi dalam dokumen lain mungkin ada beberapa di antaranya, oleh karena itu, diperlukan untuk secara khusus menunjukkan di mana dari mereka pemrosesan berlaku.

Sebagai hasil dari menambahkan pemrosesan ini ke direktori "Pemrosesan eksternal tambahan untuk mengisi bagian tabel" dalam dokumen "Pembayaran untuk liburan dan akhir pekan" akan ada tombol "Isi" dengan daftar tarik-turun, di mana dimungkinkan untuk memulai pemrosesan ini. Dalam kasus kami, tombol "Isi hari Minggu" tersedia di daftar drop-down. Menekannya akan meluncurkan algoritma yang sedang diproses. Dalam contoh ini, bagian tabular akan diisi dengan karyawan yang hari kerjanya jatuh pada akhir pekan. Harap dicatat bahwa tombol ini sebelumnya tidak ada (tangkapan layar di atas).

Mekanisme ini memungkinkan Anda untuk memecahkan berbagai macam masalah tanpa harus mengubah konfigurasi itu sendiri. Oleh karena itu, saya cukup sering menggunakan kesempatan ini untuk mengimplementasikan tugas klien.

Pelat cetak eksternal tambahan

Seminar "Retas kehidupan di 1C ZUP 3.1"
Analisis 15 peretasan kehidupan untuk akuntansi dalam 1s ZUP 3.1:

DAFTAR PERIKSA untuk memeriksa penggajian di 1C ZUP 3.1
VIDEO - pemeriksaan mandiri akuntansi bulanan:

Penggajian di 1C ZUP 3.1
Petunjuk langkah demi langkah untuk pemula:

Opsi ini sangat mirip dengan yang sebelumnya. Anda kemungkinan besar telah melihat dan mengetahui bahwa hampir setiap dokumen dan bahkan beberapa elemen direktori memiliki formulir yang dapat dicetak. Mereka, sebagai aturan, terletak di sudut kanan bawah bentuk item katalog atau dokumen. Terkadang formulir cetak standar tidak cukup. Misalnya, sebuah organisasi mungkin memiliki bentuk kontrak kerja sendiri. Biarkan saya mengingatkan Anda bahwa formulir cetak standar "Kontrak kerja" termasuk dalam bentuk direktori "Karyawan".

Anda dapat menambahkan milik Anda sendiri ke dalam bentuk cetakan buku referensi ini. Untuk ini, cetakan eksternal dibuat dengan ekstensi ".epf". Kemudian elemen direktori dibuat untuk itu. "Pelat cetak eksternal tambahan"(item menu "Layanan" -> "Laporan dan pemrosesan tambahan") dan file dengan ekstensi ".epf" ditambahkan ke elemen buku referensi ini. Penting juga untuk menunjukkan dokumen atau referensi mana yang ditambahkan dengan pemrosesan.

Akibatnya, formulir lain akan muncul dalam bentuk cetakan elemen direktori "Karyawan" - "Kontrak tenaga kerja (LLC Alpha)", yang sebelumnya tidak ada. Dan dia penampilan dan pengisian dengan data ditentukan oleh programmer dalam file “.epf”.

Kemampuan untuk menambahkan formulir cetak yang diperlukan untuk dokumen dan buku referensi ini juga sangat sering dibutuhkan dan, menurut saya, merupakan fungsi program yang agak nyaman pada platform 1C Enterprise.

Laporan eksternal tambahan

Dalam hal ini, Anda dapat mengembangkan laporan eksternal... Ini adalah file ".erf". File inilah yang akan menentukan tampilan laporan, data konfigurasi apa yang akan digunakan, dan data konfigurasi apa yang akan diminta dari pengguna (misalnya, periode, pemilihan oleh karyawan atau departemen). File dibuat dalam konfigurator 1C dalam bahasa pemrograman 1C.

Laporan eksternal dapat disimpan sebagai bagian dari konfigurasi menggunakan referensi "Laporan eksternal tambahan" (item menu "Layanan" -> "Laporan dan pemrosesan tambahan"). Mereka tidak terkait dengan dokumen atau buku referensi tertentu, informasi ini tidak diperlukan.

Dengan opsi penyimpanan ini, laporan diluncurkan dari direktori yang sama (dengan mengklik dua kali).

Anda juga dapat meluncurkan laporan eksternal menggunakan item menu "File" -> "Open". Opsi ini dapat digunakan jika lebih nyaman bagi Anda untuk menyimpan laporan eksternal tidak di dalam program, tetapi hanya di folder komputer.

Perawatan eksternal tambahan

Perawatan luar memiliki arti yang hampir sama dengan laporan eksternal. Namun tidak seperti laporan, yang digunakan untuk melihat data basis info dalam format yang mudah digunakan, pemrosesan dirancang untuk memodifikasi, mengedit, atau mengubah data. basis informasi... Kisaran tugas yang dapat diselesaikan menggunakan pemrosesan eksternal cukup luas.

Sebagai contoh, memproses pernyataan bongkar untuk pembayaran upah... Meskipun ada pemrosesan standar di ZUP (baca tentang itu), kadang-kadang mungkin tidak cocok untuk bank tertentu dan pemrosesan eksternal dikembangkan yang mengubah dan membongkar informasi dalam format yang diperlukan.

saya akan memberikan satu lagi contoh benar-benar bersahaja, tetapi pemrosesan yang cukup menuntut. Jika Anda tidak menyimpan dokumen "Transfer pajak penghasilan pribadi ke anggaran" di 1C ZUP selama tahun tersebut, maka ketika membentuk 2 pajak penghasilan pribadi untuk tahun tersebut, bidang "Dihitung" untuk setiap karyawan akan menjadi nol, yaitu biasanya sebenarnya tidak benar. Untuk memasukkan dokumen "Transfer pajak penghasilan pribadi ke anggaran" sepanjang tahun bisa sangat membosankan, mengingat kekhasan dokumen itu sendiri. Tetapi Anda dapat melakukan pemrosesan eksternal, yang dalam 2-NDFL yang dihasilkan hanya akan mengisi bidang "Dihitung" untuk setiap karyawan, berdasarkan nilai di bidang "Dihitung". Biasanya akuntan sangat menyukai opsi ini.

Pemrosesan eksternal memiliki dua opsi yang persis sama untuk menyimpan dan meluncurkan: gunakan referensi "Perawatan eksternal tambahan"(item menu "Alat" -> "Laporan dan pemrosesan tambahan"), atau item menu utama "File" -> "Buka".

Itu saja untuk hari ini!

Untuk menjadi yang pertama mengetahui tentang publikasi baru, berlangganan pembaruan blog saya:

Pertimbangkan untuk membuat laporan eksternal di 1c 8 tanpa menggunakan sistem komposisi data. Untuk membuat laporan eksternal, kita akan menggunakan konfigurasi Accounting 2.0, data awal: “Tulis laporan pada akun 62 akuntansi di mana omset untuk periode yang ditentukan akan ditampilkan dalam konteks Rekanan dan Perjanjian kontraktor.

1. Buat laporan

Pertama-tama, kita akan membuat file laporan eksternal, untuk ini kita masuk ke mode 1c 8 Pengonfigurasi, masuk ke menu Berkas -> Baru, atau klik ikon dokumen baru.

Dalam daftar, pilih item Laporan eksternal... Setelah membuat laporan eksternal, beri nama (misalnya Laporan paling sederhana) dan simpan ke disk. Kami juga akan menambahkan dua alat peraga: Awal periode dan Akhir Periode Tipe tanggal, kami akan membutuhkannya untuk membatasi interval waktu pengambilan sampel data saat membuat laporan.

2. Membuat tata letak untuk laporan eksternal

Untuk menghasilkan laporan di 1c 8, Anda memerlukan tata letak, ini adalah template untuk menampilkan data di mana semua parameter yang diinginkan, tabel digambar, dll. Mari tambahkan tata letak baru, untuk ini, di pohon metadata laporan, pilih item Tata letak dan tekan tombol Menambahkan, saat membuat kami memilih jenis untuk tata letak Dokumen spreadsheet.

Tata letak kami akan memiliki 4 area:

  • Header - di area ini kami akan menampilkan nama laporan, periode pembuatannya, dan header tabel;
  • DataContractor - di area ini kami akan menampilkan data rekanan di tabel;
  • Data Perjanjian Kontraktor - di area ini kami akan menampilkan data perjanjian rekanan dalam tabel;
  • Basement - di area ini kami akan menampilkan total untuk seluruh laporan untuk bidang Pendapatan dan Beban.

Mari kita mulai membuat area tata letak. Untuk membuat area dalam tata letak, pilih jumlah baris yang diperlukan dan tekan Menu Tabel -> Nama -> Tetapkan Nama(Atau Ctrl + Shift + N). Ke daerah Topi tulis nama laporannya: Perputaran 62 akun, mari menggambar dengan alat perbatasan tajuk laporan, serta atur parameter Awal periode dan Akhir Periode... Dengan menggunakan parameter, Anda dapat menampilkan data yang diperlukan dalam laporan, kami akan menangani ini pada tahap pengembangan selanjutnya, yaitu saat menulis kode program laporan. Untuk membuat parameter dalam tata letak, pilih sel yang diinginkan, tulis nama parameter di dalamnya (tanpa spasi), klik kanan padanya, di menu yang terbuka, pilih item Properti... Di properti sel di bookmark Tata Letak pilih isian Parameter.

Setelah itu, nama parameter di dalam sel akan diapit tanda kurung siku (”<>“). Akibatnya, daerah Topi harus terlihat seperti ini:

Di area Kontraktor Data kami akan membuat parameter untuk menampilkan nama rekanan, serta untuk pendapatan dan pengeluaran untuk 62 akun, menggunakan alat perbatasan Mari kita atur area dalam bentuk baris tabel.

Di area Perjanjian Kontraktor Data kita akan membuat parameter untuk menampilkan nama kontrak, serta untuk penerimaan dan pengeluaran pada akun 62, menggunakan alat Borders, kita akan mengatur area dalam bentuk baris tabel. Mari buat indentasi kecil di depan parameter Perjanjian Kontraktor(Ini dapat dilakukan dengan memisahkan dan menggabungkan sel. Klik kanan pada sel -> Untuk mengkombinasikan atau Hancurkan sel), diperlukan agar dapat dilihat dalam laporan bahwa garis di bawah kontrak lebih rendah dalam hierarki daripada garis untuk pihak lawan.

Di area Ruang bawah tanah Mari kita buat parameter untuk total penerimaan dan pengeluaran.

Akibatnya, kita harus mendapatkan tata letak seperti ini:

3. Membuat formulir laporan

Untuk keluaran data, atur periode formasi dan tombol Membentuk laporan kami akan membutuhkan formulir. Untuk membuat formulir, temukan item di pohon metadata dari laporan eksternal Formulir dan tekan tombol Menambahkan... Pada halaman pertama perancang formulir, Anda tidak perlu melakukan perubahan apa pun, Anda hanya perlu mengklik tombol Lebih jauh.

Pada halaman selanjutnya konstruktor, kami memilih kedua alat peraga yang tersedia ( Awal periode, Akhir Periode) untuk penempatan pada formulir.

Hasilnya, kami mendapatkan formulir berikut:

Tetapi dalam bentuk ini, itu tidak cocok untuk kami, kami akan membuat beberapa perubahan:

  • Tarik tombolnya Membentuk dari panel bawah laporan ke atas (ini akan lebih nyaman bagi pengguna);
  • Regangkan bentuknya secara vertikal dan horizontal;
  • Mengatur bidang Awal periode dan Akhir Periode horizontal;
  • Tambahkan ke formulir elemen kontrol Bidang dokumen spreadsheet (laporan kami akan ditampilkan di dalamnya), beri nama TabDocument;
  • Mari buat tombol untuk memilih periode (saat Anda menekannya, dialog dengan pilihan periode yang diperlukan akan ditampilkan). Kami belum akan menulis kode program untuk itu, jadi kami hanya akan menempatkan tombol di sebelah bidang periode.

Akibatnya, formulir kami akan terlihat seperti ini:

4. Pemrograman

Setelah membuat formulir laporan, mari kita mulai pemrograman. Untuk memulainya, kami akan membuat prosedur untuk menampilkan dialog pemilihan periode (kami telah membuat tombol untuk ini di langkah sebelumnya). Klik kanan pada tombol dan pilih item menu Properti, di properti tombol, buka tab Perkembangan, di mana, menggunakan tombol dengan ikon kaca pembesar, buat prosedur Tombol 1 Tekan dalam modul formulir.

Anda dapat beralih antara formulir dan modulnya menggunakan tab di bagian bawah formulir

Untuk memanggil formulir pemilihan periode, kami akan menggunakan prosedur standar Akuntansi 2.0 dari modul umum BekerjaDengan Dialog - HandlerSettingPeriodPressing, Anda harus memasukkan detail laporan ke dalamnya sebagai parameter Awal periode dan Akhir Periode.

Prosedur Tombol 1 Tekan (Elemen) WorkingWith Dialogues.HandlerPeriodSettingPressing (PeriodBeginning, PeriodEnd); Akhir Prosedur

Sekarang mari kita beralih ke penulisan kode yang akan menghasilkan dan menampilkan laporan kita. Sudah ada prosedur di modul formulir TombolBentukTekan yang akan dieksekusi ketika tombol ditekan Membentuk, di situlah kita akan menulis kode kita. Mari kita mulai dengan menginisialisasi variabel yang diperlukan. Pertama-tama, mari kita buat variabel untuk bidang dokumen spreadsheet di mana kami akan menampilkan data, ini tidak perlu, hanya perekaman panggilan ke sana akan menjadi lebih pendek, yang berarti kode program akan lebih mudah dipahami untuk dibaca.

TabDoc = Elemen Formulir.TabDoc;

Dapatkan tata letak laporan eksternal menggunakan fungsi Dapatkan Tata Letak (<ИмяМакета>) , kami akan meneruskan nama tata letak ke parameter, dan jika tata letak seperti itu ada, maka fungsi akan menemukannya.

Tata Letak = Dapatkan Tata Letak ("Tata Letak");

Setelah tata letak diterima, kami akan membuat variabel untuk setiap areanya, kami akan menggunakan metode tata letak untuk ini Dapatkan Area (<ИмяОбласти>) .

AreaHeat = Layout.GetArea ("Header"); ScopeDataContractor = Layout.GetScope ( "Kontraktor Data"); ScopeDataContract = Layout.GetScope("ContractData"); AreaFooter = Tata Letak.GetArea("Footer");

Mari kita kosongkan bidang dokumen spreadsheet. Ini diperlukan agar dengan setiap generasi baru laporan, data lama dihapus.

TabDoc.Clear();

Sekarang setelah inisialisasi variabel selesai, mari kita beralih ke mengisi dan menampilkan area tata letak secara bergantian. Mari kita mulai dengan topi. Jika Anda ingat, kami membuat dua parameter di area ini. Awal periode dan Akhir Periode, kami akan mentransfer nilai periode pembuatan laporan di sana, untuk ini kami akan menggunakan properti Pilihan bidang tata letak.

AreaHead.Parameters.PeriodStart = PeriodeStart; AreaHead.Parameters.EndPeriod = EndPeriod;

Tidak ada lagi tindakan di area tersebut Topi pabrikan tidak diperlukan, jadi kami menampilkan bidangnya di dokumen spreadsheet.

TabDok.Display (AreaHap);

Selanjutnya, kami akan menulis kueri ke database, yang dengannya kami akan mengambil omset di akun 62 dari register akuntansi Mandiri... Mari kita definisikan variabel di mana permintaan kita akan ditempatkan.

Permintaan = Permintaan baru;

Sebelum kita mulai menulis teks permintaan, mari berikan parameter yang diperlukan padanya. Karena kami sedang menulis permintaan faktur 62 akuntansi, maka pertama-tama kita akan membuat parameter untuk itu

Request.SetParameter ("Account62", Paket Akun. Mandiri.FindByCode ("62"));

Anda juga perlu mentransfer periode pembuatan laporan ke permintaan. Jangan lupa bahwa untuk periode pembentukan kami memiliki detail laporan khusus, dan kami meneruskannya sebagai parameter.

Request.SetParameter ("PeriodBeginning", PeriodBeginning); Request.SetParameter ("EndPeriod", EndPeriod);

Mari kita mulai menulis teks permintaan, kita akan melakukannya menggunakan konstruktor kueri. Di banyak alat bantu mengajar tulis bahwa Anda harus dapat menulis kueri baik secara manual maupun menggunakan konstruktor, tetapi dalam praktiknya tidak demikian. Dalam tugas-tugas yang selalu dihadapi oleh programmer 1C, prioritasnya adalah menulis kode dengan cepat dan efisien, dan ketika menulis permintaan ke database secara manual, ini hampir tidak mungkin dicapai, Anda akan menghabiskan banyak waktu berharga untuk mencoba dengan benar mereproduksi semua konstruksi kueri, temukan kesalahan ketik yang Anda lakukan saat menulis, dll. Oleh karena itu, jangan buang waktu Anda mencoba menulis kueri secara manual, tetapi gunakan konstruktor kueri. Ini akan menghemat waktu Anda dan upaya khusus menulis pertanyaan yang kompleks. Untuk mulai menulis teks permintaan, tulis dalam kode:

Permintaan.Teks = "";

Setelah itu, letakkan kursor di antara tanda kutip, tekan tombol kanan mouse dan pilih item Konstruktor meminta. Jendela desainer kueri akan terbuka.

Sekarang kita perlu memilih tabel database 1C 8. Kita membutuhkan tabel virtual Omset register akuntansi Mandiri... Mari kita temukan di sisi kiri jendela konstruktor

Ayo pindahkan ke daerah Tabel dan mari kita isi parameternya. Untuk semua tabel kueri virtual, ada seperangkat parameter khusus yang memungkinkan Anda memilih data yang diinginkan dari tabel utama (dalam kasus kami, tabel utama Daftar Akuntansi Mandiri). Mari kita buka jendela parameter tabel virtual.

Mari kita isi parameter periode yang kita lewati ke permintaan. Untuk menggunakan parameter dalam teks permintaan, tulis simbol sebelum namanya simbol untuk 'dan (&)

Tetap mengisi kondisi untuk akun bukh. akuntansi. Untuk melakukan ini, kita akan menemukan dalam parameter tabel virtual garis Kondisi Akun dan menulis di sana

Akun di HIERARCHY (& Akun62)

Anda juga dapat menggunakan konstruktor untuk menggambar kondisi dengan mengklik tombol dengan tiga titik.

Tidak perlu memaksakan kondisi lagi di meja virtual, jadi tekan tombol oke di jendela parameter tabel virtual. Selanjutnya, Anda perlu memilih bidang yang kami butuhkan dari tabel Swadaya. Omset(yaitu: Counterparty, Perjanjian Counterparty, Pendapatan dan Beban). Untuk melihat daftar field yang tersedia pada tabel yang telah kita pilih, tekan simbol "+" di sebelah namanya. Setelah itu, seret bidang yang diperlukan ke area paling kanan dari desainer kueri, yang disebut Bidang. Jika kita membuka bagan akun akuntansi, kita akan melihatnya untuk akun 62 analitik untuk Counterparty adalah Subconto1 dan oleh Perjanjian Kontraktor - Subconto2.

Oleh karena itu, dari bidang tabel virtual, kami memilih Subkonto1 dan Subkonto2... Karena kami membutuhkan pendapatan dan pengeluaran dengan jumlah, kami juga memilih bidang JumlahPerputaranDt dan JumlahPerputaranKt

Isi alias bidang yang telah kita pilih, untuk ini kita pergi ke tab Serikat / Alias dan atur nama bidang yang diperlukan.

Karena dalam laporan kami, data akan ditampilkan secara hierarkis (Counterparty berada di level pertama, dan semua kontraknya ada di level kedua), kami akan menyiapkan output data dalam hierarki menggunakan Total. Mari kita pergi ke bookmark di konstruktor Hasil... Di bidang pengelompokan, seret secara berurutan Pihak lawan dan Perjanjian Kontraktor, dan di final Yang akan datang dan Konsumsi.

Ini menyelesaikan pekerjaan di konstruktor kueri, tekan tombol oke dan kami melihat bahwa teks permintaan kami telah muncul di kode program.

Permintaan.Teks = "PILIH | Omset Swadaya.Subkonto1 SEBAGAI Counterparty, | Perputaran Swadaya.Subkonto2 SEBAGAI Perjanjian Kontraktor, | Perputaran Mandiri.Jumlah PerputaranDt SEBAGAI Tanda Terima, | Perputaran Swadaya. Jumlah PerputaranKt AS Konsumsi| DARI | Buku Besar Akuntansi Swadaya Perputaran (& Awal Periode, & Akhir Periode, Akun DALAM Hirarki (& Akun62),) SEBAGAI Perputaran Swadaya| HASIL | SUM (Kedatangan), | AMOUNT (Konsumsi) | Perangkat Lunak | rekanan, | Perjanjian Kontraktor”;

Setelah kita selesai menulis permintaan, mari kita mulai mengisi area Kontraktor Data, DataPerjanjianKontraktor dan Ruang bawah tanah... Kami akan mengisi semua area ini dengan data yang diperoleh saat menjalankan permintaan. Karena kueri kami berisi pengelompokan ( Pihak lawan dan Perjanjian Kontraktor) pilih data darinya sebagai berikut:

SelectContractor = Query.Run().Pilih (QueryResultIndo.OnGroups);

Dengan demikian, kami akan menerima catatan dengan total untuk semua rekanan.

Sebelum melintasi data sampel menggunakan loop, kami menginisialisasi variabel yang dirancang untuk menghitung total total untuk laporan:

TotalPenghasilan = 0; Jumlah Konsumsi = 0;

Agar data laporan ditampilkan dengan hierarki (dan menyebar sepanjang "+"), kami akan mengatur awal pengelompokan otomatis baris dokumen spreadsheet:

TabDoc.StartAutoGroupLines();

Semua persiapan sudah selesai, sekarang mari kita mulai menelusuri hasil query. Kami akan melakukan traversal menggunakan loop Selamat tinggal

WhileSelectionContractor.Next () Siklus Akhir Siklus;

Di awal siklus, atur parameter ke nol Yang akan datang dan Konsumsi daerah Kontraktor Data... Untuk apa? Bayangkan situasi yang untuk rekanan Paman Vasya, pendapatan 10, dan beban 5, dan untuk itu pihak lawan berikutnya Paman Petya tidak ada pendapatan atau pengeluaran, dalam hal ini, jika kita tidak mengatur ulang parameter Yang akan datang dan Konsumsi, kemudian di antre oleh counterparty Paman Petya akan mendapatkan pendapatan 5 dan beban 10.

ScopeDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0;

Setelah itu kita isi areanya Kontraktor Data contoh data barang

FillPropertyValues ​​(ScopeDataContractor.Parameters, SelectionContractor);

Setelah mengisi dengan data, Anda dapat menampilkan area di Dokumen spreadsheet Karena kami menggunakan pengelompokan garis otomatis, kami perlu menunjukkan tingkat garis dalam pengelompokan (dalam laporan kami akan ada dua tingkat, untuk kontraktor yang pertama untuk kontrak adalah yang kedua).

TabDok.Penarikan (ScopeDataContractor, 1);

Nah, untuk counterparty ini kita akan melakukan seleksi sesuai kontraknya.

SelectionContractorAgreement = SelectionContractor.Choose (BypassResultResult.On Pengelompokan);

Kami akan melakukan traversal menggunakan loop Selamat tinggal.

Sedangkan SelectionContractor Agreement.Next () Siklus Akhir Siklus;

Dalam siklus di bawah kontrak rekanan, kami akan mengatur ulang parameter Yang akan datang dan Konsumsi, isi luasnya Perjanjian Data dari pilihan dan menampilkannya dalam dokumen spreadsheet pada catatan tingkat kedua.

ScopeDataContract.Parameters.Prihod = 0; ScopeDataAgreement.Parameters.Expense = 0; Isi Nilai Properti (ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Penarikan (ScopeDataContract, 2);

Juga, dalam siklus ini, kami menambahkan nilai saat ini ke variabel untuk menghitung nilai total pendapatan dan pengeluaran.

TotalIncome = TotalIncome + SelectionContractor Agreement.Income; TotalExpense = TotalExpense + SampleContractor Agreement.Expense;

Ini melengkapi output data di area Kontraktor Data, DataPerjanjianKontraktor selesai, tinggal menyelesaikan pengelompokan otomatis baris dokumen spreadsheet.

TabDoc.FinishAutoGroupLines();

Sepenuhnya loop bertanggung jawab untuk mengeluarkan data di area tersebut Kontraktor Data dan DataPerjanjianKontraktor terlihat seperti ini:

TabDoc.StartAutoGroupLines(); Sedangkan SampleContractor.Next() Siklus RegionDataContractor.Parameters.Prihod = 0; ScopeDataContractor.Parameters.Expense = 0; FillPropertyValues ​​(ScopeDataContractor.Parameters, SelectionContractor); TabDok.Penarikan (ScopeDataContractor, 1); SelectionContractorAgreement = SelectionContractor.Choose (BypassResultResult.On Pengelompokan); Sedangkan SelectionDogovKontragenta.Sleduyuschiy() Cycle ScopeDataDogov.Parametry.Prihod = 0; ScopeDataAgreement.Parameters.Expense = 0; Isi Nilai Properti (ScopeDataContract.Parameters, SelectionContractorAgreement); TabDok.Penarikan (ScopeDataContract, 2); TotalIncome = TotalIncome + SelectionContractor Agreement.Income; TotalExpense = TotalExpense + SampleContractor Agreement.Expense; Akhir Siklus; Akhir Siklus; TabDoc.FinishAutoGroupLines();

Tetap menampilkan total ke area Ruang bawah tanah dan menampilkan area itu sendiri di Dokumen spreadsheet.

AreaBoard.Parameters.TotalIncoming = TotalIncoming; AreaBoard.Parameters.TotalExpense = TotalExpense; TabDok.Display (Area Basement);

Ini melengkapi proses penulisan laporan eksternal untuk 1C 8 tanpa menggunakan ACS. Sekarang dapat dibuat dalam mode 1C: Enterprise 8 dan ditambahkan ke direktori Pemrosesan Eksternal Anda dapat mengunduh file laporan yang dipertimbangkan dalam artikel oleh.

Tonton video tentang membuat cetakan eksternal untuk aplikasi terkelola:

Untuk menghubungkan pemrosesan eksternal, laporan, formulir tercetak untuk 1C: Platform perusahaan 8.2 dikembangkan standar baru untuk bekerja dalam aplikasi terkelola (standar dari subsistem perpustakaan standar 8.2). Ada "keripik" yang sebelumnya tidak ada, yaitu:

    Jenis pemrosesan telah diperluas: mengisi objek, membuat objek terkait. Sekarang di dokumen Anda dapat menambahkan tombol Anda sendiri untuk mengisi seluruh dokumen, serta tombol Anda sendiri untuk masuk ke dasarnya.

    Satu pemrosesan dapat berisi daftar beberapa operasi (perintah) sekaligus, mis. Anda bisa melakukan satu kali pemrosesan, dimana akan ada beberapa item menu sekaligus: cetak dan konsinyasi nota, cetak struk penjualan, cetak kartu garansi. (Catatan Penulis: sebelumnya dalam standar lama, untuk melakukan hal-hal seperti itu, Anda harus melakukan semuanya sekaligus (bahkan jika Anda tidak perlu melakukannya) dan Anda tidak perlu menutup, atau menggambar formulir Anda sendiri, pada yang ada tombol yang diperlukan untuk memilih operasi yang diperlukan)

    Anda dapat masuk berdasarkan dan mengisi objek berdasarkan beberapa objek sekaligus, bukan satu

    Anda dapat menjadwalkan eksekusi perintah server (di server).

    Anda dapat mengatur mode "Aman" atau "Tidak Aman", mis. mulai memproses dengan mempertimbangkan pembatasan hak atau mengabaikannya (seperti di bawah hak penuh)

    Anda dapat mengatur mode penggunaan: Jangan gunakan, debug, gunakan. "Jangan gunakan" - tidak digunakan, "Debug" - hanya terlihat oleh administrator, "Gunakan dalam pekerjaan".

    Anda dapat memasukkan penggunaan dalam bentuk objek dan dalam bentuk daftar

    Anda dapat menautkan pemrosesan atau laporan ke semua objek sekaligus.

    Dapat disesuaikan akses cepat untuk perintah khusus untuk pemrosesan eksternal.

    Dimungkinkan untuk menentukan di bagian mana dari antarmuka pemrosesan dan laporan tambahan akan muncul.

Jadi apa yang bisa dicolokkan ke konfigurasi standar?

Dari sudut pandang platform, Anda dapat menghubungkan:

  • pemrosesan eksternal (file dengan ekstensi "epf");
  • laporan eksternal (file dengan ekstensi "erf").

Dari sudut pandang area aplikasi (konfigurasi), Anda dapat menghubungkan pemrosesan dan laporan eksternal dengan tampilan *:

  • Pemrosesan tambahan
    • Hanya pemrosesan tambahan. Hal ini dimungkinkan untuk menyesuaikan
  • Laporan tambahan
    • Hanya laporan tambahan
  • Mengisi objek
    • Tombol sendiri untuk mengisi objek (dokumen), sebelumnya hanya ada tombol untuk mengisi bagian tabular.
  • Formulir yang dapat dicetak
    • Dapat dicetak tambahan (tombol "Dapat dicetak tambahan" ditambahkan)
  • Laporan
    • Laporan yang dilampirkan ke objek (ke direktori dan dokumen).
  • Membuat objek tertaut
    • Masukan Anda berdasarkan (tombol "Buat objek terkait ..." ditambahkan ke item menu "Masukan berdasarkan")

* pada contoh kantor redaksi “Manajemen perusahaan kecil, ed. 1.2"

Mari kita lihat bagaimana semuanya bekerja. Untuk menghubungkan prosesor dan laporan eksternal, ada standar yang menjelaskan antarmuka untuk berinteraksi dengan pemrosesan eksternal dan laporan, dan ada persyaratan umum untuk semua jenis, dan ada khusus untuk setiap jenis pemrosesan atau laporan.

Mari kita mulai dengan persyaratan umum untuk semua jenis pemrosesan dan pelaporan. Untuk membuat pemrosesan eksternal atau laporan yang dapat dicolokkan, perlu untuk mendeklarasikan fungsi ekspor Informasi Pemrosesan Eksternal () dalam modul objek, yang harus mengisi struktur yang menjelaskan perilaku. Contoh dari fungsi ini:

Informasi Pemrosesan Eksternal () Ekspor Fungsi
RegistrationData = Struktur Baru;
RegistrationData.Insert("Name", "Contoh penggunaan pemrosesan eksternal 8.2.");
RegistrationData.Insert("SafeMode", Benar);
RegistrationData.Insert ("Versi", "1.0");

// Pemrosesan Tambahan
// Laporan Tambahan
// FillingObject
//Laporan
// CetakFormulir
// Buat Objek Tertaut
RegistrationData.Insert("Tampilan", "Pemrosesan Tambahan");

RegistrationData.Insert ("Informasi", "Pemrosesan dilakukan sesuai dengan standar baru untuk menghubungkan prosesor eksternal 8.2. Contoh pemrosesan" "Hello Word" "");

///////////// perintah //////////////////////////
tzCommand = Tabel Nilai Baru;
tzComand.Columns.Add ("Identifier");
tzComand.Columns.Add ("Tampilan");
tzComand.Columns.Add ("Pengubah");
tzKomand.Kolonki.Add ("ShowNotification");
tzComand.Columns.Add ("Penggunaan");


CommandString.Identifier = "1";
lineCommand.View = "perintah" "Halo Kata" "(Pembukaan Formulir)";

CommandString.Usage = "Pembukaan Formulir";

CommandString = tzCommand.Add();
CommandString.Identifier = "2";
CommandString.View = "command" "Halo Word" "(CallClientMethod)";
CommandString.ShowNotification = Benar;
CommandString.Usage = "CallClientMethod";

CommandString = tzCommand.Add();
CommandString.Identifier = "3";
CommandString.View = "command" "Halo Word" "(CallServerMethod)";
CommandString.ShowNotification = Benar;
CommandString.Usage = "CallServerMethod";

RegistrationData.Insert ("Perintah", tzKomand);

////////////// tujuan (di mana objek itu digunakan) ////////////////////////
// untuk mencetak formulir, mengisi, memasukkan objek yang ditautkan
// Array Tugas = Array Baru;
//AssignmentArray.Add("Dokumen.* "); // semua dokumen ditugaskan
//AssignmentArray.Add("Document.AvailableReport ");
//ArrayAssignments.Add("Document.OrderBuyer ");
//RegistrationData.Insert("Assignment", AssignmentArray);

Data Pendaftaran Kembali;

Fungsi Akhir

Jadi, seperti yang Anda lihat, fungsi mengisi struktur RegistrationData, yang memiliki elemen (parameter) berikut:

    Nama - nama pendek pengobatan

    Versi - informasi tentang versi pemrosesan

    Mode aman- bertanggung jawab apakah pemrosesan harus dilakukan dengan mempertimbangkan hak pengguna. Jika Anda menetapkan nilai ke "False", maka pemrosesan atau laporan akan dilakukan tanpa memperhatikan batasan hak (seperti di bawah hak penuh). Fitur ini muncul di 8.2, di mana, saat membuat proses dan laporan eksternal, mode ditentukan sebagai parameter kedua.

    Lihat - jenis pemrosesan atau laporan. Saya mencantumkan nilai yang mungkin di awal artikel, dan nilai yang mungkin untuk pengaturan dalam kode ditunjukkan dalam komentar

  • Perintah - Tabel nilai yang mencantumkan perintah yang digunakan. Kolom tabel nilai:
    • Identifier - string apa pun (pengidentifikasi perintah)
    • Lihat - deskripsi perintah
    • Pengubah - string (digunakan untuk formulir tambahan yang dapat dicetak)
    • ShowNotification - jendela notifikasi akan muncul sebelum dan sesudah eksekusi (untuk perintah klien dan server tanpa formulir)
    • Penggunaan - mode mulai pemrosesan:
      • Pembukaan Formulir - formulir pemrosesan akan terbuka
      • Panggilan ClientMethod - panggilan formulir metode ekspor klien
      • Panggilan ServerMethod - panggil metode ekspor dari modul pemrosesan

Bergantung pada jenis pemrosesan atau laporan, serta pada mode peluncuran perintah "Gunakan", metode yang ditentukan dalam modul formulir, modul objek dipanggil. Daftar parameter yang diteruskan juga berbeda. Contoh panggilan dan penggunaan semua jenis pemrosesan terlampir.