Замінити символи у рядку 1с. Нові функції роботи з рядками. Функція роботи з рядками СтрНайти()

25.10.2019 Новини

Рядки в 1С 8.3 у вбудованій мові 1с є значенням примітивного типу Рядок. Значення даного типумістять рядок у форматі Unicode довільної довжини. Змінні рядкового типу є набором символів ув'язнених у лапки.

Приклад 1. Створимо рядкову змінну тексту.

Рядкова Змінна = "Привіт світ!";

Функції роботи з рядками 1с 8.3

У даному розділібудуть наведені основні функції, що дозволяють змінювати рядки в 1с, або аналізувати інформацію, що міститься в них.

СтрДліна

СтрДліна(<Строка>) . Повертає кількість символів, що містяться в рядку, переданому у параметрі.

Приклад 2. Порахуємо кількість символів у рядку "Привіт мир!".

Рядок = "Привіт світ!"; КількістьСимволів = СтрДліна(Рядок); Повідомити (Кількість Символів);

Результатом виконання цього коду буде виведення на екран кількості символів рядка: 11.

СокрЛ

СокрЛ(<Строка>) . Відсікає незначні символи, що стоять ліворуч від першого символу в рядку.
Незначні символи:

  • пробіл;
  • нерозривна прогалина;
  • табуляція;
  • повернення каретки;
  • переклад рядка;
  • переклад форми (сторінки).

Приклад 3. Прибрати усі прогалини з лівого боку рядка світ! та приєднати до неї рядок "Привіт".

Рядок = СокрЛ ("світ!"); Рядок = "Привіт" + Рядок; Повідомити(Рядок);

Підсумком виконання цього коду буде виведення на екран рядка "Привіт мир!".

СокрП

СокрП(<Строка>) . Відсікає незначні символи, що стоять праворуч від першого символу в рядку.

Приклад 4. Сформувати з рядків "Привіт" та "світ!" фразу «Привіт світ!»

Рядок = СокрП("Привіт")+"+СокрЛ("світ!"); Повідомити(Рядок);

СокрЛП

СокрЛП(<Строка>) . Відсікає незначні символи, що стоять праворуч від першого символу в рядку, також відсікає незначні символи, що стоять ліворуч від першого символу в рядку. Ця функціявикористовується частіше за попередні два, тому що вона більш універсальна.

Приклад 5. Прибрати незначні символи ліворуч і праворуч у найменуванні контрагента.

Контрагент = Довідники.Контрагенти.ЗнайтиПоРеквізиту("ІПН", "0777121211"); КонтрагентОб'єкт = Контрагент.Отримати Об'єкт (); Контрагент Об'єкт. Найменування = СокрЛП (Контрагент Об'єкт. Найменування); КонтрагентОб'єкт. Записати ();

Лев

Лев(<Строка>, <ЧислоСимволов>) . Отримує перші символи рядка, кількість символів вказується у параметрі Число символів.

Приклад 6. Нехай у структурі Співробітникутримуватися ім'я, прізвище та по батькові співробітника. Отримати рядок із прізвищем та ініціалами.

ІніціалІмені = Лев(Співробітник.Ім'я, 1); Ініціал Батьківщини = Лев (Співробітник. По-батькові, 1); Повне Ім'я = Співробітник. Прізвище + " " + Ініціал Імені + "." + Ініціатив Батьківщини + ".";

Має рацію

Прав(<Строка>, <ЧислоСимволов>) . Отримує останні символи рядка, кількість символів вказується у параметрі Число символів.Якщо вказана кількість символів перевищує довжину рядка, то повертається весь рядок.

Приклад 7. Нехай наприкінці рядкової змінної записано дату у форматі «ггггммдд», отримати рядок з датою та перетворити її на тип Дата.

Рядок = " Поточна дата: 20170910"; РядокДата = Прав(Рядок, 8); Дата = Дата(РядокДата);

Середовище

Середовище<Строка>, <НачальныйНомер>, <ЧислоСимволов>) . Отримує підрядок із рядка переданого у параметрі Рядок, починаючи з символу, номер якого вказаний у параметрі ПочатковийНомерта довжиною переданої у параметр Число символів.Нумерація символів у рядку починається з 1. Якщо у параметрі ПочатковийНомервказано значення, менше або дорівнює нулю, параметр приймає значення 1. Якщо параметр Число символівне вказано, вибираються символи до кінця рядка.

Приклад 8. Нехай у рядковій змінній, починаючи з дев'ятої позиції, міститься код регіону, слід отримати його та записати в окремий рядок.

Рядок = "Регіон: 99 р. Москва"; Регіон = Середовище (Рядок, 9, 2);

СтрНайти

СтрНайти(<Строка>, <ПодстрокаПоиска>, <НаправлениеПоиска>, <НачальнаяПозиция>, <НомерВхождения>) . Здійснює пошук зазначеного підрядка у рядку, повертає номер позиції першого символу знайденого підрядка. Розглянемо параметри цієї функції:

  • Рядок. Вихідний рядок;
  • ПідрядкаПошук. Шуканий підряд;
  • Напрям Пошуку. Вказує напрямок пошуку підрядка у рядку. Може приймати значення:
    • НапрямокПошуку.Спочатку;
    • Напрямок Пошуку.;
  • ПочатковаПозиція. Вказує позицію у рядку, з якого починається пошук;
  • НомерВходження. Вказує номер входження шуканого підрядка у вихідному рядку.

Приклад 9. У рядку "Привіт мир!" визначити позицію останнього входження символу "і".

НомерПозиції = СтрНайти("Привіт світ!", "і", НапрямПошуку.Сконця); Повідомити(НомерПозиції);

Підсумком виконання цього коду буде виведення на екран номера останнього входження символу "і": 9.

ВРег

ВРег(<Строка>) . Перетворює всі символи вказаного рядка в 1з8 до верхнього регістру.

Приклад 10. Перетворити рядок "Привіт світ!" до верхнього регістру.

РядокВрег = ВРег("привіт світ!"); Повідомити (Рядок);

Підсумком виконання цього коду буде виведення на екран рядка «ПРИВІТ СВІТ!»

НРег

НРег(<Строка>) . Перетворює всі символи вказаного рядка в 1с 8 до нижнього регістру.

Приклад 11. Перетворити рядок «ПРИВІТ СВІТ!» до нижнього регістру.

РядокНрег = НРег("ПРИВІТ СВІТ!"); Повідомити (Рядок);

Підсумком виконання цього коду буде виведення на екран рядка «Привіт світ!»

трег

трег(<Строка>) . Перетворює рядок наступним чином: перший символ кожного слова переводиться у верхній регістр, решта символів слова перетворюється на нижній регістр.

Приклад 12. Зробити заголовними першілітери слів у рядку «Привіт мир!».

РядокТрег = ТРег("привіт світ!"); Повідомити(РядокТрег);

Підсумком виконання цього коду буде виведення на екран рядка "Привіт Світ!"

Символ

Символ(<КодСимвола>) . Отримує символ за кодом кодування Unicod.

Приклад 13. Додамо ліворуч та праворуч у рядок «Привіт Мир!» символ ★

РядокЗі зірками = Символ("9733")+"Привіт Світ!"+Символ("9733"); Повідомити (Рядок зі Зірками);

Підсумком виконання цього коду буде виведення на екран рядка «Привіт Мир!★»

КодСимволу

КодСимволу(<Строка>, <НомерСимвола>) . Отримує код символу в кодуванні Unicode з рядка, зазначеного в першому параметрі, розташованого в позиції, зазначеній у другому параметрі.

Приклад 14. Дізнатись код останнього символу в рядку «Привіт Світ!».

Рядок = "Привіт Світ!"; КодСимволу = КодСимволу(Рядок, СтрДліна(Рядок)); Повідомити(КодСимволу);

Підсумком виконання цього коду буде виведення на екран коду символу "!" - 33.

Порожня стрічка

Порожня стрічка(<Строка>) . Перевіряє, чи складається рядок тільки з незначних символів, тобто чи є він порожнім.

Приклад 15. Перевірити чи порожній рядок складається з трьох пробілів.

Порожня = ПорожняРядок(" "); Повідомити(Порожня);

