1c membuka formulir terkelola untuk pemrosesan eksternal

Mari kita simak di artikel ini petunjuk langkah demi langkah untuk membuat pemrosesan eksternal di 1C 8.3 dalam mode aplikasi terkelola, kami akan menggunakan formulir terkelola. Dan yang paling penting, kita akan mempelajari cara menghubungkannya ke mekanisme "pemrosesan eksternal" dari konfigurasi 1C yang dibangun di perpustakaan subsistem standar versi 2.0 dan yang lebih baru.

Tugasnya adalah sebagai berikut: membuat pemrosesan eksternal paling sederhana yang akan melakukan tindakan grup pada direktori “Item”, yaitu menetapkan persentase tarif PPN yang dipilih untuk grup item tertentu.

Untuk melakukan ini, kami akan segera membuat pengaturan yang diperlukan dalam program (kami sedang mempertimbangkan konfigurasi 1C 8.3: "Enterprise Accounting 3.0" pada formulir yang dikelola).

Mencentang kotak ini memberi kita kesempatan untuk menggunakan pemrosesan eksternal.

Membuat pemrosesan eksternal baru di 1C 8.3 menggunakan contoh

Sekarang mari kita pergi ke konfigurator. Di menu "File", pilih "Baru...". Jendela untuk memilih jenis file yang akan dibuat akan terbuka. Pilih “Pemrosesan eksternal”:

Jendela pemrosesan eksternal baru akan terbuka. Ayo beri dia nama segera. Ini akan ditawarkan saat menyimpan pemrosesan ke disk:

Mari tambahkan formulir pemrosesan terkontrol baru. Kami menunjukkan bahwa ini adalah bentuk pemrosesan dan yang utama:

Kami akan memiliki dua detail pada formulir:

  • Grup tata nama – tautan ke direktori “Tata nama”;
  • SelectVATRate – tautan ke transfer Tarif PPN.

Kami membuat detailnya di kolom "Properti" di jendela kanan atas. Seret mereka dengan mouse ke jendela kiri atas. Detail baru akan segera muncul pada formulir di bawah.

Urutan rincian dapat diubah menggunakan panah “Atas” – “Bawah”:

Dapatkan 267 pelajaran video di 1C gratis:

Yang tersisa hanyalah menambahkan tombol “Instal”. Dalam formulir terkelola, Anda tidak bisa hanya menambahkan tombol ke formulir. Bahkan jika Anda menambahkannya ke struktur elemen formulir, itu tidak akan terlihat pada formulir itu sendiri. Tombol tersebut harus dikaitkan dengan perintah yang akan dijalankannya. Buka tab “Perintah” dan tambahkan perintah “Tetapkan Tarif PPN”. Di properti perintah, buat tindakan. Pilih pengendali perintah "Di klien". Perintah juga dapat ditambahkan ke formulir hanya dengan menyeretnya ke bagian dengan elemen formulir.

Prosedur dengan nama yang sama akan dibuat di modul formulir. Di dalamnya kami memanggil prosedur di server:

&Pada Klien

Prosedur Menetapkan Tarif PPN (Perintah)

SetVATRateOnServer();

Akhir Prosedur

Dalam prosedur di server, kami akan menulis permintaan kecil dan tindakan terkait dengan pengaturan tarif PPN:

&Di server

Set ProsedurVATRateOnServer()

Permintaan = Permintaan Baru;
Permintaan.Teks =
"MEMILIH
| Nomenklatur. Tautan
|DARI
| Direktori.Nomenklatur SEBAGAI Tata Nama
|DIMANA
| Nomenclature.Link DALAM HIERARCHY (&Grup Nomenklatur)
| DAN BUKAN Nomenklatur.Penghapusan Tanda
| DAN BUKAN Nomenklatur. Ini adalah Grup”;

Request.SetParameter("Grup Item", Grup Item);
ResRequest = Permintaan.Eksekusi();
SelectRecordDet = ResRequest.Select();

Sementara SelectRecordDet.Next() Loop

