Как работает стандартная функция получить ссылку (ctrl+F11)?

1. AntonFAKOFF 20.09.22 11:11 Сейчас в теме
Здравствуйте. Как получается ссылка вида "e1cib/data/". Как 1С формирует эту ссылку? Эта информация хранится в таблице базы данных для элементов? Меня интересует как запросом в БД SQL можно к такой ссылке "джоином" узнать наименование объекта.
По теме из базы знаний
Найденные решения
3. SlavaKron 20.09.22 11:34 Сейчас в теме
(1) В конце навигационной ссылки прописывается ее ГУИД в формате СУБД. Если нужно получить наименование элемента справочника средствами СУБД, имея ГУИД, потребуется узнать имя таблицы, которая отвечает за справочник. Это можно узнать с помощью глобального метода 1С ПолучитьСтруктуруХраненияБазыДанных или посмотреть план запроса, например, в типовой консоли запросов.
Прикрепленные файлы:
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. SlavaKron 20.09.22 11:34 Сейчас в теме
(1) В конце навигационной ссылки прописывается ее ГУИД в формате СУБД. Если нужно получить наименование элемента справочника средствами СУБД, имея ГУИД, потребуется узнать имя таблицы, которая отвечает за справочник. Это можно узнать с помощью глобального метода 1С ПолучитьСтруктуруХраненияБазыДанных или посмотреть план запроса, например, в типовой консоли запросов.
Прикрепленные файлы:
5. AntonFAKOFF 21.09.22 08:18 Сейчас в теме
(3) Спасибо! То что надо! Сам не догадался что это просто гуид.
2. soft_wind 20.09.22 11:20 Сейчас в теме
такая команда есть
НавСсылка = ПолучитьНавигационнуюСсылку(СсылкаНаЧтоТо);
user1278383; +1 Ответить
4. soft_wind 20.09.22 11:42 Сейчас в теме
(2) а вот обратной процедуры, получения ссылки на объект/элемент из Нав.Ссылки - не нашел, пришлось самому писать, что-то вроде такого получилось

СсылкаНаЧтоТо = ПостроитьСсылку(НавСсылка);
6. BenDigget 21.12.22 18:31 Сейчас в теме
(4) А полный код можно? Раз уж разобрались
7. soft_wind 22.12.22 13:50 Сейчас в теме
(6) "выдрано" из формы консоли запросов,, из функционала, построить запрос по нав.ссылке.
(не проверено)
&НаСервереБезКонтекста
Функция ПостроитьСсылкуПоНав(НавСсылка)

	лкЧасти		= СтрРазделить(НавСсылка,"?");
	лкДопы		= 0;
	лкГУИД		= 0;
	
	//разделяем строку на части, если чати не те - выходим
	Если лкЧасти.Количество() = 2 Тогда
		лкДопы = СтрРазделить(лкЧасти[0],"/");
		Если лкДопы.Количество() = 3 Тогда
		Иначе	
			Возврат;
		КонецЕсли; 
		лкГУИД = СтрЗаменить(лкЧасти[1],"ref=","");
	Иначе
		Возврат;
	КонецЕсли; 
	
	лкТипСтр = лкДопы[2];
	Возврат ПостроитьСсылку(лкТипСтр, лкГУИД);
	
КонецФункции

&НаСервереБезКонтекста
Функция ПостроитьСсылку(лкТипСтр, лкГУИД)
	
	лкОписание = Новый ОписаниеТипов(СтрЗаменить(лкТипСтр,".","Ссылка."));
	лкСсылка = лкОписание.ПривестиЗначение(); //получаем пустую ссылку 
	лкСтрВнутр = ЗначениеВСтрокуВнутр(лкСсылка);
	лкСтрВнутр = СтрЗаменить(лкСтрВнутр,"00000000000000000000000000000000", лкГУИД);
	
	//получаем реальную ссылку
    Возврат  ЗначениеИзСтрокиВнутр(лкСтрВнутр);

КонецФункции 

Показать
slige; BenDigget; +2 Ответить
8. BenDigget 22.12.22 17:16 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот