Для создания форматированной строки со ссылками внутри применяется обычная конструкция Новый ФорматированнаяСтрока
Есть в интернете куча примеров, как ее создавать.
Но я не нашел ни одной функции и ни одного примера как достать ссылку из уже имеющейся форматированной строки.
Зачем все это надо?
Мне надо в обычной форме (не управляемой) вывести гиперссылку и при нажатии на нее выполнить действие.
Проблема возникла в том, что сложная функция получения текста для отображения уже была реализована в сторонней библиотеке и она возвращает именно форматированную строку, внутри которой уже есть ссылка.
Если отображать эту форматированную строку в управляемой форме, то нет никаких проблем:
- добавляешь реквизит с типом ФорматированнаяСтрока
- на форму выводишь его в поле надписи
- вешаешься на событие ОбработкаНавигационнойСсылки
- в процедуру обработки события нужная ссылка передается в параметр НавигационнаяСсылкаФорматированнойСтроки
А на обычной форме такой возможности нет. Приходится у поля надписи включать свойство гиперссылка и вешаться на нажатие на нее.
Ниже пример создания форматированной строки со ссылкой внутри и получение этой ссылки.
фСтр = Новый ФорматированнаяСтрока("Пример строки со ссылкой",,,,"www.infostart.ru");
сСсылка = "";
// преобразуем форматированную строку в обычную
вСтр = ЗначениеВСтрокуВнутр(фСтр);
// получаем: {"#",140b5ff4-37b1-4df5-b5ec-a0bfd2b94f8f,1,"<link www.infostart.ru>Пример строки со ссылкой</>"}
// вырезаем ссылку
поз = Найти(вСтр, "<link");
Если поз > 0 Тогда
вСтр = Сред(вСтр, поз + 5);
поз = Найти(вСтр, ">");
Если поз > 0 Тогда
сСсылка = СокрЛП(Лев(вСтр, поз - 1));
КонецЕсли;
КонецЕсли;
Сообщить(сСсылка);