Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Работа со строками в 1С 8.3 и 8.2

Строка — примитивный тип данных в языке программирования 1С. Помимо 1С этот тип данных используется во всех известных языках программирования, обычно он называется «string».

работа со строками в 1С

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

Рассмотрим основные функции встроенного языка программирования 1С.

Строка

Функция Строка() позволяет получить текстовое представление переменных других типов.

Пример:

Строка(ТекущаяДата()) //"23.02.2015 21:31:24"

Строка(Истина)  // Да

Строка(1058)  // "1 058"

СтрДлина

Функция позволяет получить количество символов в строке 1C включая пробелы и незначащие символы.

Например:

СтрДлина("Тестовая строка") // 15

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

Полезная функция для удаления незначащих символов в строковом значении. СокрЛ обрабатывает символы стоящие слева от последнего значащего символа, СокрП — справа. А СокрЛП справа и слева.

Пример:

СокрЛП(" Слева и справа есть незначащие символы - пробелы ") // получим строку без пробелов слева и справа

Помимо пробелов функция 1C удаляет такие символы как перенос строки, неразрывный пробел и т.д.

Лев, Прав, Сред

С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).

Пример:

Лев("Тестовая строка", 4) // "Тест"

Сред("Тестовая строка", 5, 6) // "овая с"

Найти

Функция для поиска подстроки внутри другой подстроки. Синтаксис Найти(<Строка для поиска>, <Подстрока поиска>). Функция возвращает число — номер позиции символа (или символов) в исходной подстроке. Если подстроки не найдено, вернётся число 0. Если в искомой подстроке есть несколько вхождений — вернется номер позиции первого совпадения.

Пример:

Найти("Тестовая строка", "строка") // 10

Найти("Тестовая строка", "123") // вернется 0, подстроки "123" нет в исходной строке

Найти("Тестовая строка", "я") // 8

ВРег, НРег, ТРег

Функции для управления регистром строки. ВРег — преобразует строку в верхний регистр. НРег — в нижний. ТРег — у каждого нового слова первая буква преобразуется в верхний регистр, остальные в нижний.

Пример:

ВРег("Тестовая строка")  // "ТЕСТОВАЯ СТРОКА"

НРег("Тестовая строка")  // "тестовая строка"

ТРег("Тестовая строка") // "Тестовая Строка"

ПустаяСтрока

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

Получите 267 видеоуроков по 1С бесплатно:

Пример:

ПустаяСтрока("Тест") //ложь

ПустаяСтрока(" ") // истина

Аналогично можно проверить строку на пустое значение следующим образом:

СокрЛП(" ") = "" // истина

СтрЗаменить

Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:

Например:

СтрЗаменить("Прозвольная Строка", " " , "") //"ПрозвольнаяСтрока"

СтрЧислоСтрок

Позволяет получить количество строк в многострочном тексте. Функция считает количество переноса строк (Символы.ПС).

Например, построчная обработка текстового фрагмента:

Для Н=1 по СтрЧислоСтрок(ТекстФайла) Цикл

.....

КонецЕсли;

СтрПолучитьСтроку

С помощью данной функции можно получить произвольную строку из многострочного текста. Синтаксис — СтрПолучитьСтроку(<Строка>, <Номер строки>).

Пример:

СтрокаНомер5 =  СтрПолучитьСтроку(ИсходнаяСтрока, 5)

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

Функция для подсчета числа вхождений произвольного фрагмента в строку. Например подсчитать количество вхождений определенных символов или слов в текст.

Пример:

СтрЧислоВхождений ("Тестовая строка", "т")  // 2

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

Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.

Примеры:

КодСимвола("Т")  // 1 058

Символ(1058) // "Т"

Частовстречающиеся задачи по работе со строками в 1С

Рассмотрим классические примеры решения задач в работе с текстовыми переменными.

Конкатенация строк в 1С

Конкатенация или объединение строк в 1С делается оператором «+».

Например:

"Первая часть строки " + "и вторая" // получим "Первая часть строки и вторая"

Преобразовать число в строку

Тут всё просто. Достаточно использовать метод «Строка()»:

Строка(12355.44) // "12 355,44"

Однако, может смущать наличие неразрывного пробела.

Его можно убрать с помощью замены неразрывного пробела на пустую строку:

СтрЗаменить(Строка(12355.44),Символы.НПП,"")  // "12355,44"

или с помощью метода Формат:

Строка(Формат(12355.44,"ЧГ="))

Кавычки в строке 1С

Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложно. Достаточно внутри строки поставить вместо одних кавычек — двое.

Например:

Строка("Наша организация называется ""Березка"", мы работаем на рынке с 1999 года")

Символ переноса строки

Символ переноса строки необходим для переноса строки на следующую строку. В 1С это можно сделать с помощью специальной конструкции «Символы.ПС».

Пример:

"Этот текст будет на первой строке" + Символы.ПС + "А этот на второй"

Сравнение строк в 1С

Сравнить строки достаточно просто с помощью оператора сравнения — «=».

Однако, для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:

СокрЛП(ВРег(Строка1)) = СокрЛП(ВРег(Строка2))

Таким образом, мы получим более точнее сравнение двух строк.

Убрать пробелы в строке 1С

Достаточно часто нужно убрать пробелы в строке 1С.

Если требуется убрать пробелы справа и слева:

ИсходнаяСтрока = СокрЛП(ИсходнаяСтрока)

Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:

ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, " " ,"")

Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:

ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, Символы.НПП ,"")

Другие статьи по 1С:

Видео по работе со строковыми данными в 1С:

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

Задайте ВОПРОС на нашем форуме 1С! ››

СПРОСИТЕ в комментариях!

Один комментарий на “Работа со строками в 1С 8.3 и 8.2
  1. Как в Запросе вывести в поле текст в две строки, то есть вставить символы перевода строки (CR + LF)?

    Ответить

Добавить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*