Глобальный контекст.Найти

Методы · Find

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

Синтаксис

Найти(<Строка>, <ПодстрокаПоиска>)

Примеры платформы

Если Найти(Сотрудник.Имя, "Борис") > 0 Тогда
    Сообщить(Сотрудник.Имя + " таб. №" + Сотрудник.Код);
КонецЕсли;
Полное описание, параметры и ограничения

Глобальный контекст.Найти (Global context.Find)

Глобальный контекст (Global context)

Найти (Find)

Доступен, начиная с версии 8.0.

Синтаксис:
Найти(<Строка>, <ПодстрокаПоиска>)
Параметры:

<Строка> (обязательный)
Тип: Строка.
Исходная строка.

<ПодстрокаПоиска> (обязательный)
Тип: Строка.
Искомая подстрока.
Возвращаемое значение:
Тип: Число.
Позиция первого знака найденной подстроки. Нумерация символов в строке начинается с 1. Если строка не содержит указанной подстроки, то возвращается 0.
Описание:

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

Доступность:

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

Внимание: Данный метод не поддерживается при работе через COM-соединение
Примечание:
Если параметр <ПодстрокаПоиска> - пустая строка, то возвращает 1.
Если оба параметра - пустые строки, то возвращает 1.
Пример:

Если Найти(Сотрудник.Имя, "Борис") > 0 Тогда
Сообщить(Сотрудник.Имя + " таб. №" + Сотрудник.Код);
КонецЕсли;

См. также:
Глобальный контекст, метод СтрНайти

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Разделить код по последнему дефису

У кода может быть несколько дефисов. Находим последний разделитель и получаем основную часть и регион.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Все исходные строки заданы прямо в примере; товары, файлы и настройки рабочих конфигураций не нужны.

  2. Выполняйте на сервере учебной базы. Особенно важно для встроенных функций регулярных выражений.


Код = "AMA-BOOK-001-RU";
Позиция = СтрНайти(Код, "-", НаправлениеПоиска.СКонца);
Если Позиция = 0 Или Позиция = СтрДлина(Код) Тогда
    ВызватьИсключение "В коде нет непустого окончания после дефиса";
КонецЕсли;
ОсновнаяЧасть = Лев(Код, Позиция - 1);
Окончание = Сред(Код, Позиция + 1);
Сообщить(ОсновнаяЧасть);
Сообщить(Окончание);
Сообщить(Прав(Код, 2));
Сообщить(Найти(Код, "BOOK"));
Сообщить(СтрНайти(Код, "BOOK"));
Сообщить(СтрНайти(Код, "-", НаправлениеПоиска.СНачала, 1, 2));

Разбор по шагам

  1. СтрНайти с направлением СКонца выбирает последний дефис, а не первый.

  2. Позиции в строках 1С начинаются с 1; 0 означает отсутствие совпадения.

  3. Лев получает символы до разделителя, Сред — текст после него. Прав(2) здесь показывает последние два символа, но не заменяет разбор произвольного окончания.

  4. Сравниваем простой Найти со СтрНайти и отдельно показываем второй дефис через НомерВхождения.

Как проверить результат

  1. Основная часть AMA-BOOK-001, окончание RU; последний дефис на позиции 13.

  2. Оба поиска BOOK возвращают 5; второй дефис находится на позиции 9.

  3. Замените код на AMABOOK001 или AMA-BOOK-001-: сработает проверка до выделения окончания.

Ожидаемый результат

Составной код разобран по последнему разделителю без предположения о длине основной части.

На что обратить внимание

  1. Поиск учитывает регистр: book не совпадает с BOOK.

  2. Пустая подстрока поиска у СтрНайти возвращает 1 — это не проверка содержимого.

  3. Если контракт допускает дефис внутри самого окончания, требуется другой способ разделения полей.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.