Ekstensi konfigurasi - cara menambahkan fungsionalitas ke konfigurasi standar tanpa menghapus dukungan (video berdurasi 20 menit). Mengubah atau menonaktifkan mode kompatibilitas Untuk apa ekstensi digunakan?

Biaya pekerjaan dan opsi terjemahan dari rilis berbeda

Terjemahan 8.1 → 8.2.13 Terjemahan 8.2.13 → 8.2.16 Terjemahan 8.2.16 → 8.3.10
Harga, gosok. * 54.000 ₽ 12.000 ₽ 76.800 RUR

Daftar semua perubahan di berbagai versi platform tersedia di tautan berikut:
Untuk platform 8.2:
http://downloads.v8.1c.ru/content/Platform/8_2_19_106/1cv8upd.htm

Sebelum mulai mengerjakan transfer ke 8.3, Anda memerlukan:

Periksa mode pemblokiran terkontrol. Jika "Otomatis" digunakan, maka saat bermigrasi ke 8.3, biaya tambahan mungkin diperlukan untuk beralih ke mode penguncian terkelola.
Jika Anda menggunakan mode kompatibilitas dengan 8.2.16 dan lebih tinggi, Anda perlu memeriksa apakah tabel telah direstrukturisasi
Tentukan jenis klien apa yang digunakan (klien tipis, tebal, web)
Tentukan apakah ada mesin yang menjalankan Linux

Terjemahan konfigurasi 8.1 → 8.2.13

Biaya pekerjaan: 54.000 gosok.

Terjemahan konfigurasi 8.2.13 → 8.2.16 (termasuk restrukturisasi)

Perubahan penting:
Mode penyimpanan konstanta dan pengaturan register akumulasi telah diubah. Setiap objek memiliki tabel database sendiri
Penerapan mekanisme penguncian terkelola telah dikerjakan ulang.
Untuk peristiwa log teknologi "TLOCK", properti "Txt" hanya ditulis dalam mode kompatibilitas dengan versi 8.2.13
Pengaruh mode debugging pada kecepatan operasi dalam mode 1C:Enterprise untuk klien tipis, klien tebal, server dan koneksi eksternal telah berkurang.
Eksekusi kueri dalam bentuk "ValueType(Field1) = ValueType(Field2)" telah dioptimalkan jika "Field1" dan "Field2" berisi nilai tipe referensi.
Untuk bidang formulir terkelola yang menampilkan atribut tipe kompleks, pembukaan daftar pilihan cepat telah dipercepat jika tipe kompleks menyertakan tipe referensi dengan pengaturan pilihan cepat berbeda.
Untuk register informasi independen dan non-periodik yang baru, indeks dimensi dikelompokkan

Perubahan yang memerlukan perubahan konfigurasi:

Ketika mode kompatibilitas dinonaktifkan, parameter “Periode” dari metode manajer register informasi periodik “Get()” diperlukan. Dalam mode kompatibilitas dengan versi 8.2.13 dan versi 8.1, perilakunya tidak berubah (metode dapat digunakan tanpa menentukan parameter, tetapi hasilnya tidak ditentukan).
Saat menggunakan metode “SetValue()” dan “UseFromDataSource()” dari objek “DataLockElement” secara bersamaan, pengecualian akan muncul. Dalam mode kompatibilitas dengan versi 8.2.13, perilakunya tidak berubah (nilai yang ditetapkan oleh metode “UseFromDataSource()” diutamakan).
Tidak didukung untuk menyimpan nilai data yang tidak mendukung serialisasi. Dalam mode kompatibilitas, perilakunya tidak berubah.
Jika database berbasis file, maka infobase harus dikonversi. Setelah konversi dimulai, bekerja dengan basis informasi ini dengan versi platform 1C:Enterprise 8 sebelumnya tidak akan dapat dilakukan. Jika pengembangan dilakukan menggunakan repositori konfigurasi, Anda harus membuat salinan repositori sebelum mengonversi infobase

PENTING. Untuk mendapatkan efek mengubah mode kompatibilitas, Anda perlu melakukan restrukturisasi melalui konfigurator: “Administrasi → Pengujian dan koreksi → Restrukturisasi tabel infobase.”

Pertama-tama perlu dilakukan restrukturisasi pada basis pengujian dan mengukur waktu pelaksanaan operasi ini.
Jika Anda menggunakan server 1C versi lebih lama dari 8.2.19, misalnya versi 8.3, maka kesalahan berikut mungkin terjadi saat melakukan restrukturisasi:

Dalam hal ini, Anda perlu melakukan hal berikut:
Instal server 1C terpisah versi 8.2.19 dan sebarkan database yang sedang diselidiki di dalamnya
Buka database di konfigurator pada server 1C versi 8.2.19, ubah mode kompatibilitas menjadi "Jangan gunakan"
Merestrukturisasi tabel infobase
Setelah restrukturisasi selesai, pindahkan basis informasi ke server asli 1C versi 8.3

Biaya untuk mentransfer konfigurasi dari mode kompatibilitas 8.2.13 ke mode 8.2.16 (mode non-kompatibel saat menggunakan platform 8.2.16, 8.2.19, dan mode kompatibilitas 8.2.16 saat menggunakan platform 8.3) adalah 12.000 gosok.

Templat kontrak kerja dapat diunduh.

Terjemahan konfigurasi 8.2.16 → 8.3.10

Pekerjaan terjemahan konfigurasi mencakup modifikasi konfigurasi berikut:

1. Hilangkan konflik nama properti. Mengubah nama variabel agar sesuai dengan properti baru yang muncul di 1C:Enterprise 8.3.
2. Hilangkan nama gambar yang bertentangan. Mengganti nama gambar dengan nama yang sesuai dengan nama dari perpustakaan gambar.
3. Penyempurnaan kode saat mengubah properti struktur tetap. Mengganti penunjukan sifat-sifat suatu struktur tetap dengan penciptaan kembali suatu struktur tetap atau mengganti penggunaannya dengan jenis “Struktur” yang serupa.
4. Mengganti penempatan nilai non-serializable dalam penyimpanan sementara dengan kode yang didukung di 1C:Enterprise 8.3.
5. Mengganti penggunaan pemanggilan metode “Show” untuk detail formulir terkelola dengan penggunaan properti “CurrentElement”, “CurrentPage”, dan metode “Activate”
6. Ganti nama objek metadata yang panjangnya lebih dari 80 karakter dengan nama yang panjangnya 80 karakter atau kurang untuk objek metadata
7. Mengganti nama metode dan properti, sesuai dengan metodologi migrasi ke versi 8.3.
8. Peningkatan mekanisme untuk bekerja dengan pilihan, pemformatan bersyarat, pengelompokan dan urutan dalam daftar dinamis.
9. Penyempurnaan kode untuk query dengan kata kunci “HASIL UMUM”, dibongkar di
“Melewati Hasil Kueri. Dengan Mengelompokkan”, untuk mempertahankan logika kerja sebelumnya.
10. Perubahan nama kelas objek COM. Mengganti nama "V82.COMConnector" dengan "V83.COMConnector", dan "V82.Application" dengan "V83.Application".
11. Penolakan dalam kode program acara "Mulai Seleksi Dari Daftar" untuk bidang input dalam mode pemilihan dari daftar
12. Penolakan kode program dari properti “Tombol Daftar Pilihan” untuk kolom input dengan mengatur properti “Tombol Daftar Dropdown”.
13. Mengubah kode untuk memperhitungkan perubahan jenis nilai yang dikembalikan oleh metode konteks global “SafeMode()”
14. Mengubah kode untuk memperhitungkan perubahan hasil query untuk konstanta (saat mengakses kolom “Value” pada tabel konstanta, jika konstanta menyimpan nilai bertipe “Value Storage”, “UniqueIdentifier” atau “Referensi TabelSumber Data Eksternal”.
15. Mengganti properti konfigurasi “MainRole” dengan “MainRoles”
16. Penolakan properti “User” dan “Password” untuk objek “InternetProxy” dan penggantian dengan metode “Set()”, “User()”, “Password()”.
17. Penyempurnaan kode untuk mendukung perintah “Show in list”, sesuai dengan metode transisi ke versi 8.3.
18. Penyempurnaan kode untuk mempertahankan logika operasi sistem sebelumnya ketika nilai kembalian properti SystemInformation.OSVersion telah berubah,
19. Penyempurnaan kode untuk mempertahankan logika sistem sebelumnya ketika menolak menggunakan enumerasi sistem OptionOpenWindow, yang tidak lagi tersedia di versi 8.3.
20. Penyempurnaan kode dengan mempertimbangkan penolakan untuk menggunakan modal windows.
21. Penyempurnaan kode untuk mendukung web client yaitu penolakan panggilan server dan pembukaan windows pada “Sebelum Penutupan”, penolakan panggilan server pada “Saat Penutupan”.
22. Penyempurnaan kode agar fungsi RoleAvailable() dapat digunakan dengan benar saat meneruskan fungsi sebagai parameter ke peran yang hilang.
23. Untuk aplikasi terkelola: mulai dari versi 8.3.8 pada pengendali peristiwa aplikasi terkelola BeforeSystemShutdown, WhenSystemShutdown, serta pengendali peristiwa formulir terkelola yang berada dalam mode penutupan, BeforeClosing, WhenClosing, Dilarang membuka windows dan melakukan panggilan server apapun. Konfigurasi perlu ditingkatkan agar formulir dapat ditutup dengan benar - tanpa panggilan server.
24. Konflik nama variabel: Anda tidak dapat menggunakan nama variabel FormParameters dalam modul formulir. Oleh karena itu, perlu untuk memodifikasi semua modul formulir terkelola yang menggunakan variabel bernama FormParameters dengan mengganti nama variabel tersebut.

Harga untuk karya-karya ini bersifat awal dan berlaku untuk sebagian besar konfigurasi. Sebelum mulai bekerja saat membuat kontrak, kami memeriksa konfigurasi dan Setelah dicek, kami konfirmasi harga dan syarat pengerjaan. Pemeriksaan diperlukan karena konfigurasi bisa sangat berbeda, termasuk banyak ditulis ulang.

Biaya pekerjaan: 76.800 gosok.

Templat kontrak kerja dapat diunduh.

Biaya untuk mentransfer konfigurasi ke mode kompatibilitas dengan 8.3.10 mungkin ditingkatkan, Jika:
Konfigurasi menggunakan formulir terkelola
Penting untuk meninggalkan penggunaan modalitas
Penting untuk menjaga fungsionalitas konfigurasi di OS Linux

Kami telah merilis rilis baru panel telepon untuk 1C.

  • versi 1.2.24.10 Untuk biasa aplikasi
  • versi 1.4.26.17 Untuk dikelola aplikasi

Dalam versi rilis untuk aplikasi terkelola, panel telepon dapat disematkan dengan modifikasi minimal konfigurasi dasar menggunakan mekanisme ekspansi konfigurasi.

Manfaat menggunakan ekstensi

Ekstensi ini sangat mirip dengan konfigurasi biasa. Untuk mengerjakannya, teknik kerja yang sama digunakan seperti pada konfigurasi biasa. Ekstensi dibuat terutama untuk memudahkan melakukan perubahan pada program. Anda tidak perlu lagi memasukkan “potongan kode” ke dalam modul tertentu dan menambahkan objek metadata baru, Anda hanya perlu menambahkan ekstensi pada konfigurasi.

Keuntungan besar menggunakan ekstensi adalah pembaruan otomatis konfigurasi utama. Sekarang tidak perlu mengubah pengaturan dukungan untuk konfigurasi umum.

Fitur menyematkan panel telepon untuk 1C

Fitur-fitur tersebut tersedia untuk ekstensi platform mulai dari versi 8.3.9.1818 . Jadi untuk memanfaatkan ini, kami telah menonaktifkan mode kompatibilitas untuk ekstensi sejak versinya 8.3.9 belum didukung. Oleh karena itu, mode kompatibilitas untuk konfigurasi utama perlu dinonaktifkan, jika tidak, kesalahan akan muncul: " Mode kompatibilitas ekstensi konfigurasi lebih besar daripada mode kompatibilitas konfigurasi utama".

2) Kami menambahkan peran ke konfigurasi utama MIKO_Softphone, yang karenanya kami mencabut semua haknya.

Saat menambahkan objek metadata baru, dalam hal ini peran, direktori perlu diperbarui MetadataObjectIdentifier. Saat kami menambahkan peran ini ke ekstensi, konfigurasi standar mengabaikannya, yaitu, saat memperbarui direktori MetadataObjectIdentifiers, peran tersebut tidak muncul di dalamnya. Oleh karena itu, mekanisme profil pengaturan panel telepon tidak berfungsi dengan benar dan terjadi kesalahan berikut: " Pengidentifikasi objek metadata untuk peran MIKO_Softphone tidak ditemukan".

Selain itu, situasi ini tidak muncul di semua konfigurasi, tetapi di "Manajemen Perdagangan, 11.2.3.218" Dan "Otomasi kompleks, 2.0.3.222" Tidak ada masalah dengan peran tersebut ketika ditambahkan ke ekstensi itu sendiri. Untuk memberikan fleksibilitas pada solusi kami dan memastikan pengoperasian bebas masalah di sebagian besar konfigurasi yang kami dukung, kami memutuskan untuk menambahkan peran MIKO_softphone ke dalam konfigurasi utama dan meminjamnya di ekstensi, lalu menerapkan pengaturan untuk peran ini di ekstensi.

Fitur yang sangat penting adalah kenyataan bahwa jika, setelah menginstal ekstensi kami, Anda ingin menyematkan panel sesuai dengan instruksi lama kami, Anda perlu menonaktifkan ekstensi dan menghapus peran MIKO_softphone. Jika Anda ingin menggunakan ekstensi lagi, Anda harus menambahkan peran terlebih dahulu, lalu menambahkan ekstensi.

Mari kita rangkum

Bahkan dengan menyertakan kemampuan untuk mengubah konfigurasi dasar dan membuat sedikit perubahan pada konfigurasi, kami telah mempermudah proses penyematan panel telepon. Sekarang Anda tidak perlu melakukan perubahan pada modul aplikasi terkelola, menambahkan pemrosesan dan subsistem ke konfigurasi, atau mengonfigurasi peran. Ekstensi akan melakukan semua ini untuk Anda! Kami akan terus meningkatkan proses penyematan panel telepon untuk 1C!

Petunjuk untuk menyematkan panel telepon untuk 1C menggunakan mekanisme ekstensi terdapat.

Ajukan pertanyaan Anda melalui formulir umpan balik.

© 2019. MIKO LLC Semua Hak Dilindungi Undang-Undang.

Rilis baru platform 8.3.11 telah dirilis, yang memungkinkan Anda menambah dan mengubah objek metadata melalui ekstensi. Dapatkah kami menerapkan perbaikan apa pun tanpa menghapus konfigurasi dari dukungan? Apakah layak menjanjikan segunung emas kepada klien tanpa konsekuensi apa pun?

Pertama-tama, Anda perlu menyadari keterbatasan yang dimiliki ekstensi.

Batasan pada objek yang dibuat

Saat ini Anda dapat membuat:

  • Direktori
  • Dokumen
  • Register informasi
  • Rencana pertukaran

Anda dapat menambahkan detail ke:

  • Direktori
  • Dokumen

Apa yang kita dapatkan pada akhirnya? Tidak semua tipe objek metadata dapat ditambahkan. Yang paling umum dan populer, tapi masih belum semuanya. Selain itu, dimensi dan sumber daya baru tidak dapat ditambahkan ke register informasi. Anda hanya dapat membuat register yang benar-benar baru.

Fungsionalitas ekstensi bergantung pada mode kompatibilitas konfigurasi tempat ekstensi diterapkan.

Mode kompatibilitas 8.3.8- Anda hanya dapat mengubah bentuk objek dan modulnya, menambahkan laporan dan pemrosesan Anda sendiri.

Mode kompatibilitas 8.3.10- Anda dapat mengubah modul umum, modul objek dan manajer, peran, menggunakan arahan "Sebelum", "Setelah", "Sebagai gantinya" untuk modul apa pun.

Mode kompatibilitas "Jangan gunakan"- Anda dapat menggunakan semua fungsi ekstensi, termasuk menambahkan objek baru.

Saat ini, standar UT 11.3 memiliki mode kompatibilitas 8.3.8. Di UT 11.4, mode kompatibilitasnya adalah 8.3.10, misalnya, untuk UT, sebagian besar fungsi ekstensi tidak tersedia, termasuk pembuatan objek metadata.

Tampaknya ini menimbulkan pertanyaan: mengapa tidak membatalkan dukungan root saja, mengatur mode kompatibilitas ke "Jangan gunakan" dan diam-diam menggunakan ekstensi? Saat mode kompatibilitas diubah, perilaku formulir dan hasil kueri dapat berubah, mis. perilaku sistem secara keseluruhan. Sangat disarankan untuk tidak mengubah mode kompatibilitas tanpa pengujian terlebih dahulu. Namun jelas bahwa tampaknya mungkin untuk menguji sepenuhnya (atau setidaknya menguji sebagian dokumen yang digunakan) seluruh solusi aplikasi. Oleh karena itu, Anda sebaiknya tidak menggunakan opsi ini.

Saat menghubungkan ekstensi ke konfigurasi standar dan meminjam objek standar, ekstensi mengontrol mode kompatibilitas konfigurasi utama dan jenis objek yang dipinjam serta detailnya. Jika properti yang dipantau tidak cocok, ekstensi dinonaktifkan dan tidak berfungsi hingga penyebabnya dihilangkan. Artinya, dengan pembaruan besar-besaran, ada kemungkinan besar mengubah setidaknya satu properti yang dikontrol dan menyebabkan ekstensi kehilangan fungsinya.


Selain itu, jika modifikasinya signifikan, banyak prosedur dan fungsi konfigurasi standar diganti, maka perlu dipantau secara cermat dan, jika perlu, menyelaraskannya dengan konfigurasi standar, sambil mempertahankan perubahan yang dibuat sebelumnya.


Dalam kasus di atas, Anda masih memerlukan bantuan pemrogram dan, mungkin, waktu yang cukup lama untuk modifikasi (tetapi masih lebih sedikit dibandingkan saat memperbarui konfigurasi yang telah dihapus dari dukungan).

Kesimpulan

  • Rilis baru platform memberikan peluang baru untuk menggunakan ekstensi, menjadi mungkin untuk menambahkan objek metadata, namun meskipun demikian, fungsinya memiliki keterbatasan tertentu.
  • Mode kompatibilitas konfigurasi tempat ekstensi diterapkan sangat membatasi kemampuan ekstensi; tidak disarankan untuk mengubah mode kompatibilitas.
  • Pembaruan besar masih memerlukan perhatian pengembang, karena ada kemungkinan besar perubahan properti yang dikontrol.

Pada artikel ini, saya mengusulkan untuk mempertimbangkan apa itu “ekstensi konfigurasi”, bagaimana cara menambahkan ekstensi atau menonaktifkannya. Mulai dari versi 1C 8.3.6.1977 mekanisme baru diperkenalkan ke dalam platform - ekstensi konfigurasi. Pertama, sedikit teori.

Ekstensi di 1C adalah sesuatu seperti konfigurasi paralel yang secara otomatis digabungkan dengan konfigurasi vendor utama. Selain itu, dalam ekstensi Anda dapat menambahkan objek Anda sendiri dan meminjam objek dari konfigurasi utama.

Untuk apa ekstensi?

Pertama-tama, ekstensi dibuat untuk memudahkan melakukan perubahan pada program. Artinya, jika pengguna meminta untuk menambahkan fungsionalitas apa pun, maka sebelum ekstensi muncul, pemrogram harus menghapus konfigurasi dari dukungan penuh dan mengubah konfigurasi standar.

Penghapusan dari dukungan penuh menimbulkan sejumlah ketidaknyamanan:

  • kemungkinan pembaruan otomatis menghilang, yang setidaknya menyebabkan peningkatan waktu yang diperlukan;
  • diperlukan spesialis berkualifikasi tinggi yang melayani program ini;
  • Jika perubahan dilakukan pada objek standar dari konfigurasi standar, maka selama pembaruan objek tersebut mungkin hilang, yaitu dapat diganti lagi dengan objek standar dari pemasok.

Saat menggunakan ekstensi, saat melakukan perubahan, pemrogram tidak akan menyentuh konfigurasi standar. Semua perubahan akan dilakukan menggunakan ekstensi, yang (seperti yang saya tulis di atas) juga merupakan konfigurasi. Dengan cara ini konfigurasi utama akan tetap didukung sepenuhnya.

Setelah memperbarui konfigurasi utama, jika pada rilis baru terdapat perubahan pada objek yang sebelumnya diubah oleh ekstensi, maka perubahan tersebut akan tetap diambil dari ekstensi. Artinya, ekstensi memiliki prioritas lebih tinggi dibandingkan konfigurasi utama.

Video - ekstensi dalam 1C dalam 45 menit

Dapatkan 267 pelajaran video di 1C gratis:

Contoh menambahkan ekstensi ke 1C

Untuk menunjukkan apa itu ekstensi, ada baiknya memberikan contoh pembuatannya di konfigurator 1C.

Di konfigurator, buka menu "Konfigurasi" dan pilih "Ekstensi konfigurasi". Sebuah jendela akan terbuka dengan daftar ekstensi (jika ada). Klik tombol “Tambah” dan tambahkan ekstensi baru. Sekarang Anda dapat membuka konfigurasi ekstensi:

Seperti yang Anda lihat, konfigurasi ekspansi memiliki struktur yang persis sama dengan konfigurasi utama. Hanya saja awalnya benar-benar bersih, tanpa benda.

Saya baru-baru ini menulis artikel tentang cara membuatnya sendiri. Dengan menggunakan contohnya, saya ingin menjadikannya bawaan menggunakan ekstensi.

Dalam pemrosesan saya memiliki bidang dengan tautan ke direktori “Organisasi”. Itu sebabnya saya membutuhkan panduan ini. Namun kami tidak akan membuat direktori “Organisasi” baru, terutama karena platform tidak mengizinkan hal ini. Konfigurasi ekstensi tidak mungkin memuat objek dengan nama yang sama dengan objek di konfigurasi utama.

Oleh karena itu, kami akan meminjam buku referensi dari konfigurasi utama:

Sekarang klik kanan pada "Pemrosesan" dan pilih "Masukkan pemrosesan eksternal, laporkan..." Jadi, kami akan menambahkan pemrosesan baru ke konfigurasi ekstensi. Jika Anda menggunakan pemrosesan saya, segera ganti namanya, karena konfigurasi utama sudah memiliki pemrosesan dengan nama yang sama.

Nah, sentuhan terakhir. Saya ingin pemrosesan saya tercermin di menu Administrasi. Untuk melakukan ini, kita akan meminjam subsistem dengan nama yang sama dari konfigurasi utama. Jangan lupa untuk menunjukkan dalam pemrosesan bahwa itu milik subsistem ini.

Ini adalah struktur yang saya buat:

Mari kita lihat apa yang kita punya. Kami memperbarui konfigurasi database dan meluncurkan program dalam mode 1C: Perusahaan, dan masuk ke menu "Administrasi". Ya, saya hampir lupa, konfigurasi ekstensi harus ditutup, jika tidak program tidak akan dimulai: