1c pembuatan rencana pertukaran langkah demi langkah. Pertukaran terjadwal menggunakan cara standar. Apa format EnterpriseData


Jika organisasi Anda mempekerjakan lebih dari 5 orang, kemungkinan besar Anda menggunakan produk 1C. Hampir selalu, organisasi memasang beberapa database 1C, karena masing-masing database memecahkan sejumlah masalah tertentu. Misalnya, sebuah perusahaan bergerak dalam penjualan eceran dan menyelenggarakan akuntansi; dalam situasi seperti itu, klien biasanya menginstal UT (Manajemen Perdagangan) dan BP (Akuntansi Perusahaan). Bahkan seorang pengusaha perorangan sederhana dengan beberapa karyawan mungkin saja bertindak sebagai perusahaan seperti itu!

Mengapa saya harus mengatur pertukaran data?

Mari kita terus mempertimbangkan situasi UT dan BP. Bayangkan saat ini pertukaran kita belum dikonfigurasi, tindakan apa yang perlu kita lakukan untuk mencerminkan transaksi akuntansi di kedua database? Betul, pertama kita isi datanya di UT, lalu kita harus memasukkan data yang sama ke BP, karena misalnya kita tidak bisa memasukkan kwitansi barang di UT, tapi kita tidak bisa melakukannya di UT. BP.

Meskipun Anda memutuskan untuk menggunakan pertukaran data standar (mengatur pertukaran data standar (sinkronisasi 1C)), ini tidak berarti bahwa itu dapat dikonfigurasi di database Anda. Masalah muncul jika, misalnya, Anda sudah lama tidak memperbarui database (untuk menjaga pertukaran standar, database Anda harus mutakhir) atau objek yang akan Anda transfer dari satu database ke database lainnya diubah (dalam hal ini, pertukaran standar tidak akan berfungsi dengan benar), kecuali semua ini meskipun versi platform database berbeda (7.7 – 8.3), maka pertukaran data kemungkinan besar juga harus dimodifikasi atau dikembangkan dari awal.

Siapa yang perlu menggunakan pertukaran data antar database 1C?

Jika pernyataan di bawah ini relevan bagi Anda, maka Anda perlu mengonfigurasi pertukaran antar konfigurasi Anda:

  • Anda memiliki lebih dari satu database 1C
  • Membutuhkan transfer informasi yang cepat dari satu database ke database lainnya dan sebaliknya
  • Perlu pertukaran otomatis atau pertukaran waktu nyata

Pengembangan dan konfigurasi pertukaran data antara konfigurasi 1C

Pertukaran data yang dirancang dengan baik akan memungkinkan Anda untuk:

  • Bongkar dan muat objek dari satu database ke database lainnya
  • Pertukaran antara versi 1C yang berbeda
  • Pertukaran data secara real-time
  • Mengurangi biaya gaji karyawan secara signifikan, karena kini mereka akan memiliki lebih banyak waktu luang
  • Hemat waktu dan anggaran Anda

Pengembangan aturan pertukaran data menggunakan contoh database UT dan BP yang dimodifikasi

Kami memiliki dua database di mana dokumen "Penerimaan barang dan jasa" telah dimodifikasi, khususnya, rincian baru telah ditambahkan ke dokumen dan bagian tabel, beberapa rincian standar telah dihapus, akibatnya pertukaran data standar tidak dilakukan. tidak bekerja. Kami mengembangkan aturan pertukaran baru dan menulisnya ke sebuah file.


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 “Perifer” 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 dalam 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 database untuk bertukar melalui email.

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-mengirim pesan.