Результатом виконання цього коду буде виведення на екран слова «Так» (рядковий вираз логічного значення Істина).

СтрЗамінити

Стр Замінити (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) . Знаходить у вихідному рядку всі входження підрядка пошуку та замінює її на підрядок заміни.

Приклад 16. У рядку "Привіт Мир!" замінити слово "Світ" на слово "Друзі".

Рядок = СтрЗаменить("Привіт Світ!", "Світ", "Друзі"); Повідомити(Рядок);

Підсумком виконання цього коду буде виведення на екран рядка "Привіт Друзі!"

СтрЧислоРядок

СтрЧислоРядок(<Строка>) . Дозволяє порахувати кількість рядків у рядковому рядку. Для переходу на новий рядокв 1с 8 використовується символ ПС(Символ перекладу рядка).

Приклад 17. Визначити кількість рядків у тексті:
«Перший рядок
Другий рядок
Третій рядок»

Число = СтрЧіслоРядок("Перший рядок"+Символи.ПС +"Другий рядок"+Символи.ПС +"Третій рядок"); Повідомити (Число);

Результатом виконання цього коду буде виведення на екран кількості рядків у тексті: 3

СтрОтриматиРядок

СтрОтриматиРоку(<Строка>, <НомерСтроки>) . Отримує рядок у рядковому рядку за його номером. Нумерація рядків починається з першого.

Приклад 18. Отримати останній рядок у тексті:
«Перший рядок
Другий рядок
Третій рядок»

Текст = "Перший рядок" + Символи. ПС + "Другий рядок" + Символи. ПС + "Третій рядок"; ОстанняРядок = СтрОтриматиРоку(Текст, СтрЧислоРядок(Текст)); Повідомити(ОстанняРядок);

Підсумком виконання цього коду буде виведення на екран рядка "Третій рядок".

СтрЧислоВходжень

СтрЧИСЛОВХОДЖЕНЬ(<Строка>, <ПодстрокаПоиска>) . Повертає кількість входжень зазначеного підрядка в рядок. Функція чутлива до регістру.

Приклад 19. Визначити скільки разів входить до рядка «Рядки в 1с 8.3 і 8.2» буква «с», незалежно від її регістру.

Рядок = "Рядки в 1с 8.3 і 8.2"; ЧислоВходжень = СтрЧіслоВходінь(Врег(Рядок), "С"); Повідомити(ЧислоВходжений);

Результатом виконання цього коду буде виведення на екран числа входжень: 2.

ПочинаєтьсяС

ПочинаєтьсяС(<Строка>, <СтрокаПоиска>) . Перевіряє чи починається рядок переданий у першому параметрі, з рядка у другому параметрі.

Приклад 20. Визначити чи починається ІПН обраного контрагента з цифри 1. Нехай у змінній Контрагент Контрагенти.

ІПН = Контрагент.ІПН; ПочинаєтьсяСединиці = СтрНачинаетсяС(ІПН, "1"); Якщо починаєтьсяСединиці Тоді //Ваш код КінецьЯкщо;

СтрЗакінчуєтьсяНа

СтрЗаканчиваетсяНа(<Строка>, <СтрокаПоиска>) . Перевіряє чи закінчується рядок переданий у першому параметрі, на рядок у другому параметрі.

Приклад 21. Визначити чи закінчується ІПН обраного контрагента на цифру 2. Нехай у змінній Контрагентзберігається посилання на елемент довідника Контрагенти.

ІПН = Контрагент.ІПН; Закінчується На Двійку = Стр Закінчується На (ІПН, "2"); Якщо закінчується на двійку тоді // Ваш код Кінець Якщо;

Поділити

Розділити(<Строка>, <Разделитель>, <ВключатьПустые>) . Розділяє рядок на частини за вказаними символами-розділювачами та записує отримані рядки у масив. У першому параметрі зберігається вихідний рядок, у другому рядок містить роздільник, у третьому вказується, чи потрібно записувати в масив порожні рядки (за замовчуванням Істина).

Приклад 22. Нехай у нас є рядок, який містить числа розділені символом «;», отримати з рядка масив чисел.

Рядок = "1; 2; 3"; Масив = РОЗДІЛИТИ(Рядок, ";"); Для Сч = 0 По Масив. Кількість () - 1 Цикл Спроба Масив [Сч] = Число (СокрЛП (Масив [Сч])); Виняток Масив [Сч] = 0; КінецьСпроби КінецьЦикл;

В результаті виконання буде отримано масив із числами від 1 до 3-х.

СтрЗ'єднати

СтрЗ'єднати(<Строки>, <Разделитель>) . Перетворює масив рядків з першого параметра на рядок, що містить всі елементи масиву через роздільник, зазначений у другому параметрі.

Приклад 23. Використовуючи масив чисел із попереднього прикладу, одержати вихідний рядок.

Для Сч = 0 По Масив. Кількість () - 1 Цикл Масив [Сч] = Рядок (Масив [Сч]); КінецьЦикл; Рядок = СтрЗ'єднати(Масив, "; ");

Всім привіт
Сьогодні попросили мене під час друку документа реалізації не виводити префікс документа, завдання вирішив так.

СтрЗаменить(Номер, Лев (Номер, 3), "");

Коли заглянув у синтакс-помічник, то мені це сподобалося, що захотілося написати про роботі з рядками у «1С:Підприємство».

Рядок у 1С відноситься до примітивного типу даних.

Якщо подивитися у довідку 1С побачимо наступний опис типу Рядок (String)
Значення цього типу містять рядок у форматі Unicode довільної довжини.
Якщо своїми словами про рядки, то вийде. Рядок - константа, що складається з різних символів, завжди обрамляється лапками.

Завдання рядка
Звернення = "Привіт пасажир";

Багаторядкові рядки у типових конфігураціях найчастіше створюються за допомогою вертикального роздільника «|»:
Рядок = «Многорядкова
|рядок
|пиши
|текст»;

Лапка всередині рядка задаються подвійними лапками.
Рядок = «Текст у лапках»;

Над рядками існує безліч операцій (пошук у середині рядка, визначення перших і т.д.), краще подивитися Синтакс-помічник.
Синтакс-помічник Загальний описвбудованої мови-> вбудовані функції-> функції роботи з рядками.

Функцій по роботі з рядками

Тут у короткій формі наведу функцій роботи з рядками:

ВРег(<Строка>) — Усі символи рядка функція перетворює на верхній регістр.

КодСимволу(<Строка>, <НомерСимвола>) – Функція отримує код символу, розташованого у переданому рядку у позиції із зазначеним номером.

Лев(<Строка>, <ЧислоСимволов>) – Функція вибирає перші ліворуч символи рядка.

Знайти (<Строка>, <ПодстрокаПоиска>) — Функція знаходить входження шуканого рядка як підрядки у вихідному рядку.

НРег(<Строка>) — Функція перетворює всі символи рядка на нижній регістр.

Прав(<Строка>, <ЧислоСимволов>) – Ця функція відрізняється від функцій Лев (Left) тим, що вибирає останні праворуч символи рядка.

Порожня стрічка(<Строка>) — Функція перевіряє рядок на наявність символів.

Символ(<КодСимвола>) — Функція перетворює код символу на рядок, який містить символ.

СокрЛ(<Строка>) — Функція відсікає незначні символи, що стоять ліворуч від першого символу в рядку.

СокрЛП(<Строка>) — Функція відсікає незначні символи, що стоять ліворуч від першого символу в рядку, і пробіли, що стоять праворуч від останнього символу в рядку.

СокрП(<Строка>) — Функція відсікає незначні символи, що стоять праворуч від останнього символу в рядку.

Середовище<Строка>, <НачальныйНомер>, <ЧислоСимволов>) — Функція вибирає рядок символів, починаючи із символу<НачальныйНомер>, загальною кількістю<ЧислоСимволов>.

СтрДліна(<Строка>) — Функція отримує кількість символів у рядку.

Стр Замінити (<Строка>, <ПодстрокаПоиска>, <ПодстрокаЗамены>) — Функція знаходить у вихідному рядку всі входження підрядка пошуку та замінює її на підрядок заміни.

СтрОтриматиРоку(<Строка>, <НомерСтроки>) — Функція отримує рядок рядкового рядка за номером.

СтрЧИСЛОВХОДЖЕНЬ(<Строка>, <ПодстрокаПоиска>) — Функція обчислює кількість входжень підрядка пошуку у вихідному рядку.

СтрЧислоРядок(<Строка>) — Функція вважає число рядків у рядковому рядку. У рядковому рядку рядки розділені символами перекладу рядків.

трег(<Строка>) — Функція перетворює рядок до титульного регістру. Це означає, що у кожного слова перший символ перетворюється на титульний регістр або верхній регістр, якщо титульний регістр для символу не визначено. Інші символи перетворюються на нижній регістр.

Перетворення типів
Для явного перетворення типів даних є функції однойменні з типом даних, якого відбувається перетворення: Рядок(<Значение>)

РядокІзЧисел = Рядок(Число);

Всі ці функції докладно описані в Синтакс-помічник, як програміст-початківець може допомогти Синтакс-помічник, я описав у статті .

Приклади роботи з рядками

Перетворення числа на рядок і назад.

Для отримання строкового подання року слід використовувати опцію Формат.

Рік = Формат(ПоточнаДата(), "ДФ=yyyy") // Рік = "2012"

Щоб перетворити число до рядка без вставки символу-розділювача груп (нерозривної пробілу), необхідно застосувати функцію Формат із параметром ЧГ=0:

Число = 2012 Рядок = Формат (Число, "ЧГ = 0"); //Рядок = "2012"

Рядок Без пробілів.

Реалізовано у версії 8.3.6.1977.

Ми розширили набір функцій для роботи з рядками. Ми це зробили для того, щоб дати вам розвиненіші інструменти для розбору рядкових даних. Нові функції будуть зручні та корисні у технологічних завданнях аналізу тексту. У завданнях, пов'язаних із розбором тексту, який містить дані у форматованому вигляді. Це може бути аналіз якихось файлів, одержаних від обладнання, або, наприклад, аналіз технологічного журналу.

Всі дії, які виконують нові функції, ви могли виконувати раніше. За допомогою більш менш складних алгоритмів, написаних вбудованою мовою. Тому нові функції не дають вам якихось нових можливостей. Однак вони дозволяють скоротити кількість коду, зробити код більш простим та зрозумілим. А крім цього, вони дозволяють прискорити виконання дій. Тому що функції, реалізовані в платформі, працюють, звичайно ж, швидше, ніж аналогічний алгоритм, написаний вбудованою мовою.

Функція форматування СтрШаблон()

Ця функція підставляє параметри рядка. Потреба такого перетворення часто виникає, наприклад, під час виведення попереджуючих повідомлень. Синтаксис цієї функції виглядає так:

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

<Шаблон>- Це рядок, в який потрібно підставити уявлення параметрів.

<Значение1> , ... <Значение10>- Це параметри (максимально - десять), уявлення яких потрібно підставити в рядок.

Щоб вказати конкретне місце у шаблоні, в якому потрібно виконати підстановку, потрібно використовувати маркер виду %1, ... %10. Кількість маркерів, задіяних у шаблоні, та кількість параметрів, що містять значення, повинні збігатися.

Наприклад, результатом виконання такого оператора:

буде рядок:

Помилка даних у рядку 2 (потрібен тип Дата)

Функція роботи з рядками Сравнить()

Ця функція порівнює два рядки без урахування регістру. Наприклад, так:

Цю ж дію ви могли виконати і раніше за допомогою об'єкта ПорівнянняЗначень:

Однак, використання нової функції виглядає більш простим. А крім цього функція, на відміну від об'єкта ПорівнянняЗначень, працює і в тонкому клієнту, та у веб-клієнті.

Функції роботи з рядками СтрНачинаетсяС(), СтрЗаканчиваетсяНа()

Ці функції визначають, чи починається рядок із зазначеного підрядка, чи закінчується рядок зазначеним підрядком. Алгоритм цих функцій нескладно реалізувати вбудованою мовою, але їх наявність дозволяє писати більш чистий і зрозумілий код. І працюють вони швидше.

Наприклад, їх зручно використовувати в операторі Якщо:

Функції роботи з рядками СтрРозділити()

Ці функції поділяють рядок на частини за вказаним роздільником. Або навпаки, з'єднують кілька рядків в один, вставляючи між ними вибраний роздільник. Вони зручні створення чи аналізу логів, технологічного журналу. Наприклад, запис технологічного журналу можна легко розібрати на частини, придатні для подальшого аналізу:

Функція роботи з рядками СтрНайти()

Замість старої функції Знайти() ми реалізували нову функціюяка має додаткові можливості:

  • Пошук у різних напрямках (з початку, з кінця);
  • Пошук із зазначеної позиції;
  • Пошук входження із зазначеним номером (друге, третє тощо).

Фактично, вона дублює можливості старої функції. Так зроблено для того, щоб зберегти сумісність із модулями, скомпільованими у старих версіях. Стару функцію Знайти() рекомендується не використовувати.

Нижче наведено приклад, який використовує нові можливості пошуку. Пошук у зворотному напрямку зручний тоді, коли вам потрібен останній фрагмент формалізованого рядка, наприклад повне ім'я файлу в URL. А пошук із зазначеної позиції допомагає у тих випадках, коли потрібно шукати у відомому фрагменті, а не у всьому рядку.

Механізмів для роботи з рядками у запитах 1С мало. По-перше, рядки можна складати. По-друге, від рядка можна взяти підрядок. По-третє, рядки можна порівнювати, зокрема за шаблоном. Ось мабуть і все, що можна робити з рядками.

Складання рядків

Для додавання рядків у запиті використовується операція «+». Складати можна лише рядки обмеженої довжини.

ВИБРАТИ "Найменування: " + Контрагенти.Найменування ЯК Колонка1 З Довідник.Контрагенти ЯК Контрагенти ДЕ Контрагенти.Посилання = &Посилання

Функція Підстроювання

ПІДСТРОКУ(<Строка>, <НачальнаяПозиция>, <Длина>)

Аналог функції Серед () з об'єктної моделі. Функція Підстрока() може застосовуватися до даних рядкового типу та дозволяє виділити фрагмент <Строки> , що починається з номер символ <НачальнаяПозиция> (символи в рядку нумеруються з 1) та довжиною <Длина> символів. Результат обчислення функції має рядковий тип змінної довжини, причому довжина вважатиметься необмеженою, якщо <Строка> має необмежену довжину та параметр <Длина> не є константою чи перевищує 1024.

Якщо довжина рядка менша, ніж зазначено у другому параметрі, то функція поверне порожній рядок.

Увага!Використання функції ПІДСТРОКУ() з метою приведення рядків необмеженої довжини до рядків обмеженої довжини не рекомендується. Замість неї краще використовувати операцію наведення типу ВИРАЗИТИ().

Функція Подібно

Якщо потрібно переконатися, що рядковий реквізит відповідає певним критеріям, ми його порівнюємо:

ВИБРАТИ Контрагенти.Найменування ЯК Колонка1 З Довідник.Контрагенти ЯК Контрагенти ДЕ Контрагенти.Найменування = "Газпром"

А що, якщо потрібно хитріше порівняння? Не просто на рівність чи нерівність, а на подібність до певного шаблону? Ось саме для цього і створена функція подібно.

ПОДІБНО — Оператор перевірки рядка на зразок шаблону. Аналог LIKE у SQL.

Оператор подібно дозволяє порівняти значення виразу, вказаного зліва від нього, з рядком шаблону, вказаним праворуч. Значення виразу має мати рядок. Якщо значення виразу задовольняє шаблон - результатом оператора буде ІСТИНА, інакше - БРЕХНЯ.

Наступні символи у рядку шаблону є службовими і мають сенс, відмінний від символу рядка:

  • % (відсоток): послідовність, що містить будь-яку кількість довільних символів;
  • _ (підкреслення): один довільний символ;
  • […] (у квадратних дужкаходин або кілька символів): будь-який одиночний символ із перелічених усередині квадратних дужок. У перерахуванні можуть зустрічатися діапазони, наприклад, a-z, що означають довільний символ, що входить в діапазон, включаючи кінці діапазону;
  • [^…] (у квадратних дужках значок заперечення, за яким слідує один або кілька символів): будь-який одиночний символ, крім тих, які перелічені слідом за значком заперечення.

