Как найти строку в 1с
Перейти к содержимому

Как найти строку в 1с

  • автор:

Функция Найти()

Число
Позиция первого знака найденной подстроки.

Описание

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

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

Доступность

Версия Поддержка
8.1 Сервер, Клиент, Внешнее соединение
8.2 Сервер, Толстый клиент, Тонкий клиент, Веб-клиент, Внешнее соединение
8.3 Сервер, Толстый клиент, Тонкий клиент, Веб-клиент, Внешнее соединение, Мобильный автономный сервер, Мобильный клиент, Мобильное приложение

Пример использования

Пример кода с использованием функции Найти() :

ИсходнаяСтрока = "abc"; Если Найти(ИсходнаяСтрока, "ab") > 0 Тогда Сообщить("Нашли ab"); КонецЕсли; //обращайте внимание на регистр! //следующая строка не будет найдена: Если Найти(ИсходнаяСтрока, "Ab") = 0 Тогда Сообщить("Не нашли Ab"); КонецЕсли; //чтобы найти, необходимо привести строку к одному регистру Если Найти(Нрег(ИсходнаяСтрока), Нрег("Ab")) > 0 Тогда Сообщить("Нашли Ab"); КонецЕсли; 

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

  1. Новые строковые функции 1С 8.3
  2. Функция СтрНайти()

Как найти строку в 1с

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

Полный синтаксис (нажмите, чтобы раскрыть)

Строка

Описание:

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

Обратите внимание. Для строки в 1С НЕ доступен обход её символов посредством оператора Для Каждого . Из . Цикл. Также НЕ доступно обращение к отдельным символам посредством оператора [. ]. Взятие отдельного символа строки возможно при помощи специальных функций для работы со строками, например, Сред (см. примеры использования ниже). При этом нумерация символов в строках 1С идёт с единицы.

Литералы:

Литералы строкового типа представляют собой набор символов заключенных в кавычки. Для задания в строке символа » (кавычка) необходимо записать две кавычки подряд. Кроме того, допускаются «многострочные» строковые константы. В исходном тексте многострочные константы могут задаваться двумя способами:

  • Между фрагментами, представляющими отдельные строки многострочной строки, не должно встречаться никаких символов, за исключением пробелов, переводов строки и строк комментариев.
  • Каждая отдельная составляющая не замыкается кавычками, а на каждой последующей строке помещен символ переноса строки | (вертикальная черта). В этом варианте комментарии допускаются, если строка начинается с символа комментария //.

Оглавление (нажмите, чтобы раскрыть)

  • Как найти длину строки
  • Как взять часть строки
  • Как найти подстроку
  • Как узнать число вхождений подстроки в строку
  • Как заменить подстроку в строке
  • Как проверить на пустую строку
  • Как удалить незначащие символы из строки
  • Как вставить в строку перенос
  • Как работать с многострочными строками (нумерация с единицы)
  • Верхний, нижний и титульный регистры
  • Как получить код символа строки
  • Как преобразовать строку в число
  • Как преобразовать число в строку
  • Как разбить строку с разделителями
  • Как сериализовать значение в строку
  • Как десериализовать значение из строки
  • Скачать и выполнить эти примеры на компьютере

Строки в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Найти() – поиск в строке [Функция 1С]

Позволяет найти в строке определенные символы или слова.
Если строка найдена возращается позиция первого символа. Нумерация символов в строке начинается с 1.
Если строка не содержит указанных символов, возвращается 0.

Синтаксис

Параметры

<ИсходнаяСтрока>— исходная строка [строка]
— искомые символы [строка]

Возвращаемое значение:

позиция первого символа или 0 [Число]

Прочее

Доступность (для версии 8.2):
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.

Пример

Текст = "Иванов Иван Иванович"; Если Найти(Текст, "Иван") > 0 Тогда Сообщить(Найти(Текст, "Иван")); // результат: 1 КонецЕсли; // ИЛИ так Текст = "Петров Иван Иванович"; Результат = Найти(Текст, "Иван"); Если Результат > 0 Тогда Сообщить(Результат); // результат: 8 КонецЕсли;

Функции строк в 1С. Часть 1

В предыдущей статье мы узнали, как работать со строками в 1С 8.3. В этой статье изучим самые часто применяемые функции для работы со строками 1С.

Длина строки 1С

В платформе 1С имеется функция, которая вычисляет длину строки – СтрДлина. Эта функция имеет единственный параметр – строку, и возвращает количество символов в этой строке, т.е. её длину. Причем считаются все символы, в том числе пробелы.

СтрокаПримера1= "результат "; СтрокаПримера2= "результат"; ДлинаСтроки1 = СтрДлина(СтрокаПримера1); ДлинаСтроки2 = СтрДлина(СтрокаПримера2); Сообщить("Длина строки:""" + СтрокаПримера1 + """ color: red;">+ ДлинаСтроки1); Сообщить("Длина строки:""" + СтрокаПримера2 + """ color: red;">+ ДлинаСтроки2); 

Длина строки 1С

Регистр строки 1С

В 1С имеются функции для работы с регистрами строк.

НРег – переводит строку в нижний регистр

ВРег – переводит строку в верхний регистр

ТРег – переводит строку в титульный регистр (каждое слово начинается с заглавной буквы).

СтрокаПримера= "пРивет оЛег!"; Сообщить(НРег(СтрокаПримера)); Сообщить(ВРег(СтрокаПримера)); Сообщить(ТРег(СтрокаПримера)); 

Регистр строки 1С

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

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

Часто возникает, что в строке 1С в начале строки или в конце строки есть лишние пробелы, которые нужно убрать. Для этих целей служат следующие функции.

СокрЛ — убирает пробелы слева строки.

СокрП — убирает пробелы справа строки.

СокрЛП – убирает пробелы справа и слева строки.

Рассмотрим пример (добавлю символы перед и после функциями, чтобы было понятно как они работают).

СтрокаПримера= " результат выгрузки "; Сообщить("|" + СокрЛ(СтрокаПримера) + "|"); Сообщить("|" + СокрП(СтрокаПримера) + "|"); Сообщить("|" + СокрЛП(СтрокаПримера) + "|"); 

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

Эти функции, также, не изменяют строку в параметре, а создают новую строку с обрезанными пробелами.

Сократить строку 1С

Если предыдущие функции сокращали только пробелы, то в платформе 1С имеется возможность сократить и саму строку на нужное количество символов. Или наоборот – оставить нужное количество символов. Для этих целей служат следующие функции.

Лев – оставляет нужное количество символов слева. Имеет следующий синтаксис: Лев(,)

Прав – оставляет нужно количество символов справа. Имеет следующий синтаксис: Лев(,)

Сред – оставляет нужное количество символов в строке. Имеет следующий синтаксис: Лев(,, ).

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

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

СтрокаФИО = "Иванов Иван Иванович"; СтрокаО = Прав(СтрокаФИО,8); СтрокаФ = Лев(СтрокаФИО,6); СтрокаИ = Сред(СтрокаФИО,8,4); Сообщить(СтрокаФ); Сообщить(СтрокаИ); Сообщить(СтрокаО); 

Сократить строку в 1С

По сути, эти функции позволяют сокращать как нужно строки, но работают наоборот – они оставляют то количество символов, которое необходимо.

Найти в строке 1С

Иногда нужно найти в строке или нужный символ, или нужную группу символов. Для этих целей применятся функция СтрНайти(). Эта функция имеет следующий синтаксис.

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

Строка – строка, по которой осуществляется поиск;

ПодстрокаПоиска – подстрока (или символ), которая ищется в строке поиска;

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

НачальнаяПозиция – номер символа, с которого начинается поиск. Должен быть в диапазоне от 1 до количества символов, иначе будет ошибка. Необязательный параметр. Если он не задан и установлен параметр НаправлениеПоиска, то в случае поиска Сначала по умолчанию равен 1, а если поиск СКонца, то по умолчанию равен количеству символов в строке.

НомерВхождения – искомая подстрока (или символ) может несколько раз входить в исходную строку, этот параметр указывает, какое вхождение нас интересует. По умолчанию равен 1.

СтрокаФИО = "Иванов Сидоров Иванов"; Сообщить(СтрокаФИО); //ищем с настройками по умолчанию НомерИванова = СтрНайти(СтрокаФИО,"Иванов"); Сообщить("Номер подстроки ""Иванов"" в строке " + НомерИванова); //ищем с конца НомерИванова = СтрНайти(СтрокаФИО,"Иванов",НаправлениеПоиска.СКонца); Сообщить("Номер подстроки ""Иванов"" в строке " + НомерИванова); //ищем с конца но начиная с 10 символа НомерИванова = СтрНайти(СтрокаФИО,"Иванов",НаправлениеПоиска.СКонца,10); Сообщить("Номер подстроки ""Иванов"" в строке " + НомерИванова); //ищем с начала, но второе вхождение НомерИванова = СтрНайти(СтрокаФИО,"Иванов",НаправлениеПоиска.СНачала,,2); Сообщить("Номер подстроки ""Иванов"" в строке " + НомерИванова); 

И результат работы функции

Найти в строке 1С

Т.е. когда мы ищем в строке «Иванов Сидоров Иванов» подстроку «Иванов», то при поиске без дополнительных параметров функция возвращает 1, это номер символа с которого начинается искомая подстрока. Если же мы ищем в направлении СКонца, то возвращается номер символа, с которого начинается второе вхождение подстроки в строку. В третьем случае мы искали в направлении СКонца, но указали номер символа, с которого нужно искать строку, поэтому функция вернула 1, поскольку при поиске начиная с 10 символа с конца строки, искомая подстрока находится только в начале строки. И в последнем примере, мы ищем подстроку с начала, но ищем второе вхождение этой подстроки.

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

В платформе 1С 8.3. имеется метод, при помощи которого можно менять в строке определенные символы на другие символы.

Этот метод СтрЗаменить, и он имеете следующий синтаксис: СтрЗаменить(,,)

Данные метод возвращается строку, в которой будет выполнена замена или нет, в зависимости от того найдена строка поиска или нет.

ФИОНеПравильное = "Иванов_Андрей_Игоревич"; Сообщить(ФИОНеПравильное); ФИОВерное = СтрЗаменить(ФИОНеПравильное,"_"," "); Сообщить(ФИОВерное); ФИОБезОтчетства = СтрЗаменить(ФИОВерное," Игоревич",""); Сообщить(ФИОБезОтчетства); 

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

Как видите, при помощи этого метода можно не только менять символы, но и вырезать не нужные символы.

Функции для многострочных строк в 1С

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

СтрЧислоСтрок() – позволяет узнать, сколько в строке строк.

СтрокаСПереносом = "Первая |Вторая |Третья"; КоличествоСтрок = СтрЧислоСтрок(СтрокаСПереносом); Сообщить(СтрокаСПереносом); Сообщить("Количество строк: " + КоличествоСтрок); 

Число строк в строке 1С

СтрПолучитьСтроку – позволяет получить строку из многострочной строки по номеру, имеете следующий синтаксис: СтрПолучитьСтроку(, ). — начинается с единицы.

СтрокаСПереносом = "Первая |Вторая |Третья"; ВтораяСтрока = СтрПолучитьСтроку(СтрокаСПереносом,2); Сообщить(СтрокаСПереносом); Сообщить("Вторая строка из предыдущей стороки с переносом: |" + ВтораяСтрока); 

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

В этой статье я разобрал основные функции, которые были в платформе 8.1, в платформе 8.2 и перешли в платформу 8.3 (кроме функции СтрНайти, но это улучшенная версия функция Найти, которая была в старых платформах) . В следующей статье рассмотрим функции работы со строками, которые появились в платформе 8.3:

Статьи о примитивных типах

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

Программировать в 1С за 11 шагов

Книга написана понятным и простым языком — для новичка.

  1. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  2. Научитесь понимать архитектуру 1С;
  3. Станете писать код на языке 1С;
  4. Освоите основные приемы программирования;
  5. Закрепите полученные знания при помощи задачника.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

Основы разработки в 1С такси

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Вступайте в мои группы:

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

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