Penambahan string 1s. Fungsi String Baru

Ada beberapa mekanisme untuk bekerja dengan string dalam kueri 1C. Pertama, string dapat ditambahkan. Kedua, substring dapat diambil dari string. Ketiga, string dapat dibandingkan, termasuk dengan pola. Hanya itu yang dapat Anda lakukan dengan string.

Penambahan string

Operator "+" digunakan untuk menambahkan string dalam kueri. Anda hanya dapat menambahkan string dengan panjang terbatas.

PILIH "Nama: " + Kontraktor.Nama SEBAGAI Kolom1 DARI Direktori.Kontraktor SEBAGAI Kontraktor DI MANA Kontraktor.Referensi = &Referensi

Fungsi substring

SUBSTRING(<Строка>, <НачальнаяПозиция>, <Длина>)

Analog dari fungsi Environment() dari model objek. Fungsi Substring() dapat diterapkan ke data tipe string dan memungkinkan Anda memilih sebuah fragmen <Строки> , dimulai dengan karakter angka <НачальнаяПозиция> (karakter dalam string diberi nomor dari 1) dan panjang <Длина> karakter. Hasil evaluasi fungsi memiliki tipe string dengan panjang variabel, dan panjangnya akan dianggap tidak terbatas jika <Строка> memiliki panjang dan parameter yang tidak terbatas <Длина> bukan konstanta atau lebih besar dari 1024.

Jika panjang string kurang dari yang ditentukan pada parameter kedua, maka fungsi akan mengembalikan string kosong.

Perhatian! Menggunakan fungsi SUBSTRING() untuk mengonversi string dengan panjang tidak terbatas menjadi string dengan panjang terbatas tidak disarankan. Sebaliknya, lebih baik menggunakan operator cast EXPRESS().

Fungsi Mirip

Jika kita perlu memastikan bahwa atribut string memenuhi kriteria tertentu, kita bandingkan:

PILIH Counterparty.Name AS Column1 FROM Directory.Counterparty SEBAGAI Counterparty WHERE Counterparty.Name = "Gazprom"

Tetapi bagaimana jika diperlukan perbandingan yang lebih halus? Bukan hanya untuk kesetaraan atau ketidaksetaraan, tetapi untuk kesamaan pola tertentu? Untuk itulah fungsi LIKE dibuat.

LIKE - Operator untuk memeriksa apakah suatu string mirip dengan suatu pola. Analog dari LIKE di SQL.

Operator LIKE memungkinkan Anda membandingkan nilai ekspresi yang ditentukan di sebelah kirinya dengan string templat yang ditentukan di sebelah kanan. Nilai ekspresi harus bertipe string. Jika nilai ekspresi cocok dengan templat, hasil operator akan BENAR, jika tidak maka akan SALAH.

Karakter berikut dalam string template adalah karakter layanan dan memiliki arti yang berbeda dari karakter string:

  • % (persentase): urutan yang berisi sejumlah karakter arbitrer;
  • _ (garis bawah): satu karakter arbitrer;
  • […] (satu atau lebih karakter dalam tanda kurung siku): setiap karakter tunggal yang tercantum di dalam tanda kurung siku. Pencacahan dapat berisi rentang, seperti a-z, artinya karakter apa pun di dalam rentang, termasuk ujung rentang;
  • [^…] (dalam tanda kurung siku tanda negasi diikuti oleh satu atau lebih karakter): Setiap karakter tunggal selain yang tercantum setelah tanda negasi.

Simbol lain berarti dirinya sendiri dan tidak membawa beban tambahan apa pun. Jika perlu untuk menulis salah satu dari karakter yang terdaftar sebagai dirinya sendiri, maka harus didahului dengan<Спецсимвол>. Saya sendiri<Спецсимвол>(setiap karakter yang cocok) didefinisikan dalam pernyataan yang sama setelah kata kunci SIMBOL KHUSUS.

Catatan dari Looking Glass

08/18/2014 Fungsi baru untuk bekerja dengan string

Diimplementasikan dalam versi 8.3.6.1977.