Будь-який інший символ означає сам себе і не несе жодного додаткового навантаження. Якщо як самого себе необхідно записати один із перелічених символів, то йому має передувати<Спецсимвол>. Сам<Спецсимвол>(будь-який відповідний символ) визначається в цьому ж операторі після ключового словаСПЕЦСИМВОЛ.

Тип «Рядок» зустрічається у всіх мовах програмування. Він є примітивним, і у 1С існує багато функцій для роботи з ним. У цій статті ми докладно розглянемо різні способироботи з рядковими типами в 1С 8.3 та 8.2 на прикладах.

Рядок

Для того, щоб перетворити змінну будь-якого типу на рядок, існує однойменна функція «Рядок()». Вхідним параметром буде сама змінна, рядкове представлення якої потрібно отримати.

Рядок (Брехня) // Повертає «Ні»
Рядок(12345) // повертає «12 345»
Рядок(ПоточнаДата()) //»21.07.2017 11:55:36″

Перетворювати до рядка можна як примітивні типи, а й інші, наприклад елементи довідників, документів.

СокрЛП, СокрЛ, СокрП

Як вхідні параметри даних функцій виступає змінна рядкового типу. Функції видаляють незначні символи (пробіли, переноси каретки та інші): з лівого та правого боку, тільки з лівого боку, і лише з правого відповідно.

СокрЛП("Будуть видалені пробіли з обох сторін") // "Будуть видалені пробіли з обох сторін"
СокрЛ("Будуть видалені пробіли з обох сторін") // "Будуть видалені пробіли зліва"
СокрП(" Будуть видалені пробіли з обох сторін") // "Будуть видалені пробіли праворуч"

Лев, Правий, Середовище

Ці функції дозволяють обрізати частину рядка. Функція «Лев()» поверне частину рядка з лівого боку зазначеної довжини. Функція «Прав()» аналогічна, але обрізка проводиться праворуч. Функція «Серед()» дозволяє вказати номер символу, з якого буде виділено рядок та його довжину.

Лев («Строкова змінна», 4) // Повертає «Стро»
Прав(«Строкова змінна», 7) // повертає «ременна»
Середовище («Строкова змінна», 2, 5)// повертає «троко»

СтрДліна

Функція визначає кількість символів, які містяться у рядковій змінній.

СтрДліна («Слово») // Результатом виконання буде число 5

Знайти

Функція дає можливість шукати в будь-якій рядковій змінній частині рядка. Як значення, що повертається буде виступати число, яке показує позицію початку знайденого рядка. Якщо збігів не виявлено, нуль повертається.

Зверніть увагу, що пошук здійснюється з урахуванням регістру. Якщо в початковому рядку буде більше одного входження підрядка пошуку, функція поверне початок першого входження.

Знайти («раз, два, раз, два, три», «два») // Функція поверне число 6

Порожня стрічка

Використання цієї функції дозволяє визначити, чи є рядок порожнім. Незначні символи, наприклад, пробіл, перенесення каретки та інші не враховуються.

ПорожнійРядок («Пупкін Василь Іванович») // функція поверне значення Брехня
ПорожнійРядок() «) // функція поверне значення Істина

ВРег, НРег, трег

Ці функції дуже корисні при порівнянні та перетворенні рядкових змінних. «Врег()» поверне вихідний рядок у верхньому регістрі, «НРег()» у нижньому, а «Трег()» відформатує її так, що перший символ кожного окремого слова буде з великої літери, а всі наступні з маленької.

ВРег(«ГеНЕРАЛЬНИЙ ДИРЕКТОР») // значення, що повертається – «ГЕНЕРАЛЬНИЙ ДИРЕКТОР»
НРег(«ГеНераЛьний дИРЕктОр») // значення, що повертається – «генеральний директор»
ТРег («ГеНераЛьНий дІРЕктОр») // значення, що повертається – «Генеральний Директор»

СтрЗамінити

