Closed pallid closed 7 years ago
Процедура ЗаменитьТекстПоШаблону(Текст)
сч = СтрЧислоВхождений(Текст, "#");
Для й=0 По сч Цикл
ПозицияТега = Найти(Текст, "#");
ЕстьТегЗадачи = ПозицияТега > 0;
ЗнакиПослеТега = Сред(Текст,ПозицияТега+1,9);
ЗадачаСсылка = Справочники.Задачи.НайтиПоКоду(ЗнакиПослеТега, истина);
СсылкаНаЗадачу = ПолучитьНавигационнуюСсылку(ЗадачаСсылка);
ТекстСсылка = "<a href=v8tasks:"+СсылкаНаЗадачу+" style='text-decoration: underline'>"+"[]"+ЗнакиПослеТега+"</a>";
Текст = СтрЗаменить(Текст, "#"+ЗнакиПослеТега, ТекстСсылка);
КонецЦикла;
Текст = СтрЗаменить(Текст, "[]", "#");
КонецПроцедуры
Спасибо, постараюсь в ближайшее время добавить это. Может есть желание у Вас самому это реализовать?
Хорошо. Если начну делать, сообщу, что приступил.
@pallid Не удалось такое провернуть, как только заменил на навигационные ссылки. При нажатии на них, 1с открывает explorer и пытается там открыть.
@stepa86 @nixel2007 Не знаете как это можно побороть?
@BlizD http://infostart.ru/public/586481/ в конце оно? И у тебя начало у ссылки странное
@BlizD Поле в котором надо нажимать должно быть ПолеHTMLДокумента, в переключатели Markdown попробуйте нажать, там вроде как раз ПолеHTMLДокумента. И вроде бы переход работает при опции ТолькоПросмотр = Истина
@BlizD Попробуй без префикса "v8tasks:" . 1Ска сама должна понять, что это ссылка на внутренний объект и перейти на него
@Stepa86 @BlizD кусок из ДО
&НаКлиенте
Процедура ПолеHTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если Не ЗначениеЗаполнено(ДанныеСобытия.Href) Тогда
Возврат;
КонецЕсли;
Если Найти(ДанныеСобытия.Href, "goods") Тогда
Элементы.ГруппаСтраницы.ТекущаяСтраница = Элементы.СтраницаТовары;
Возврат;
ИначеЕсли Лев(ДанныеСобытия.Href, 6) <> "v8doc:" Тогда
Возврат;
КонецЕсли;
НавигационнаяСсылкаПоля = Сред(ДанныеСобытия.Href, 7);
"v8tasks:" - это как роутер где потом получаем НавигационнаяСсылкаПоля
@pallid В твоем примере явно стоит вырезка навигационной ссылки и дальше по коду наверняка идет ПерейтиПоНавигационнойСсылке( НавигационнаяСсылкаПоля ) , а @BlizD у себя не переопределяет ссылку, судя по открывшемуся ИЕ с префиксом в ссылке
@Stepa86 кусок с "goods" глянь. т.е для задачи это может быть переход в раздел "Вопросы и ответы"
@Stepa86 так и есть, потом переход, но не во всех случаях
Если Найти(НавигационнаяСсылкаПоля, "releases") > 0 Тогда
ПараметрыФормы = Новый Структура("Ключ", Объект.Релиз);
ОткрытьФорму("Справочник.Релизы.ФормаОбъекта", ПараметрыФормы, Параметры.ЭтаФорма);
КонецЕсли;
Может быть и так
@pallid Да, и что? В ссылке можно что угодно зашифровать и как угодно потом распарсить при клике, но по умолчанию 1Ска просто переходит по ссылке, что и произошло в https://github.com/BlizD/Tasks/issues/31#issuecomment-296117956
Просто далее можно переход делать не только на задачи, но и на другие объекты
@pallid Еще раз. Я это все понимаю и знаю что и как делается. Но @BlizD спрашивает почему у него открылся ИЕ, и я отвечаю, что он открылся, потому что в ссылке есть префикс.
Нужно или префикс убрать или обработчик навесить и в нем обрабатывать
@Stepa86 и потому что это реквизит с типом ФорматированныйДокумент
@pallid Форматированный документ так же умеет в навигационный ссылки по умолчанию и у него так же можно это переопределить в обработчике
@Stepa86 Ооо, а как это, можно скрин где у него обработчик ПриНажатии?
Форматированный документ по ссылке откроет только новое окно "БРАУЗЕРА"
@pallid Да, перепутал с форматированной строкой
@Stepa86 @BlizD кусок из ДО "v8tasks:" - это как роутер где потом получаем НавигационнаяСсылкаПоля
Понял, попробую, спасибо.
@pallid Если в форматированный документ вставить внешнюю навигационную ссылку, то можно открыть объект в 1Ске. Но окно експлорера все равно откроется. Если в реестре подшаманить слегка, как в http://infostart.ru/public/586481/
@Stepa86 спасибо, буду знать
@pallid Получается, чтобы это реализовать мне надо отказываться от использования ФорматированногоДокумента? Что то на такие жертвы не готов=)
Ну или делать по аналогии с Markdown - редактируем в одном окне, а смотрим в другом...
@BlizD ну второй вариант я думал, только там чтоб открытие ссылки делалось.
Ну и вообще, зачем ФорматированныйДокумент, если есть текст, markdown и его просмотр. По мне так с головой
Проще в этом случае собрать все задачи в тексте HTML и показать их в отдельном поле и оттуда уже делать переходы
Ну и вообще, зачем ФорматированныйДокумент, если есть текст, markdown и его просмотр. По мне так с головой
Ну, все таки удобнее для пользователей это привычное "Word"-подобное редактирование Особенно радует вставка картинки из буфера - она отрабатывает корректно.
Так редактировать можно в форматированном документе, а выводить только в html
Пока реализовал вот так:
Если в содержании задачи есть ссылка на другую задачу - "#10220", что бы такой тег выделялся как ссылка на эту задачу. Либо в командной панели редактирования markdown добавить кнопку установки ссылки #10220, либо парсить текст содержания и программно преобразовывать #NNNNN в такую ссылку