Kami telah memperluas rangkaian fungsi untuk bekerja dengan string. Kami melakukan ini untuk memberi Anda alat yang lebih canggih untuk mengurai data string. Fungsi baru akan nyaman dan berguna dalam tugas teknologi analisis teks. Dalam tugas yang terkait dengan penguraian teks yang berisi data dalam bentuk yang diformat. Ini mungkin analisis beberapa file yang diterima dari peralatan, atau, misalnya, analisis log teknologi.

Semua tindakan yang dilakukan fungsi baru, dapat Anda lakukan sebelumnya. Dengan bantuan algoritma yang kurang lebih kompleks yang ditulis dalam bahasa yang disematkan. Oleh karena itu, fungsi baru tidak memberi Anda peluang baru yang fundamental. Namun, mereka memungkinkan Anda untuk mengurangi jumlah kode, membuat kode lebih sederhana dan lebih mudah dipahami. Selain itu, mereka memungkinkan Anda untuk mempercepat pelaksanaan tindakan. Karena fungsi yang diterapkan di platform bekerja, tentu saja, lebih cepat daripada algoritme serupa yang ditulis dalam bahasa bawaan.

Fungsi format StrTemplate()

Fungsi ini mengganti parameter menjadi string. Kebutuhan akan konversi semacam itu sering muncul, misalnya saat menampilkan pesan peringatan. Sintaks untuk fungsi ini adalah sebagai berikut:

StrTemplat(<Шаблон>, <Значение1-Значение10>)

<Шаблон>adalah string untuk mengganti representasi parameter.

<Значение1> , ... <Значение10>- ini adalah parameter (maksimum - sepuluh), yang representasinya harus diganti ke dalam string.

Untuk menentukan tempat tertentu dalam templat yang ingin Anda ganti, Anda perlu menggunakan penanda formulir %1, ... %10. Jumlah penanda yang terlibat dalam templat dan jumlah parameter yang mengandung nilai harus cocok.

Misalnya, hasil dari menjalankan operator seperti itu:

akan ada garis:

Kesalahan data pada baris 2 (memerlukan tipe Tanggal)

Fungsi String StrCompare()

Fungsi ini membandingkan dua huruf besar-kecil secara tidak sensitif. Misalnya, seperti ini:

Anda bisa melakukan tindakan yang sama sebelum menggunakan objek Membandingkan Nilai:

Namun, menggunakan fungsi baru terlihat lebih sederhana. Dan selain itu, sebuah fungsi, tidak seperti objek Membandingkan Nilai, bekerja di klien kurus, dan di klien web.

Fungsi String StrBeginsC(), StrEndsTo()

Fungsi-fungsi ini menentukan apakah sebuah string dimulai dengan substring yang ditentukan, atau apakah sebuah string diakhiri dengan substring yang ditentukan. Algoritma dari fungsi-fungsi ini tidak sulit untuk diimplementasikan dalam bahasa bawaan, tetapi keberadaannya memungkinkan Anda untuk menulis kode yang lebih bersih dan lebih mudah dipahami. Dan mereka bekerja lebih cepat.

Misalnya, lebih mudah menggunakannya di operator Jika:

Fungsi untuk bekerja dengan string StrSplit(), StrJoin()

Fungsi-fungsi ini membagi string menjadi beberapa bagian sesuai dengan pembatas yang ditentukan. Atau sebaliknya, mereka menggabungkan beberapa baris menjadi satu, memasukkan pemisah yang dipilih di antara keduanya. Mereka nyaman untuk membuat atau menganalisis log, log teknologi. Misalnya, Anda dapat dengan mudah membongkar entri log teknologi menjadi bagian-bagian yang sesuai untuk analisis lebih lanjut:

Fungsi bekerja dengan string StrFind()

Alih-alih fungsi lama Menemukan() kami telah menerapkan fitur baru, yang memiliki fitur tambahan:

  • Cari ke berbagai arah (dari awal, dari akhir);
  • Cari dari posisi yang ditentukan;
  • Cari kejadian dengan nomor yang ditentukan(kedua, ketiga, dst).

Faktanya, ini menduplikasi kemampuan fungsi lama. Ini dilakukan untuk menjaga kompatibilitas dengan modul yang dikompilasi dalam versi lama. fungsi lama Menemukan() disarankan untuk tidak digunakan lagi.

Di bawah ini adalah contoh penggunaan kemampuan pencarian baru. Pencarian mundur berguna saat Anda membutuhkan bagian terakhir dari string yang diformalkan, seperti nama lengkap file di URL. Dan mencari dari posisi tertentu membantu jika Anda perlu mencari di fragmen yang diketahui, dan bukan di seluruh string.

Tipe String ditemukan di semua bahasa pemrograman. Ini primitif, dan di 1C ada banyak fungsi untuk bekerja dengannya. Pada artikel ini, kita akan melihat lebih dekat berbagai cara bekerja dengan tipe string di 1C 8.3 dan 8.2 dengan contoh.

Garis

Untuk mengonversi variabel jenis apa pun menjadi string, ada fungsi "String ()" dengan nama yang sama. Parameter input akan menjadi variabel itu sendiri, representasi string yang akan diperoleh.

String(False) // mengembalikan "Tidak"
String(12345) // mengembalikan "12 345"
String(CurrentDate()) //"21.07.2017 11:55:36"

Dimungkinkan untuk mengonversi ke string tidak hanya tipe primitif, tetapi juga yang lain, misalnya, elemen direktori dan dokumen.

Disingkat LP, Disingkat L, Disingkat P

Parameter input dari fungsi-fungsi ini adalah variabel tipe string. Fungsi menghapus karakter yang tidak penting (spasi, carriage return, dll.): dari sisi kiri dan kanan, hanya dari sisi kiri, dan hanya dari sisi kanan.

abbrl("Spasi di kedua sisi akan dihapus") // "Spasi di kedua sisi akan dihapus"
abbr("Spasi di kedua sisi akan dihapus") // "Spasi di sebelah kiri akan dihapus"
abbr("Spasi di kedua sisi akan dihapus") // "Spasi di sebelah kanan akan dihapus"

Leo, Kanan, Tengah

Fungsi-fungsi ini memungkinkan Anda untuk memotong bagian dari string. Fungsi Lion() akan mengembalikan bagian string di sisi kiri dari panjang yang ditentukan. Fungsi "Right()" serupa, tetapi pemangkasan dilakukan di sebelah kanan. Fungsi "Wed()" memungkinkan Anda menentukan nomor karakter dari mana string akan dipilih dan panjangnya.

Lion("Variabel string", 4) // mengembalikan "Stro"
Right("Variabel string", 7) // mengembalikan "variabel"
avg("Variabel string", 2, 5)// mengembalikan "troco"

StrLength

Fungsi menentukan jumlah karakter yang terkandung dalam variabel string.

StrLength("Word") // hasil eksekusi akan menjadi angka 5

Menemukan

Fungsi memungkinkan untuk mencari bagian dari string dalam variabel string. Nilai yang dikembalikan akan berupa angka yang menunjukkan posisi awal string yang ditemukan. Jika tidak ada kecocokan yang ditemukan, nol dikembalikan.

Perhatikan bahwa pencarian peka huruf besar-kecil. Jika ada lebih dari satu kemunculan substring pencarian di string asli, fungsi akan mengembalikan awal kemunculan pertama.

Temukan("satu, dua, satu, dua, tiga", "dua") // fungsi akan mengembalikan angka 6

Baris kosong

Menggunakan fungsi ini memungkinkan Anda untuk menentukan apakah suatu string kosong. Karakter yang tidak penting, seperti spasi, carriage return, dan lainnya tidak diperhitungkan.

EmptyString("Vasily Ivanovich Pupkin") // fungsi akan mengembalikan False
EmptyString(" ") // fungsi akan mengembalikan True

VReg, NReg, TReg

Fungsi-fungsi ini sangat berguna saat membandingkan dan mengonversi variabel string. "Vreg ()" akan mengembalikan string asli dalam huruf besar, "HReg ()" dalam huruf kecil, dan "TReg ()" akan memformatnya sehingga karakter pertama dari setiap kata dikapitalisasi, dan semua karakter berikutnya adalah huruf kecil.

