2.8 KiB
2.8 KiB
title, slug
title | slug |
---|---|
Ссылка на объект из навигационной ссылки | типовые-erp-общего-назначения-ух/ссылка-на-объект-из-навигационной-ссылки |
Пример вызова
Ссылка = ОбщегоНазначенияУХ.СсылкаНаОбъектИзНавигационнойСсылки(СокрЛП(НавигационнаяСсылка));
Реализация (если не УХ)
// По тексту навигационной ссылки ТекстСсылкиВход возвращает ссылку на объект
// информационной базы. В случае неудачи преобразования возвращает Неопределено.
Функция СсылкаНаОбъектИзНавигационнойСсылки(ТекстСсылкиВход) Экспорт
РезультатФункции = Неопределено;
Если Лев(ТекстСсылкиВход, 4) = "e1c:" ИЛИ Лев(ТекстСсылкиВход, 4) = "http" Тогда
Попытка
ПозицияОтносительнойСсылки = СтрНайти(ТекстСсылкиВход, "e1cib/data/");
ТекстСсылкиОчищенный = Прав(ТекстСсылкиВход, СтрДлина(ТекстСсылкиВход) - ПозицияОтносительнойСсылки + 1);
ПозицияПредставленияСсылки = СтрНайти(ТекстСсылкиОчищенный, "?ref=");
ТипЭлементаСтрока = Сред(ТекстСсылкиОчищенный, 12, ПозицияПредставленияСсылки - 12);
ПустаяСсылкаЭлемента = ПредопределенноеЗначение(ТипЭлементаСтрока + ".ПустаяСсылка");
ВнутрПредставлениеЭлемента = ЗначениеВСтрокуВнутр(ПустаяСсылкаЭлемента);
ПозицияДвоеточия = СтрНайти(ВнутрПредставлениеЭлемента, ":");
ЛеваяЧасть = Лев(ВнутрПредставлениеЭлемента, ПозицияДвоеточия);
ПраваяЧасть = Сред(ТекстСсылкиОчищенный, ПозицияПредставленияСсылки + 5);
НоваяСсылкаВнутр = ЛеваяЧасть + ПраваяЧасть + "}";
РезультатФункции = ЗначениеИзСтрокиВнутр(НоваяСсылкаВнутр);
Исключение
РезультатФункции = Неопределено;
КонецПопытки;
Иначе
РезультатФункции = Неопределено;
КонецЕсли;
Возврат РезультатФункции;
КонецФункции