сокрлп 1с функция что делает
Работа со строками в 1С 8.3
Строка — примитивный тип данных в языке программирования 1С. Помимо 1С, этот тип данных используется во всех известных языках программирования, обычно он называется «string».
Функции работы со строками в 1С
Рассмотрим основные функции встроенного языка программирования 1С.
Строка
Функция Строка() позволяет получить текстовое представление переменных других типов.
СтрДлина
Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.
СокрЛП, СокрЛ, СокрП
Полезная функция для удаления незначащих символов в строковом значении. СокрЛ обрабатывает символы, стоящие слева от последнего значащего символа, СокрП — справа. А СокрЛП — справа и слева.
Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.
Лев, Прав, Сред
С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).
Найти
ВРег, НРег, ТРег
Функции для управления регистром строки. ВРег — преобразует строку в верхний регистр. НРег — в нижний. ТРег — у каждого нового слова первая буква преобразуется в верхний регистр, остальные в нижний.
ПустаяСтрока
Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.
Аналогично можно проверить строку на пустое значение следующим образом:
СтрЗаменить
Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:
СтрЧислоСтрок
Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).
Например, построчная обработка текстового фрагмента:
СтрПолучитьСтроку
СтрЧислоВхождений
Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.
Символ и КодСимвола
Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.
Часто встречающиеся задачи по работе со строками в 1С
Рассмотрим классические примеры решения задач в работе с текстовыми переменными.
Конкатенация строк в 1С
Конкатенация, или объединение строк в 1С делается оператором «+».
Преобразовать число в строку
Тут всё просто. Достаточно использовать метод «Строка()»:
Однако может смущать наличие неразрывного пробела.
Его можно убрать с помощью замены неразрывного пробела на пустую строку:
или с помощью метода Формат:
Кавычки в строке 1С
Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.
Символ переноса строки
Символ переноса строки необходим для переноса строки на следующую строку. В 1С это можно сделать с помощью специальной конструкции «Символы.ПС».
Сравнение строк в 1С
Сравнить строки достаточно просто с помощью оператора сравнения — «=».
Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:
Таким образом, мы получим более точное сравнение двух строк.
Убрать пробелы в строке 1С
Достаточно часто нужно убрать пробелы в строке 1С.
Если требуется убрать пробелы справа и слева:
Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:
Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Работа со строками в 1С 8.2 и 8.3
Строка — это один из примитивных типов данных существующих 1С и работать с ним приходится практически постоянно. Следовательно необходимо иметь представление о том, какие функции для работы со строками существуют, как и когда они используются, а также, что получается в результате. Этим и займемся.
Функции для работы со строками в 1С 8.2 и 8.3
Строка
Функция Строка(x) возвращает текстовое представление переданного ей значения “x”.
СтрДлина
Функция СтрДлина(x) вычисляет количество символов в строке “x”, учитывая пробелы и ничего не значащие символы.
СокрЛП, СокрЛ, СокрП
Функции СокрЛП(x), СокрЛ(x) и СокрП(x) убирают пробелы и ничего не значащие символы у переданной строки “x” с обеих сторон, слева и справа соответственно.
Лев, Прав, Сред
Функции Лев(x, y) и Прав(x, y) возвращают количество символов “y” с левого или правого края переданной им строки “x”. А функция Сред(x, y, z) возвращает количество символов “z” из указанного места “y” переданной строки “x”.
ВРег, НРег, ТРег
Функция ВРег(x) преобразует все символы переданной строки “x” в верхний регистр, НРег(x) — в нижний регистр, ТРег(x) — первую букву каждого слова преобразует в верхний регистр, а все остальные нижний.
Найти
Функция Найти(x, y) возвращает номер первого символа первого вхождения подстроки “y” в строку “x”, если, конечно, такое вхождение найдено (при этом нумерация начинается с 1). Если же вхождений не найдено, то функция возвращает 0.
СтрЧислоВхождений
Функция СтрЧислоВхождений(x, y) возвращает количество вхождений подстроки “y” в строку “x”.
СтрЗаменить
Функция СтрЗаменить(x, y, z) позволяет в указанной строке “x” заменить все вхождения одной подстроки “y” на другую “z”, результатом выполнения функции будет строка с проведенными заменами.
ПустаяСтрока
Функция ПустаяСтрока(x) сравнивает переданную ей строку “x” с пустой и возвращает результат этого сравнения — Истина или Ложь, при этом строка состоящая из пробелов и/или ничего не значащих символов приравнивается к пустой.
СтрЧислоСтрок
Функция СтрЧислоСтрок(x) возвращает количество строк в многострочном тексте “x”.
СтрПолучитьСтроку
Функция СтрПолучитьСтроку(x, y) возвращает строку с номером “y” из многострочного текста “x”.
Символ, КодСимвола
Функция Символ(x) получает код символа “x” и возвращает строку содержащую соответствующий символ (в кодировке Unicode). Функция КодСимвола(x) делает обратное действие — получает символ “x” и возвращает его код в кодировке Unicode. Таблицу символов Unicode можно найти, например, тут.
Символы
Это не функция, а набор наиболее часто используемых специальных символов, состоит из:
ЗначениеВСтрокуВнутр, ЗначениеИзСтрокиВнутр
Функция ЗначениеВСтрокуВнутр(x) возвращает системное строковое представление значения “x”. Функция ЗначениеИзСтрокиВнутр(x) проделывает обратную операцию и возвращает значение, полученное из строкового системного представления “x”. Обе эти функции используются для сохранения функциональной совместимости с версией 7.7. Использование для каких-либо других целей не рекомендуется. В новых версиях платформы данные функции не работают (хотя их описание присутствует в справке).
ВвестиСтроку
Функция ВвестиСтроку(x, y, z, w) вызывает диалог для ввода строки, введенная строка записывается в переменную “x”, кроме этого можно указать подсказку “y”, длину вводимой строки “z”, отметку многострочности вводимого текста “w”. Функция возвращает Истина — если ввод был произведен, Ложь — если пользователь отказался от ввода. Выглядит это окно примерно так:
Программирование в 1С для всех
В предыдущей статье мы узнали, как работать со строками в 1С 8.3. В этой статье изучим самые часто применяемые функции для работы со строками 1С.
Длина строки 1С
В платформе 1С имеется функция, которая вычисляет длину строки – СтрДлина. Эта функция имеет единственный параметр – строку, и возвращает количество символов в этой строке, т.е. её длину. Причем считаются все символы, в том числе пробелы.
Регистр строки 1С
В 1С имеются функции для работы с регистрами строк.
НРег – переводит строку в нижний регистр
ВРег – переводит строку в верхний регистр
ТРег – переводит строку в титульный регистр (каждое слово начинается с заглавной буквы).
Замечу, эти функции не изменяют строку в параметре, а создают новую строку в нужном регистре.
Убрать пробелы в строке 1С
Часто возникает, что в строке 1С в начале строки или в конце строки есть лишние пробелы, которые нужно убрать. Для этих целей служат следующие функции.
СокрЛ — убирает пробелы слева строки.
СокрП — убирает пробелы справа строки.
СокрЛП – убирает пробелы справа и слева строки.
Рассмотрим пример (добавлю символы перед и после функциями, чтобы было понятно как они работают).
Эти функции, также, не изменяют строку в параметре, а создают новую строку с обрезанными пробелами.
Сократить строку 1С
Если предыдущие функции сокращали только пробелы, то в платформе 1С имеется возможность сократить и саму строку на нужное количество символов. Или наоборот – оставить нужное количество символов. Для этих целей служат следующие функции.
Функции Лев и Прав – создают новую строку, в которой оставлено слева и справа соответственно, то количество символов, которое указанно во втором параметре.
Функция Сред также создает новую строку, в которой оставлено то количество символов, которое указано в третьем параметре. Но, если предыдущие функции оставлялись символы или с начала строки, или с конца, то эта функция оставляет символы с любого места строки. Для этого во втором параметре нужно указать номер символа, с которого будут оставлены остальные символы (включая символ, номер которого мы указали).
По сути, эти функции позволяют сокращать как нужно строки, но работают наоборот – они оставляют то количество символов, которое необходимо.
Найти в строке 1С
Иногда нужно найти в строке или нужный символ, или нужную группу символов. Для этих целей применятся функция СтрНайти(). Эта функция имеет следующий синтаксис.
Данная функция возвращает позицию первого знака подстроки, которая была найдена. Если 0, то ни чего не найдено.
Строка – строка, по которой осуществляется поиск;
ПодстрокаПоиска – подстрока (или символ), которая ищется в строке поиска;
НаправлениеПоиска – системное перечисление, которое задает в какую сторону осуществляется поиск. Имеет два значения: НаправлениеПоиска.Сначала, НаправлениеПоиска.Сконца. Необязательный параметр.
НачальнаяПозиция – номер символа, с которого начинается поиск. Должен быть в диапазоне от 1 до количества символов, иначе будет ошибка. Необязательный параметр. Если он не задан и установлен параметр НаправлениеПоиска, то в случае поиска Сначала по умолчанию равен 1, а если поиск СКонца, то по умолчанию равен количеству символов в строке.
НомерВхождения – искомая подстрока (или символ) может несколько раз входить в исходную строку, этот параметр указывает, какое вхождение нас интересует. По умолчанию равен 1.
И результат работы функции
Т.е. когда мы ищем в строке «Иванов Сидоров Иванов» подстроку «Иванов», то при поиске без дополнительных параметров функция возвращает 1, это номер символа с которого начинается искомая подстрока. Если же мы ищем в направлении СКонца, то возвращается номер символа, с которого начинается второе вхождение подстроки в строку. В третьем случае мы искали в направлении СКонца, но указали номер символа, с которого нужно искать строку, поэтому функция вернула 1, поскольку при поиске начиная с 10 символа с конца строки, искомая подстрока находится только в начале строки. И в последнем примере, мы ищем подстроку с начала, но ищем второе вхождение этой подстроки.
Заменить в строке 1С
В платформе 1С 8.3. имеется метод, при помощи которого можно менять в строке определенные символы на другие символы.
Данные метод возвращается строку, в которой будет выполнена замена или нет, в зависимости от того найдена строка поиска или нет.
Как видите, при помощи этого метода можно не только менять символы, но и вырезать не нужные символы.
Функции для многострочных строк в 1С
Из предыдущей статьи вы знаете, что в 1С можно задать многострочную строку, делается это при помощи символа «|». Сейчас мы разберем несколько функций, которые могут пригодиться при работе с многострочной строкой.
СтрЧислоСтрок( ) – позволяет узнать, сколько в строке строк.
Статьи о примитивных типах
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму.
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Cтроковые функции 1c
Строковые функции в 1с позволяют работать с примитивным типом данных строка. Полный набор этих функций доступен в самых новых версиях платформы. В старых платформах некоторые функции могут отсутствовать.
Строка-примитивный тип данных в языке программирования 1с. Рассмотрим функции работы со строками.
Строка()
Функция Строка() позволяет получить текстовое представление переменной другого типа
СтрДлина()
Длина строки СтрДлина(Строка)-определяет количество символов в строке.
СокрЛ(), СокрП(), СокрЛП()
Функции удаление пробелов и незначащих символов.
Отсекает символы “Пробел”, “Неразрывный пробел (НПП)”, “Горизонтальная табулция (Таб)”, “Вертикальная табуляция (ВТаб)”, “Возврат коретки (ВК)”, “Перевод строки (ПС)”.
Удаление пробелов слева. СокрЛ(Строка).
Удаление пробелов справа. СокрП(Строка).
Удаление пробелов слева и справа. СокрЛП(Строка).
Лев(), Прав(), Сред()
Функции выделения символов из строки.
Лев(Строка,3)-выделить 3 символа слева. Функция имеет два аргумента Строка откуда выбираются символы и 3-количество выбираемых символов.
Прав(Строка,3)- выделить 3 символа слева. Функция имеет два аргумента Строка откуда выбираются символы и 3-количество выбираемых символов.
Сред(Строка,2,3)-Выделить начиная со второго три символа. Функция имеет три аргумента: Строка откуда выбираются символы, номер позиции с которой начинается выбор символов и количество выбираемых символов.
ВРег(), НРег(), ТРег()
Строковые функции управляющие регистром букв.
ПустаяСтрока()
Функция, осуществляющая сравнение исходной строки с пустой строкой. Результатом функции будет логическое значение истина или ложь.
СтрЗаменить()
Эта функция позволяет массово заменить искомое значение на заданное
СтрЧислоСтрок()
Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символ.ПС)
СтрПолучитьСтроку()
Данная функция предназначена для получения строки из многострочного текста.
СтрЧислоВхождений()
Функция для подсчета числа вхождений произвольного фрагмента в строку.
Символ() и КодСимвола()
Две обратные функции. С помощью функции КодСимвола() можно получить код символа в кодировке Unicode.
Функция Символ() позволяет получить символ зная его Unicode кодификатор.
СтрРазделить() и СтрСоединить
Функция СтрСоединить() обратная функции СтрРазделить(). СтрСоединить объединяет массив подстрок в одну строку.
Строковые функции 1с. Примеры использования.
Конкатенация строк в 1с
Конкатенация или объединение строк в 1с производиться оператором “+”.
Функции работы со строками в 1С 8.3 и 8.2
Тип «Строка» встречается во всех языках программирования. Он является примитивным, и в 1С существует много функций для работы с ним. В данной статье мы подробно рассмотрим различные способы работы со строковыми типами в 1С 8.3 и 8.2 на примерах.
Строковые функции в 1С
Строка
Для того чтобы преобразовать переменную какого-либо типа в строку, существует одноименная функция «Строка()». Входным параметром будет сама переменная, строковое представление которой необходимо получить.
Строка(Ложь) // возвращает «Нет»
Строка(12345) // возвращает «12 345»
Строка(ТекущаяДата()) //»21.07.2017 11:55:36″
Преобразовывать к строке возможно не только примитивные типы, но и остальные, например элементы справочников, документов.
СокрЛП, СокрЛ, СокрП
В качестве входных параметров данных функций выступает переменная строкового типа. Функции удаляют незначащие символы (пробелы, переносы каретки и прочие): с левой и правой стороны, только с левой стороны, и только с правой соответственно.
СокрЛП(» Будут удалены пробелы с обеих сторон «) // «Будут удалены пробелы с обеих сторон»
СокрЛ(» Будут удалены пробелы с обеих сторон «) // «Будут удалены пробелы слева »
СокрП(» Будут удалены пробелы с обеих сторон «) // « Будут удалены пробелы справа»
Лев, Прав, Сред
Данные функции позволяют обрезать часть строки. Функция «Лев()» вернет часть строки с ее левой стороны указанной длины. Функция «Прав()» аналогично, но обрезка производится справа. Функция «Сред()» позволяет указать номер символа, с которого будет выделена строка и ее длину.
Лев(«Строковая переменная», 4) // возвращает «Стро»
Прав(«Строковая переменная», 7) // возвращает «еременная»
Сред(«Строковая переменная», 2, 5)// возвращает «троко»
СтрДлина
Функция определяет количество символов, которые содержатся в строковой переменной.
СтрДлина(«Слово «) // результатом выполнения будет число 5
Найти
Функция дает возможность искать в какой-либо строковой переменной часть строки. В качестве возвращаемого значения будет выступать число, которое показывает позицию начала найденной строки. Если совпадений не обнаружено, возвращается ноль.
Обратите внимание, что поиск производится с учетом регистра. Если в изначальной строке будет больше одного вхождения подстроки поиска, функция вернет начало первого вхождения.
Найти(«раз, два, раз, два, три», «два») // функция вернет число 6
ПустаяСтрока
Использование данной функции позволяет определить, является ли строка пустой. Незначимые символы, например, пробел, перенос каретки и другие не учитываются.
ПустаяСтрока(«Пупкин Василий Иванович») // функция вернет значение Ложь
ПустаяСтрока(» «) // функция вернет значение Истина
ВРег, НРег, ТРег
Получите понятные самоучители по 1С бесплатно:
Данные функции очень полезны при сравнении и преобразовании строковых переменных. «Врег()» вернет исходную строку в верхнем регистре, «НРег()» в нижнем, а «ТРег()» отформатирует ее так, что первый символ каждого отдельного слова будет с большой буквы, а все последующие с маленькой.
ВРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «ГЕНЕРАЛЬНЫЙ ДИРЕКТОР»
НРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «генеральный директор»
ТРег(«ГеНераЛьныЙ дИРЕктОр») // возвращаемое значение – «Генеральный Директор»
СтрЗаменить
Данная функция является аналогом замены в текстовых редакторах. Она позволяет подменять один символ или набор символов другим в строковых переменных.
СтрЗаменить(«красный, белый, желтый», «,», «;») // вернет «красный; белый; желтый»
СтрЧислоСтрок
Функция позволяет определить количество строк, разделенных переносом каретке в текстовой переменной.
Цикл, в приведенном ниже примере, пройдет три круга, так как функция СтрЧислоСтрок вернет значение 3:
Для инд=1 по СтрЧислоСтрок(«Строка1» + Символы.ПС + «Строка2» + Символы.ПС + «Строка3») Цикл
КонецЦикла;
СтрПолучитьСтроку
Данная функция работает с многострочным текстом так же, как и предыдущая. Она позволяет получить определенную строку из текстовой переменной.
СтрПолучитьСтроку(«Строка1» + Символы.ПС + «Строка2» + Символы.ПС + «Строка3», 2) // вернет «Строка2»
СтрЧислоВхождений
Функция подсчитывает количество вхождений символа или подстроки в искомой строке.
СтрЧислоВложений(«а;б;в;г; «, «;») // функция вернет число 4
Символ и КодСимвола
Эти функции позволяют получать символ по его коду в кодировке Unicode, а так же определять этот код по самому символу.
КодСимвола(«А») // функция вернет число 1 040
КодСимвола(1040) // функция вернет «А»
Частые задачи при работе со строками
Объединение строк
Чтобы объединить несколько строк (произвести конкатенацию) достаточно использовать оператор сложения.
«Строка 1″ + » Строка 2″ //результатом сложения двух строк будет «Строка 1 Строка 2»
Преобразование типов
Для того, чтобы преобразовать тип в строку, например, ссылку на элемент справочника, число и прочее, достаточно использовать функцию «Строка()». Функции, подобные «СокрЛП()» так же будут преобразовывать переменные в строку, но уже сразу с отсечением незначащих символов.
Обратите внимание, что при преобразовании числа в строку, программа автоматически добавила пробел, отделяющий тысячу. Для того чтобы этого избежать можно воспользоваться следующими конструкциями:
СтрЗаменить(Строка(1000),Символы.НПП,»») // вернет «1000»
Кавычки в строке
Довольно часто вам придется сталкиваться с необходимостью указать в строковой переменной кавычки. Это может быть как текст запроса, написанный в конфигураторе, так и просто переменная. Для решения данной задачи вам достаточно установить два символа кавычек.
Заголовок = Строка(«ООО «»Рога и копыта»» — это мы!») // вернет «ООО «Рога и копыта» — это мы!»
Многострочность, перенос строки
Для того, чтобы создать многострочный текст достаточно добавить в него символы переноса строки (Символы.ПС).
МногострочныйТекст = «Первая строка» + Символы.ПС + «Вторая строка»
Как убрать пробелы
Для того, чтобы убрать пробелы справа или слева можно воспользоваться функцией «СокрЛП()» (а так же «СокрЛ()» и «СокрП()»):
СтрокаБезПробелов = СокрЛП(» Много букв «) // функция вернет значение «Много букв»
Если после преобразования числа в строку вам потребовалось убрать неразрывные пробелы, воспользуйтесь следующей конструкцией:
СтрокаБезПробелов = СтрЗаменить(Строка(99999),Символы.НПП,»») // вернет «99999»
Так же программисты часто пользуются ниже приведенной конструкцией, которая позволяет удалить, либо заменить на другой символ все пробелы текстовой переменной:
Сравнение строк между собой
Сравнить сроки можно обычным знаком равенства. При сравнении учитывается регистр.
«Здраствуйте» = «здравствуйте» // вернет Ложь
«Здраствуйте» = «Здравствуйте» // вернет Истина
«Здраствуйте» = «До свидания» // вернет Ложь