Как убрать знак абзаца в 1с
« Как стать программистом 1С » Язык 1С » 1С СокрЛП, 1С СокрЛ, 1С СокрП – удаление лишних символов
1С СокрЛП, 1С СокрЛ, 1С СокрП – удаление лишних символов
Функции 1С СокрЛП(Строка), 1С СокрЛ(Строка) и 1С СокрП(Строка) удаляют из текста лишние символы.
- Выполняем
СокрЛП("
| Привет, мир!
| ") - 1С возвращает «Привет, мир!»
- 1С СокрЛ – с начала строки до «значащих символов»
- 1С СокрП – с последнего «значащего символа» до конца строки
- 1С СокрЛП – одновременно слева и справа.
«Лишние символы», которые можно убрать с помощью 1С СокрЛ, 1С СокрП, 1С СокрЛП:
- Пробел
- Перенос строки, страницы
- Табуляция.
Лишние пробелы внутри строки, между словами функции 1С СокрЛ, 1С СокрП, 1С СокрЛП не удаляют.
Строковые реквизиты, например справочнков, имеют обычно определенную длину, например возьмем 50 символов. При вводе пользователи может ввести лишние пробелы в конце, особенно если текст в поле не вводится вручную, а копируется из сторонней программы.
Если пользователь ввел значение с пробелом, то сравнение с заданной строкой не будет работать – ведь сравнение учитывает все символы, включая незначимые.
- Пользователь ввел: «РОССИЯ «
- Мы сравниваем: Если Страна = «РОССИЯ» //не сработает
- Чтобы сработало, пишем: Если СокрЛП(Страна) = «РОССИЯ» //сработает
1С СокрЛП() некоторые программисты используют при переводе чисел в строку, вместо Строка(). Дело в том, что числа форматируются при переводе по настройкам локализации с пробелами между разрядами: 22500 -> «22 500». Однако 1С СокрЛП() не убирает пробелы между словами. Вместо этого можно применять Формат():
Число = 22500;
ЧислоСтрокой = Формат(Число, "ЧГ=0");
//ЧислоСтрокой будет равно "22500"
Добавим в наш анализатор строки программы, позволяющие удалить незначащие символы как слева и справа, так и между словами (про анализатор текста см. выше «Функции работы со строками 1С»).
Тип «Строка» встречается во всех языках программирования. Он является примитивным, и в 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»
Так же программисты часто пользуются ниже приведенной конструкцией, которая позволяет удалить, либо заменить на другой символ все пробелы текстовой переменной:
СтрокаБезПробелов = СтрЗаменить(« п р и в е т», » » ,»») // вернет «привет»
Сравнение строк между собой
Сравнить сроки можно обычным знаком равенства. При сравнении учитывается регистр.
«Здраствуйте» = «здравствуйте» // вернет Ложь
«Здраствуйте» = «Здравствуйте» // вернет Истина
«Здраствуйте» = «До свидания» // вернет Ложь
Строка — примитивный тип данных в языке программирования 1С. Помимо 1С, этот тип данных используется во всех известных языках программирования, обычно он называется «string».
Функции работы со строками в 1С
Рассмотрим основные функции встроенного языка программирования 1С.
Строка
Функция Строка() позволяет получить текстовое представление переменных других типов.
СтрДлина
Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.
СокрЛП, СокрЛ, СокрП
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Полезная функция для удаления незначащих символов в строковом значении. СокрЛ обрабатывает символы, стоящие слева от последнего значащего символа, СокрП — справа. А СокрЛП — справа и слева.
Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.
Лев, Прав, Сред
С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).
Найти
Функция для поиска подстроки внутри другой подстроки. Синтаксис Найти(, ). Функция возвращает число — номер позиции символа (или символов) в исходной подстроке. Если подстроки не найдено, вернётся число 0. Если в искомой подстроке есть несколько вхождений, вернется номер позиции первого совпадения.
ВРег, НРег, ТРег
Функции для управления регистром строки. ВРег — преобразует строку в верхний регистр. НРег — в нижний. ТРег — у каждого нового слова первая буква преобразуется в верхний регистр, остальные в нижний.
ПустаяСтрока
Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.
Аналогично можно проверить строку на пустое значение следующим образом:
СтрЗаменить
Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:
СтрЧислоСтрок
Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).
Например, построчная обработка текстового фрагмента:
СтрПолучитьСтроку
С помощью данной функции можно получить произвольную строку из многострочного текста. Синтаксис — СтрПолучитьСтроку(, ).
СтрЧислоВхождений
Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.
Символ и КодСимвола
Две обратные функции. С помощью КодСимвола можно получить код символа в кодировке Unicode. Функцией Символ можно получить символ, зная Unicode кодификатор.
Часто встречающиеся задачи по работе со строками в 1С
Рассмотрим классические примеры решения задач в работе с текстовыми переменными.
Конкатенация строк в 1С
Конкатенация, или объединение строк в 1С делается оператором «+».
Преобразовать число в строку
Тут всё просто. Достаточно использовать метод «Строка()»:
Однако может смущать наличие неразрывного пробела.
Его можно убрать с помощью замены неразрывного пробела на пустую строку:
или с помощью метода Формат:
Кавычки в строке 1С
Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.
Символ переноса строки
Символ переноса строки необходим для переноса строки на следующую строку. В 1С это можно сделать с помощью специальной конструкции «Символы.ПС».
Сравнение строк в 1С
Сравнить строки достаточно просто с помощью оператора сравнения — «=».
Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:
Таким образом, мы получим более точное сравнение двух строк.
Убрать пробелы в строке 1С
Достаточно часто нужно убрать пробелы в строке 1С.
Если требуется убрать пробелы справа и слева:
Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:
Если требуется убрать неразрывные пробелы из строки, которая получена из числового типа, сделать это можно так:
Другие статьи по 1С:
Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Часто бывает, что при загрузке и выгрузке из 1С 8.2 и 8.3 данных в числах встречаются пробелы, которые мешают нормально обрабатывать данные. Решение этой проблемы очень простое.
Рассмотрим, какие бывают виды пробелов.
Виды пробелов в 1С
Пробелы могут быть двух видов:
Убираем неразрывные пробелы
СтроковоеПредставление = Строка(Число); // система запишет в переменную «10 000»
Удалить такие пробелы в 1С очень просто через функцию формат числа:
Число = Формат(10000, «ЧГ=»);
СтроковоеПредставление = Строка(Число); // система запишет в переменную «10000»
Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>
Мы установили группировку в форматной строке Пустое значение (можно записать и «0»).
Если тип данных уже «строка», тогда можно использовать следующий способ:
СтроковоеПредставление = СтрЗаменить(Строка(СтроковоеПредставление ), Символы.НПП, «»); // в переменной СтроковоеПредставление было «10 000», стало «10000»
То есть мы просто заменили неразрывный пробел (Символы.НПП) в строке на пустое значение.
Обычные пробелы
Убрать обычный пробел в строке проще простого. Достаточно выполнить следующую функцию:
СтроковоеПредставление = СтрЗаменить(Строка(СтроковоеПредставление ), » «, «»); // «10 000», стало «10000»
Пример аналогичен предыдущему способу. Однако вместо Символы.НПП мы используем строку с одним пробелом.
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
Строка в 1С:Предприятие – это базовый тип данных, представленный в виде строки в формате unicode. Тип «строка» доступна для работы в тонком клиенте, веб-клиенте, на сервере, толстом клиенте, внешнем соединении, мобильном приложении (клиент/сервер). Тип «строка» может быть передан между клиентом и сервером, может быть сериализован.
Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен . Имя типа XDTO: может быть любым из перечисленных: string, anySimpleType, anyURI, duration, gDay, gMonth, gMonthDay, gYear, gYearMonth, NOTATION.
Существует достаточно большой список функции работы со строками в 1С, перечень функций:
- СтрДлина
- СокрЛ
- СокрП
- СокрЛП
- Лев
- Прав
- Сред
- СтрНайти
- ВРег
- НРег
- ТРег
- Символ
- КодСимвола
- ПустаяСтрока
- СтрЗаменить
- СтрЧислоСтрок
- СтрПолучитьСтроку
- СтрЧислоВхождений
- СтрСравнить
- СтрНачинаетсяС
- СтрЗаканчиваетсяНа
- СтрРазделить
- СтрСоединить
- ПолучитьСклоненияСтроки
Представленные функции строк в 1С поддерживается платформой 8.3. Для платформ более ранних версий список функций может отличаться. Подробнее о функциях – во встроенной к языке справке.
Далее каждая функция будет рассмотрена более детально.
СтрДлина – функция возвращает длину строки (число).
Сигнатура (жирным курсивом выделены обязательные параметры):
СокрЛ, СокрП, СокрЛП – эти функции очень похожи по своей сути, поэтому будут рассмотрены совместно. Функции убирают пробелы, переносы строк, перевод каретки слева (СокрЛ), справа (СокрП), слева и права (СокрЛП).
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер, толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Лев, Прав, Сред – данные функции также будут рассмотрены совместно. Функции получают определенное количество символов слева, справа, с середины строки. Результат выполнения – строка.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Как (Какой-то текст)
кст (Какой-то текст)
СтрНайти – Функция находит подстроку (первое вхождение) в строке с учетом регистра. Результат выполнения – строка.
Сигнатура (жирным курсивом выделены обязательные параметры):
- Строка – исходная строка;
- ПодстрокаПоиска – подстрока, которую нужно найти;
- НаправлениеПоиска – системное перечисление (СКонца, СНачала);
- НачальнаяПозиция – число. Указывает позицию в строке, с которой начинается поиск.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 1.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СКонца, то значение по умолчанию равно длине строки.
Допускаются значения от 1 до количества символов в строке, в которой выполняется поиск. Если указано значение, не входящее в диапазон, генерируется ошибка «Неверное значение параметра».
- НомерВхождения – Число. Номер вхождения подстроки в строку.
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
- интеграция
10 (Какой-то текст, просто пробный текст)
32 (Какой-то текст, просто пробный текст)
32 (Какой-то текст, просто пробный текст)
10 (Какой-то текст, просто пробный текст)
ВРег, НРег, ТРег – данные функции будут рассмотрены совместно. Функции изменяют регистр строк. Верхний, нижний, каждое слово с заглавной буквы.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Символ – функция возвращает символ (строку) код которой был передан (код в формате unicode).
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
КодСимвола – Функция обратная функции Символ, т.е. на вход принимает строку, возвращает код (число) символа в формате unicode.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
ПустаяСтрока – функция проверяет, пустая ли строковая переменная, возвращает тип булево. Игнорируются пробелы, переносы строк, перенос каретки.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
СтрЗаменить – функция заменяет все подстроки в строке.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
СтрЧислоСтрок – функция возвращает количество строк в многострочном документе, строки разделенные символом переноса строки.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
СтрПолучитьСтроку – Получения строки по номеру из многострочного документа.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
СтрЧислоВхождений – функция возвращает число вхождений подстроки в строку. Поиск регистронезависимый.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
СтрСравнить – функция сравнивает строки без учета регистра. Возвращается число, если -1 – тогда первая строка меньше второй, 1 – первая строка больше второй, 0 – строки равны.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
Строка "Какой-то текст" больше "Какой-то"
СтрНачинаетсяС, СтрЗаканчиваетсяНа – определяют (с учетом регистра) начинается/заканчивается строка с определенной подстроки. Возвращает булево.
Сигнатура (жирным курсивом выделены обязательные параметры):
- тонкий клиент
- веб-клиент
- мобильный клиент
- сервер
- толстый клиент
- внешнее соединение
- мобильное приложение (клиент)
- мобильное приложение (сервер)
"Какой-то текст" начинается с "как"
"Какой-то текст" заканчивается на "ст"
СтрРазделить – функция разбивает строку на подстроки, возвращается массив. Последний параметр определяет, нужно ли учитывать пустые строки, по умолчанию значение «Истина».
Читайте также: