Fungsi baru untuk bekerja dengan string. Fungsi baru untuk bekerja dengan konversi string 1c ke string

Kemampuan dasar bahasa pemrograman biasanya mencakup bekerja dengan angka dan string. Biasanya fitur-fitur ini dikodekan ke dalam kode kompiler (atau kelas “dasar” dari bahasa pemrograman diimplementasikan).

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

Nilai garis 1C

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

Variabel = "Halo dunia!";

Jika Anda perlu menentukan karakter kutipan dalam nilai string 1C yang konstan, 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 adalah menggunakan sistem enumerasi Simbol. Ini memungkinkan Anda untuk menambahkan jeda baris 1C dan karakter non-cetak lainnya, seperti TAB.

Variabel = "Halo" + 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 Umum/Bahasa. Setiap bahasa memiliki pengenal singkat seperti ru atau bahasa Inggris.

Jelas bahwa ketika memprogram konfigurasi seperti itu, jalur 1C juga bisa multibahasa. Untuk melakukan ini, Anda dapat membuat garis 1C dengan menentukan melalui; pilihan berdasarkan pengidentifikasi bahasa:

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

Jika menggunakan garis 1C yang dibentuk seperti biasa, maka akan sesuai dengan yang tertulis di dalamnya. Agar sistem dapat membaginya menjadi dua opsi dan menggunakan opsi yang diinginkan, Anda perlu menggunakan fungsi НStr():

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

Alat peraga dengan tipe garis 1C

Atributnya adalah bidang di direktori/dokumen 1C. Ini berbeda dari variabel dalam program dalam bahasa 1C karena tipenya ditunjukkan secara tepat untuk atribut (angka, string 1C, dll.). Jika Anda perlu menyegarkan ingatan Anda tentang apa itu alat peraga, tontonlah pelajaran selanjutnya.

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

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

Itulah sebabnya penggunaan string 1C dengan panjang tidak terbatas memiliki keterbatasan - tidak mungkin untuk menggunakannya di mana pun. Misalnya, tidak diperbolehkan sebagai nomor dokumen, kode referensi, atau ukuran.

Bekerja dengan string 1C

Ada beberapa fungsi bawaan platform 1C untuk bekerja dengan string.

  • AbbrLP (“Luar biasa, tapi benar!”)
    Menghapus dari baris 1C spasi tambahan. Dapat juga digunakan untuk mengonversi tipe apa pun menjadi string 1C (misalnya, angka).
  • Variabel = "Vasya" + AbbrLP(" plus") + "Olya"; //akan ada "Vasya plus Olya"
    Contoh menjumlahkan beberapa nilai string 1C. Hasilnya akan menjadi satu baris 1C.
  • Variabel = Lev("Musik", 2); //akan menjadi "Mu"
    Variabel = Sedang("Musik", 2, 2); //akan ada "ancaman"
    Variabel = Hak("Musik", 2); //akan ada "ka"
    Berbagai pilihan untuk mendapatkan substring dari string 1C.
  • Variabel = Temukan("Musik", "zy"); //akan ada 3
    Cari substring di string 1C, dimulai dengan karakter 1.
  • Variabel = StrLength("Musik"); //akan ada 6
    Mengembalikan jumlah karakter di baris 1C.
  • Laporkan("Halo") //di jendela pesan di bagian bawah jendela 1C
    Peringatan("Halo") //dialog munculan
    Status("Halo") //pada baris tampilan status di kiri bawah
    .

Membawa objek ke garis 1C

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

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

1. Cara paling sederhana adalah dengan menggunakan fungsi Singkatan() atau String(). Anda dapat menggunakan fungsi REPRESENTATION() di isi permintaan. Hasil dari tindakan mereka sama - mereka menghasilkan representasi string dari objek 1C apa pun untuk pengguna.

Untuk sebuah direktori, secara 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.

StringViewXml = XMLString(Nilai); //dapatkan XML dari nilai 1C
Value1C = XMLValue(Type("DirectoryLink.Nomenclature"),TypeStringXml); //mendapatkan nilai 1C dari string XML, Anda harus menentukan tipe 1C yang harus diterima

3. Ada cara platform 1C sendiri untuk mengubah objek 1C menjadi string. Itu bermigrasi dari versi 1C 7.7. Format ini tidak dipahami oleh program lain, tetapi 1C lain memahaminya, sehingga mudah digunakan untuk pertukaran antar database 1C.

Baris = ValueInRowInt(Value1C); //dapatkan string 1C dari nilai 1C
ValueVFile("C:\MyFile.txt", Value1C); //pilihan lain, kita mendapatkan file dengan string yang disimpan dari nilai 1C
Nilai1C = NilaiDariStringInt(String); //kembali dari baris 1C
Value1C = ValueFile("C:\MyFile.txt"); //kembali dari file

Mengedit baris 1C pada formulir

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

1. Cara termudah adalah dengan meminta masuknya jalur 1C sesuai permintaan. Metode ini digunakan ketika mengajarkan pemrograman 1C; dalam kehidupan, metode ini lebih jarang digunakan (tetapi digunakan!).

Variabel = "";
Baris = 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. Kemampuan kolom input dapat diperluas (lihat properti kolom input, klik kanan di atasnya, rincian lebih lanjut):

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

4. Jika semua kemampuan kolom input tidak cukup untuk Anda, ada editor bawaan. Untuk menambahkannya ke formulir, Anda perlu menambahkan Bidang ke menu kontrol Formulir/Sisipkan dokumen teks. Di propertinya Anda dapat menentukan mode operasinya – properti Ekstensi.

Bidang dokumen teks tidak dapat dikaitkan langsung dengan data. Penting untuk menulis fungsi di event handler OnOpen() dalam bentuk (lihat):

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

Dan di pengendali simpanan - misalnya, di tombol Simpan - tambahkan simpanan:

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

5. Dalam 1C versi 8.2.11, dalam formulir terkelola, opsi baru untuk mewakili baris 1C telah muncul - bidang Dokumen Terformat.


Mirip dengan bidang dokumen teks, Anda harus mengaturnya saat membukanya dan menuliskannya saat menyimpannya sendiri menggunakan program.

  • Pada objek 1C yang bentuknya kita buat (direktori, dokumen, pemrosesan, dll.) - tambahkan atribut dengan tipe Value Storage
  • Dalam fungsi OnReadOnServer() kita mengatur teks dari atribut

    //di sini Atribut adalah atribut tambahan dari objek 1C
    //di sini FormattedDocument adalah nama field pada formulir untuk diedit
    &Di server

    FormattedDocument = Objek Saat Ini.Atribut.Get();
    Akhir Prosedur

  • Dalam fungsi BeforeWritingOnServer() atau menggunakan tombol, kita akan menulis teks dari kolom

    &Di server
    Prosedur Saat MembacaOnServer(CurrentObject)
    CurrentObject.Props = NewValueStorage(FormattedDocument);
    Akhir Prosedur

Baris dalam 1C 8.3 dalam bahasa bawaan 1C mewakili nilai tipe primitif Garis. Nilai-nilai dari jenis ini berisi string Unicode dengan panjang sewenang-wenang. Variabel tipe string adalah sekumpulan karakter yang diapit tanda kutip.

Contoh 1. Mari membuat variabel string dengan teks.

StringVariable = "Halo dunia!";

Fungsi untuk bekerja dengan string di 1s 8.3

Bagian ini akan memberikan fungsi utama yang memungkinkan Anda mengubah baris di 1c, atau menganalisis informasi yang terkandung di dalamnya.

Panjang Str

Panjang Str(<Строка>) . Mengembalikan jumlah karakter yang terdapat dalam string yang diteruskan sebagai parameter.

Contoh 2. Mari kita hitung jumlah karakter pada baris “Halo dunia!”

String = "Halo dunia!"; JumlahKarakter = StrLength(String); Laporan (Jumlah Karakter);

Hasil eksekusi kode ini adalah tampilan jumlah karakter pada baris: 11.

Singkatan

AbbrL(<Строка>) . Memangkas karakter tidak penting di sebelah kiri karakter penting pertama dalam string.
Karakter kecil:

  • ruang angkasa;
  • ruang yang tidak dapat dipecahkan;
  • tabulasi;
  • Kereta kembali;
  • terjemahan baris;
  • terjemahan formulir (halaman).

Contoh 3. Hapus semua spasi di sisi kiri baris "dunia!" dan tambahkan baris "Halo" ke dalamnya.

String = Singkatan("dunia!"); String = "Halo"+String; Laporan(String);

Hasil dari mengeksekusi kode ini adalah tampilan baris “Hello world!”

Disingkat

Singkat(<Строка>) . Memangkas karakter tidak penting di sebelah kanan karakter penting pertama dalam string.

Contoh 4. Bentuk dari baris “Halo” dan “damai!” kalimat "Halo dunia!"

Baris = Singkatan("Halo ")+" "+ Singkatan("dunia!"); Laporan(String);

AbbrLP

AbbrLP(<Строка>) . Memangkas karakter tidak penting di sebelah kanan karakter penting pertama dalam string, dan juga memangkas karakter tidak penting di sebelah kiri karakter penting pertama dalam string. Fungsi ini lebih sering digunakan dibandingkan dua fungsi sebelumnya, karena lebih universal.

Contoh 5. Hilangkan karakter yang tidak penting di kiri dan kanan nama rekanan.

Counterparty = Direktori. Counterparty.Temukan Berdasarkan Detail("TIN", "0777121211"); AccountObject = Akun.GetObject(); CounterpartyObject.Name = AbbrLP(CounterpartyObject.Name); AccountObject.Write();

singa

Singa(<Строка>, <ЧислоСимволов>) . Mendapat karakter pertama dari string, jumlah karakter ditentukan dalam parameter Jumlah Karakter.

Contoh 6. Biarkan dalam struktur Karyawan memuat nama depan, belakang, dan patronimik karyawan. Dapatkan string dengan nama belakang dan inisial.

NamaInisial = Lev(Nama Karyawan, 1); Inisial Patronimik = Leo(Karyawan. Patronimik, 1); Nama Lengkap = Karyawan.Nama Belakang + " " + Inisial Nama Depan + "." + Inisial Tengah + ".";

Benar

Benar(<Строка>, <ЧислоСимволов>) . Mendapatkan karakter terakhir dari sebuah string, jumlah karakter yang ditentukan dalam parameter Jumlah Karakter. Jika jumlah karakter yang ditentukan melebihi panjang string, maka seluruh string akan dikembalikan.

Contoh 7. Biarkan tanggal dalam format “yyyymmdd” ditulis di akhir variabel string, dapatkan string dengan tanggal dan ubah menjadi tipe tanggal.

String = "Tanggal sekarang: 20170910"; StringDate = Hak(String, 8); Tanggal = Tanggal(StringTanggal);

Rabu

Rabu(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Mendapatkan substring dari string yang diteruskan sebagai parameter Garis, dimulai dari karakter yang nomornya ditentukan dalam parameter Nomor Awal dan panjangnya dimasukkan ke dalam parameter Jumlah Karakter. Penomoran karakter dalam satu baris dimulai dari 1. If pada parameter Nomor Awal nilai yang ditentukan kurang dari atau sama dengan nol, maka parameter mengambil nilai 1. Jika parameter Jumlah Karakter tidak ditentukan, maka karakter hingga akhir baris dipilih.

Contoh 8. Biarkan variabel string mulai dari posisi kesembilan berisi kode wilayah, Anda harus mendapatkannya dan menulisnya di baris terpisah.

String = "Wilayah: 99 Moskow"; Wilayah = Rata-rata(String, 9, 2);

Temukan Halaman

Temukan Str(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Mencari substring tertentu dalam sebuah string, mengembalikan nomor posisi karakter pertama dari substring yang ditemukan. Mari kita lihat parameter dari fungsi ini:

  • Garis. Rangkaian sumber;
  • Substring Pencarian. Substring pencarian;
  • Arah Pencarian. Menentukan arah untuk mencari substring dalam sebuah string. Dapat mengambil nilai:
    • Arah Pencarian. Dari Awal;
    • Pencarian.Arah Akhir;
  • Posisi awal. Menentukan posisi dalam string di mana pencarian dimulai;
  • NomorKejadian. Menentukan nomor kemunculan substring yang dicari dalam string sumber.

Contoh 9. Pada baris “Halo dunia!” Tentukan posisi kemunculan terakhir karakter "dan".

PositionNumber = StrFind("Halo dunia!", "dan", SearchDirection.End); Laporan(Nomor Posisi);

Hasil dari mengeksekusi kode ini adalah menampilkan angka kemunculan terakhir simbol “dan”: 9.

Misalnya

VReg(<Строка>) . Mengonversi semua karakter dalam string yang ditentukan dalam 1s8 menjadi huruf besar.

Contoh 10: Konversikan string "halo dunia!" ke huruf besar.

StringVreg = VReg("halo dunia!"); Laporan(StringVreg);

Hasil dari eksekusi kode ini adalah tampilan baris “HELLO WORLD!”

Reg

NReg(<Строка>) . Mengonversi semua karakter string yang ditentukan dalam 1s 8 menjadi huruf kecil.

Contoh 11: Konversikan string "HELLO WORLD!" untuk huruf kecil.

StringNreg = NReg("HALO DUNIA!"); Laporan(StringVreg);

Hasil dari mengeksekusi kode ini adalah tampilan baris “hello world!”

Treg

TReg(<Строка>) . Mengonversi string sebagai berikut: karakter pertama setiap kata diubah menjadi huruf besar, karakter sisa kata diubah menjadi huruf kecil.

Contoh 12: Gunakan huruf besar pada huruf pertama kata pada baris “hello world!”

StringTreg = TReg("halo dunia!"); Laporan(StringTreg);

Hasil dari mengeksekusi kode ini adalah tampilan baris “Hello World!”

Simbol

Simbol(<КодСимвола>) . Mendapat karakter dengan kode Unicodnya.

Contoh 13. Tambahkan kiri dan kanan pada baris “Hello World!” simbol ★

StringWithStars = Simbol("9733")+"Halo Dunia!"+Simbol("9733"); Laporan(StringWithStars);

Hasil dari eksekusi kode ini adalah tampilan baris “★Hello World!★”

Kode Simbol

Kode Simbol(<Строка>, <НомерСимвола>) . Mendapatkan kode karakter Unicode dari string yang ditentukan pada parameter pertama, terletak pada posisi yang ditentukan pada parameter kedua.

Contoh 14. Cari tahu kode karakter terakhir pada baris “Hello World!”

String = "Halo Dunia!"; Kode Karakter = Kode Karakter(String, StrLength(String)); Beritahu (Kode Karakter);

Hasil dari eksekusi kode ini adalah tampilan kode simbol “!” - 33.

Garis kosong

Baris kosong(<Строка>) . Memeriksa apakah string hanya terdiri dari karakter yang tidak penting, yaitu apakah kosong.

Contoh 15. Periksa apakah string yang terdiri dari tiga spasi kosong.

Kosong = KosongString(" "); Laporan(Kosong);

Hasil dari eksekusi kode ini adalah tampilan kata “Yes” (ekspresi string dengan nilai logika BENAR).

Ganti Halaman

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

Contoh 16. Pada baris “Halo Dunia!” ganti kata “Damai” dengan kata “Sahabat”.

String = StrReplace("Halo Dunia!", "Dunia", "Teman"); Laporan(String);

Hasil dari mengeksekusi kode ini adalah tampilan baris “Halo Teman!”

StrNumberLines

StrNumberBaris(<Строка>) . Memungkinkan Anda menghitung jumlah baris dalam string multibaris. Pergi ke garis baru di 1s 8 simbol digunakan PS(karakter baris baru).

Contoh 17. Tentukan jumlah baris dalam teks:
"Garis pertama
Baris kedua
Baris ketiga"

Angka = StrNumberString("Baris pertama"+Karakter.PS +"Baris kedua"+Simbol.PS +"Baris ketiga"); Nomor laporan);

Hasil eksekusi kode ini adalah tampilan jumlah baris pada teks: 3

StrGetString

StrGetString(<Строка>, <НомерСтроки>) . Mendapatkan garis dalam string multiline berdasarkan nomornya. Penomoran baris dimulai dari 1.

Contoh 18. Dapatkan baris terakhir dalam teks:
"Garis pertama
Baris kedua
Baris ketiga"

Teks = "Baris pertama" + Simbol. PS + "Baris kedua" + Simbol. LastRow = StrGetRow(Teks, StrNumberLines(Teks)); Laporan(Baris Terakhir);

Hasil eksekusi kode ini adalah tampilan baris “Baris Ketiga”.

NomorHalamanKejadian

StrNumberKejadian(<Строка>, <ПодстрокаПоиска>) . Mengembalikan jumlah kemunculan substring tertentu dalam sebuah string. Fungsinya peka huruf besar-kecil.

Contoh 19. Tentukan berapa kali huruf “c” muncul pada baris “Baris pada 1s 8.3 dan 8.2”, apapun hurufnya.

Baris = "Garis pada 1s 8.3 dan 8.2"; NumberOccurrences = StrNumberOccurrences(Vreg(String), "Dengan"); Laporan(JumlahKejadian);

Hasil dari mengeksekusi kode ini adalah tampilan jumlah kemunculan: 2.

HalamanDimulaiDengan

StrMulaiDengan(<Строка>, <СтрокаПоиска>) . Memeriksa apakah string yang diteruskan pada parameter pertama dimulai dengan string pada parameter kedua.

Contoh 20. Tentukan apakah NPWP rekanan yang dipilih diawali dengan angka 1. Masukkan variabelnya Pihak rekanan Pihak rekanan.

TIN = Pihak Rekanan.TIN; StartsUNits = StrStartsWith(TIN, "1"); Jika Dimulai dengan unit Lalu //Kode Anda EndIf;

HalamanBerakhirPada

StrEndsDengan(<Строка>, <СтрокаПоиска>) . Memeriksa apakah string yang diteruskan pada parameter pertama diakhiri dengan string pada parameter kedua.

Contoh 21. Tentukan apakah NPWP pihak yang dipilih diakhiri dengan angka 2. Masukkan variabelnya Pihak rekanan referensi ke elemen direktori disimpan Pihak rekanan.

TIN = Pihak Rekanan.TIN; EndsWithTwo = StrEndsWith(TIN, "2"); If EndsInTwo Then //Kode Anda EndIf;

Pemisahan Halaman

Pembagian Str(<Строка>, <Разделитель>, <ВключатьПустые>) . Membagi string menjadi beberapa bagian menggunakan karakter pembatas yang ditentukan dan menulis string yang dihasilkan ke array. Parameter pertama menyimpan string sumber, parameter kedua berisi string yang berisi pembatas, dan parameter ketiga menunjukkan apakah string kosong harus ditulis ke array (secara default BENAR).

Contoh 22. Misalkan kita memiliki string yang berisi angka-angka yang dipisahkan dengan simbol “;”, dapatkan array angka dari string tersebut.

Tali = "1; 2; 3"; Array = StrDivide(String, ";"); Untuk Hitungan = 0 Dengan Array.Quantity() - 1 Siklus Percobaan Array[Hitungan] = Angka(AbbrLP(Array[Hitungan])); Array Pengecualian[Sch] = 0; EndAttemptsEndCycle;

Hasil eksekusi akan diperoleh array dengan angka 1 sampai 3.

Sambungan Halaman

Sambungan Str(<Строки>, <Разделитель>) . Mengonversi larik string dari parameter pertama menjadi string yang berisi semua elemen larik yang dipisahkan oleh pembatas yang ditentukan di parameter kedua.

Contoh 23. Dengan menggunakan array angka dari contoh sebelumnya, dapatkan string aslinya.

Untuk Akun = 0 Berdasarkan Array.Quantity() - 1 Siklus Array[Act] = String(Array[Act]); Siklus Akhir; Baris = StrConnect(Array, "; ");

Diimplementasikan pada versi 8.3.6.1977.

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

Anda dapat melakukan semua tindakan yang menjalankan fungsi baru sebelumnya. Menggunakan algoritma yang kurang lebih kompleks yang ditulis dalam bahasa bawaan. Oleh karena itu, fungsi-fungsi baru tidak memberi Anda kemampuan baru yang mendasar. Namun, mereka memungkinkan Anda mengurangi jumlah kode dan membuat kode lebih sederhana dan mudah dipahami. Selain itu, mereka memungkinkan Anda untuk mempercepat pelaksanaan tindakan. Karena fungsi yang diimplementasikan dalam platform tentu saja bekerja lebih cepat dibandingkan algoritma serupa yang ditulis dalam bahasa bawaan.

Fungsi pemformatan StrTemplate()

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

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

<Шаблон>- ini adalah string yang Anda perlukan untuk mengganti representasi parameter.

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

Untuk menunjukkan tempat tertentu di templat tempat Anda ingin melakukan substitusi, Anda perlu menggunakan penanda seperti %1, ... %10. Jumlah penanda yang terlibat dalam templat dan jumlah parameter yang berisi nilai harus cocok.

Misalnya, hasil dari mengeksekusi operator seperti itu:

akan ada garis:

Kesalahan data pada baris 2 (Jenis tanggal diperlukan)

Fungsi untuk bekerja dengan string StrCompare()

Fungsi ini membandingkan dua string dengan cara yang tidak peka huruf besar-kecil. Misalnya seperti ini:

Anda bisa melakukan tindakan yang sama sebelumnya menggunakan objek Perbandingan Nilai:

Namun penggunaan fitur baru terlihat lebih mudah. Selain itu, fungsinya, tidak seperti objek Perbandingan Nilai, berfungsi baik di klien tipis maupun klien web.

Fungsi untuk bekerja dengan string StrStartsWith(), StrEndsAt()

Fungsi-fungsi ini menentukan apakah suatu string dimulai dengan substring tertentu atau apakah suatu string diakhiri dengan substring tertentu. Algoritme untuk fungsi-fungsi ini tidak sulit untuk diterapkan dalam bahasa yang disematkan, tetapi kehadirannya memungkinkan Anda menulis kode yang lebih bersih dan mudah dipahami. Dan mereka bekerja lebih cepat.

Misalnya, mereka mudah digunakan dalam pernyataan If:

Fungsi untuk bekerja dengan string StrDivide(), StrConnect()

Fungsi-fungsi ini membagi string menjadi beberapa bagian menggunakan pembatas yang ditentukan. Atau sebaliknya, mereka menggabungkan beberapa garis menjadi satu, menyisipkan pemisah yang dipilih di antara keduanya. Mereka berguna untuk membuat atau menganalisis log dan jurnal teknologi. Misalnya, Anda dapat dengan mudah mengurai entri log teknologi menjadi beberapa bagian yang sesuai untuk analisis lebih lanjut:

Fungsi untuk bekerja dengan string StrFind()

Alih-alih fungsi Find() yang lama, kami menerapkannya fitur baru, yang memiliki fitur tambahan:

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

Faktanya, ini menduplikasi kemampuan fungsi lama. Hal ini dilakukan untuk menjaga kompatibilitas dengan modul yang dikompilasi di versi lama. Disarankan agar Anda tidak lagi menggunakan fungsi Find() yang lama.

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

Halo semua
Hari ini mereka meminta saya untuk tidak menampilkan awalan dokumen saat mencetak dokumen implementasi, saya memecahkan masalah sebagai berikut.

StrReplace(Nomor, Lev(Nomor, 3), "" );

Ketika saya melihat asisten sintaksis, saya sangat menyukainya sehingga saya ingin menulisnya bekerja dengan string di 1C:Enterprise.

String dalam 1C mengacu pada tipe data primitif.

Jika kita melihat bantuan 1C, kita akan melihat deskripsi tipe String berikut:
Nilai jenis ini berisi string Unicode dengan panjang sewenang-wenang.
Jika Anda menggunakan kata-kata Anda sendiri tentang string, itu akan berhasil. String adalah suatu konstanta yang terdiri dari berbagai karakter, selalu diapit oleh tanda kutip.

Menetapkan garis
Salam = "Halo Penumpang";

String multiline masuk konfigurasi khas paling sering dibuat menggunakan pemisah vertikal “|”:
String = "Multi-baris
| tali
|tulis
|teks";

Kutipan di dalam string ditentukan tanda kutip ganda.
String = ""Teks dalam tanda kutip"";

Ada banyak operasi pada string (mencari di dalam string, menentukan yang pertama, dll.), lebih baik melihat di Syntax Assistant.
Pembantu Sintaks - Deskripsi umum bahasa bawaan -> fungsi bawaan -> fungsi untuk bekerja dengan string.

Fungsi untuk bekerja dengan string

Berikut ringkasan singkat fungsi untuk bekerja dengan string:

VReg(<Строка>) — Fungsi ini mengubah semua karakter dalam string menjadi huruf besar.

Kode Simbol(<Строка>, <НомерСимвола>) – Fungsi menerima kode karakter yang terletak di string yang ditransmisikan pada posisi dengan nomor yang ditentukan.

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

Menemukan(<Строка>, <ПодстрокаПоиска>) — Fungsi ini menemukan kemunculan string pencarian sebagai substring dalam string sumber.

NReg(<Строка>) — Fungsi ini mengubah semua karakter dalam string menjadi huruf kecil.

Benar(<Строка>, <ЧислоСимволов>) – Fungsi ini berbeda dari fungsi Kiri karena fungsi ini memilih karakter terakhir dari kanan string.

Baris kosong(<Строка>) — Fungsi ini memeriksa string untuk mengetahui keberadaan karakter penting.

Simbol(<КодСимвола>) — Fungsi ini mengubah kode karakter menjadi string yang berisi karakter tersebut.

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

AbbrLP(<Строка>) — Fungsi ini memangkas karakter tidak penting di sebelah kiri karakter penting pertama dalam baris, dan memberi spasi di sebelah kanan karakter penting terakhir dalam baris.

Singkat(<Строка>) — Fungsi ini memotong karakter tidak penting di sebelah kanan karakter penting terakhir dalam string.

Rabu(<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Fungsi memilih serangkaian karakter, dimulai dengan karakter<НачальныйНомер>, jumlah total<ЧислоСимволов>.

Panjang Str(<Строка>) — Fungsi ini mendapatkan jumlah karakter dalam satu baris.

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

StrGetString(<Строка>, <НомерСтроки>) - Fungsi ini mendapatkan string multiline berdasarkan angka.

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

StrNumberBaris(<Строка>) — Fungsi ini menghitung jumlah baris dalam string multiline. Dalam string multiline, garis dipisahkan oleh baris baru.

TReg(<Строка>) — Fungsi ini mengubah string menjadi title case. Artinya, karakter pertama setiap kata diubah menjadi huruf besar, atau menjadi huruf besar jika huruf besar tidak ditentukan untuk karakter tersebut. Karakter yang tersisa diubah menjadi huruf kecil.

Ketik Konversi
Untuk konversi tipe data secara eksplisit, ada fungsi dengan nama yang sama dengan tipe data yang digunakan untuk konversi: String(<Значение>)

StringFromNumbers = String(Nomor);

Semua fungsi ini dijelaskan secara rinci di Syntax Assistant; saya menjelaskan bagaimana Syntax Assistant dapat membantu programmer pemula di artikel.

Contoh untuk bekerja dengan string

Mengubah angka menjadi string dan sebaliknya.

Untuk mendapatkan representasi string tahun ini, gunakan fungsi Format.

Tahun = Format(Tanggal Saat Ini(), "DF=yyyy" ) // Tahun = "2012"

Untuk mengonversi angka menjadi string tanpa menyisipkan karakter pemisah grup (spasi tanpa putus), Anda harus menggunakan fungsi Format dengan parameter NG=0:

Nomor = 2012 Baris = Format(Nomor, "NH=0" ); //String = "2012"

String Tanpa spasi.