ОткрытьНавигационнуюСсылку (БСП)

Автор: 1С
ОбщийМодуль.ФайловаяСистемаКлиент
БСП

Открыть навигационную ссылку. Открывает навигационную ссылку в программе, которая ассоциирована с протоколом навигационной ссылки.

// Открывает навигационную ссылку в программе, которая ассоциирована с протоколом навигационной ссылки.
//
// Допустимые протоколы: http, https, e1c, v8help, mailto, tel, skype.
//
// Для открытия проводника или файла в программе просмотра не следует формировать ссылку по протоколу file://
// - для открытия проводника см. ОткрытьПроводник.
// - для открытия файла по расширению см. ОткрытьФайлВПрограммеПросмотра.
//
// Параметры:
//  НавигационнаяСсылка - Строка - ссылка, которую требуется открыть.
//  Оповещение - ОписаниеОповещения - оповещение о результате открытия.
//      если оповещение не задано, в случае ошибки будет показано предупреждение.
//      - ПриложениеЗапущено - Булево - Истина, если внешнее приложение не вызвало ошибок при открытии.
//      - ДополнительныеПараметры - Произвольный - значение, которое было указано при создании объекта ОписаниеОповещения.
//
// Пример:
//  ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("e1cib/navigationpoint/startpage"); // начальная страница.
//  ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("v8help://1cv8/QueryLanguageFullTextSearchInData");
//  ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("https://1c.ru");
//  ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("mailto:help@1c.ru");
//  ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку("skype:echo123?call");
//
Процедура ОткрытьНавигационнуюСсылку(НавигационнаяСсылка, Знач Оповещение = Неопределено) Экспорт
	
	// АПК:534-выкл методы безопасного запуска обеспечиваются этой функцией
	
	Контекст = Новый Структура;
	Контекст.Вставить("НавигационнаяСсылка", НавигационнаяСсылка);
	Контекст.Вставить("Оповещение", Оповещение);
	
	ОписаниеОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
		НСтр("ru = 'Не удалось перейти по ссылке ""%1"" по причине: 
		           |Неверно задана навигационная ссылка.'"),
		НавигационнаяСсылка);
	
	Если Не ФайловаяСистемаСлужебныйКлиент.ЭтоДопустимаяСсылка(НавигационнаяСсылка) Тогда 
		
		ФайловаяСистемаСлужебныйКлиент.ОткрытьНавигационнуюСсылкуОповеститьОбОшибке(ОписаниеОшибки, Контекст);
		
	ИначеЕсли ФайловаяСистемаСлужебныйКлиент.ЭтоВебСсылка(НавигационнаяСсылка)
		Или ОбщегоНазначенияСлужебныйКлиент.ЭтоНавигационнаяСсылка(НавигационнаяСсылка) Тогда 
		
		Попытка
		
#Если ТолстыйКлиентОбычноеПриложение Тогда
			
			// Особенность платформы: ПерейтиПоНавигационнойСсылке не доступен в толстом клиенте обычного приложения.
			Оповещение = Новый ОписаниеОповещения(
				,, Контекст,
				"ОткрытьНавигационнуюСсылкуПриОбработкеОшибки", ФайловаяСистемаСлужебныйКлиент);
			НачатьЗапускПриложения(Оповещение, НавигационнаяСсылка);
#Иначе
			ПерейтиПоНавигационнойСсылке(НавигационнаяСсылка);
#КонецЕсли
			
			Если Оповещение <> Неопределено Тогда 
				ПриложениеЗапущено = Истина;
				ВыполнитьОбработкуОповещения(Оповещение, ПриложениеЗапущено);
			КонецЕсли;
			
		Исключение
			ФайловаяСистемаСлужебныйКлиент.ОткрытьНавигационнуюСсылкуОповеститьОбОшибке(ОписаниеОшибки, Контекст);
		КонецПопытки;
		
	ИначеЕсли ФайловаяСистемаСлужебныйКлиент.ЭтоСсылкаНаСправку(НавигационнаяСсылка) Тогда 
		
		ОткрытьСправку(НавигационнаяСсылка);
		
	Иначе 
		
		Оповещение = Новый ОписаниеОповещения(
			"ОткрытьНавигационнуюСсылкуПослеПроверкиРасширенияРаботыСФайлами", ФайловаяСистемаСлужебныйКлиент, Контекст);
		
		ТекстПредложения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
			НСтр("ru = 'Для открытия ссылки ""%1"" необходимо установить расширение работы с файлами.'"),
			НавигационнаяСсылка);
		ПодключитьРасширениеДляРаботыСФайлами(Оповещение, ТекстПредложения, Ложь);
		
	КонецЕсли;
	
	// АПК:534-вкл
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

Рекомендации

Похожие публикации

Получение ссылки по навигационной ссылке

ОткрытьНавигационнуюСсылкуПослеЗапускаПриложения (БСП)

ОткрытьНавигационнуюСсылкуПриОбработкеОшибки (БСП)

ОткрытьНавигационнуюСсылкуОповеститьОбОшибке (БСП)

ОткрытьНавигационнуюСсылкуПослеПроверкиРасширенияРаботыСФайлами (БСП)

Получить ссылку из навигационной ссылки

НавигационнаяСсылкаВебСайта (БСП)

ЭтоНавигационнаяСсылка (БСП)

TurboConf 6 - расширение Конфигуратора 1С