Ця функція є аналогом заміни в текстових редакторах. Вона дозволяє підміняти один символ або набір символів іншим у рядкових змінних.

СтрЗаменить(«червоний, білий, жовтий», «,», «;») // поверне «червоний; білий; жовтий»

СтрЧислоРядок

Функція дозволяє визначити кількість рядків, розділених перенесенням каретки в текстовій змінній.

Цикл, у наведеному нижче прикладі, пройде три кола, оскільки функція СтрЧислоРок поверне значення 3:

Для інд=1 по СтрЧислоРядок («Рядок1» + Символи.ПС + «Рядок2» + Символи.ПС + «Рядок3») Цикл
<тело цикла>
КінецьЦикл;

СтрОтриматиРядок

Ця функція працює з багаторядковим текстом так само, як і попередня. Вона дозволяє отримати певний рядок із текстової змінної.

СтрОтриматиСтроку(«Рядок1» + Символи.ПС + «Рядок2» + Символи.ПС + «Рядок3», 2) // поверне «Рядок2»

СтрЧислоВходжень

Функція підраховує кількість входжень символу або підрядки в рядку.

СтрЧислоВкладень(«а;б;в;г;«,«;») // функція поверне число 4

Символ та КодСимволу

Ці функції дозволяють отримувати символ за кодом у кодуванні Unicode, а також визначати цей код за самим символом.

КодСимволу(«А») // функція поверне число 1040
Код Символу (1040) // Функція поверне «А»

Часті завдання під час роботи з рядками

Об'єднання рядків

Щоб об'єднати кілька рядків (здійснити конкатенацію), достатньо використовувати оператор додавання.

"Рядок 1" + "Рядок 2" //результатом складання двох рядків буде "Рядок 1 Рядок 2"

Перетворення типів

Для того, щоб перетворити тип на рядок, наприклад, посилання на елемент довідника, число та інше, достатньо використовувати функцію «Рядок()». Функції, подібні до «СокрЛП()» так само перетворюватимуть змінні в рядок, але вже відразу з відсіканням незначних символів.

Рядок (1000) // поверне «1 000»

Зверніть увагу, що при перетворенні числа в рядок, програма автоматично додала пробіл, що відокремлює тисячу. Для того, щоб цього уникнути, можна скористатися такими конструкціями:

СтрЗаменить(Рядок(1000),Символи.НПП,»») // поверне «1000»

Рядок (Формат (1000, "ЧГ =")) // поверне "1000"

Лапки у рядку

Досить часто вам доведеться стикатися з необхідністю вказати у рядковій змінній лапці. Це може бути текст запиту, написаний в конфігураторі, так і просто змінна. Для вирішення цього завдання вам достатньо встановити два символи лапок.

Заголовок = Рядок («ТОВ ««Роги та копита»» - це ми!») // поверне «ТОВ «Роги та копита» - це ми!»

Багаторядність, перенесення рядка

Для того, щоб створити багаторядковий текст, достатньо додати до нього символи перенесення рядка (Символи.ПС).

Багаторядковий Текст = «Перший рядок» + Символи.ПС + «Другий рядок»

Як прибрати прогалини

Для того, щоб прибрати прогалини праворуч або зліва можна скористатися функцією «СокрЛП()» (а також «СокрЛ()» та «СокрЛ()»):

РядокБезпробілів = СокрЛП("Багато букв") // функція поверне значення "Багато букв"

Якщо після перетворення числа в рядок вам потрібно прибрати нерозривні прогалини, скористайтеся наступною конструкцією:

РядокБезпробілів = СтрЗаменить(Рядок(99999),Символи.НПП,»») // поверне «99999»

Також програмісти часто користуються нижче наведеною конструкцією, яка дозволяє видалити, або замінити на інший символ усі прогалини текстової змінної:

РядокБезпробілів = Стр Замінити («прийом», », »») // поверне «привіт»

Порівняння рядків між собою

Порівняти терміни можна звичайним знаком рівності. При порівнянні враховується регістр.

«Здрастуйте» = «здравствуйте» // поверне Брехня
«Здрастуйте» = «Здрастуйте» // поверне Істина
«Здрастуйте» = «До побачення» // поверне Брехня