1с удалить символы из строки

Обновлено: 06.07.2024

Мы расширили набор функций, предназначенных для работы со строками. Мы это сделали для того, чтобы дать вам более развитые инструменты для разбора строковых данных. Новые функции будут удобны и полезны в технологических задачах анализа текста. В задачах, связанных с разбором текста, который содержит данные в форматированном виде. Это может быть анализ каких-то файлов, полученных от оборудования, или, например, анализ технологического журнала.

Все действия, которые выполняют новые функции, вы могли выполнять и раньше. С помощью более или менее сложных алгоритмов, написанных на встроенном языке. Поэтому новые функции не дают вам каких-то принципиально новых возможностей. Однако они позволяют сократить количество кода, сделать код более простым и понятным. А кроме этого они позволяют ускорить выполнение действий. Потому что функции, реализованные в платформе, работают, конечно же, быстрее, чем аналогичный алгоритм, написанный на встроенном языке.

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

<Шаблон> - это строка, в которую нужно подставить представления параметров.

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

Чтобы указать конкретное место в шаблоне, в которое нужно выполнить подстановку, нужно использовать маркеры вида %1, . %10. Количество маркеров, задействованных в шаблоне, и количество параметров, содержащих значения, должны совпадать.

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


Ошибка в данных в строке 2 (требуется тип Дата)

Функция работы со строками СтрСравнить()

Эта функция сравнивает две строки без учёта регистра. Например, так:


Это же действие вы могли выполнить и раньше с помощью объекта СравнениеЗначений:


Однако использование новой функции выглядит более простым. А кроме этого функция, в отличие от объекта СравнениеЗначений, работает и в тонком клиенте, и в веб-клиенте.

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

Эти функции определяют, начинается ли строка с указанной подстроки, заканчивается ли строка указанной подстрокой. Алгоритм этих функций несложно реализовать на встроенном языке, но их наличие позволяет писать более чистый и понимаемый код. И работают они быстрее.

Например, их удобно использовать в операторе Если:


Функции работы со строками СтрРазделить(), СтрСоединить()

Эти функции разделяют строку на части по указанному разделителю. Или наоборот, соединяют несколько строк в одну, вставляя между ними выбранный разделитель. Они удобны для создания или анализа логов, технологического журнала. Например, запись технологического журнала вы можете легко разобрать на части, пригодные для дальнейшего анализа:


Функция работы со строками СтрНайти()

Вместо старой функции Найти() мы реализовали новую функцию, которая имеет дополнительные возможности:

  • Поиск в разных направлениях (с начала, с конца);
  • Поиск с указанной позиции;
  • Поиск вхождения с указанным номером (второе, третье и т.д.).

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

Ниже приведён пример, использующий новые возможности поиска. Поиск в обратном направлении удобен тогда, когда вам нужен последний фрагмент формализованной строки, например, полное имя файла в URL. А поиск с указанной позиции помогает в тех случаях, когда нужно искать в известном фрагменте, а не во всей строке.

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

регистр строки

Строковые функции в 1С

Строка

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

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

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

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

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

СтрДлина

Функция определяет количество символов, которые содержатся в строковой переменной.

Найти

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

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

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

Использование данной функции позволяет определить, является ли строка пустой. Незначимые символы, например, пробел, перенос каретки и другие не учитываются.

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

Получите понятные самоучители по 1С бесплатно:

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

СтрЗаменить

Данная функция является аналогом замены в текстовых редакторах. Она позволяет подменять один символ или набор символов другим в строковых переменных.

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

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

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

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

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

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

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

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

Эти функции позволяют получать символ по его коду в кодировке Unicode, а так же определять этот код по самому символу.

Частые задачи при работе со строками

Объединение строк

Чтобы объединить несколько строк (произвести конкатенацию) достаточно использовать оператор сложения.

Преобразование типов

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

Обратите внимание, что при преобразовании числа в строку, программа автоматически добавила пробел, отделяющий тысячу. Для того чтобы этого избежать можно воспользоваться следующими конструкциями:

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

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

Многострочность, перенос строки

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

Как убрать пробелы

Для того, чтобы убрать пробелы справа или слева можно воспользоваться функцией «СокрЛП()» (а так же «СокрЛ()» и «СокрП()»):

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

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

Сравнение строк между собой

Сравнить сроки можно обычным знаком равенства. При сравнении учитывается регистр.

Анна Викулина

Строка в 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 – строки равны.

Сигнатура (жирным курсивом выделены обязательные параметры):

  • тонкий клиент
  • веб-клиент
  • мобильный клиент
  • сервер
  • толстый клиент
  • внешнее соединение
  • мобильное приложение (клиент)
  • мобильное приложение (сервер)

Строка "Какой-то текст" больше "Какой-то"

СтрНачинаетсяС, СтрЗаканчиваетсяНа – определяют (с учетом регистра) начинается/заканчивается строка с определенной подстроки. Возвращает булево.

Сигнатура (жирным курсивом выделены обязательные параметры):

  • тонкий клиент
  • веб-клиент
  • мобильный клиент
  • сервер
  • толстый клиент
  • внешнее соединение
  • мобильное приложение (клиент)
  • мобильное приложение (сервер)

"Какой-то текст" начинается с "как"

"Какой-то текст" заканчивается на "ст"

СтрРазделить – функция разбивает строку на подстроки, возвращается массив. Последний параметр определяет, нужно ли учитывать пустые строки, по умолчанию значение «Истина».

Vofka --> Vofka



Просмотр профиля

Для себя писал несколько функций, которыми периодически пользуюсь. Ничего сверхъестественного, просто полезно иметь что-то такое под рукой. Если у вас есть что-то подобное - можно так же тут выкладывать.

sava1 --> sava1



Просмотр профиля Petre --> Petre



Просмотр профиля Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія". sava1 --> sava1



Просмотр профиля Vofka --> Vofka



Просмотр профиля

Слышали. Но для них, как минимум, нужно использовать COM объект, а это использование не родного функционала платформы (я не говорю, что это есть какая-то большая проблема, но в Линуксе, например, работать оно в таком случае не будет). Конечно, во многих случаях на это можно забить. Ну и лично я в регулярных выражениях не шибко силен и мне удобнее использовать подобные функции.

Petre --> Petre



Просмотр профиля

Читайте также: