1s 8 data biner ke file. Memperluas fungsionalitas bekerja dengan data biner. Membaca data biner

Hampir semua informasi dapat disimpan di penyimpanan nilai, mis.

... gambar (foto):

CurrentImage.Object = SprFabric.Link; CurrentImage.DataType = Enumerasi.Jenis dariAdditionalInformationObjects.Image; Penyimpanan = NewValueStorage(Gambar Baru, Kompresi Data Baru()); CurrentImage.Storage = Penyimpanan.Get();

// di tempat ini menampilkan semuanya... Form Elements.PictureField1.Picture = Storage.Get(); Gambar Saat Ini.Tulis();

...dokumen spreadsheet:

TabDoc=Dokumen Tabular Baru;

TabDoc.Output(FormElements.TabularDocumentField1);

Penyimpanan=PenyimpananNilai Baru(TabDoc);

Menulis();<>Akhir Prosedur

Prosedur RestoreFromStoragePress (Elemen)

TabDoc=Penyimpanan.Dapatkan();

Jika TabDoc

Tidak Terdefinisi ThenFormElements.TabularDocumentField1.Output(TabDoc);

akhirJika;

Akhir Prosedur

...file sewenang-wenang (data biner):

XZ = PenyimpananNilai Baru(DataBinaryBaru(file));

TabDoc.Output(FormElements.TabularDocumentField1);

Delapan mendukung kompresi data yang ditempatkan di penyimpanan:

XZ = NewValueStorage(NewBinaryData(file),NewDataCompression(9));

Prosedur RestoreFromStoragePress (Elemen)

... pemrosesan dan pelaporan eksternal:

Prosedur LoadProcessingIntoStorage(PropsStorageType)

Tingkat Kompresi = Kompresi Data Baru(9); //9 PropsStorageType maksimum = Nilai Penyimpanan Baru(Data Biner Baru("c:\reports\report.epf", Tingkat Kompresi));<>Prosedur MulaiProcessingFromStorage(PropsStorageType)

TemporaryFileName = TemporaryFileDirectory()+"report.epf";

BinaryData = PropsStorageType.Get();

BinaryData.Write(NamaFile Sementara);

Pemrosesan Eksternal = Pemrosesan Eksternal.Buat(NamaFile Sementara);

Pemrosesan Eksternal.GetForm().Open();

Untuk mengosongkan bidang bertipe Penyimpanan Nilai, Anda perlu menetapkannya Tidak Terdefinisi:

PropsStorage = Tidak ditentukan;

Bekerja dengan file dan gambar dalam bahasa bawaan 1C:Enterprise 8

Tujuan

Aplikasi terkelola menerapkan mekanisme baru untuk bekerja dengan file. Ini menyediakan pertukaran file antara infobase dan aplikasi klien. Keunikan mekanisme ini adalah dirancang untuk digunakan pada klien tipis dan klien Web dan dirancang dengan mempertimbangkan batasan dalam bekerja dengan file yang diberlakukan oleh browser Web.

Mekanismenya adalah seperangkat metode yang dapat digunakan untuk menempatkan data yang disimpan secara lokal di komputer pengguna di penyimpanan sementara basis informasi, mentransfer informasi ini dari penyimpanan sementara ke database, dan menerimanya kembali ke komputer pengguna. Masalah aplikasi paling umum yang diselesaikan dengan mekanisme ini adalah penyimpanan informasi yang menyertainya, misalnya gambar barang, dokumen terkait kontrak, dll.

Lingkup Metode

Penyimpanan sementara

Penyimpanan sementara adalah area khusus dari basis informasi di mana data biner dapat ditempatkan. Tujuan utamanya adalah penyimpanan sementara informasi selama interaksi klien-server sebelum ditransfer ke database.

Kebutuhan akan penyimpanan sementara muncul karena model browser web mengharuskan file yang dipilih pengguna ditransfer langsung ke server tanpa kemungkinan menyimpannya di klien. Ketika file ditransfer, file tersebut ditempatkan di penyimpanan sementara dan kemudian dapat digunakan saat menulis objek ke database.

Tugas aplikasi yang paling umum diselesaikan dengan penyimpanan sementara adalah menyediakan akses ke file atau gambar sebelum objek tersebut dicatat dalam basis informasi, misalnya dalam bentuk elemen.

File atau data biner yang ditempatkan dalam penyimpanan diidentifikasi berdasarkan alamat unik, yang nantinya dapat digunakan dalam operasi tulis, baca, atau hapus. Alamat ini diberikan melalui metode penulisan file ke penyimpanan sementara. Metode terpisah dalam bahasa bawaan memungkinkan Anda menentukan apakah alamat yang diteruskan adalah alamat yang menunjuk ke data dalam penyimpanan sementara.

Basis informasi

Mekanisme ini memungkinkan Anda mengakses data biner yang disimpan dalam atribut tipe Value Storage.

Seperti halnya penyimpanan sementara, akses ke informasi dimungkinkan melalui alamat khusus. Anda bisa mendapatkannya melalui metode khusus dengan meneruskan tautan ke suatu objek atau kunci entri register informasi, dan nama atributnya. Dalam hal bagian tabel, indeks baris dari bagian tabel juga perlu ditransfer.

Metode untuk bekerja dengan file memiliki keterbatasan ketika bekerja dengan detail infobase. Bagi mereka, tidak seperti penyimpanan sementara, hanya membaca informasi yang tersedia, tetapi tidak menulis atau menghapusnya.

Deskripsi metode bekerja dengan file

Menyimpan data ke penyimpanan sementara

Skenario paling umum untuk menggunakan mekanisme ini melibatkan penempatan data pengguna di penyimpanan sementara. Ada dua metode untuk ini: PlaceFile() dan PlaceFileInTemporaryStorage().

Metode pertama, PlaceFile(), menempatkan file dari sistem file lokal ke penyimpanan sementara. Metode ini dapat menerima alamat target dalam penyimpanan. Jika tidak ditentukan atau berupa string kosong, maka file baru akan dibuat dan metode akan mengembalikan alamatnya melalui parameter yang sesuai.

Jika parameter yang menentukan mode operasi interaktif adalah True, maka metode tersebut akan menampilkan kotak dialog pemilihan file standar di mana Anda dapat memilih file untuk disimpan. Dalam hal ini, metode ini juga akan mengembalikan alamat file yang dipilih.

Hasilnya, metode ini mengembalikan False jika pengguna secara interaktif menolak melakukan operasi dalam dialog pemilihan file. Metode ini hanya tersedia di klien.

Metode kedua, PlaceFileInTemporaryStorage(), mirip dengan yang sebelumnya, hanya saja metode ini tersedia di server, dan data yang akan ditulis ke penyimpanan sementara direpresentasikan bukan sebagai jalur dalam sistem file, tetapi sebagai variabel bertipe Data Biner. Demikian pula, jika tidak ada alamat target yang ditentukan, file baru akan dibuat di penyimpanan. Alamatnya dikembalikan sebagai hasil dari fungsi tersebut.

Mengambil file dari penyimpanan sementara

Saat menulis objek ke basis info, Anda mungkin perlu mengekstrak data dari penyimpanan sementara dan menempatkannya, misalnya, dalam sebuah atribut. Ada metode server yang sesuai untuk ini - GetFileFromTemporaryStorage(). Metode ini mengambil data dari penyimpanan sementara dan mengembalikannya sebagai hasilnya. Untuk melakukan ini, Anda perlu menentukan alamat penyimpanan sementara. Alamat ini dikembalikan oleh metode PlaceFile() dan PlaceFileInTemporaryStorage() yang dijelaskan di atas jika berhasil dijalankan.

Menghapus file dari penyimpanan sementara

Setelah data disimpan secara detail, file di penyimpanan sementara dapat dihapus. Untuk tujuan ini, ada metode DeleteFileFromTemporaryStorage(), yang menghapus file dari penyimpanan sementara. Metode ini mengambil parameter alamat file dalam penyimpanan sementara. Tersedia di server.

Memeriksa alamat untuk penyimpanan sementara

Alamat file dapat menunjukkan penyimpanan sementara dan detail di basis info. Untuk mengecek jenisnya, ada metode isTemporaryStorageAddress() ini.

Ia memeriksa apakah alamat yang diteruskan adalah alamat yang menunjuk ke toko. Mengembalikan True jika alamat menunjuk ke penyimpanan sementara. Metode ini tersedia di server.

Menerima alamat alat peraga

Setelah data ditempatkan ke dalam atribut di infobase, Anda mungkin perlu mengaksesnya menggunakan metode file.

Namun sebelum menerima data, misalnya dari suatu properti, Anda perlu mendapatkan alamat properti tersebut. Untuk tujuan ini, ada metode GetFileAddressInInformationBase().

Tujuannya adalah untuk mengembalikan alamat file di infobase sesuai dengan parameter aslinya. Untuk melakukan ini, Anda perlu meneruskan kunci objek (ini bisa berupa tautan ke objek atau kunci entri register informasi) dan nama atribut. Jika Anda perlu mendapatkan alamat file yang disimpan dalam atribut bagian tabel, sebelum nama atribut dalam parameter yang menentukan nama atribut, Anda perlu menambahkan nama bagian tabel dan titik “.”. Metode ini tersedia di klien dan server.

Mengambil file dari infobase

Metode GetFile() menerima file dari infobase dan menyimpannya ke sistem file lokal pengguna. Parameter pertama menentukan alamat file dalam atribut atau penyimpanan file sementara. Parameter kedua menentukan lokasi tujuan file yang dihasilkan. Dalam mode non-interaktif, Anda harus menentukan jalurnya. Dalam mode interaktif, parameternya opsional.

Secara default, metode ini dijalankan dalam mode interaktif, yaitu parameter terakhir adalah True. Ini berarti bahwa kotak dialog ditampilkan di mana Anda dapat menentukan tindakan dengan file yang diterima: jalankan atau simpan ke lokasi yang ditentukan pengguna. Jika mode interaktif aktif dan parameter jalur file disk Target tidak ditentukan, operasi pembukaan file tidak tersedia. Mengembalikan nilai boolean. Salah berarti pengguna memilih untuk membatalkan operasi di kotak dialog penyimpanan file interaktif.

Contoh penggunaan metode file

// Menerima file dari disk dalam mode interaktif // dan menempatkannya di penyimpanan sementara &Pada Prosedur Klien SelectDiskFileAndWrite()

Variabel Nama yang Dipilih;

TabDoc.Output(FormElements.TabularDocumentField1);

VariabelPenyimpanan SementaraAlamat;

Jika PutFile(TemporaryStorageAddress, SelectedName, True) Maka Object.FileName = SelectedName;

TabDoc.Output(FormElements.TabularDocumentField1);

PlaceObjectFile(AlamatPenyimpanan Sementara);

akhirJika;

Prosedur RestoreFromStoragePress (Elemen)

// Menyalin file dari penyimpanan sementara ke direktori // atribut, merekam objek, menghapus file dari penyimpanan sementara // &Di Server Prosedur Tempatkan File Objek (Alamat Penyimpanan Sementara)

Elemen Direktori = Formulir AttributesValue("Objek");

BinaryData = GetFileFromTemporaryStorage(TemporaryStorageAddress);

Elemen Direktori.Data File = NewValueStorage(BinaryData); FilePathOnDisk = File Baru(DirectoryItem.FileName);

Direktori Item.FileName = FilePathOnDisk.Name;

Elemen direktori.Write();

Dimodifikasi = Salah;

DeleteFileFromTemporaryStorage(TemporaryStorageAddress);

ValueВFormAttributes(Elemen Direktori, "Objek");

// Membaca file dari props dan menyimpannya // pada disk lokal dalam mode interaktif &Pada Prosedur Klien ReadFileAndSaveToDisk()

Ketika Dokumen memiliki atribut tipe Value Storage di bagian tabel, maka akan memperlambat pembukaan formulir dokumen jika atribut ini berisi data besar.

Alasan yang diduga:

Mungkin, saat membuka formulir, bukan link ke data yang terletak di Value Store yang dikirimkan ke klien, melainkan data itu sendiri.

Larutan

  • Di properti atribut tabel formulir ada tanda "Selalu gunakan". Jika disetel, konten bidang selalu ditransfer antara server dan klien - misalnya, saat membuka formulir. Bendera ini harus dinonaktifkan, tetapi ini harus diperhitungkan dalam kode, karena secara default tidak akan ada nilai untuk bidang ini pada klien. Contohnya dapat ditemukan di 1C:Arsip.

Bahkan lebih baik untuk digunakan penyimpanan sementara untuk mentransfer file antara klien dan server.

Diimplementasikan di versi 8.3.10.2168.

Kami secara bertahap meningkatkan fungsionalitas untuk bekerja dengan data biner. Ada beberapa alasan untuk hal ini. Pertama, kami tidak melaksanakan semua yang kami rencanakan. Dan kedua, dalam proses pembahasan peluang baru, kami menerima sejumlah keinginan dari Anda, yang juga kami putuskan untuk dilaksanakan.

Fungsi baru untuk mengonversi data biner ke format berbeda

Dalam konteks global, kami telah menambahkan sejumlah besar fungsi baru untuk mengonversi data biner. Jadi, misalnya, Anda dapat melakukan konversi maju dan mundur data biner menjadi string biasa, format string Basis64 dan memformat string BinHex. Selain itu, Anda dapat mengonversi data biner itu sendiri ke dalam format Basis64, BinHex dan kembali.

Konversi serupa didukung untuk jenis ini BufferBinaryData. Selain itu, Anda dapat mengubah buffer data biner menjadi data biner dan sebaliknya.

Selain itu, dua fungsi baru memungkinkan Anda membagi data biner menjadi beberapa bagian, dan sebaliknya, untuk menggabungkan beberapa objek bertipe serupa Data Biner dalam satu. Dalam hal ini, objek baru akan berisi data seluruh bagian dalam urutan yang Anda tentukan.

Fungsi-fungsi ini memiliki konsep yang mirip dengan pemisahan dan penggabungan file, namun dalam banyak kasus fungsi ini lebih efisien. Karena tidak perlu menyimpan data biner terlebih dahulu ke file, dan karena tidak ada penyalinan data yang tidak perlu saat pemisahan.

Menambahkan kemampuan untuk bekerja dengan aliran ke objek yang bekerja dengan file

Karena penggunaan data biner sebagian besar terkait dengan operasi file, kami menganggapnya sepenuhnya logis dan alami untuk menambahkan pekerjaan dengan aliran ke objek yang saat ini membaca dan menulis file dengan satu atau lain cara.

Hasilnya, kini Anda dapat membuka aliran untuk membaca dan menulis saat menggunakan objek seperti:

  • MembacaTeks Dan TulisTeks;
  • MembacaFastInfoSet Dan EntriFastInfoSet;
  • MembacaHtml Dan PostingHtml;
  • Membaca JSON Dan entri JSON;
  • Membaca XML Dan entri XML;
  • Membaca File Zip Dan Rekam File Zip.

Anda dapat menerima isi sebagai aliran saat bekerja dengan HTTP:

  • Permintaan HTTP Dan Respon HTTP;
  • Permintaan Layanan HTTP Dan Respons Layanan HTTP.
  • Dokumen Teks;
  • Dokumen Tabular;
  • Dokumen Terformat;
  • Skema Geografis;
  • Skema Grafis;
  • Koneksi FTP.

Menulis ke aliran kini tersedia saat bekerja dengan tipe Gambar Dan Konversikan KeCanonicalXML. Selain itu, bekerja dengan aliran kini didukung dalam berbagai metode yang dimiliki tipe Konversi XSL, Manajer Kriptografi, SertifikatKriptografi Dan Data Hashing.

Penyalinan yang efisien dengan membaca dan menulis data

Alat biner yang kami terapkan memungkinkan penyalinan aliran. Namun pada data dalam jumlah besar, operasi ini tidak dilakukan dengan efisien.

Oleh karena itu, tipenya Data Baca kami telah menerapkan metode baru SalinB(). Ini tidak hanya menghilangkan masalah ini, tetapi juga menyederhanakan teks, membuatnya lebih mudah dimengerti.

Misalnya, sebelumnya dimungkinkan untuk menerima data biner dari satu aliran dan menuliskannya ke aliran lain.

Sekarang tidak perlu menerima data biner; penyalinan dilakukan pada tahap pembacaan data.

Hal yang menyenangkan adalah Anda dapat menyalin tidak hanya ke aliran, tetapi juga ke suatu objek Data Tulis. Opsi ini berguna ketika, selain data dari aliran sumber, Anda perlu menulis beberapa data Anda sendiri ke aliran keluaran.

Operasi logis bitwise pada buffer data biner

Anda sekarang dapat menggunakan operasi logika bitwise saat bekerja dengan buffer data biner. Sebagai hasil dari operasi ini, hasil kombinasi bitwise dari byte sumber dan byte dalam buffer yang ditentukan akan ditulis ke buffer sumber sesuai dengan aturan operasi logika yang dipilih. Kami menerapkan operasi berikut:

  • TulisBitBit();
  • TulisBitAtau();
  • TulisBitEksklusifAtau();
  • TulisBitIne();
  • Membalikkan().

Contoh yang baik dari penggunaan operasi logika bitwise adalah tugas mendekode format pertukaran dengan peralatan ritel. Misalnya, format pertukaran dengan peralatan ritel dijelaskan dengan bidang 1-byte. Bidang ini berisi serangkaian karakteristik yang menjelaskan rangkaian produk:

  • Bit 0-2: tarif pajak;
  • Bagian 3: 0 - barang potong, 1 - barang berat;
  • Bit 4: 0 - izinkan penjualan, 1 - larang penjualan;
  • Bit 5: 0 - aktifkan penghitungan kuantitas, 1 - nonaktifkan penghitungan kuantitas;
  • Bit 6: 0 - penjualan tunggal dilarang, 1 - penjualan tunggal diperbolehkan;
  • Bagian 7: Dicadangkan.

Kemudian kode yang mengekstrak informasi ini dan menyajikannya dalam bentuk yang nyaman untuk diproses lebih lanjut mungkin terlihat seperti ini.

Mendapatkan angka dari literal heksadesimal dan biner

  • NomorDariHexString();
  • NomorDariBinaryString().

Literal biner berguna untuk mendefinisikan masker ketika digunakan bersama dengan operasi bitwise. Misalnya, dalam contoh sebelumnya dengan analisis format pertukaran dengan peralatan komersial, masker ditentukan menggunakan angka desimal. Ini sangat tidak nyaman, karena saat menulis dan membaca kode, Anda harus terus-menerus menerjemahkan angka desimal ke dalam sistem biner secara mental.

Akan lebih mudah jika menggunakan literal biner. Pada saat yang sama, kode menjadi lebih jelas dan kemungkinan kesalahan berkurang secara signifikan.

Literal heksadesimal mudah digunakan saat mengurai format teknis: format gambar, suara, video.

Perubahan teknologi komponen NativeAPI eksternal

Sebelumnya, ada sejumlah batasan saat mentransfer data biner antara 1C:Enterprise dan komponen eksternal. Misalnya, tidak mungkin mentransfer data biner ke komponen eksternal, dan saat bekerja di klien web, pertukaran data biner umumnya tidak mungkin dilakukan.

Sekarang kami menghapus semua batasan ini. Anda dapat bertukar data biner di kedua arah dan bahkan di klien web.

Ini tidak akan mempengaruhi pengoperasian komponen eksternal yang ada dengan cara apapun. Mereka akan bekerja seperti sebelumnya. Namun dalam komponen yang baru dibuat, Anda kini dapat meneruskan objek sebagai parameter Data Biner.

Platform teknologi 1C:Enterprise 8 memungkinkan Anda menyimpan file arbitrer di basis informasi, mengambilnya dari sana, dan menggunakannya dalam berbagai cara. Mari kita lihat operasi ini menggunakan contoh.

Sebelum mengunggah file ke basis informasi 1C, Anda perlu mendapatkan alamat lengkap file di disk. Bekerja dengan dialog pemilihan file dijelaskan dalam .

Untuk menyimpan file, gunakan atribut (atau daftarkan sumber daya) dengan tipe Nilai Penyimpanan.

Mengunggah file arbitrer ke basis informasi 1C

File apa pun dapat direpresentasikan sebagai data biner dan dimuat ke dalamnya Penyimpanan Nilai.

Saat mengonversi data biner menjadi objek Nilai Penyimpanan desain yang digunakan StorageValues ​​baru (Data, Kompresi) dengan dua parameter:

  1. Data— data biner yang perlu disimpan dalam penyimpanan
  2. Kompresi— rasio kompresi dari algoritma Deflasi. Bilangan bulat dalam kisaran -1...9. -1 adalah tingkat kompresi default. 0 - tanpa kompresi, 9 - kompresi maksimum. Nilai bawaan: -1. Parameternya opsional; jika tidak ditentukan, maka kompresi tidak digunakan.

//Konversi file menjadi data biner
File = Data Biner Baru(Jalur) ;

//Buat objek Value Storage baru

Penyimpanan Data = PenyimpananNilai Baru(File, Kompresi Data Baru(9) ) ;

Menyimpan file arbitrer dari infobase 1C ke disk

Untuk menyimpan file dari database 1C ke disk, Anda perlu menentukan jalur dan nama file. Untuk melakukan ini, ada dialog penyimpanan file, cara kerjanya dijelaskan di.

//Dapatkan data biner dari penyimpanan
//Penyimpanan Data - atribut objek dengan tipe Penyimpanan Nilai

//Tulis data yang diterima ke disk
//Variabel Path berisi alamat lengkap file pada disk
Data. Tulis(Jalur) ;

Melihat file yang terletak di basis informasi 1C

Untuk melihat file yang disimpan dalam database, Anda harus menginstal aplikasi di komputer Anda yang membuka file tersebut.