VReg("DIREKTUR UMUM") // mengembalikan nilai - "DIREKTUR UMUM"
HReg("DIREKTUR UMUM") // mengembalikan nilai - "CEO"
TReg("DIREKTUR UMUM") // mengembalikan nilai - "Direktur Umum"

StrReplace

Fungsi ini analog dengan penggantian di editor teks. Ini memungkinkan Anda untuk mengganti satu karakter atau kumpulan karakter dengan yang lain dalam variabel string.

StrReplace("merah, putih, kuning", ",", ";") // mengembalikan "merah; putih; kuning"

StrNumberRows

Fungsi ini memungkinkan Anda menentukan jumlah baris yang dipisahkan oleh carriage return dalam variabel teks.

Loop pada contoh di bawah ini akan melewati tiga lingkaran karena fungsi StrNumberRows akan mengembalikan nilai 3:

Untuk ind \u003d 1 oleh StrNumber of Lines ("Line1" + Symbols.PS + "String2" + Symbols.PS + "Line3") Loop
<тело цикла>
Akhir Siklus;

StrGetString

Fungsi ini bekerja dengan teks multibaris dengan cara yang sama seperti yang sebelumnya. Ini memungkinkan Anda untuk mendapatkan string tertentu dari variabel teks.

StrGetString("String1" + Simbol.PS + "String2" + Simbol.PS + "String3", 2) // mengembalikan "Baris2"

StrNumberKejadian

Fungsi menghitung jumlah kemunculan karakter atau substring dalam string yang dicari.

StrNumberInstallations("a;b;c;d; ", ";") // fungsi akan mengembalikan angka 4

Simbol dan Kode Simbol

Fungsi-fungsi ini memungkinkan Anda mendapatkan karakter dengan kode Unicode-nya, serta menentukan kode ini dengan karakter itu sendiri.

SymbolCode("A") // fungsi akan mengembalikan angka 1 040
SymbolCode(1040) // fungsi akan mengembalikan "A"

Tugas yang sering dilakukan saat bekerja dengan string

Penggabungan String

Untuk menggabungkan beberapa string (menggabungkan) cukup gunakan operator tambahan.

"Baris 1" + "Baris 2" //hasil penjumlahan dua baris adalah "Baris 1 Baris 2"

Ketik konversi

Untuk mengubah tipe menjadi string, misalnya referensi ke elemen kamus, angka, dan sebagainya, cukup menggunakan fungsi "String ()". Fungsi seperti "ShortLP()" juga akan mengonversi variabel menjadi string, tetapi segera dengan memotong karakter yang tidak penting.

String(1000) // akan mengembalikan "1000"

Harap perhatikan bahwa saat mengonversi angka menjadi string, program secara otomatis menambahkan spasi yang memisahkan ribuan. Untuk menghindari ini, Anda dapat menggunakan struktur berikut:

StrReplace(String(1000),Characters.NPP,"") // mengembalikan "1000"

String(Format(1000,"CH=")) // akan mengembalikan "1000"

Mengutip dalam string

Cukup sering Anda harus berurusan dengan kebutuhan untuk menempatkan tanda kutip dalam variabel string. Itu bisa berupa teks permintaan yang ditulis di konfigurator, atau hanya variabel. Untuk mengatasi masalah ini, Anda hanya perlu mengatur dua karakter kutipan.

Header = String("Tanduk dan Kuku LLC adalah kami!") // mengembalikan "Roga dan Kuku LLC adalah kami!"

Multiline, jeda baris

Untuk membuat teks multiline, cukup menambahkan karakter jeda baris (Symbols.PS) ke dalamnya.

MultilineText = "Baris Pertama" + Karakter.PS + "Baris Kedua"

Cara menghilangkan spasi

Untuk menghilangkan spasi di kanan atau kiri, Anda dapat menggunakan fungsi "Stretch()" (serta "Scrpt()" dan "ScreenP()"):

StringWithoutSpaces = ShortLP(" Banyak huruf ") // fungsi akan mengembalikan nilai "Banyak huruf"

Jika, setelah mengonversi angka menjadi string, Anda perlu menghapus spasi tanpa putus, gunakan konstruksi berikut:

StringWithoutSpaces = StrReplace(String(99999),Characters.NPP,"") // mengembalikan "99999"

Selain itu, pemrogram sering menggunakan konstruksi berikut, yang memungkinkan Anda menghapus atau mengganti semua spasi variabel teks dengan karakter lain:

StringWithoutSpaces = StrReplace(" halo", " " ,"") // mengembalikan "halo"

Membandingkan string satu sama lain

Anda dapat membandingkan istilah dengan tanda sama dengan yang biasa. Perbandingannya peka terhadap huruf besar-kecil.

"halo" = "halo" // akan mengembalikan false
"Halo" = "Halo" // akan mengembalikan True
"Halo" = "Selamat tinggal" // akan mengembalikan False

String adalah salah satu tipe data primitif dalam sistem 1C:Enterprise 8. Variabel dengan tipe garis berisi teks.

Ketik Nilai Variabel garis diapit oleh tanda kutip ganda. Beberapa Variabel dari jenis ini bisa dilipat.

Per1 = "Kata 1" ;
Per2 = "Kata 2" ;
Per3 = Per1 + " " + Per2 ;

Pada akhirnya Per3 akan penting" Kata 1 Kata 2″.

Selain itu, sistem 1C:Enterprise 8 menyediakan fungsi untuk bekerja dengan string. Pertimbangkan yang utama:

MasukkanString(<Строка>, <Подсказка>, <Длина>, <Многострочность>) — fungsi dirancang untuk menampilkan kotak dialog di mana pengguna dapat menentukan nilai variabel tipe Garis. Parameter <Строка> diperlukan dan berisi nama variabel di mana string yang dimasukkan akan ditulis. Parameter <Подсказка> opsional adalah judul kotak dialog. Parameter <Длина> opsional, menunjukkan panjang maksimum string input. Standarnya adalah nol, yang berarti panjang tidak terbatas. Parameter <Многострочность> opsional. Menentukan mode input teks multiline: True — input teks multiline dengan pemisah baris; Salah - Masukkan string sederhana.

Sebuah string dapat dimasukkan dan, mengetahui kode karakter di Unicode:

Simbol(<КодСимвола>) — Kode dimasukkan sebagai angka.

Huruf= Simbol(1103 ); // SAYA

Ada juga fungsi invers, yang memungkinkan Anda mengetahui kode karakter.

Kode Simbol(<Строка>, <НомерСимвола>) — Mengembalikan nomor Unicode dari karakter yang ditentukan sebagai angka.

Fungsi konversi kasus teks:

VReg(<Строка>) - Mengubah semua karakter dalam string menjadi huruf besar.

Hreg(<Строка>) - Mengubah semua karakter dalam string menjadi huruf kecil.

TReg(<Строка>) - mengonversi semua karakter string menjadi huruf besar-kecil. Artinya, huruf pertama di semua kata diubah menjadi huruf besar, dan huruf lainnya diubah menjadi huruf kecil.

Fungsi untuk mencari dan mengganti karakter dalam sebuah string:

Menemukan(<Строка>, <ПодстрокаПоиска>) - menemukan nomor karakter kemunculan substring pencarian. Misalnya:

Temukan ("String" , "mata" ); // 4

Temukan(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) — menemukan nomor karakter kemunculan substring pencarian, nomor kemunculan ditentukan dalam parameter yang sesuai. Dalam hal ini, pencarian dimulai dari karakter, yang jumlahnya ditentukan dalam parameter Posisi awal. Pencarian dimungkinkan dari awal atau dari akhir string. Misalnya:

Entri Nomor4 = StrFind( "Pertahanan", "o", Cari Arah. Pertama, 1 , 4 ); // 7

StrGanti(<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) Menemukan semua kemunculan substring pencarian di string sumber dan menggantinya dengan substring pengganti.

StrReplace("Tali" , "mata" , "" ); // Halaman