Percobaan
SprNomObject.Tulis();
Pengecualian
Report("Kesalahan penulisan objek """ + SprNomObject + """!
|» + DeskripsiError());
Percobaan Akhir;

Siklus Akhir;

Akhir Prosedur

Kami kembali ke tab "Formulir", menambahkan tombol ke formulir dan mengaitkannya dengan perintah:

Dengan demikian, pemrosesan kami siap digunakan. Untuk menyebutnya, dalam mode "1C Enterprise", Anda harus membuka menu "File" - "Open" dan memilih file yang dibuat.

Namun, bekerja dalam mode ini nyaman untuk proses debugging, tetapi tidak sepenuhnya cocok untuk pengguna. Pengguna terbiasa memiliki segalanya “di ujung jari mereka”, yaitu di dalam database itu sendiri.

Inilah gunanya bagian “Laporan dan pemrosesan tambahan”.

Tetapi untuk menambahkan pemrosesan kita di sana, pertama-tama kita harus memberikan deskripsi dan memberi tahu propertinya pada program.

Deskripsi fungsi “Informasi tentang Pemrosesan Eksternal”

Saya akan memberikan contoh isi dari fungsi ini. Itu harus dapat diekspor dan, karenanya, ditempatkan di modul pemrosesan:

Fungsi InformationOnExternalProcessing() Ekspor

DataForReg = Struktur Baru();
DataForReg.Insert("Nama", "Pengaturan tarif PPN");
DataForReg.Insert("SafeMode", Benar);
DataForReg.Insert("Versi", "ver.: 1.001");
DataForReg.Insert("Informasi", "Memproses penetapan tarif PPN pada direktori Nomenklatur");
DataForReg.Insert("Lihat", "Pemrosesan Tambahan");

Tabel Perintah = Tabel Nilai Baru;
TabZnCommands.Columns.Add("Pengidentifikasi");
TabZnCommands.Columns.Add("Penggunaan");
TabZnCommands.Columns.Add("Lihat");

Baris Baru = TabZnCommands.Add();
NewString.Identifier = "Pemrosesan Terbuka";
Baris Baru.Gunakan = "OpenForm";
NewRow.View = "Buka pemrosesan";
DataForReg.Insert("Perintah", TabZnCommands);

Kembalikan DataForReg;

Fungsi Akhir

Untuk lebih memahami bidang struktur data pendaftaran mana yang perlu digunakan, mari kita lihat detail direktori “Laporan dan pemrosesan tambahan”:

Seperti yang Anda lihat, semuanya cukup sederhana. Hanya satu atribut yang tidak cocok: “Opsi Peluncuran” – “Gunakan”. Jika kita melihat kode salah satu modul umum, kita akan melihat bagaimana sekumpulan bidang berikut muncul:

Untuk menentukan bidang struktur mana yang diperlukan, Anda tidak dapat mendeskripsikannya terlebih dahulu, cukup buat bidang kosong, lalu gunakan debugger. Jika Anda melacak modul saat mendaftarkan pemrosesan, akan segera menjadi jelas bidang mana yang wajib diisi dan mana yang tidak.

Menghubungkan pemrosesan eksternal di 1C 8.3

Untuk bekerja dengan pemrosesan eksternal (dan formulir pencetakan eksternal juga merupakan pemrosesan eksternal), terdapat sebuah objek Pemrosesan Eksternal.

Mari kita pertimbangkan dua kemungkinan kasus:

Pemrosesan eksternal disimpan pada disk secara terpisah dari basis info

Untuk membuka pemrosesan eksternal secara terprogram di 1C, Anda perlu mengetahui alamat filenya. Mengetahui hal ini, Anda bisa membuka formulir pemrosesan atau meminta objek pemrosesan untuk melakukan tindakan lebih lanjut dengannya (misalnya, untuk memanggil fungsi ekspor dari modul objek).

Membuka formulir pemrosesan eksternal

Untuk membuka formulir pemrosesan eksternal secara terprogram di 1C, gunakan fungsi Dapatkan Formulir() obyek Pemrosesan Eksternal. Fungsi tersebut memiliki beberapa parameter. Pertimbangkan pembukaan sederhana dari formulir pemrosesan utama:


Formulir = Proses Eksternal. GetForm(Alamat File) ;
Membentuk. Membuka() ;

Untuk membuka formulir pemrosesan eksternal kecil, Anda harus menentukan namanya.

//Variabel FileAddress berisi path lengkap ke file pemrosesan eksternal
Formulir = Proses Eksternal. GetForm(Alamat File, "Bentuk Kecil") ;
Membentuk. Membuka() ;

Membuka pemrosesan eksternal sebagai objek

Untuk menerima pemrosesan eksternal sebagai objek, suatu fungsi digunakan Membuat() obyek Pemrosesan Eksternal.

//Variabel FileAddress berisi path lengkap ke file pemrosesan eksternal
ProcessingObject = Pemrosesan Eksternal. Buat(AlamatFile) ;

Secara default, semua pemrosesan dibuka dalam mode aman. Untuk menonaktifkannya, gunakan opsi berikut:

//Variabel FileAddress berisi path lengkap ke file pemrosesan eksternal

Pemrosesan eksternal atau formulir pencetakan disimpan di basis info

Dalam banyak konfigurasi, dimungkinkan untuk menyimpan formulir cetak eksternal dan memprosesnya langsung di basis info. Untuk tujuan ini buku referensi digunakan Pemrosesan Eksternal. Pemrosesan eksternal itu sendiri disimpan sebagai data biner atau atribut Penyimpanan Eksternal Pemrosesan, atau di bagian tabel Afiliasi di alat peraga Penyimpanan Eksternal Pemrosesan.

Untuk membuka pemrosesan eksternal, Anda memerlukan:

  1. Dapatkan dari penyimpanan.
  2. Simpan file yang diproses ke disk.
  3. Buka formulir atau dapatkan objek pemrosesan.
  4. Jika kita berurusan dengan formulir cetakan eksternal, maka kita dapat mengisi rincian standar Referensi Objek dan panggil fungsi ekspor Segel.

//Variabel RefLink berisi link ke elemen direktori ExternalProcessings
DvData = Tautan Balik. Penyimpanan Pemrosesan Eksternal. Mendapatkan() ;
FileAddress = DapatkanTemporaryFileName() ;
Data DVD. Tulis(AlamatFile) ;
ProcessingObject = Pemrosesan Eksternal. Buat(AlamatFile, Salah) ;