Выполняет поиск в строке. Поиск выполняется по началу слова. Если найдены все искомые строки, то возвращается форматированная строка, в которой искомые строки подсвечены стандартным образом. Если искомое слово содержит буквы и цифры: последовательность, состоящая только из букв, считается отдельным словом, последовательность, состоящая только из цифр, считается отдельным словом. В слове, состоящем из цифр, лидирующие нули считаются и значащими, и незначащими. При наличии иерархии элемент считается найденным: если в нем есть все искомые слова, или в нем есть хотя бы одно искомое слово, а остальные слова содержатся в его родителях.
Синтаксис
СтрНайтиИВыделитьОформлением(<Строка>, <Подстрока>)Полное описание, параметры и ограничения
Глобальный контекст.СтрНайтиИВыделитьОформлением (Global context.StrFindAndHighlightByAppearance)
Глобальный контекст (Global context)
СтрНайтиИВыделитьОформлением (StrFindAndHighlightByAppearance)
Доступен, начиная с версии 8.3.15.
Синтаксис:
СтрНайтиИВыделитьОформлением(<Строка>, <Подстрока>)
Параметры:
<Строка> (обязательный)
Тип: Строка, ФорматированнаяСтрока.
Исходная строка.
<Подстрока> (обязательный)
Тип: Строка, Массив.
Искомая строка или массив искомых строк.
Возвращаемое значение:
Тип: ФорматированнаяСтрока, Неопределено.
Если хотя бы одна искомая строка не найдена, возвращается Неопределено.
Описание:
Выполняет поиск в строке.
Поиск выполняется по началу слова.
Если найдены все искомые строки, то возвращается форматированная строка, в которой искомые строки подсвечены стандартным образом.
Если искомое слово содержит буквы и цифры:
последовательность, состоящая только из букв, считается отдельным словом,
последовательность, состоящая только из цифр, считается отдельным словом.
В слове, состоящем из цифр, лидирующие нули считаются и значащими, и незначащими.
При наличии иерархии элемент считается найденным:
если в нем есть все искомые слова,
или в нем есть хотя бы одно искомое слово, а остальные слова содержатся в его родителях.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер, интеграция.
Использование в версии:
Доступен, начиная с версии 8.3.15.
Методическая информация
Практические примеры
Найти начало слова и сохранить подсветку учебного названия
Ищем Кни и Аз в собственной строке Книга Азбука. Проверяем отличие поиска по началу слова от обычного поиска подстроки.
Где и как запускать
Полный серверный общий модуль учебной базы. Собственные значения в памяти, без чтения или записи рабочих данных.
Подготовка
Используйте отдельную учебную базу без рабочих данных. Создайте серверный общий модуль УчебныйЯзык с флагом Сервер, без Привилегированный.
Вставьте весь модуль выбранного примера, а не одну процедуру внутрь другой. Из своей серверной команды учебной обработки вызовите УчебныйЯзык.ВыполнитьПример().
Все числа, строки и коллекции созданы в самом примере. Документы, регистры, файловая система и сеть не используются; никаких зависимостей от КА2/УНФ/УТ/БП нет.
Браузер показывает код, но не исполняет BSL. Проверки результата нужно выполнить вручную на платформе 8.5.1.1343 в учебной базе.
Процедура ВыполнитьПример() Экспорт
Название = "Книга Азбука";
Искомые = Новый Массив;
Искомые.Добавить("Кни");
Искомые.Добавить("Аз");
Оформлено = СтрНайтиИВыделитьОформлением(Название, Искомые);
Если Оформлено = Неопределено Тогда
ВызватьИсключение "Ожидалось совпадение обоих начал собственных слов";
КонецЕсли;
Сообщить(ТипЗнч(Оформлено) = Тип("ФорматированнаяСтрока"));
Документ = Новый ФорматированныйДокумент;
Документ.УстановитьФорматированнуюСтроку(Оформлено);
Сообщить(Документ.ПолучитьТекст() = Название);
Сообщить(СтрНайтиИВыделитьОформлением(Название, "збу") = Неопределено);
Искомые.Добавить("Руч");
Сообщить(СтрНайтиИВыделитьОформлением(Название, Искомые) = Неопределено);
Сообщить(Документ.ПолучитьТекст());
КонецПроцедурыРазбор по шагам
Создать строку из двух собственных слов и массив двух искомых начал. Метод требует наличия всех искомых строк.
Оба начала найдены: Кни в Книга и Аз в Азбука. Получить ФорматированнаяСтрока, а не просто номер позиции.
Передать оформленный результат в собственный ФорматированныйДокумент. ПолучитьТекст проверяет сохранность букв, но не цвет подсветки.
збу находится внутри Азбука, однако не в начале слова: специальный поиск возвращает Неопределено.
Добавить отсутствующее начало Руч. Теперь не найдены все условия, поэтому весь результат Неопределено, несмотря на две прежние совпавшие строки.
Как проверить результат
Четыре проверки Истина и исходный текст Книга Азбука. Урок не меняет никаких рабочих карточек.
Для визуального просмотра перенесите Документ в собственное поле форматированного документа по соответствующему уроку. Здесь проверяется содержимое и тип, а не фактический цвет в теме клиента.
Ожидаемый результат
Подсветка получена для конкретного поиска, сохранена в собственном документе и проверена на два разных случая отсутствия результата.
На что обратить внимание
Обычный СтрНайти и поиск по началу слова имеют разные правила. Не ожидайте нахождения любой внутренней подстроки.
Прежде чем использовать результат как ФорматированнаяСтрока, обработайте Неопределено.
Преобразование в обычный текст не доказывает сохранение визуального оформления. Оттенок стандартной подсветки здесь не придумывается.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.