0
PR
07.11.20
✎
20:55
|
Всего мнений: 0
Скучно что-то, давайте хоть поперфекционируем :))
Нужно из навигационной ссылки типа e1cib/data/Справочник.Валюты?ref=b7995cd501544c7a46e1894c3860a219 получить ссылку на объект
Вместо справочника Валюты там может быть любая ссылка
В принципе-то говновариант понятен
Пусть ТипМетаданных — это вычисленный из навигационной ссылки текст "Справочник", "Документ" или пр.
Ну или "Catalog", "Document" и пр., если уж обрабатывать все варианты
Тогда менеджер получается так
Если ТипМетаданных = "Справочник"
Или ТипМетаданных = "Catalog" Тогда
Менеджер = Справочники;
ИначеЕсли ТипМетаданных = "Документ"
Или ТипМетаданных = "Document" Тогда
Менеджер = Документы;
...
КонецЕсли;
А вот можно ли (и если да, то как) сделать все это преобразование без такого сравнения с текстовыми константами?
|
|
1
Aleksey
07.11.20
✎
21:00
|
Процедура ПолучитьСсылкуИзНавигационной(НС)
ПерваяТочка = Найти(НС, "e1cib/data/");
ВтораяТочка = Найти(НС, "?ref=");
ПредставлениеТипа = Сред(НС, ПерваяТочка + 11, ВтораяТочка - ПерваяТочка - 11);
ШаблонЗначения = ЗначениеВСтрокуВнутр(ПредопределенноеЗначение(ПредставлениеТипа + ".ПустаяСсылка"));
ЗначениеСсылки = СтрЗаменить(ШаблонЗначения, "00000000000000000000000000000000", Сред(НС, ВтораяТочка + 5));
Ссылка = ЗначениеИзСтрокиВнутр(ЗначениеСсылки);
КонецПроцедуры
|
|