Menambahkan rencana pertukaran ke konfigurasi standar. Organisasi pertukaran dengan basis cabang (toko ritel) di jaringan ritel melalui XML (pertukaran universal) 1c pembuatan rencana pertukaran langkah demi langkah

Kirimkan artikel ini ke email saya

Alasan utama perlunya penerapan pertukaran antar database 1C adalah adanya cabang dan pemisahan jenis akuntansi, karena seringkali perusahaan beroperasi di beberapa basis informasi Oh. Menyiapkan pertukaran 1C 8.3 memungkinkan Anda menghilangkan pekerjaan ganda - memasukkan dokumen dan direktori yang sama dalam dua program, serta dengan cepat mengirimkan objek sistem yang diperlukan untuk berbagai cabang dan departemen.

Jika diperlukan pertukaran antar cabang, digunakan RIB (Distributed Information Base). Ini adalah mekanisme pertukaran antara konfigurasi yang identik. Ini mewakili pohon dengan simpul akar terpenting di atas, dan di bawah sepasang simpul yang saling berhubungan. Perubahan dapat dilakukan di node mana pun dalam sistem ini, dan perubahan tersebut akan diteruskan ke node lain yang terhubung. Ini juga mendistribusikan tidak hanya data, tetapi juga perubahan konfigurasi dari node root ke node slave.

Jika perlu untuk memisahkan jenis akuntansi, misalnya, memelihara jenis akuntansi operasional dalam database perdagangan, dan jenis akuntansi yang diatur dalam database akuntansi, tersedia mekanisme pertukaran universal dengan pengaturan sinkronisasi data yang fleksibel.

Satu dari perkembangan terkini 1C adalah format pertukaran data EnterpriseData. Mudah digunakan dan dimaksudkan untuk pertukaran di dalam perusahaan antara database 1C dan program pihak ketiga.

Pelaksanaan pertukaran data dalam suatu perusahaan dapat direpresentasikan dalam bentuk prosedur yang berurutan.

Pertama-tama, perlu untuk menentukan antara database mana yang harus ada pertukaran; apakah ini akan menjadi pertukaran dua arah atau satu arah; jika satu arah, maka database mana yang akan mengirimkan informasi dan mana yang hanya menerima; jika ini adalah jaringan cabang yang kompleks, maka perlu mendaftarkan skema pembangunan basis data.

Kemudian kita pilih format yang sesuai: RIB, format universal; penukaran sesuai aturan penukaran; pertukaran tanpa aturan pertukaran.

Langkah selanjutnya adalah memilih kendaraan untuk melakukan pertukaran. Banyak pilihan teknologi yang tersedia, mari kita soroti yang utama: direktori (lokal atau jaringan), sumber daya FTP, koneksi COM, layanan web, email.

Langkah keempat adalah mengidentifikasi data: dokumen, buku referensi dan, jika perlu, memerincinya hingga ke rincian masing-masing yang akan ditransfer.

Dan sebagai kesimpulan, jadwal frekuensi pertukaran ditentukan

Setiap opsi untuk menyiapkan pertukaran 1C 8.3 memerlukan persiapan yang matang. Implementasinya berada di luar kemampuan setiap pengguna; perlu mempertimbangkan banyak nuansa dan memahami prinsip-prinsip pertukaran. Perhatian khusus perlu diberikan pada konfigurasi jika database: berisi modifikasi atau banyak tambahan. detailnya, berbeda dalam versi platform atau digunakan versi usang konfigurasi, perusahaan itu besar dan menggunakan sistem otomatis, yang terdiri dari jumlah besar pangkalan Kesalahan tidak dapat diterima di sini, karena... dapat menyebabkan konsekuensi yang tidak dapat diperbaiki. Implementasi pertukaran independen dalam 1C direkomendasikan hanya jika Anda perlu mengatur transfer informasi sederhana antara konfigurasi standar.

Jika Anda meragukan kemampuan Anda, lebih baik tidak menyimpan, tetapi menghubungi spesialis kompeten yang akan membantu memecahkan masalah kompleks dalam menyiapkan pertukaran 1C 8.3.

Jika Anda masih memutuskan untuk mengonfigurasi pertukaran 1C tanpa melibatkan ahli, disarankan untuk menguji salinan database terlebih dahulu, dan sebelum mulai bekerja di database yang berfungsi, unggah konfigurasi agar dapat kembali ke keadaan semula jika terjadi kesalahan.

Di bawah ini adalah contoh detail pengaturan pertukaran 1C 8.3 secara sepihak antara konfigurasi standar Trade Management 11 (UT) dan Enterprise Accounting 3.0 (BP). Contoh ini relevan bagi banyak perusahaan yang bergerak dalam perdagangan grosir dan eceran. Di UT, akuntansi manajemen dipelihara, di BP diatur, pertukaran diperlukan untuk memudahkan pekerjaan pengguna.

Algoritma ini juga cocok untuk konfigurasi standar lainnya pada platform 1C 8.3

Pertama-tama, kami akan melakukan pekerjaan persiapan untuk penerima informasi, yaitu. untuk BP. Kami meluncurkan program dalam mode Perusahaan. Anda perlu mengatur konstanta sinkronisasi data (bagian Administrasi → Sinkronisasi data).