//Dapatkan nama file sementara dengan ekstensi yang diperlukan
//Dalam variabel Ekstensi Anda perlu memasukkan ekstensi file, misalnya "pdf"
Jalur = GetTemporaryFileName(Ekstensi) ;

//Menerima data dari penyimpanan
//Penyimpanan Data - atribut objek dengan tipe Penyimpanan Nilai
Data = Penyimpanan Data. Mendapatkan() ;

//Menulis data ke file sementara
Data. Tulis(Jalur) ;

//Mencoba membuka file di aplikasi yang dimaksud
//Jika aplikasi tidak ditemukan, dialog sistem "Buka dengan..." akan muncul.
PeluncuranAplikasi(Jalur) ;

Data biner dalam 1C dimaksudkan untuk menyimpan file dengan format arbitrer. Dengan bantuan mereka, Anda dapat:

  • Atur interaksi menggunakan protokol biner dengan berbagai perangkat;
  • Simpan file dalam format apa pun sebagai atribut objek metadata;
  • Mengubah data teks menjadi biner (paling sering digunakan untuk mengirim laporan);
  • Bekerja dengan data biner di memori.

Apa yang bisa dilakukan sistem

Saat bekerja dengan data biner, Platform 8.3 dapat melakukan tindakan berikut:

  1. Membaca dan menulis data biner;
  2. Memindahkan data dari klien ke server dan kembali menggunakan penyimpanan sementara;
  3. Inisialisasi objek bertipe "Gambar" menggunakan file biner;
  4. Bacalah dari World Wide Web menggunakan objek “Mail Attachment”, “HTTP Connection”, dll.
  5. Gunakan alat kriptografi untuk mengenkripsi dan menandatangani lampiran penting;
  6. Menggunakan objek “Data Hashing”, hitung fungsi hash.

Menyimpan data ke detail

Misalnya, mari buat direktori dalam konfigurasi pengujian.

Faktanya, menggunakan direktori yang sama untuk menyimpan informasi tentang nomenklatur dan data gambar biner sedikit salah. Dengan volume data yang cukup besar dan file yang berat dan besar, downtime dan “rem” yang tidak diinginkan dalam pengoperasian sistem dapat terjadi. Dari sudut pandang sistem, akan lebih tepat jika mengatur direktori "Gambar" yang terpisah, tautan yang dapat kita atur sebagai tipe alat peraga.


Penting untuk dicatat bahwa karena atribut tipe "ValueStorage" yang berisi data biner tidak tersedia dalam mode aplikasi terkelola, atribut tersebut hanya dapat diakses menggunakan metode FormAttributesValue.


Bidang pesan mewakili catatan data biner penyimpanan nilai.

Membaca data dari alat peraga

Mari kita buat pemrosesan yang akan menampilkan file yang disimpan dalam bentuk biner dalam konfigurasi kita ke dalam dokumen spreadsheet (ini diperlukan, misalnya, untuk mencetak logo perusahaan).


Pada dasarnya, ini semua kode yang kita perlukan. Dengan menggunakan operator Get(), kita membaca data biner yang disimpan dalam atribut direktori yang sesuai dan mentransfernya ke objek "Gambar", yang akan ditampilkan di sel kiri atas dokumen spreadsheet formulir (Gbr. 9).

Gambar.9

Konversi Data

Ini tidak umum, tetapi ketika bekerja dengan pertukaran non-standar dengan sistem eksternal, perlu untuk mengkonversi data dari format biner ke format Base64 atau sebaliknya.

Dalam kebanyakan kasus, platform secara otomatis mengonversi data; jika ini tidak terjadi, Anda perlu menggunakan fungsi terjemahan global:

  1. Base64String – mengubah nilai yang ditentukan menjadi string dengan pengkodean yang sesuai;
  2. Base64Value – melakukan konversi terbalik.

Optimalisasi kode di atas

Kode yang disajikan pada Gambar 4 tentu saja berfungsi, tetapi dengan satu peringatan penting: jika kotak centang "Modalitas penggunaan mode" dipilih di properti konfigurasi (Gbr. 10). Jika tidak, penggunaannya akan menyebabkan kesalahan.
Gambar 10

Untuk mencegah hal ini terjadi, saat berada di modul formulir elemen direktori, buka menu Teks->Pemfaktoran Ulang->Panggilan sinkron yang tidak digunakan lagi->Konversi panggilan modul.

Setelah beberapa waktu, panggilan sinkron akan secara otomatis diubah menjadi panggilan asinkron, dan kode akan berbentuk (Gbr. 11)

Gambar 11