kb-personal/src/content/docs/knowledge-base/Типовые/ERP/Общего назначения УХ/Ссылка на объект из навигационной ссылки.md
2025-07-09 21:58:17 +05:00

2.8 KiB
Raw Blame History

title, slug
title slug
Ссылка на объект из навигационной ссылки типовые-erp-общего-назначения-ух/ссылка-на-объект-из-навигационной-ссылки

Пример вызова

Ссылка = ОбщегоНазначенияУХ.СсылкаНаОбъектИзНавигационнойСсылки(СокрЛП(НавигационнаяСсылка));

Реализация (если не УХ)

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