Mari kita jadikan prosedur untuk bekerja dengan email menjadi universal, mis. mari kita wujudkan
penggunaan 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 kita membuat 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 = New Mail(); Attempt Mail.Connect(); Laporan Pengecualian("" + ErrorDescription(), MessageStatus.VeryImportant); Kembali; EndAttempt; EndIf ; //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 XMLRecord dan MessageRecord, 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(); //Kemudian kita membuat surat baru, lampirkan file xml yang dihasilkan ke dalamnya dan //kirim ke alamat yang ditentukan dalam Alamat Email Node. 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(); //sama seperti pada prosedur rbSendExchangeMessages(), pertama-tama buatlah sebuah objek 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 membiarkan 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). //Pada saat yang sama, kita menyimpan pesan dalam sebuah array sehingga nantinya kita dapat menghapus semuanya sekaligus. 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.VeryImportant); 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 Anda Menggunakan SMTP Maka 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 tersebut 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: membuat prosedur kita berjalan secara 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 kita tambahkan sebuah konstanta, Interval Pertukaran Otomatis DistributedBase, dengan tipe Number(5,0).

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, "") Lalu 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 masalah: 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
Ada alat kompresi file bawaan menggunakan algoritma ZIP. Itu. sekarang dimungkinkan untuk mengompresi file
tanpa menggunakan VK.

Saya mempertimbangkan organisasi pertukaran data yang sepenuhnya otomatis menggunakan contoh pertukaran 1C: Production Enterprise Management (PEM) ==> 1C: Accounting (BP) 2.0 menggunakan aturan pertukaran yang sewenang-wenang.

Ada 2 database: 1C:UPP dan Enterprise Accounting 2.0. Sejumlah dokumen yang dibuat di UPP: Penjualan barang dan jasa, Penerimaan barang dan jasa, Faktur. Departemen akuntansi membuat dokumen arus kas: penyelesaian arus kas, penyelesaian tunai dan perintah pembayaran.

Struktur dokumen dalam konfigurasi ini agak berbeda dan oleh karena itu aturan pertukaran sewenang-wenang ditulis menggunakan produk "Konversi Data 2.1".

LANGKAH 1. Menyiapkan node pertukaran.

Paket pertukaran "Penuh" akan digunakan untuk pertukaran data. Untuk melakukan ini, buka operasi BP ==> Paket Pertukaran ==> Penuh.

Paket pertukaran SELALU berisi satu node pertukaran yang telah ditentukan sebelumnya. Ada tiga poin di sini:

1) Anda tidak dapat menggunakan node yang telah ditentukan sebelumnya dalam pengaturan pertukaran

2) Kode node ini tidak ditentukan secara default dan harus ditentukan

3) Dalam database tempat pertukaran data diatur, Kode node yang telah ditentukan sebelumnya tidak boleh cocok, ini akan mengakibatkan kesalahan.

Dalam rencana pertukaran "Penuh" di BP, kami akan melakukan tindakan berikut:

1) Kami menunjukkan kode dan nama node yang telah ditentukan sebelumnya. Katakanlah nama = "Ditentukan sebelumnya", Kode = 001.

2) Mari kita buat node pertukaran baru, beri nama "UPP" dan beri kode 003.

Demikian pula, buka paket pertukaran "Penuh" 1C:UPP dan lakukan langkah-langkah berikut:

1) Kami menunjukkan kode dan nama node yang telah ditentukan sebelumnya. Misalnya, Nama = "Ditentukan sebelumnya", kode = "002".

2) Mari kita buat node pertukaran baru, beri nama "BP" dan beri kode 003.

KODE node pertukaran yang belum ditentukan di database UPP dan BP harus cocok.

LANGKAH 2. Buat pengaturan untuk pertukaran data otomatis.

Di database UPP di antarmuka "Penuh". Menu “Layanan” ==> “Pertukaran data lainnya” ==> “Semua pengaturan pertukaran data”.

Pada formulir yang terbuka, pilih “Infobase terdistribusi” dan klik tombol “Tambah”.

Di jendela yang muncul, Anda harus menentukan nama pengaturannya. Di bidang “Node”, Anda harus memilih paket pertukaran “Penuh” dan menunjukkan node pertukaran yang dibuat sebelumnya.

Di kotak dialog yang terbuka, Anda harus memilih aturan pertukaran data yang sewenang-wenang.

Di bidang "Jenis Pertukaran", pilih "Pertukaran melalui koneksi ke basis info" dan tentukan parameter koneksi: Jenis basis info, versi platform, jalur atau alamat di server, pengguna dan kata sandi.

Selanjutnya, Anda perlu pergi ke tab "Pertukaran berdasarkan aturan" dan klik tombol "Muat pengaturan". Aturan pertukaran tidak boleh memuat aturan dengan metode pengambilan sampel "permintaan acak".. Hal ini akan mengakibatkan kesalahan

Setelah mengunduh pengaturan, Anda dapat menyimpan pengaturan dan mencoba mengunduh datanya. Untuk melakukan ini, Anda perlu mengubah salah satu objek sistem informasi yang tercantum dalam pengaturan unggahan dan klik tombol "Pertukaran" pada panel formulir.

LANGKAH 3. Menyiapkan pertukaran data.

Untuk mengatur pertukaran data otomatis, Anda perlu membuka tab “Pertukaran otomatis” dan klik tombol “Tambah”. Di jendela yang muncul, Anda dapat mengatur jadwal pertukaran (waktu, frekuensi) atau pertukaran data pada saat terjadinya suatu peristiwa (misalnya, pengguna masuk ke sistem)

Sekarang Anda dapat memeriksa pengaturan yang dibuat

Sistem kendali otomatis dalam banyak kasus terdiri dari database terpisah dan seringkali memiliki struktur yang terdistribusi secara geografis. Pada saat yang sama, pertukaran data yang diterapkan dengan benar merupakan kondisi yang diperlukan untuk pengoperasian sistem tersebut secara efektif.

Pengaturan awal bursa mungkin memerlukan sejumlah tindakan, tidak hanya dalam hal pemrograman, tetapi juga konsultasi, bahkan jika kita berurusan dengan sumber yang homogen, seperti halnya produk pada platform 1C:Enterprise. Mengapa menyiapkan pertukaran 1C (atau, disebut juga, sinkronisasi data di 1C 8.3) bisa menjadi tugas proyek integrasi yang paling memakan waktu dan mahal, akan kita bahas di artikel ini.

Pertukaran data di lingkungan 1C memungkinkan Anda untuk:

  • Menghilangkan pencatatan ganda dokumen;
  • Mengotomatiskan proses bisnis terkait;
  • Mengoptimalkan interaksi antar departemen yang terdistribusi;
  • Segera memperbarui data tentang pekerjaan spesialis dari berbagai departemen;
  • “Membedakan” antara berbagai jenis akuntansi.*

*Dalam kasus di mana data dari satu jenis akuntansi berbeda secara signifikan dari yang lain, maka perlu untuk memastikan kerahasiaan informasi dan “membatasi” arus informasi. Misalnya, pertukaran data antara 1C UT dan 1C Accounting tidak memerlukan pengunggahan data manajemen ke dalam database regulasi akuntansi, yaitu. sinkronisasi dalam 1C tidak akan lengkap di sini.

Jika kita membayangkan proses standar untuk mengimplementasikan pertukaran data primer, ketika setidaknya salah satu objeknya adalah produk 1C, maka kita dapat membedakan tahapan berikut:

  • Koordinasi komposisi bursa;
  • Definisi transport (protokol pertukaran);
  • Menetapkan aturan;
  • Penjadwalan.

Identifikasi komposisi pertukaran 1C

Objek pertukaran dapat dibagi menjadi “sumber” dan “penerima”. Pada saat yang sama, mereka dapat melakukan dua peran pada saat yang sama, yang disebut pertukaran dua arah. Sumber dan tujuan ditentukan secara logis tergantung pada kebutuhan atau fungsionalitas sistem.*

*Misalnya, ketika mengintegrasikan “WA: Financier” - solusi untuk memelihara akuntansi keuangan dan mengelola proses perbendaharaan, yang dikembangkan berdasarkan “1C:Enterprise”, para ahli WiseAdvice merekomendasikannya sebagai sistem utama. Hal ini disebabkan ketersediaan alat kontrol untuk mematuhi aturan kebijakan penerapan, dan karenanya, untuk memastikan efektivitas solusi.

Selanjutnya, berdasarkan persyaratan yang diterima dan dicatat dari pengguna, daftar data untuk pertukaran dibuat, volumenya, persyaratan frekuensi pertukaran ditentukan, dan proses menangani kesalahan dan menangani situasi luar biasa (tabrakan) ditentukan.

Pada tahap yang sama, tergantung pada armada sistem yang ada dan struktur perusahaan, format pertukaran ditentukan:

Basis informasi terdistribusi

  • RIB menyiratkan pertukaran antara konfigurasi database 1C yang identik, dengan struktur kontrol “master-slave” yang jelas untuk setiap pasangan pertukaran. Sebagai elemen platform teknologi, RIB, selain data, dapat mengirimkan perubahan konfigurasi dan informasi administratif database (tetapi hanya dari master ke slave).

Pertukaran data universal dalam 1C

  • Mekanisme yang memungkinkan Anda mengonfigurasi pertukaran database 1C, baik dengan konfigurasi pada platform 1C:Enterprise maupun dengan sistem pihak ketiga. Pertukaran dilakukan dengan mentransfer data ke dalam format xml universal sesuai dengan “Rencana Pertukaran”.

Data Perusahaan

  • Perkembangan terbaru dari 1C, dirancang untuk mengimplementasikan pertukaran data dalam format xml antara produk yang dibuat pada platform 1C:Enterprise dengan sistem otomasi apa pun. Penggunaan EnterpriseData menyederhanakan modifikasi yang terkait dengan pertukaran. Sebelumnya, ketika konfigurasi baru dimasukkan ke dalam suatu sistem, perlu diterapkan mekanisme impor dan ekspor data, baik untuk sistem tersebut maupun untuk sistem yang sudah ada. Kini sistem yang mendukung EnterpriseData tidak memerlukan modifikasi apa pun, hanya memiliki satu titik masuk-keluar.

Definisi transport (protokol pertukaran)

Untuk sistem pada platform 1C:Enterprise 8, berbagai kemungkinan disediakan untuk mengatur pertukaran dengan sumber daya informasi apa pun menggunakan standar universal yang diterima secara umum (xml, file teks, Excel, koneksi ADO, dll.). Oleh karena itu, saat menentukan transportasi untuk pertukaran data, Anda harus mengandalkan kemampuan database sistem pihak ketiga.

Sinkronisasi direktori

Prinsip dasar sinkronisasi direktori yang efektif adalah adanya satu titik masuk. Namun jika kita berbicara tentang bekerja dengan direktori yang secara historis diisi menurut aturan yang berbeda, maka perlu untuk mendefinisikan dengan jelas bidang sinkronisasi untuk membawa pertukaran ke “penyebut yang sama.”*

*Pada tahap ini, mungkin perlu dilakukan pekerjaan untuk menormalkan data referensi di sisi sumber data. Bergantung pada status direktori dan volumenya, proses membandingkan elemen, mengenali, mengidentifikasi kesalahan dan duplikat, serta mengisi bidang yang hilang dan menetapkan bidang sinkronisasi, mungkin memerlukan kerja seluruh kelompok ahli, baik di bidang bagian dari integrator (pemilik teknik normalisasi data master) dan dari sisi pelanggan.

Menetapkan aturan

Kemampuan untuk menampilkan data dari sistem sumber ke penerima bergantung pada aturan pertukaran yang ditentukan dengan benar. Aturannya, disajikan dalam format xml, mengatur korespondensi detail utama objek sumber-penerima. Solusi 1C:Konversi Data dirancang untuk mengotomatiskan pembuatan aturan untuk mengimplementasikan pertukaran satu kali dan permanen.

Menjamin tidak ada kehilangan data selama pertukaran Exchange Plan. Ini adalah bagian integral dari konfigurasi apa pun pada platform 1C:Enterprise, yang sepenuhnya menjelaskan prosedur pertukaran 1C: komposisi data (dokumen dengan detail "pengidentifikasi") dan node (basis informasi penerima-pemancar), serta aktivasi RIB untuk arah pertukaran yang dipilih.

Setiap perubahan data yang dimasukkan ke dalam Exchange Plan dicatat dan menerima tanda “diubah”. Sampai data yang diubah cocok satu sama lain di node penerima-pemancar, tanda tidak akan diatur ulang, dan sistem akan mengirimkan pesan kontrol ke kedua node. Setelah mengunggah data dan mengonfirmasi kepatuhan penuhnya di kedua sistem, tandanya disetel ulang.

Jadwal pertukaran dalam 1C

Untuk mengotomatiskan pertukaran reguler, frekuensi pengunggahan data diatur. Frekuensi pertukaran tergantung pada kebutuhan dan kemampuan teknis. Selain itu, konfigurasi pada platform 1C:Enterprise memungkinkan Anda mengonfigurasi pertukaran data ketika suatu peristiwa terjadi.

Setelah mempertimbangkan proses standar penerapan pertukaran, mari kita perhatikan faktor-faktor yang memerlukan perbaikan pada berbagai tahap:

  • Konfigurasi database yang tidak standar dan sangat dimodifikasi;
  • Versi berbeda dari platform 1C:Enterprise;
  • Versi konfigurasi yang sudah lama tidak diperbarui;
  • Objek Tukar yang sebelumnya telah mengalami modifikasi;
  • Perlunya aturan pertukaran yang tidak standar;
  • Kumpulan dan komposisi detailnya sangat berbeda pada buku referensi yang ada.

Karena bahkan tindakan standar untuk mengimplementasikan pertukaran data primer memerlukan pengetahuan ahli, tindakan tersebut direkomendasikan untuk dilakukan dengan partisipasi spesialis 1C. Hanya setelah menyelesaikan semua langkah yang dijelaskan di atas, Anda dapat melanjutkan ke pengaturan pertukaran dalam konfigurasi. Mari kita lihat integrasi database menggunakan contoh 1C:UPP dan 1C:Retail (pertukaran dengan 1C:UT diatur menggunakan skema yang sama). Sinkronisasi standar juga mencakup pertukaran SCP - SCP, yang merupakan tipikal sistem otomasi skala besar di perusahaan industri terbesar.

Di submenu “Layanan”, pilih “Pertukaran data dengan produk di platform…” (memilih pertukaran langsung dengan “Retail” sering kali mengakibatkan kesalahan pada tingkat objek COM). Harap perhatikan pesan layanan “Fitur ini tidak tersedia.”


Untuk mengatasi masalah ini, Anda perlu memilih "Konfigurasi Komunikasi"


...dan centang kotaknya. Selanjutnya, abaikan pesan kesalahan tersebut.


Dalam pengaturan sinkronisasi data, pilih “Buat pertukaran dengan “Retail”...



Sebelum mengonfigurasi pengaturan koneksi melalui direktori lokal atau jaringan, Anda harus memastikan bahwa ada ruang pada disk untuk direktori tersebut. Meskipun biasanya tidak memakan lebih dari 30-50 MB, dalam kasus luar biasa mungkin memerlukan hingga 600 MB. Anda dapat membuat direktori yang diperlukan langsung dari konfigurator.



Saat menghubungkan melalui direktori jaringan, kami mengabaikan tawaran untuk mengkonfigurasi koneksi melalui alamat FTP dan email dengan mengklik "Berikutnya".


Dalam pengaturan, kami memasukkan awalan - simbol database secara manual (biasanya BP, UPP, RO), menetapkan aturan dan tanggal mulai pengunggahan data. Awalan akan ditunjukkan pada nama dokumen untuk menunjukkan database tempat dokumen tersebut dibuat. Jika aturan pengunggahan tidak diedit, data akan diunggah secara default sesuai dengan semua parameter yang tersedia.



Kami membuat file pengaturan pertukaran untuk "Retail" agar tidak mengulangi tindakan kami. Jika Anda perlu segera mengirim data setelah mengatur sinkronisasi, centang kotaknya.


Untuk mengotomatiskan proses pertukaran, Anda perlu mengatur jadwal.


Menu "Eceran".


Centang kotak dan pilih "Sinkronisasi".


Kami melakukan pengaturan "terbalik" dengan memilih Manajemen Perusahaan Produksi.




Muat file pengaturan yang dibuat di UPP.


Kami memberi tanda centang, sistem mengambil alamat secara otomatis.





Kami bertindak dengan cara yang sama seperti di UPP.









Perbandingan data verifikasi (Perbandingan data manual disarankan untuk dilakukan pada tahap persiapan, karena pekerjaan ini dapat menjadi pekerjaan yang paling memakan waktu dalam proses pelaksanaan pertukaran). Jendela perbandingan terbuka dengan mengklik dua kali mouse.



Jika terjadi kesalahan sinkronisasi, “Detail…” akan diganti dengan “Tidak Pernah…”.


“Detail…” membuka log dengan informasi terkini di bursa.


Siap.