Тип: Строка. Задает навигационную ссылку, возвращаемую формой. Если АвтоНавигационнаяСсылка=Ложь, метод ПолучитьНавигационнуюСсылку объекта ОкноКлиентскогоПриложения возвращает значение свойства НавигационнаяСсылка основной формы. Если АвтоНавигационнаяСсылка=Истина, метод ПолучитьНавигационнуюСсылку возвращает навигационную ссылку основной формы.
Полное описание, параметры и ограничения
ФормаКлиентскогоПриложения.НавигационнаяСсылка (ClientApplicationForm.URL)
ФормаКлиентскогоПриложения (ClientApplicationForm)
НавигационнаяСсылка (URL)
Доступен, начиная с версии 8.3.1.
Использование:
Чтение и запись.
Описание:
Тип: Строка.
Задает навигационную ссылку, возвращаемую формой.
Если АвтоНавигационнаяСсылка=Ложь, метод ПолучитьНавигационнуюСсылку объекта ОкноКлиентскогоПриложения возвращает значение свойства НавигационнаяСсылка основной формы.
Если АвтоНавигационнаяСсылка=Истина, метод ПолучитьНавигационнуюСсылку возвращает навигационную ссылку основной формы.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
См. также:
ФормаКлиентскогоПриложения, свойство АвтоНавигационнаяСсылка
ОкноКлиентскогоПриложения, метод ПолучитьНавигационнуюСсылку
Использование в версии:
Доступен, начиная с версии 8.3.1.
Методическая информация
Практические примеры
Сформировать собственный список навигационных ссылок в событии формы
На своей форме добавим, переставим, изменим и удалим варианты по ключам; передадим в диалог только две настоящие ссылки на свои обработки.
Где и как запускать
Полный модуль собственной управляемой формы Главная85.Пульт; клиентские события и серверные помощники уже разделены директивами.
Подготовка
НОВАЯ собственная файловая база 8.5.1.1343, конфигурация УчебнаяНавигация85, совместимость НеИспользовать, управляемое приложение. Без расширений, фоновых прикладных заданий, разделителей и прикладных данных. Не рабочая база или её копия. Здесь стенд, F7 и UI не запускались: runtimeVerifiedScenarios=0.
Создайте свои обработки Главная85 и Помощь85. У каждой — управляемая основная форма Пульт без основного реквизита, таблиц данных и обработчиков объекта. Помощь85 может иметь одну статическую надпись Учебная помощь. У Главная85 вставьте полный основной модуль выбранного урока, не внутрь другой процедуры.
Для урока ссылок в свойствах своей формы назначьте события ПриСозданииНаСервере → ПриСозданииНаСервере, ОбработкаПолученияСпискаНавигационныхСсылок → ОбработкаПолученияСпискаНавигационныхСсылок и ОбработкаПолученияНавигационнойСсылки → ОбработкаПолученияНавигационнойСсылки. АвтоНавигационнаяСсылка отключается программно только у этой своей формы.
Для урока коллекций назначьте ПриСозданииНаСервере. Добавьте вручную команду ПроверитьКоллекции с действием ПроверитьКоллекции и одну кнопку этой команды. Имена Уч85ВременнаяКоманда, Уч85ВременнаяКнопка, Уч85ВременнаяНадпись заранее НЕ создавайте. Выполняется только временное изменение собственного экземпляра формы.
Не смешивайте основные модули двух уроков в одной форме: оба определяют собственное событие создания. Вставляйте по одному. F7 и обновление только своего стенда; открывайте Главная85 из списка собственных обработок в тонком или управляемом толстом клиенте.
Для ссылок откройте стандартный диалог Получить ссылку своей формы и выберите Главная или Помощь. Дополнительные данные ссылки в хранилище не записываются: серверный ПолучитьНавигационнуюСсылку получает только метаданные своей обработки. Само создание строки не открывает другую форму и не обращается к внешнему сайту.
Для коллекций нажмите ПроверитьКоллекции. Временные элементы создаются и удаляются внутри одного серверного вызова, поэтому промежуточные кнопка и надпись могут вообще не попасть на экран клиента. Проверяем имена и размеры коллекций, а не обещаем промежуточный вид интерфейса.
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ПроверитьСвойКонтекст();
ЭтаФорма.АвтоНавигационнаяСсылка = Ложь;
ЭтаФорма.НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Обработки.Главная85);
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационныхСсылок, КлючПоУмолчанию)
ПроверитьСвойКонтекст();
Если ЭтаФорма.АвтоНавигационнаяСсылка Или СписокНавигационныхСсылок.Количество() <> 0 Тогда
ВызватьИсключение "Нужен пустой список своей формы с отключённой автоматической ссылкой";
КонецЕсли;
СписокНавигационныхСсылок.Добавить("home", "Главная", Ложь);
СписокНавигационныхСсылок.Добавить("discard", "Временный вариант", Ложь);
СписокНавигационныхСсылок.Вставить(1, "help", "Помощь", Ложь);
Если СписокНавигационныхСсылок.Количество() <> 3 Или СписокНавигационныхСсылок.Индекс("help") <> 1 Тогда
ВызватьИсключение "После вставки нужен порядок home,help,discard";
КонецЕсли;
Описание = СписокНавигационныхСсылок.Получить("help");
Если Описание.Ключ <> "help" Тогда
ВызватьИсключение "Получить принимает ключ, не позицию элемента";
КонецЕсли;
Описание.Представление = "Помощь стенда";
Описание.ЗапрашиватьПользовательскоеПредставление = Истина;
Если СписокНавигационныхСсылок.Получить("help").Представление <> "Помощь стенда"
Или Не СписокНавигационныхСсылок.Получить("help").ЗапрашиватьПользовательскоеПредставление Тогда
ВызватьИсключение "Описание из коллекции должно отражать изменение двух своих полей";
КонецЕсли;
СписокНавигационныхСсылок.Сдвинуть("help", -1);
Если СписокНавигационныхСсылок[0].Ключ <> "help" Или СписокНавигационныхСсылок.Индекс("help") <> 0 Тогда
ВызватьИсключение "По ключу help сдвигаем в начало, индекс проверяем отдельно";
КонецЕсли;
СписокНавигационныхСсылок.Удалить("discard");
Если СписокНавигационныхСсылок.Количество() <> 2 Или СписокНавигационныхСсылок.Индекс("discard") <> -1 Тогда
ВызватьИсключение "Удалён только свой временный вариант discard";
КонецЕсли;
СписокНавигационныхСсылок.Очистить();
Если СписокНавигационныхСсылок.Количество() <> 0 Тогда
ВызватьИсключение "Не подтверждена очистка своего списка";
КонецЕсли;
СписокНавигационныхСсылок.Добавить("home", "Главная", Ложь);
СписокНавигационныхСсылок.Добавить("help", "Помощь стенда", Истина);
Ключи = Новый Массив;
Для Каждого Вариант Из СписокНавигационныхСсылок Цикл
Ключи.Добавить(Вариант.Ключ);
КонецЦикла;
Если СтрСоединить(Ключи, ",") <> "home,help" Тогда
ВызватьИсключение "В диалог должны перейти только два собственных варианта";
КонецЕсли;
КлючПоУмолчанию = "home";
Сообщить("Список подготовлен: home,help; по умолчанию home. Ссылки ещё не выбирались.");
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаПолученияНавигационнойСсылки(Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)
ПроверитьСвойКонтекст();
Если ТипЗнч(Ключ) <> Тип("Строка") Или (Ключ <> "home" И Ключ <> "help") Тогда
ВызватьИсключение "Неизвестный ключ собственного списка, ссылка не формируется";
КонецЕсли;
Если ТипЗнч(СтандартнаяОбработка) <> Тип("Булево") Или СтандартнаяОбработка Тогда
ВызватьИсключение "Для собственного варианта требуется фактический признак Ложь, описанный в справке события";
КонецЕсли;
НавигационнаяСсылка = ПолучитьСвоюСсылкуНаСервере(Ключ);
Если НавигационнаяСсылка = "" Тогда
ВызватьИсключение "Пустую строку не выдаём за готовую собственную ссылку";
КонецЕсли;
Сообщить("Выбран ключ " + Ключ + "; пользовательское представление: " + Представление);
КонецПроцедуры
&НаСервереБезКонтекста
Функция ПолучитьСвоюСсылкуНаСервере(Ключ)
ПроверитьСвойКонтекст();
Если Ключ = "home" Тогда
Возврат ПолучитьНавигационнуюСсылку(Метаданные.Обработки.Главная85);
ИначеЕсли Ключ = "help" Тогда
Возврат ПолучитьНавигационнуюСсылку(Метаданные.Обработки.Помощь85);
КонецЕсли;
ВызватьИсключение "Сервер также отклоняет неизвестный ключ";
КонецФункции
&НаСервереБезКонтекста
Процедура ПроверитьСвойКонтекст()
Если Метаданные.РежимСовместимости <> Метаданные.СвойстваОбъектов.РежимСовместимости.НеИспользовать Тогда
ВызватьИсключение "Нужен собственный стенд УчебнаяНавигация85 платформы 8.5.1.1343";
КонецЕсли;
Если ТранзакцияАктивна() Тогда
ВызватьИсключение "Учебный вывод не должен выполняться внутри чужой транзакции";
КонецЕсли;
КонецПроцедурыРазбор по шагам
ПриСозданииНаСервере проверяет собственный стенд и отключает АвтоНавигационнаяСсылка только у своего экземпляра формы. Базовая строка формируется сервером из метаданных Главная85, не склеивается вручную.
СписокВыбораНавигационнойСсылки создаёт платформа и передаёт событию ОбработкаПолученияСпискаНавигационныхСсылок. Урок не использует выдуманный конструктор и не подменяет его СпискомЗначений. При отключённом автоформировании ожидается пустая коллекция.
Добавить дописывает home и discard; Вставить принимает индекс 1 и ключ help — получаем home,help,discard. Индексы отсчитываются с нуля, ключи здесь отдельные строки.
Получить("help") получает описание ПО КЛЮЧУ. Ключ readonly; Представление и ЗапрашиватьПользовательскоеПредставление изменяемы. Проверка повторным получением подтверждает, что работаем с описанием коллекции, не с независимой копией.
Сдвинуть("help",-1) перемещает по ключу; квадратные скобки [0] читают по индексу. Удалить("discard") также получает ключ, Индекс отсутствующего ключа даёт -1, а не Неопределено.
Очистить действует только на текущую собственную пустую-изначально коллекцию события. После очистки старое Описание больше не используется; заново формируем home/help и по обходу проверяем порядок. Не удаляем стандартные варианты чужой формы.
КлючПоУмолчанию — ключ home, не номер позиции. Для help разрешён ввод пользовательского представления; оно не изменяет внутренний ключ и не выбирает чужой сервер или объект.
Во втором событии принимаем только свои строковые home/help. В статье СтандартнаяОбработка объявлена Строкой, но описана через Истина/Ложь; проверяем фактическое Булево и Ложь для пользовательского варианта, не преобразуем строку и не объявляем противоречие разрешённым статической проверкой.
Сервер повторно проверяет ключ и возвращает ПолучитьНавигационнуюСсылку от метаданных соответствующей собственной обработки. Используется один параметр: внешние данные и их хранилище не задействованы. Результат передаётся платформенному диалогу, а не открывается программно.
Как проверить результат
Будущий тест: F7 и назначенные события собственной управляемой формы. Здесь runtimeVerifiedScenarios=0; диалог и его параметры не наблюдались.
В диалоге остаются только Главная и Помощь стенда; по умолчанию home. discard не виден, Индекс его ключа после удаления равен -1.
При выборе help можно задать своё представление. Сервер всё равно создаёт ссылку на Помощь85, а не использует представление как программное имя.
Скопированную строку можно вручную проверить переходом внутри того же своего стенда: home должен открыть Главная85, help — Помощь85. Создание строки само по себе этого не доказывает.
Включение автоформирования или неизвестный ключ должны вызвать отказ, а не очищать посторонние варианты. Если реальный тип СтандартнаяОбработка не Булево, опыт остановится и потребует отдельного анализа установленного события.
Ожидаемый результат
Будущий результат — два управляемых варианта собственной навигации с различными ключами и ссылками. Здесь выполнена только статическая подготовка.
На что обратить внимание
Получить, Сдвинуть и Удалить принимают ключ. Вставить принимает индекс отдельно от ключа, а оператор [] читает по индексу. Это отличается от одноимённых методов других коллекций.
Ключ описания только читается; два других свойства изменяются. Строка представления не является самим URL и не заменяет ключ.
Параметр СтандартнаяОбработка имеет противоречивое описание типа в установленной статье. Фактический тип проверяется до использования; здесь реальное событие не вызывалось.
АвтоНавигационнаяСсылка, НавигационнаяСсылка и список события — разные механизмы. Изменение своего экземпляра не означает перенастройку платформы или всех форм.
Добавление в избранное/копирование в буфер выполняет человек в собственном стенде, здесь эти операции не выполнялись. Не помещайте в представления или внешние данные секреты.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.