- Функция СтрНайти()
- Синтаксис
- Параметры
- Возвращаемое значение
- Описание
- Доступность
- Пример использования
- СтрНайти, что ему не нравится?
- Заметки из Зазеркалья
- Функция форматирования СтрШаблон()
- Функция работы со строками СтрСравнить()
- Функции работы со строками СтрНачинаетсяС(), СтрЗаканчиваетсяНа()
- Функции работы со строками СтрРазделить(), СтрСоединить()
- Функция работы со строками СтрНайти()
- Строки в 1С 8.3 — строковые функции
- Функции работы со строками в 1с 8.3
- СтрДлина
- СокрЛ
- СокрП
- СокрЛП
- СтрНайти
- Символ
- КодСимвола
- ПустаяСтрока
- СтрЗаменить
- СтрЧислоСтрок
- СтрПолучитьСтроку
- СтрЧислоВхождений
- СтрНачинаетсяС
- СтрЗаканчиваетсяНа
- СтрРазделить
- СтрСоединить
Функция СтрНайти()
Возвращает первое или очередное вхождение подстроки в исходную строку.
Синтаксис
Функция СтрНайти() имеет следующий синтаксис:
А также альтернативный англоязычный синтаксис:
Параметры
Описание параметров функции СтрНайти() :
Имя параметра | Тип | Описание | ||||
---|---|---|---|---|---|---|
ИсходнаяСтрока | Строка | Исходная строка. | ||||
ПодстрокаПоиска | Строка | Искомая подстрока. | ||||
НаправлениеПоиска (необязательный) | НаправлениеПоиска | Указывает направление поиска подстроки в строке. Возможные значения:
Значение по умолчанию: НаправлениеПоиска.СНачала | ||||
НачальнаяПозиция (необязательный) | Число | Указывает позицию в строке, с которой начинается поиск. Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 1. | ||||
НомерВхождения (необязательный) | Число | Указывает порядковый номер вхождения подстроки в исходной строке. Значение по умолчанию: 1 (ищется первое вхождение) | ||||
Жирным шрифтом выделены обязательные параметры |
Возвращаемое значение
Число
Позиция первого символа найденной подстроки.
Описание
Функция СтрНайти() находит требуемое вхождение подстроки поиска с начала или с конца исходной строки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0. Если параметр ПодстрокаПоиска является пустой строкой, то возвращается 1. Если оба обязательных параметра являются пустыми строками, возвращается 1.
Доступность
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.
Пример использования
Пример кода с использованием функции СтрНайти() :
Источник
СтрНайти, что ему не нравится?
Во внешней обработке
код
НомерВхождения=0;
СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#». НомерВхождения);
Если НомерВхождения > 0 Тогда
ОтчетКоммент = СокрЛП(Сред(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий,НомерВхождения));
Если ОтчетКоммент = РеализацияКомментарий Тогда
СтрРеалицации.СформированОтчет = «Сформирован»;
КонецЕсли;
КонецЕсли;
Ошибка
<ВнешняяОбработка.ФормированиеОтчетовЗаСменуНаОснованииРеализации.Форма.Форма.Форма(7565,5)>: Процедура или функция с указанным именем не определена (СтрНайти)
>СтрНайти(СокрЛП(СтрокаТЗОтчетПроизводстваЗаСмену.Комментрарий),»#». НомерВхождения); (Проверка: Толстый клиент (обычное приложение))
что ему не нравится?
(5) Режим совместимости = да
(6) ОФ — толстый клиент
вообще
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.
Может так сработает?
СтрНайти (StrFind)
Синтаксис:
Тип: Строка.
Указывает направление поиска подстроки в строке.
Указывает позицию в строке, с которой начинается поиск.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СНачала, то значение по умолчанию равно 1.
Если параметр не задан и в параметре НаправлениеПоиска указано значение СКонца, то значение по умолчанию равно длине строки.
Допускаются значения от 1 до количества символов в строке, в которой выполняется поиск. Если указано значение, не входящее в диапазон, генерируется ошибка «Неверное значение параметра».
Тип: Число.
Указывает номер вхождения искомой подстроки в исходной строке.
Значение по умолчанию: 1.
Возвращаемое значение:
Тип: Число.
Позиция первого знака найденной подстроки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0.
Описание:
Находит первое вхождение искомой строки как подстроки в исходной строке.
Сравнение выполняется с учетом регистра.
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер), интеграция.
Примечание:
Если параметр пустая строка, то возвращает 1.
Если оба параметра пустые строки, то возвращает 1.
Пример:
Источник
Заметки из Зазеркалья
Реализовано в версии 8.3.6.1977.
Мы расширили набор функций, предназначенных для работы со строками. Мы это сделали для того, чтобы дать вам более развитые инструменты для разбора строковых данных. Новые функции будут удобны и полезны в технологических задачах анализа текста. В задачах, связанных с разбором текста, который содержит данные в форматированном виде. Это может быть анализ каких-то файлов, полученных от оборудования, или, например, анализ технологического журнала.
Все действия, которые выполняют новые функции, вы могли выполнять и раньше. С помощью более или менее сложных алгоритмов, написанных на встроенном языке. Поэтому новые функции не дают вам каких-то принципиально новых возможностей. Однако они позволяют сократить количество кода, сделать код более простым и понятным. А кроме этого они позволяют ускорить выполнение действий. Потому что функции, реализованные в платформе, работают, конечно же, быстрее, чем аналогичный алгоритм, написанный на встроенном языке.
Функция форматирования СтрШаблон()
Эта функция подставляет параметры в строку. Потребность в таком преобразовании часто возникает, например, при выводе предупреждающих сообщений. Синтаксис этой функции выглядит следующим образом:
— это строка, в которую нужно подставить представления параметров.
, . — это параметры (максимально — десять), представления которых нужно подставить в строку.
Чтобы указать конкретное место в шаблоне, в которое нужно выполнить подстановку, нужно использовать маркеры вида %1, . %10. Количество маркеров, задействованных в шаблоне, и количество параметров, содержащих значения, должны совпадать.
Например, результатом выполнения такого оператора:
Ошибка в данных в строке 2 (требуется тип Дата)
Функция работы со строками СтрСравнить()
Эта функция сравнивает две строки без учёта регистра. Например, так:
Это же действие вы могли выполнить и раньше с помощью объекта СравнениеЗначений:
Однако использование новой функции выглядит более простым. А кроме этого функция, в отличие от объекта СравнениеЗначений, работает и в тонком клиенте, и в веб-клиенте.
Функции работы со строками СтрНачинаетсяС(), СтрЗаканчиваетсяНа()
Эти функции определяют, начинается ли строка с указанной подстроки, заканчивается ли строка указанной подстрокой. Алгоритм этих функций несложно реализовать на встроенном языке, но их наличие позволяет писать более чистый и понимаемый код. И работают они быстрее.
Например, их удобно использовать в операторе Если:
Функции работы со строками СтрРазделить(), СтрСоединить()
Эти функции разделяют строку на части по указанному разделителю. Или наоборот, соединяют несколько строк в одну, вставляя между ними выбранный разделитель. Они удобны для создания или анализа логов, технологического журнала. Например, запись технологического журнала вы можете легко разобрать на части, пригодные для дальнейшего анализа:
Функция работы со строками СтрНайти()
Вместо старой функции Найти() мы реализовали новую функцию, которая имеет дополнительные возможности:
- Поиск в разных направлениях (с начала, с конца);
- Поиск с указанной позиции;
- Поиск вхождения с указанным номером (второе, третье и т.д.).
Фактически она дублирует возможности старой функции. Так сделано для того, чтобы сохранить совместимость с модулями, скомпилированными в старых версиях. Старую функцию Найти() рекомендуется больше не использовать.
Ниже приведён пример, использующий новые возможности поиска. Поиск в обратном направлении удобен тогда, когда вам нужен последний фрагмент формализованной строки, например, полное имя файла в URL. А поиск с указанной позиции помогает в тех случаях, когда нужно искать в известном фрагменте, а не во всей строке.
Источник
Строки в 1С 8.3 — строковые функции
Строки в 1С 8.3 во встроенном языке 1с представляют собой значения примитивного типа Строка. Значения данного типа содержат строку в формате Unicode произвольной длины. Переменные строкового типа являются набором символов заключенных в кавычки.
Пример 1. Создадим строковую переменную с текстом.
Функции работы со строками в 1с 8.3
В данном разделе будут приведены основные функции, позволяющие изменять строки в 1с, либо анализировать информацию содержащуюся в них.
СтрДлина
СтрДлина( ). Возвращает количество символов содержащихся в строке, переданной в параметре.
Пример 2. Посчитаем количество символов в строке «Привет мир!».
Итогом выполнения данного кода будет вывод на экран количества символов строки: 11.
СокрЛ
СокрЛ( ). Отсекает незначащие символы, стоящие слева от первого значащего символа в строке.
Незначащие символы:
- пробел;
- неразрывный пробел;
- табуляция;
- возврат каретки;
- перевод строки;
- перевод формы (страницы).
Пример 3. Убрать все пробелы с левой стороны строки » мир!» и присоединить к ней строку «Привет «.
Итогом выполнения данного кода будет вывод на экран строки «Привет мир!».
СокрП
СокрП( ). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке.
Пример 4. Сформировать из строк «Привет » и » мир!» фразу «Привет мир!»
СокрЛП
СокрЛП( ). Отсекает незначащие символы, стоящие справа от первого значащего символа в строке, также отсекает незначащие символы, стоящие слева от первого значащего символа в строке. Данная функция используется чаще предыдущих двух, так как она более универсальна.
Пример 5. Убрать незначащие символы стоящие слева и справа в наименовании контрагента.
Лев( , ). Получает первые символы строки, число символов указывается в параметре ЧислоСимволов. Если указанное количество символов превышает длину строки, то возвращается вся строка.
Пример 6. Пусть в структуре Сотрудник содержаться имя, фамилия и отчество сотрудника. Получить строку с фамилией и инициалами.
Прав( , ). Получает последние символы строки, число символов указывается в параметре ЧислоСимволов. Если указанное количество символов превышает длину строки, то возвращается вся строка.
Пример 7. Пусть в конце строковой переменной записана дата в формате «ггггммдд», получить строку с датой и преобразовать ее к типу Дата.
Сред( , , ). Получает подстроку из строки переданной в параметре Строка, начиная с символа номер которого указан в параметре НачальныйНомер и длиной переданной в параметр ЧислоСимволов. Нумерация символов в строке начинается с 1. Если в параметре НачальныйНомер указано значение, меньшее или равное нулю, то параметр принимает значение 1. Если параметр ЧислоСимволов не указан, то выбираются символы до конца строки.
Пример 8. Пусть в строковой переменной начиная с девятой позиции содержится код региона, следует получить его и записать в отдельную строку.
СтрНайти
СтрНайти( , , , , ). Осуществляет поиск указанной подстроки в строке, возвращает номер позиции первого символа найденной подстроки. Рассмотрим параметры данной функции:
- Строка. Исходная строка;
- ПодстрокаПоиска. Искомая подстрока;
- НаправлениеПоиска. Указывает направление поиска подстроки в строке. Может принимать значения:
- НаправлениеПоиска.СНачала;
- НаправлениеПоиска.СКонца;
- НачальнаяПозиция. Указывает позицию в строке, с которой начинается поиск;
- НомерВхождения. Указывает номер вхождения искомой подстроки в исходной строке.
Пример 9. В строке «Привет мир!» определить позицию последнего вхождения символа «и».
Итогом выполнения данного кода будет вывод на экран номера последнего вхождения символа «и»: 9.
ВРег( ). Преобразует все символы указанной строки в 1с 8 к верхнему регистру.
Пример 10. Преобразовать строку «привет мир!» к верхнему регистру.
Итогом выполнения данного кода будет вывод на экран строки «ПРИВЕТ МИР!»
НРег( ). Преобразует все символы указанной строки в 1с 8 к нижнему регистру.
Пример 11. Преобразовать строку «ПРИВЕТ МИР!» к нижнему регистру.
Итогом выполнения данного кода будет вывод на экран строки «привет мир!»
ТРег( ). Преобразует строку следующим образом: первый символ каждого слова переводится в верхний регистр, остальные символы слова переводятся в нижний регистр.
Пример 12. Сделать заглавными первые буквы слов в строке «привет мир!».
Итогом выполнения данного кода будет вывод на экран строки «Привет Мир!»
Символ
Символ( ). Получает символ по его коду в кодировке Unicod.
Пример 13. Добавим слева и справа в строку «Привет Мир!» символ ★
Итогом выполнения данного кода будет вывод на экран строки «★Привет Мир!★»
КодСимвола
КодСимвола( , ). Получает код символа в кодировке Unicode из строки указанной в первом параметре, расположенного в позиции указанной во втором параметре.
Пример 14. Узнать код последнего символа в строке «Привет Мир!».
Итогом выполнения данного кода будет вывод на экран кода символа «!» — 33.
ПустаяСтрока
ПустаяСтрока( ). Проверяет состоит ли строка только из незначащих символов, то есть является ли она пустой.
Пример 15. Проверить является ли пустой строка состоящая из трех пробелов.
Итогом выполнения данного кода будет вывод на экран слова «Да» (строковое выражение логического значения Истина).
СтрЗаменить
СтрЗаменить( , , ). Находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.
Пример 16. В строке «Привет Мир!» заменить слово «Мир» на слово «Друзья».
Итогом выполнения данного кода будет вывод на экран строки «Привет Друзья!»
СтрЧислоСтрок
СтрЧислоСтрок( ). Позволяет посчитать количество строк в многострочной строке. Для перехода на новую строку в 1с 8 используется символ ПС (символ перевода строки).
Пример 17. Определить число строк в тексте:
«Первая строка
Вторая строка
Третья строка»
Итогом выполнения данного кода будет вывод на экран количества строк в тексте: 3
СтрПолучитьСтроку
СтрПолучитьСтроку( , ). Получает строку в многострочной строке по ее номеру. Нумерация строк начинается с 1.
Пример 18. Получить последнюю строку в тексте:
«Первая строка
Вторая строка
Третья строка»
Итогом выполнения данного кода будет вывод на экран строки «Третья строка».
СтрЧислоВхождений
СтрЧислоВхождений( , ). Возвращает число вхождений указанной подстроки в строку. Функция чувствительна к регистру.
Пример 19. Определить сколько раз входит в строку «Строки в 1с 8.3 и 8.2» буква «с», вне зависимости от ее регистра.
Итогом выполнения данного кода будет вывод на экран числа вхождений: 2.
СтрНачинаетсяС
СтрНачинаетсяС( , ). Проверяет начинается ли строка переданная в первом параметре, со строки во втором параметре.
Пример 20. Определить начинается ли ИНН выбранного контрагента с цифры 1. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.
СтрЗаканчиваетсяНа
СтрЗаканчиваетсяНа( , ). Проверяет заканчивается ли строка переданная в первом параметре, на строку во втором параметре.
Пример 21. Определить заканчивается ли ИНН выбранного контрагента на цифру 2. Пусть в переменной Контрагент хранится ссылка на элемент справочника Контрагенты.
СтрРазделить
СтрРазделить( , , ). Разделяет строку на части по указанным символам-разделителям и записывает полученные строки в массив. В первом параметре хранится исходная строка, во втором строка содержащая разделитель, в третьем указывается, нужно ли записывать в массив пустые строки (по умолчанию Истина).
Пример 22. Пусть у нас есть строка содержащая числа разделенные символом «;», получить из строки массив чисел.
В результате выполнения будет получен массив с числами от 1 до 3-х.
СтрСоединить
СтрСоединить( , ). Преобразует массив строк из первого параметра в строку, содержащую все элементы массива через разделитель, указанный во втором параметре.
Пример 23. Используя массив чисел из предыдущего примера, получить исходную строку.
Также прочитать про строковые функции появившиеся в 8.3 можно на официальном сайте 1С: v8.1c.ru
Прочитайте статью про работу с числами: Число в 1С 8.3 — функции работы с числами
Источник