Глиф Учебники

Функции работы со строками в 1С

Справочник · 1С:Предприятие · 1 минута чтения

Строки во встроенном языке не меняются «на месте»: каждая функция возвращает новую строку, а исходная остаётся прежней. Поэтому результат присваивают переменной: Текст = СокрЛП(Текст);. Пример со всеми частыми функциями — его можно вставить в обработку «Практика» из урока Встроенный язык:

1С
&НаКлиенте
Процедура Пример(Команда)
    Текст = "  Карандаш простой  ";
    Чистый = СокрЛП(Текст);
    Сообщить("[" + Чистый + "]");
    Сообщить(СтрДлина(Чистый));
    Сообщить(Лев(Чистый, 4));
    Сообщить(Прав(Чистый, 7));
    Сообщить(Сред(Чистый, 3, 4));
    Сообщить(СтрНайти(Чистый, "ан"));
    Сообщить(СтрЗаменить(Чистый, " ", "_"));
    Сообщить(ВРег(Чистый));
КонецПроцедуры
Вывод
[Карандаш простой]
16
Кара
простой
ранд
4
Карандаш_простой
КАРАНДАШ ПРОСТОЙ

Что делает каждая

ФункцияЧто возвращает
СтрДлина(Строка)число символов
СокрЛП(Строка)строку без пробелов в начале и в конце; СокрЛ — только в начале, СокрП — только в конце
Лев(Строка, N)первые N символов
Прав(Строка, N)последние N символов
Сред(Строка, Начало, N)N символов, начиная с позиции Начало (позиции считаются с 1)
СтрНайти(Строка, Подстрока)позицию первого вхождения или 0, если не найдено
СтрЗаменить(Строка, Что, НаЧто)строку, где все вхождения заменены
ВРег, НРег, ТРегстроку в верхнем, нижнем регистре, с заглавной буквы каждого слова
СтрЧислоВхождений(Строка, Подстрока)сколько раз встречается подстрока
СтрНачинаетсяС(Строка, Начало), СтрЗаканчиваетсяНа(Строка, Конец)Истина, если строка начинается или заканчивается так

Позиции в строке считаются с 1, а не с 0, как в массиве: Сред("Карандаш", 1, 1) — «К».

Разбить и соединить

1С
&НаКлиенте
Процедура Пример(Команда)
    Части = СтрРазделить("ручка;тетрадь;линейка", ";");
    Сообщить(Части.Количество());
    Сообщить(Части[1]);
    Сообщить(СтрСоединить(Части, ", "));
КонецПроцедуры
Вывод
3
тетрадь
ручка, тетрадь, линейка

СтрРазделить возвращает массив частей, СтрСоединить собирает массив строк в одну строку через разделитель.

Шаблон и перенос строки

1С
&НаКлиенте
Процедура Пример(Команда)
    Сообщить(СтрШаблон("Товар %1, количество %2", "Ручка", 5));
    Сообщить("Первая строка" + Символы.ПС + "Вторая строка");
КонецПроцедуры
Вывод
Товар Ручка, количество 5
Первая строка
Вторая строка

СтрШаблон подставляет значения вместо %1, %2 и так далее. Символы.ПС — перенос строки, Символы.Таб — табуляция.

Подводные камни