Perhatikan bidang Awalan; di sini Anda perlu menentukan nilai yang selanjutnya memungkinkan Anda membedakan (berdasarkan nilai kode direktori atau nomor dokumen) di program mana objek tersebut awalnya dibuat. Dalam contoh kita, singkatan biasa BP dan UT cocok, jika pengaturan pertukaran 1C 8.3 dilakukan untuk pertukaran kompleks antara sejumlah besar database, serta konfigurasi yang identik, Anda harus memasukkan setiap database dengan penunjukannya yang jelas. .

Karena unit catu daya hanya sebagai penerima informasi, kami melanjutkan ke pengaturan UT.

Di sini, seperti di BP, Anda perlu mengaktifkan sinkronisasi dan menentukan awalan. Informasi ini tersedia di bagian Data master dan administrasi → Pengaturan sinkronisasi data.

Pilih metode pengaturan: Tentukan pengaturan secara manual. Lebih jauh.

Mari kita atur opsi koneksi langsung, ketika kedua program ditempatkan dalam satu jaringan lokal, kami akan menunjukkan parameter untuk menghubungkan ke direktori keamanan informasi di jaringan ini, dan juga mengisi informasi otentikasi tentang pengguna (dalam database BP). Lebih jauh.

Sistem akan memeriksa kebenaran data yang ditentukan dan jika hasil positif akan menampilkan jendela pengaturan pertukaran 1C 8.3.

Klik tautan Ubah aturan unggah data untuk mengakses pengaturan pertukaran. Kami akan mengklarifikasi data master - hanya mengunggah yang digunakan dalam dokumen, memilih organisasi dan opsi bekerja dengan kontrak - tanpa referensi, pemisahan dokumen berdasarkan gudang. Pertukaran dimulai pada 1 Maret tahun berjalan.

Kami menuliskan aturan yang diperkenalkan dan menutupnya.

Sejak dalam contoh yang sedang kita bicarakan tentang transfer informasi satu arah, maka di jendela pengaturan berikutnya untuk menerima data dari program lain, Anda harus mengatur nilainya ke Jangan kirim. Rekam dan tutup. Lebih jauh.

Sekarang Anda perlu memeriksa parameter yang dimasukkan dan jika sudah benar, klik Berikutnya, jika tidak, kembali ke langkah sebelumnya dengan mengklik Kembali.

Anda kemudian akan diminta untuk melakukan sinkronisasi. Klik Selesai.

Jika perlu untuk mengkorelasikan objek identik dari dua konfigurasi, jendela untuk membandingkan data akan terbuka. Kami melakukan perbandingan dan klik Berikutnya.

Saat mentransfer objek, situasi masalah mungkin muncul; Anda dapat melihat hasilnya dengan mengklik tautan Peringatan selama sinkronisasi data.

Setelah sinkronisasi selesai, sebuah jendela akan ditampilkan yang mengonfirmasi keberhasilan penyelesaian proses ini.

Di sini, menggunakan perintah Konfigurasi atau setelahnya, dalam skrip sinkronisasi, Anda dapat mengonfigurasi jadwal eksekusi otomatis menukarkan.

Teknologi basis informasi terdistribusi (RIB) memungkinkan Anda membuat sistem yang terdistribusi secara geografis berdasarkan konfigurasi 1C Enterprise. Hal ini memungkinkan Anda untuk memiliki ruang informasi bersama bahkan dengan departemen yang tidak memiliki saluran komunikasi yang dapat diandalkan, menggabungkan otonomi node yang tinggi dengan kemampuan untuk bertukar informasi dengan cepat. Dalam artikel kami, kami akan melihat fitur dan implementasi praktis dari mekanisme ini pada platform 8.2

Pertama-tama, mari kita bertanya pada diri sendiri: mengapa pertukaran otomatis? Teknologi modern, dikombinasikan dengan Internet yang murah dan cepat, memungkinkan pengorganisasian pekerjaan jarak jauh tanpa kesulitan. Pilihan metode sangat luas: RDP, klien tipis dan web, menghubungkan jaringan menggunakan VPN - ada banyak hal yang perlu dipikirkan. Namun, semua metode ini memiliki satu kelemahan signifikan - ketergantungan yang kuat pada kualitas saluran komunikasi.

Bahkan dengan pengoperasian penyedia lokal yang ideal, tidak mungkin menjamin 100% ketersediaan saluran komunikasi. Masalah dengan penyedia backbone, kurangnya pasokan listrik, kerusakan fisik pada jalur komunikasi dan banyak faktor lainnya membuat tugas ini tidak dapat diatasi. Pada saat yang sama, tidak dapat diaksesnya basis informasi di gudang atau toko ritel terpencil menyebabkan kerugian yang cukup signifikan. Dan yang terakhir, jangan lupa bahwa ada tempat-tempat (misalnya, kawasan industri di pinggiran kota) yang menyediakan saluran komunikasi berkualitas tinggi mahal dan/atau bermasalah.

Mekanisme RIB memungkinkan Anda untuk menghilangkan kekurangan ini; setiap departemen memiliki salinan basis informasinya sendiri yang dapat digunakan untuk bekerja secara mandiri bahkan tanpa adanya komunikasi dengan dunia luar. Dan sejumlah kecil informasi yang dikirimkan memungkinkan Anda menggunakan saluran komunikasi apa pun, termasuk Internet seluler, untuk pertukaran.

RIB pada platform 8.2 bukanlah sesuatu yang baru secara fundamental, mewakili pengembangan lebih lanjut dari platform RIB 7.7, hanya saja sekarang teknologi ini menjadi lebih mudah diakses dan sederhana. Berbeda dengan komponen RIB, yang harus dibeli secara terpisah, RIB merupakan bagian integral dari banyak konfigurasi standar dan bekerja sepenuhnya dalam mode pengguna, memungkinkan Anda melakukannya tanpa Configurator bahkan pada tahap penyiapan.