Baris kosong(<Строка>) - memeriksa string untuk karakter yang signifikan. Jika tidak ada karakter yang signifikan, atau tidak ada karakter sama sekali, maka nilai dikembalikan BENAR. Jika tidak - Berbohong.

StrNumberKejadian(<Строка>, <ПодстрокаПоиска>) – menghitung jumlah kemunculan substring pencarian di string sumber.

StrNumberKejadian ( "Belajar, belajar dan belajar lagi", "belajar" , "" ) ; // 3

StrTemplat(<Строка>, <ЗначениеПодстановки1>…<ЗначениеПодстановкиN> — mengganti parameter ke dalam string dengan angka. String harus berisi penanda substitusi dalam bentuk: "%1..%N". Penomoran penanda dimulai dari 1. Jika nilai parameter Belum diartikan, string kosong diganti.

STRPola ( "Opsi 1 = %1, Opsi 2 = %2", "1" , "2" ) ; // Parameter 1= 1, Parameter 2 = 2

Fungsi konversi string:

Singa(<Строка>, <ЧислоСимволов>) mengembalikan karakter pertama dari string.

Benar(<Строка>, <ЧислоСимволов>) - mengembalikan karakter terakhir dari string.

Rabu(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) - mengembalikan string panjang<ЧислоСимволов>, dimulai dengan karakter<НачальныйНомер>.

Abbr(<Строка>) memotong karakter tidak penting di sebelah kiri karakter penting pertama dalam string.

abbr(<Строка>) - memotong karakter tidak penting di sebelah kanan karakter penting terakhir dalam string.

Abbrl(<Строка>) - memotong karakter tidak penting di sebelah kiri karakter penting pertama dalam string dan di sebelah kanan karakter penting terakhir dalam string.

StrGetString(<Строка>, <НомерСтроки>) – mendapatkan string dari string multiline dengan nomor.

Fitur lainnya:

StrPanjang(<Строка>) - mengembalikan jumlah karakter dalam string.

StrJumlah Baris(<Строка>) - mengembalikan jumlah baris dalam string multiline. Sebuah baris dianggap baru jika dipisahkan dari baris sebelumnya oleh karakter baris baru.

Str Bandingkan(<Строка1>, <Строка2> ) - membandingkan dua huruf besar-kecil secara tidak sensitif. Fungsi bekerja seperti objek Membandingkan Nilai. Pengembalian:

  • 1 - jika baris pertama lebih besar dari baris kedua
  • -1 - jika baris kedua lebih besar dari yang pertama
  • 0 - jika string sama

StrCompare("Baris pertama", "Baris kedua"); // 1

Fitur dasar bahasa pemrograman biasanya termasuk bekerja dengan angka dan string. Biasanya fitur-fitur ini tertanam dalam kode kompiler (atau kelas "dasar" dari bahasa pemrograman diimplementasikan).

Di 1C, kemampuan bekerja dengan string diprogram di platform itu sendiri. Hari ini kami akan mempertimbangkan fitur bekerja dengan string 1C dalam program dalam bahasa 1C bawaan.

Nilai garis 1C

1. Mari kita mulai dengan yang paling sederhana. Membuat variabel dan menetapkan nilai konstanta string ke tampilannya seperti ini di 1C:

Variabel = "Halo dunia!";

Jika Anda ingin menentukan karakter kutipan dalam nilai string konstan 1C, maka Anda perlu menggandakannya ""

Variabel = "Halo, "dunia""!";

2. Line break 1C dapat ditentukan dengan dua cara sekaligus. Yang pertama menggunakan simbol |

Variabel = “Halo,
| dunia! ";

Yang kedua menggunakan enum sistem Simbol. Ini memungkinkan Anda untuk menambahkan jeda baris 1C dan karakter non-cetak lainnya, seperti TAB.

Variabel = "Hai" + Simbol.ps + "damai!";

3. Konfigurasi dalam 1C dapat dikembangkan tidak hanya untuk satu bahasa (Rusia, Inggris, atau lainnya) - tetapi secara bersamaan untuk beberapa bahasa. Dalam hal ini, bahasa yang digunakan saat ini dipilih di bagian bawah jendela 1C.

Daftar bahasa terletak di jendela konfigurasi di cabang General/Languages. Setiap bahasa memiliki pengidentifikasi pendek seperti en atau eng.

Jelas bahwa saat memprogram konfigurasi seperti itu, jalur 1C juga bisa multibahasa. Untuk melakukan ini, dimungkinkan untuk membuat garis 1C dengan menentukan melalui; opsi menurut ID bahasa:

Variabel = "ru=""Halo, dunia!""; en=""Halo, dunia! """;

Jika Anda menggunakan garis 1C yang dibentuk seperti biasa, maka itu akan menjadi apa yang tertulis di dalamnya. Agar sistem membaginya menjadi dua opsi dan menggunakan yang diinginkan, Anda harus menggunakan fungsi NStr():

//benar untuk konfigurasi bilingual
Laporan(NStr(Variabel));

Alat peraga dengan tipe garis 1C

Yang diperlukan adalah bidang direktori / dokumen 1C. Ini berbeda dari variabel dalam program dalam bahasa 1C karena tipenya diindikasikan secara tepat untuk atribut (angka, string 1C, dll.). Jika Anda perlu memoles apa itu alat peraga, lihat tutorial di .

Jika Anda menentukan tipe atribut - baris 1C, maka Anda juga harus menentukan parameternya.

String 1C memiliki panjang tidak terbatas (ditunjukkan sebagai panjang = 0) dan panjang terbatas, menunjukkan jumlah karakter yang tepat. String 1C dengan panjang tidak terbatas disimpan dalam tabel SQL terpisah, sehingga penggunaannya kurang produktif daripada yang terbatas.

Itulah mengapa penggunaan string 1C dengan panjang tak terbatas memiliki keterbatasan - tidak mungkin digunakan di mana-mana. Misalnya, tidak mungkin sebagai nomor dokumen, kode direktori, pengukuran.

Bekerja dengan garis 1C

Untuk bekerja dengan string, ada beberapa fungsi bawaan dari platform 1C.

  • AbbrLP("Luar biasa, tapi benar!")
    Menghapus dari baris 1C ruang ekstra. Itu juga dapat digunakan untuk mengonversi jenis apa pun menjadi string 1C (misalnya, angka).
  • Variabel = "Vasya" + Abbrl("plus") + "Olya"; //akan menjadi "Vasya plus Olya"
    Contoh penjumlahan beberapa nilai string 1C. Hasilnya adalah satu baris 1C.
  • Variabel = Lion("Musik", 2); // akan menjadi "Mu"
    Variabel = Rata("Musik", 2, 2); // akan menjadi "ps"
    Variabel = Hak("Musik", 2); // akan menjadi "ka"
    Berbagai opsi untuk mendapatkan substring dari string 1C.
  • Variabel = Find("Musik", "ps"); // akan menjadi 3
    Cari substring dalam string 1C, dimulai dengan karakter 1.
  • Variabel = StrLength("Musik"); // akan menjadi 6
    Mengembalikan jumlah karakter dalam string 1C.
  • Beri tahu ("Hai") //di kotak pesan di bagian bawah jendela 1C
    alert("hello") //dialog munculan
    Status("Halo") //di baris tampilan status di kiri bawah
    .

Membawa objek ke garis 1C

Seperti yang Anda ketahui, format paling populer untuk pertukaran informasi terstruktur saat ini adalah XML. Bahkan versi terbaru MS Kata Kantor dan Excel menyimpan file dalam format ini (masing-masing docx dan xlsx, ubah ekstensi menjadi zip, buka di pengarsipan).

Platform 1C untuk pertukaran data menyediakan beberapa opsi, yang utamanya juga XML.

1. Metode paling sederhana adalah dengan menggunakan fungsi ShortLP() atau String(). Anda dapat menggunakan fungsi REPRESENTATION() dalam teks kueri. Hasil tindakan mereka sama - mereka menghasilkan representasi string dari objek 1C apa pun untuk pengguna.

Untuk direktori default, ini akan menjadi namanya. Untuk dokumen, nama dokumen, nomor, dan tanggal.

2. Objek 1C apa pun (dengan batasan) dapat dikonversi ke XML dan sebaliknya. Proses konversi disebut serialisasi.

ViewStringXml = XMLString(Nilai); //dapatkan XML dari nilai 1C
Value1С = XMLValue(Type("CatalogReference.Nomenclature"),ViewStringXml); //mendapatkan nilai 1C dari string XML, Anda harus menentukan jenis 1C yang harus diterima

3. Ada cara asli platform 1C untuk mengonversi objek 1C apa pun menjadi string. Ini bermigrasi dari versi 1C 7.7. Format ini tidak dipahami oleh program lain, tetapi memahami 1C lain, yang membuatnya mudah digunakan untuk bertukar antar basis data 1C.

String = ValueInStringInt(Nilai1S); //dapatkan string 1C dari nilai 1C
ValueToFile("C:\MyFile.txt", Value1C); //opsi lain, kami mendapatkan file dengan string tersimpan dari nilai 1C
Nilai1C = NilaiDariStringInt(String); //kembali dari baris 1C
Nilai1C = NilaiDariFile("C:\MyFile.txt"); //kembali dari file

Mengedit baris 1C pada formulir

Selain bekerja dengan string 1C dalam program 1C, tentu saja, saya ingin pengguna dapat mengeditnya. Ada beberapa kemungkinan untuk ini:

1. Cara termudah adalah meminta input jalur 1C sesuai permintaan. Metode ini digunakan saat mengajar pemrograman 1C, dalam kehidupan ini lebih jarang digunakan (tetapi digunakan!).

Variabel = "";
String = EnterValue(Variabel, "Masukkan nama lengkap");

2. Untuk menampilkan detail objek 1C (direktori / dokumen) atau detail formulir (lihat), kolom input paling sering digunakan. Ini adalah alat paling umum di 1C bagi pengguna untuk bekerja dengan bidang pengeditan.

3. Kemungkinan kolom input dapat diperluas (lihat properti kolom input, klik kanan di atasnya, untuk lebih jelasnya):

  • Kotak centang Mode pengeditan multiline
  • Kotak centang pengeditan lanjutan (tersedia jika kotak centang sebelumnya dicentang)
  • Kotak centang Mode kata sandi (lihat ).

4. Jika semua kemungkinan kolom input tidak cukup untuk Anda, ada editor bawaan. Untuk menambahkannya ke form, Anda perlu menambahkan Field di menu Form / Insert control dokumen teks. Di propertinya, Anda dapat menentukan mode operasinya - properti Ekstensi.

Bidang dokumen teks tidak dapat ditautkan langsung ke data. Penting untuk menulis fungsi berikut di event handler dari form OnOpening() (lihat ):

FormElements.ElementNameTextDocumentField.SetText(StringValue); //di sini, ValueString adalah teks yang diterima, misalnya, dari atribut

Dan di save handler - misalnya, di tombol Save - tambahkan save:

ValueString = FormElements.ElementNameTextDocumentField.GetText(); //ValueString di sini adalah alat peraga tempat kita menyimpan nilainya

5. Dalam 1C versi 8.2.11, di formulir yang dikelola, muncul kesempatan baru representasi garis 1C - Bidang dokumen yang diformat.


Mirip dengan bidang dokumen teks, perlu diatur saat membuka dan menulis saat menyimpan sendiri teks menggunakan program.

  • Di objek 1C, bentuk yang kita buat (buku referensi, dokumen, pemrosesan, dll.) - tambahkan atribut dengan tipe Penyimpanan Nilai
  • Dalam fungsi OnReadOnServer(), setel teks dari atribut

    //di sini Syaratnya adalah atribut tambahan dari objek 1C
    //di sini FormattedDocument adalah nama bidang pada formulir edit
    & Di server

    FormattedDocument = CurrentObject.Attributes.Get();
    Prosedur Akhir

  • Dalam fungsi BeforeWriteOnServer() atau dengan menekan tombol, tulis teks dari bidang

    & Di server
    Prosedur OnReadingOnServer(CurrentObject)
    CurrentObject.Attributes = NewValueStorage(FormattedDocument);
    Prosedur Akhir



Memuat...
Atas