Метод выделяет подстроку внутри подстроки с использованием метода см. СтрНайтиИВыделитьОформлением Платформенный метод СтрНайтиИВыделитьОформлением() находит только с начала слова Например, если искать "200", то в код элемента не будет выделен: "CNT-000**200**"
// Метод выделяет подстроку внутри подстроки с использованием метода см. СтрНайтиИВыделитьОформлением
// Источник: https://github.com/SeiOkami/CollectionMethodsOneS/issues/3
//
// Параметры:
// Строка - Строка - Исходная строка
// Подстрока - Строка - Искомая строка
//
// Возвращаемое значение:
// ФорматированнаяСтрока, Неопределено - вернет форматированную строку, если хотя бы одно вхождение найдено
Функция СтрокаНайтиИВыделитьОформлением(Знач Строка, Знач Подстрока) Экспорт
СтрокаВрег = ВРег(Строка);
ПодстрокаВрег = ВРег(Подстрока);
ДлинаСтроки = СтрДлина(Строка);
ДлинаПодстроки = СтрДлина(Подстрока);
ЧастиРезультата = Новый Массив; // Массив из Строка, ФорматированнаяСтрока
НачалоПоиска = 1;
Пока НачалоПоиска <= ДлинаСтроки Цикл
ТекущаяКоордината = СтрНайти(СтрокаВрег, ПодстрокаВрег, , НачалоПоиска);
Если ТекущаяКоордината = 0 Тогда
Если ЗначениеЗаполнено(ЧастиРезультата) Тогда
ЧастьСтроки = Сред(Строка, НачалоПоиска);
ЧастиРезультата.Добавить(ЧастьСтроки);
Прервать;
Иначе
Возврат Неопределено;
КонецЕсли;
Иначе
Если НачалоПоиска < ТекущаяКоордината Тогда
ЧастьСтроки = Сред(Строка, НачалоПоиска, ТекущаяКоордината - НачалоПоиска);
ЧастиРезультата.Добавить(ЧастьСтроки);
КонецЕсли;
ЧастьСтроки = Сред(Строка, ТекущаяКоордината, ДлинаПодстроки);
ЧастьСтроки = СтрНайтиИВыделитьОформлением(ЧастьСтроки, Подстрока);
ЧастиРезультата.Добавить(ЧастьСтроки);
НачалоПоиска = ТекущаяКоордината + ДлинаПодстроки;
КонецЕсли;
КонецЦикла;
Возврат Новый ФорматированнаяСтрока(ЧастиРезультата);
КонецФункции
Как выделить слово внутри ячейки макета жирным шрифтом (курсивным)?