Pada titik ini, sudah waktunya untuk beralih ke bagian praktis, tetapi kita harus melakukan satu penyimpangan lagi. Faktanya, transisi ke platform 8.2, yang tampaknya sudah terjadi, ternyata menyebabkan munculnya dua jenis konfigurasi: berdasarkan aplikasi yang dikelola, “asli” untuk platform 8.2, dan diadaptasi dari 8.1, terus menggunakan teknologi dan mekanisme yang sudah ketinggalan zaman. Karena sebagian besar konfigurasi (Akuntansi Perusahaan, Penggajian, dan Manajemen SDM) diadaptasi atau bersifat transisi, maka konfigurasi tersebut tidak dapat diabaikan, jadi bagian pertama artikel kami akan dikhususkan untuk konfigurasi ini (pada dasarnya platform 8.1), sedangkan di bagian kedua kita akan memeriksa pengaturan pertukaran otomatis untuk konfigurasi berdasarkan aplikasi yang dikelola (platform 8.2).

Mari kita pertimbangkan tugas praktis: menyiapkan pertukaran otomatis melalui FTP untuk konfigurasi Enterprise Accounting 2.0. Terlepas dari kenyataan bahwa RIB memungkinkan Anda bertukar menggunakan email atau berbagi file, kami merekomendasikan penggunaan FTP sebagai cara yang paling sederhana dan cara yang dapat diandalkan komunikasi. Anda dapat membaca cara mengatur server FTP Anda sendiri, atau Anda dapat menggunakan layanan FTP dari penyedia hosting mana pun.

Pertama-tama, kita perlu mengkonfigurasi node pertukaran. Untuk melakukan ini, luncurkan konfigurasi dengan hak administrator dan pilih Transaksi - Paket Pertukaran.

Dalam daftar yang muncul, pilih Penuh rencana atau Berdasarkan organisasi, jika catatan disimpan dalam satu database untuk beberapa perusahaan dan pertukaran perlu dilakukan hanya untuk salah satu perusahaan tersebut. Di jendela yang terbuka, sudah ada satu node - node pusat, kita perlu mengeditnya dengan menunjukkan kode dan nama.

Kemudian kita akan membuat simpul lain untuk cabang tersebut, mengisinya dengan cara yang sama (untuk menambahkan, klik lingkaran hijau dengan tanda plus). Langkah selanjutnya adalah membuat gambar awal untuk node ini, yang merupakan basis informasi siap pakai dalam mode file. Untuk melakukan ini, klik kanan pada node yang diinginkan dan pilih dari daftar drop-down Buat gambar awal.

Sekarang mari kita lanjutkan Layanan - Basis Informasi Terdistribusi (DIB) - Konfigurasikan node RIB.

Di jendela yang terbuka, klik tombol Menambahkan dan konfigurasikan pertukaran baru dengan menentukan host jarak jauh, jenis pertukaran (melalui FTP) dan parameter koneksi server.

Penanda buku Pertukaran otomatis memungkinkan Anda untuk mengatur jadwal pertukaran, pertukaran berdasarkan acara (awal dan akhir pekerjaan, dll.), pengaturan ini dibuat untuk pengguna yang atas nama siapa pertukaran akan dilakukan, jadi pastikan dia memiliki hak untuk bertukar data.

Jangan lupa untuk menentukan awalan simpul untuk penomoran dokumen (jika tidak, Anda akan menerima dokumen berbeda dengan nomor yang sama) di Alat - Pengaturan Program di sini Anda juga dapat mengonfigurasi beberapa parameter pertukaran lainnya. Pada tab yang sama, Anda harus memilih pengguna untuk melakukan tugas pertukaran; jika Anda tidak melakukan ini, jadwal tidak akan berfungsi. Ingatlah bahwa pertukaran hanya akan dilakukan jika pengguna login ke program.

Ini menyelesaikan konfigurasi node pusat; sekarang Anda perlu membuat pengaturan serupa untuk node periferal, menghubungkan gambar awal sebagai sistem keamanan informasi yang ada. Setelah itu Anda dapat mulai bertukar data. Untuk mengontrol Anda harus menggunakan Pemantau komunikasi, ini memungkinkan Anda tidak hanya memantau keberhasilan pengunggahan/pengunduhan, tetapi juga menunjukkan setiap tabrakan yang muncul atau gerakan tertunda (jika pengguna yang melakukan pertukaran tidak memiliki cukup hak untuk melakukan tindakan apa pun di database). Ketersediaan dari instrumen ini memungkinkan Anda dengan cepat dan efektif menyelesaikan berbagai jenis masalah yang timbul selama pertukaran otomatis.

Pada titik ini, pengaturan pertukaran dapat dianggap selesai dan Anda dapat mulai bekerja dalam mode terdistribusi. Penting untuk memikirkan secara khusus tentang memperbarui atau membuat perubahan pada konfigurasi. Tindakan ini hanya tersedia di node pusat; semua perubahan yang dilakukan akan secara otomatis disebarkan ke node periferal selama pertukaran berikutnya. Untuk melakukan perubahan secara otomatis, basis periferal harus ada modus monopoli, jika tidak, Anda harus lari konfigurator dan mengeksekusi Memperbarui Konfigurasi Basis Data secara manual.


Kata kunci: didistribusikan, URDB, XML, registrasi, node, node, registrasi otomatis, inisial, gambar, POP3, SMTP, MailMessage, periferal, sentral, replikasi, pertukaran

Penafian dan ketentuan penggunaan

Semua merek dagang yang disebutkan secara tidak sengaja dalam artikel ini adalah milik pemiliknya masing-masing.
Artikel ini diterbitkan di bawah Lisensi Creative Commons Attribution-Share Alike 3.0 Unported.
http://creativecommons.org/licenses/by-sa/3.0/

Izinkan saya segera mencatat bahwa semua hal berikut ini berlaku untuk rilis platform 8.0.7.36 dan lebih tinggi.

Langkah 1: Buat rencana pertukaran

Kami membuat rencana pertukaran dalam konfigurasi. Sebut saja, misalnya, "DistributedBase". Diperlukan dalam
Di properti paket pertukaran, centang kotak "Base info terdistribusi".

Pada tab “Lainnya”, klik tombol “Komposisi” untuk menentukan objek mana yang akan disertakan dalam pertukaran. Oleh
Secara default, Anda dapat mengaktifkan semua objek ("Tindakan" - "Aktifkan Semua"). Poin penting adalah parameternya
"Pendaftaran otomatis". Secara umum, ini harus diaktifkan untuk semua objek.

Catatan: saat menambahkan objek baru ke konfigurasi, objek tersebut tidak disertakan dalam paket pertukaran. Itu. setelah
Untuk menambahkan objek, objek tersebut harus ditambahkan ke rencana pertukaran.

Jika Anda ingin beberapa objek tidak berpartisipasi dalam pertukaran, cukup kecualikan objek tersebut dari daftar
rencana pertukaran. Namun kendali integritas referensial tetap sepenuhnya berada di hati nurani Anda. Jika, untuk
misalnya, dokumen tertentu tidak termasuk dalam rencana pertukaran, tetapi daftar tempat perpindahannya disertakan,
kemudian dalam database penerima sangat mungkin untuk menerima pergerakan register tanpa dokumen perekam, yang mana
Setuju, itu tidak bagus.

Pada prinsipnya, tindakan ini cukup bagi RDB untuk bekerja dalam mode “manual”. Untuk melakukan ini, kami meluncurkannya
Perusahaan, buka paket pertukaran kami melalui menu "Operasi". Dalam hal pertukaran, selalu ada
simpul yang telah ditentukan sebelumnya "dengan titik". Ini adalah deskripsi dari node saat ini. Itu perlu dibuka dan diisi. Di kami
Dalam hal ini, kolom “Kode” dan “Nama” akan tersedia. Mari kita tetapkan kode "AA" ke node kita dan beri nama
"Pusat". Mari tambahkan satu node ke rencana pertukaran. Mari kita beri kode "BB" dan beri nama "Peripheral".

Sekarang kita dapat membuat gambar basis periferal. Ini dilakukan dengan mengklik tombol "Buat inisial".
gambar". Basis periferal harus dipilih dalam daftar node. Gambar database dibuat dalam bentuk keamanan informasi yang sudah jadi
di katalog atau di server 1C:Enterprise. (tidak seperti 7.7, di mana gambar keamanan informasi dibuat sebagai file
bongkar). Selanjutnya database yang dibuat dapat dipindahkan ke lokasi yang diinginkan hanya dengan menyalin file 1CV8.1CD
(untuk versi file), atau melalui Configurator melalui upload dan download data.

Jika Anda membuka rencana pertukaran di sistem keamanan informasi periferal, Anda akan melihat bahwa node tersebut “dengan titik”, yaitu. saat ini
simpul “Periferal” menjadi simpul, dan ikon simpul “Pusat” menjadi merah, mis. simpul
"Pusat" adalah simpul utama dalam kaitannya dengan simpul saat ini.

Pertukaran dalam mode “manual” dapat dilakukan dengan menggunakan tombol “Tulis perubahan” dan “Baca”.
perubahan". Dalam kasus pertama, Anda akan diminta untuk memilih file tempat perubahan akan ditulis, dalam kasus kedua
- file dari mana perubahan akan dibaca. Pertukaran dilakukan di format xml. Perubahan dicatat untuk
simpul yang dipilih.

Langkah 2: Unggah perubahan ke file XML dan kirim melalui email

Jadi kami membuat rencana pertukaran, membuat sistem keamanan informasi periferal, dan bahkan mempelajari cara mentransfer data
pangkalan. Sekarang tugas kita adalah mengajarkan dasar-dasar pertukaran surel.

Kami menambahkan dua detail ke paket pertukaran: Alamat Email tipe "string" dan tipe "Jalankan Exchange".
"boolean". Di alamat E-mail kami akan menyimpan alamat email node, mis. alamat tujuan kita
mengirim pesan pertukaran. Props ExecuteExchange diperlukan untuk menonaktifkan otomatis dengan cepat
mengirim dan mengirim pesan.

Mari kita jadikan prosedur untuk bekerja dengan email menjadi universal, mis. mari kita wujudkan
gunakan sebagai MAPI (kirim-terima melalui klien email, misalnya MS Outlook), dan
akses langsung ke server SMTP/POP3.

Mari tambahkan beberapa konstanta ke konfigurasi:

Di suatu tempat dalam bentuk umum kami menyediakan pengeditan nilai konstanta ini.

Mari tambahkan modul umum, beri nama "rbDistributedBase". Kami menulis di dalamnya:

Prosedur rbSendExchangeMessages() Ekspor UseSMTP = Constants.UseSMTPExchange.Receive(); //Pertama, buat objek Mail, yang bergantung pada pengaturannya, akan bertipe InternetMail, //jika akses langsung ke server digunakan, atau Mail jika MAPI digunakan. Jika Gunakan SMTP Lalu //Untuk objek bertipe InternetMail, buat dan isi profil email. MailProfile = InternetMailProfile Baru; MailProfile.SMTPServerAddress = Konstanta.SMTPExchangeServerAddress.Get(); MailProfile.SMTPPort = Konstanta.SMTPExchangeServerPort.Receive(); MailProfile.SMTPUser = Konstanta.SMTPExchangeServerUser.Receive(); MailProfile.SMTP Kata Sandi = Constants.SMTPExchangeUserPassword.Receive(); MailProfile.WaitTime = Konstanta.ServerWaitTime.Get(); Email = InternetMail Baru(); Mencoba Mail.Connect(MailProfile); Laporan pengecualian(" PERTUKARAN: Kesalahan saat menyambung ke profil email! Pertukaran gagal!" + ErrorDescription(), MessageStatus.VeryImportant); Kembali; EndAttempt; Jika tidak, Mail = Surat Baru(); Coba Mail.Connect(); Laporan Pengecualian("" + ErrorDescription(), MessageStatus.VeryImportant); Kembali; Percobaan Akhir; berakhir jika; //Selanjutnya, pilih semua node dari paket pertukaran, kecuali yang sekarang, //yang memiliki set atribut Perform Exchange. SelectionNodes = ExchangePlans.DistributedBase.Select(); Sementara SelectNodes.Next() Ulangi Jika Tidak SelectNodes.PerformExchange Lalu Lanjutkan; berakhir jika; Jika SelectionNodes.Link = ExchangePlans.DistributedBase.ThisNode() Lalu Lanjutkan; berakhir jika; ElectronicAddress = AbbrLP(SelectionNodes.ElectronicAddress); Jika EmailAddress = "" Kemudian Lanjutkan; berakhir jika;//Menggunakan objek XML Record dan Message Record, kami mencatat perubahan //untuk node yang dipilih dalam file xml. Node = SelectionNodes.Link; XMLRecord = NewXMLRecord(); MessageFileName = TemporaryFileDirectory() + "Message_" + DisingkatLP(ExchangePlans.DistributedBase.ThisNode().Code) + "_ " + DisingkatLP(Node.Code) + ".xml "; EntriXML.OpenFile(MessageFileName); MessageRecord = ExchangePlans.CreateMessageRecord(); MessageRecord.StartRecord(XMLRecord, Node); ExchangePlans.WriteChanges(WriteMessage); WriteMessage.FinishRecord(); TulisXML.Tutup(); File = File Baru(NamaFilePesan); Subjek Pesan = "1C:Exchange" + Abbr.LP(ExchangePlans.DistributedBase.ThisNode().Code) + "_" + Abbr.LP(Node.Code); Jika UseSMTP Maka MailMessage = InternetMailMessage Baru; MailMessage.Subjek = Subjek Pesan; MailMessage.Lampiran.Tambahkan(MessageFileName, File.Name); MailMessage.Recipients.Add(EmailAddress); Mail.Kirim(Pesan Surat); Lain MailMessage = MailMessage baru; MailMessage.Subjek = Subjek Pesan; MailMessage.Lampiran.Tambahkan(MessageFileName); MailMessage.Recipients.Add(EmailAddress); Mail.Send(MailMessage, Salah); berakhir jika; Jika Constants.OutputExchangeMessages.Get() Lalu Laporkan(" EXCHANGE: Pertukaran pesan untuk node

" + Nama Node + " terkirim! ", MessageStatus.Informasi); EndIf; DeleteFiles(MessageFileName); EndCycle; Mail.Disconnect(); EndProcedure
Saya sarankan menambahkan panel tambahan ke antarmuka, di salah satu tombol di mana Anda dapat melakukan panggilan ke sana
Prosedur. Sekarang yang tersisa hanyalah meluncurkan Perusahaan, mengkonfigurasi alamat email perangkat keamanan informasi,
centang kotak "Exchange", klik tombol prosedur pada panel dan jalankan untuk menerima email
email yang ditentukan alamat. Anda akan menerima surat dengan subjek "1C:Exchange AA_BB" dan file terlampir

"Pesan_AA_BB.xml".
Jadi, separuh pekerjaan telah selesai: kami mengajari G8 untuk mengirim pesan pertukaran RDB melalui email

surat.

Langkah 3. Terima pembaruan melalui email dan catat di keamanan informasi

Sekarang mari kita lakukan prosedur sebaliknya: menerima pembaruan melalui email dan mencatatnya dalam keamanan informasi.
Untuk parameter sesi, tambahkan parameter "Pertukaran Database Terdistribusi sedang Berlangsung" dari tipe Boolean. Saya akan menjelaskannya di bawah ini

janji temu.

Mari tambahkan prosedur berikut ke modul umum rbDistributedBase: Prosedur rbGetExchangeMessages() Ekspor UseSMTP = Constants.UseSMTPExchange.Receive(); Mail Jika Menggunakan SMTP Maka MailProfile = New InternetMailProfile; MailProfile.POP3ServerAddress = Konstanta.POP3ExchangeServerAddress.Get(); MailProfile.POP3Port = Konstanta.POP3ExchangeServerPort.Get(); MailProfile.User = Konstanta.POP3ExchangeServerUser.Get(); MailProfile.Password = Konstanta.UserPasswordPOP3Exchange.Receive(); MailProfile.WaitTime = Konstanta.ServerWaitTime.Get(); Email = InternetMail Baru(); Mencoba Mail.Connect(MailProfile); Laporan pengecualian(" PERTUKARAN: Kesalahan saat menyambung ke profil email! |Penukaran gagal!", MessageStatus.VeryImportant); Kembali; EndAttempt; Jika tidak, Mail = New Mail(); Attempt Mail.Connect(); Laporan Pengecualian(" PERTUKARAN: Kesalahan saat menyambung ke profil email pengguna! |Penukaran gagal!", MessageStatus.VeryImportant); Kembali; EndAttempt; EndIf; MessageArray = Array Baru; Jika UseSMTP Maka AllMessages = Mail.Select(False); Else AllMessages = Mail.Select(False, False); EndIf; //Pilih di antara semua huruf yang memiliki subjek “1C:Exchange”. //Catatan kecil tapi penting: //kami yakin bahwa semua surat yang diterima dengan subjek "1C:Exchange" memang dimaksudkan //tepat untuk node saat ini, //itu. bahwa node yang berbeda dalam hal pertukaran memiliki alamat email yang BERBEDA. Untuk Setiap Pesan Dari Semua Siklus Pesan Jika Leo (Pesan. Subjek, 8 )<>"1C:Exchange" Lalu Lanjutkan; berakhir jika; TryMessageArray.Add(Pesan); //Simpan lampiran email ke disk.//Kami akan meninggalkan pemeriksaan lampiran secara hati-hati di belakang layar untuk saat ini. Lampiran = Pesan.Lampiran; MessageFileName = TemporaryFileDirectory() + Lampiran.Nama; ExchangeData = Lampiran.Data; ExchangeData.Write(MessageFileName); //Menggunakan objek XMLReader dan MessageReader kita membaca datanya //pembaruan dari file yang disimpan. Sebelum mencatat pembaruan keamanan informasi //atur parameter sesi Pertukaran Database Terdistribusi yang Sedang Berlangsung ke True. //Kemudian kita membaca perubahan keamanan informasi: Exchange Plans.ReadChanges(ReadMessage). ReadXML = ReadXML baru(); ReadXML.OpenFile(MessageFileName); MessageReader = ExchangePlans.CreateMessageReader(); ReadMessage.StartReading(ReadingXML); SessionParameters.DistributedBaseExchange sedang berlangsung = Benar; ExchangePlans.ReadChanges(ReadMessage); ReadMessage.FinishReading(); BacaXML.Tutup(); Jika Constants.OutputExchangeMessages.Get() Lalu Laporkan(" PERTUKARAN: Pertukaran data diterima",MessageStatus.Information); EndIf; Laporan Pengecualian(" PERTUKARAN: Kesalahan saat menerima data pertukaran:" + ErrorDescription(), MessageStatus.Sangat Penting); EndAttempt; //Setelah pembacaan pertukaran data selesai, kembali //parameter sesi DistributedBase Exchange yang sedang berlangsung disetel ke False. SessionParameters.DistributedBaseExchange sedang berlangsung = Salah; Mencoba DeleteFiles(MessageFileName); Pengecualian //jika tidak berhasil, oh baiklah Percobaan Akhir; Siklus Akhir; Jika Menggunakan SMTP Kemudian Mail.DeleteMessages(MessageArray); berakhir jika;

Mail.Putuskan(); Akhir Prosedur
Sekarang tentang apa yang diperlukan untuk parameter sesi Pertukaran Database Terdistribusi Sedang Berlangsung.
Faktanya adalah ketika membaca data menggunakan metode ExchangePlans.ReadChanges(), panggilan dilakukan
prosedur penangan untuk acara BeforeWrite() dari objek yang dimodifikasi/ditambahkan. Dan jika saat merekam
objek apa pun dalam prosedur handler, parameter Penolakan akan disetel ke True
ketika mengeksekusi ExchangePlans.ReadChanges() pengecualian akan terjadi, dan, karenanya, pertukaran
tidak akan dieksekusi. Nilai parameter sesi DistributedBase Exchange In Progress dapat berupa
dianalisis dalam prosedur penanganan untuk menghindari situasi seperti itu.
Dengan dirilisnya edisi 12 (walaupun saya mungkin salah tentang versinya), relevansi metode ini agak berkurang tidak digunakan lagiA, karena objek sekarang memiliki properti Opsi Pertukaran
, dari siapa, miliknya sendiri. Properti ini disetel ke True ketika

menyimpan data melalui paket berbagi.
Sekarang di antarmuka pada panel kami, kami menambahkan tombol lain tempat kami menelepon
Prosedur. Mari luncurkan Enterprise dan nikmatilah. Hampir semuanya sudah selesai, hanya tinggal sedikit lagi: menjalankan prosedur kita.
mode otomatis

Langkah 4. Menyiapkan pertukaran otomatis
Jadi, kita hampir mendekati tujuan cerita kita. Tinggal satu langkah lagi: peluncuran

melakukan prosedur pertukaran secara otomatis. Mari kita mulai.

Mari tambahkan parameter Perform Distributed Database Exchange ke pengaturan pengguna. Untuk konfigurasi
"Manajemen perdagangan" dilakukan seperti ini:

* Dalam rencana tipe karakteristik "Pengaturan Pengguna" kami akan menambahkan yang telah ditentukan sebelumnya
karakteristik Melakukan Pertukaran Database Terdistribusi bertipe Boolean.
* Dalam bentuk item direktori "Pengguna" kami mengatur perubahan pada parameter ini (seperti ini
dapat dilakukan dalam modul formulir, dengan analogi dengan parameter lain).

Tambahkan prosedur ke modul rbDistributedBase:

Prosedur rbPerformExchange(pengguna) Ekspor Jika npGetDefaultValue(pengguna, "") Kemudian rbGetExchangeMessages(); rbSendExchangeMessages(); berakhir jika; Akhir Prosedur

ke modul aplikasi:

Prosedur CheckConnectionAutoExchange() Ekspor Jika npGetDefaultValue(chCurrentUser, " Jalankan Pertukaran Basis Data Terdistribusi") Dan Constants.DistributedBaseAutoExchangeInterval.Get() > 0 Lalu ConnectWaitHandler(" Jalankan Pertukaran Otomatis", Constants.DistributedBaseAutoExchangeInterval.Get()); Jika tidak, DisableWaitHandler(" Jalankan Pertukaran Otomatis"); EndIf; Prosedur EndProcedure ExecuteAutoExchange() Ekspor rbExchange(glCurrentUser); DisableWaitHandler(" Jalankan Pertukaran Otomatis"); Jika npGetDefaultValue(chCurrentUser, " Jalankan Pertukaran Basis Data Terdistribusi") Dan Constants.DistributedBaseAutoExchangeInterval.Get() > 0 Lalu ConnectWaitHandler(" Jalankan Pertukaran Otomatis", Constants.DistributedBaseAutoExchangeInterval.Get()); EndIf; Prosedur EndProcedure DisableAutoExchange() Ekspor DisableWaitHandler(" Jalankan Pertukaran Otomatis"); Prosedur Akhir

Tambahkan baris berikut ke prosedur WhenSystemStart() modul aplikasi:

(setelah menghubungkan peralatan komersial)
...
SessionParameters.DistributedBaseExchange sedang berlangsung = Salah; PeriksaAutoExchangeConnection();

Mari tambahkan beberapa tombol lagi ke panel kita untuk mengontrol proses: tambahkan prosedur ke salah satunya
CheckConnectAutoExchange(), di sisi lain - DisableAutoExchange()

Kami meluncurkan perusahaan, mengonfigurasi properti pengguna dan interval pertukaran otomatis, dan selesai!

Sekarang, ketika Anda memasukkan database untuk pengguna yang paling terkonfigurasi ini, handler akan diluncurkan
menunggu ExecuteAutoExchange(). Tentu saja, Anda juga perlu mengkonfigurasi pengguna di database periferal
untuk pertukaran.

Satu lagi catatan kecil namun penting:

Dalam semua keindahan yang kita ciptakan, ada satu gangguan: perubahan konfigurasi. Pada
Ketika basis periferal menerima pesan yang berisi perubahan konfigurasi, itu
akan diterima, namun pengecualian akan terjadi. Dalam hal ini, konfigurasi yang diubah akan terjadi
sarat. Untuk memperbarui konfigurasi database, Anda perlu mengeluarkan semua pengguna, buka
konfigurator dan perbarui konfigurasi database (sebaiknya unggah data sebelum melakukan ini). KE
Sayangnya, ini adalah kejahatan yang perlu dilakukan. Anda dapat membuat hidup Anda sedikit lebih mudah dengan menulis file bat pendek
sesuatu seperti ini:

1cv8.exe KONFIG /F<путь к ИБ>/N<Пользователь>/P<Пароль>/PerbaruiIBCfg

Dan satu catatan lagi:

Sayangnya, file xml tidak ringkas, tetapi untungnya, file tersebut dikompresi dengan sempurna. Mungkin di
tata cara pengiriman dan penerimaan pesan, penambahan pengepakan dan pembongkaran file. COLOR="#666666">Ini dapat dilakukan dengan pengarsip eksternal, atau menggunakan VK, misalnya Wheel.AddIn
(http://1c.proclub.ru/modules/mydownloads/personal.php?cid=81&lid=2714) .
Dengan dirilisnya edisi ke-10 (tampaknya), proposal sebelumnya agak ketinggalan jaman, karena platformnya
adalah alat bawaan kompresi file menggunakan algoritma ZIP. Itu. sekarang dimungkinkan untuk mengompres file
tanpa menggunakan VK.

Paket pertukaran di 1C 8.3 adalah objek metadata konfigurasi yang digunakan untuk mengimplementasikan sinkronisasi data di sistem 1C 8.

Rencana pertukaran dapat dibandingkan dengan direktori, di mana elemen-elemennya adalah node basis informasi. Namun, ada banyak perbedaan dalam bekerja dengan rencana pertukaran, yang akan kita bahas di bawah.

Biasanya, pertukaran di 1C dibangun menggunakan aturan pertukaran khusus, yang dibentuk menggunakan konfigurasi.

Seperti disebutkan sebelumnya, rencana pertukaran ini sangat mirip dengan rencana pertukaran biasa, oleh karena itu kita hanya akan melihat perbedaan utama antara pertukaran tersebut.

Cara bekerja dengan rencana pertukaran

Rencana pertukaran dapat menyimpan informasi dan perubahan elemen dari rencana pertukaran, dan juga menyimpan informasi tentang nomor pesan saat ini. Secara umum skema kerjanya adalah sebagai berikut:

  1. Kami mengubah data (direktori, dokumen, dll.) dalam database - rencana pertukaran mengingat perubahan tersebut. Baik dengan registrasi otomatis atau kode program(misalnya, metode Exchange Plans.RegisterChanges).
  2. Ketika saatnya tiba, kami mendapatkan daftar elemen yang diubah - metode ReadChanges(), dan mengunggah data ini.
  3. Saat mengunggah/mengunduh, untuk menghindari tabrakan, kami memeriksa nomor pesan dengan rencana pertukaran. Jika tidak cocok, kami membatalkan pertukaran data; jika cocok, kami membatalkan pendaftaran perubahan dan menambah nomor pesan.

Dapatkan 267 pelajaran video di 1C gratis:

Basis informasi terdistribusi

Jika tanda ini diatur dalam pengaturan, maka rencana pertukaran ini adalah basis informasi terdistribusi (RIB).

— sistem yang terdistribusi secara geografis berdasarkan konfigurasi 1C 8.3 yang sama. Selain perubahan data, RIB juga dapat mengirimkan perubahan konfigurasi, yang sangat memudahkan, misalnya saat memperbarui rilis konfigurasi.

Komposisi rencana pertukaran

Pengaturan yang digunakan pengembang untuk mengelola kumpulan objek untuk pertukaran:

Rencana pertukaran dapat memiliki 3 status objek:

  1. Tidak termasuk dalam rencana pertukaran- oleh karena itu, untuk objek seperti itu Anda tidak akan dapat mengonfigurasi pertukaran data sesuai dengan rencana pertukaran ini dengan cara apa pun.
  2. Pendaftaran Otomatis Ditolak- ini berarti bahwa perubahan untuk node tertentu perlu didaftarkan hanya menggunakan kode program sesuai dengan kondisi tertentu, sebagai suatu peraturan, . Metode Exchange Plans.RegisterChanges() digunakan.
  3. Izinkan Pendaftaran Otomatis— jika kotak centang ini dicentang, maka setiap perubahan pada elemen akan secara otomatis muncul dalam daftar perubahan pada rencana pertukaran.

Paket pertukaran dan kinerja 1C

Karena fitur sistemik dari implementasi rencana pertukaran, tidak disarankan untuk menyalahgunakan pengunggahan perubahan sesuai dengan rencana pertukaran. Faktanya adalah ketika membaca perubahan, semua tabel perubahan terkunci. Itu. Saat membongkar, rencana pertukaran tidak mengizinkan perubahan baru untuk dicatat, dan oleh karena itu memblokir elemen itu sendiri - direktori, dokumen, dll.

Ada berbagai situasi ketika Anda perlu menambahkan konfigurasi tipikal rencana baru menukarkan. Misalnya:

  • Perlu menyiapkan pertukaran sarana standar dengan konfigurasi yang tidak ada pertukaran standar.
  • Ada beberapa basis informasi dengan konfigurasi yang sama; Anda perlu mengatur pertukaran dengan mereka sesuai dengan aturan yang berbeda. Dan seperti yang Anda ketahui, pertukaran dengan produk di platform 8.2 tidak mengizinkan pemuatan aturan yang berbeda untuk node yang berbeda.

Cara menambahkan rencana pertukaran baru dengan produk pada platform 1C:Enterprise 8.2 (dengan dukungan untuk perpustakaan subsistem standar 2.0/3.0)

Mari kita pertimbangkan prosedur ini menggunakan contoh integrasi beberapa departemen Akuntansi nasional (Rusia, Ukraina, dan Kazakh) dengan konfigurasi Financier yang dikembangkan oleh WiseAdvise.

Dengan menambahkan rencana pertukaran baru, kami akan menyelesaikan 2 masalah sekaligus:

  1. DI DALAM departemen akuntansi standar Tidak ada exchange plan untuk konfigurasi Financier sama sekali (ada baiknya exchange plan ini disertakan dalam pengiriman Financier itu sendiri).
  2. Versi Departemen Akuntansi untuk Rusia, Ukraina dan Kazakhstan berbeda cukup signifikan, oleh karena itu harus ada aturan pertukaran yang berbeda untuk masing-masing Departemen Akuntansi. Dan karena hanya satu aturan yang dapat ditetapkan untuk satu rencana pertukaran, Anda harus membuat beberapa rencana pertukaran untuk masing-masing departemen Akuntansi nasional. Anda tentu saja dapat mengubah konfigurasi Financier sedemikian rupa sehingga memungkinkan memuat aturan Anda sendiri untuk setiap node dalam satu paket pertukaran, tetapi ini, menurut pendapat saya, akan menjadi lebih rumit dan, terlebih lagi, akan mempersulit pembaruan konfigurasi lebih lanjut.

Jadi, algoritma tindakannya:

Ini menyelesaikan penambahan rencana pertukaran. Saat Anda beralih ke mode 1C:Enterprise dan mengatur pertukaran data, paket yang kami tambahkan akan muncul di daftar paket yang tersedia.

Jika perlu, Anda dapat menambahkan tata letak dengan aturan registrasi dan konversi ke rencana pertukaran di konfigurator. Mereka akan dianggap standar. Atau Anda dapat memuat aturan ini dari file yang sudah dalam mode 1C:Enterprise.