Заметки из Зазеркалья

28.10.2020

Использование дополнительных параметров в навигационных ссылках

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.19.1150

Как известно, практически на любой объект информационной базы можно получить навигационную ссылку, которую, например, можно переслать коллеге, чтобы однозначно сослаться на документ, отчёт и т.д. В версии платформы 8.3.19 мы расширим функциональность навигационных ссылок – в них можно будет передавать дополнительные параметры.

С помощью этой функциональности можно будет не просто передать ссылку на отчёт, а передать ссылку на отчёт с конкретными параметрами (например, с заранее указанным периодом). Или передать ссылку на форму с динамическим списком с выбранной текущей строкой. Или передать ссылку на команду с параметрами.

Изменится диалог получения навигационной ссылки (который открывается по системной кнопке «Получить ссылку» или по сочетанию клавиш Ctrl + F11). Теперь его внешний вид зависит от типа объекта, на котором его вызвали. Вот как он выглядит для формы с динамическим списком:

img-01.png

  А вот как – для отчёта:
img-02.png

 При получении «расширенной» ссылки можно задать ее имя:
img-03.png

Под этим именем ссылка будет сохранена в специальном хранилище навигационных ссылок, и если пользователь, например, получит эту ссылку в сообщении Системы взаимодействия – она будет отображена как гиперссылка с текстом этого «дружественного» имени. Это же имя будет использовано при добавлении ссылки в Избранное.

img-04.png
Платформа поддерживает автоматическое формирование и обработку навигационных ссылок с дополнительными параметрами для следующих объектов:

  • Отчеты. Поддерживаются варианты отчетов и настройки.

  • Формы с динамическими списками. Поддерживаются текущие настройки и текущая строка динамического списка.

У форм появилось два новых обработчика – ОбработкаПолученияСпискаНавигационныхСсылок и ОбработкаПолученияНавигационнойСсылки.

Обработчик ОбработкаПолученияСпискаНавигационныхСсылок вызывается перед показом системного диалога получения навигационной ссылки. В нем можно сформировать список навигационных ссылок, который будет показан в системном диалоге:

­

  

    Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылок,

  

­

    КлючПоУмолчанию)

  

­

          СписокНавигационыхСсылок.Добавить("СегодняшниеПисьма", "Сегодняшние письма");

  

­

          СписокНавигационыхСсылок.Добавить("ПисьмаОтКлиентов", "Письма от клиентов");   

  

­

    КонецПроцедуры

  

Результат работы:
img-05.png

В обработчике ОбработкаПолученияНавигационнойСсылки можно сформировать значение возвращаемой навигационной ссылки:

­

  

    Процедура ОбработкаПолученияНавигационнойСсылки(Ключ, Представление,

  

­

    НавигационнаяСсылка, СтандартнаяОбработка)

  

­

           Если Ключ = "СегодняшниеПисьма" Тогда

  

­

                 НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(

  

­

                     Метаданные.Документы.Письма, НастройкиСОтборомПоДате);

  

­

                 СтандартнаяОбработка = Ложь;

  

­

           ИначеЕсли Ключ = "ПисьмаОтКлиентов" Тогда

  

­

                 НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(

  

­

                     Метаданные.Документы.Письма, НастройкиСОтборомПоОтправителю);

  

­

                 СтандартнаяОбработка = Ложь;

  

­

           КонецЕсли;

  

   КонецПроцедуры

­

Также в расширениях форм соответствующих типов появятся методы для формирования навигационных ссылок с дополнительными параметрами:

  • ПолучитьНавигационнуюСсылкуОтчета

  • ПолучитьНавигационнуюСсылкуТекущегоВариантаОтчета

  • ПолучитьНавигационнуюСсылкуТекущихНастроекОтчета

  • ПолучитьНавигационнуюСсылкуОбработки

  • ПолучитьНавигационнуюСсылкуСписка

  • ПолучитьНавигационнуюСсылкуТекущихНастроекСписка

  • ПолучитьНавигационнуюСсылкуОбъекта

  • ПолучитьНавигационнуюСсылкуЗаписи

Каждый метод имеет два необязательных параметра:

  • ПредставлениеНавигационнойСсылки (строка). Представление, которое будет помещено в хранилище внешних данных навигационных ссылок.

  • ВнешниеДанныеНавигационнойСсылки (структура). Сюда можно поместить любые необходимые данные.

Например, мы хотим переслать коллеге ссылку на документ продажи с выбранной нами строкой табличной части «Товары». Код соответствующих обработчиков будет выглядеть так:

­

  

    Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылок,

  

­

    КлючПоУмолчанию)

  

­

           СписокНавигационыхСсылок.Добавить("СсылкаСВыбраннымТоваром",

  

­

                   "Ссылка с выбранным товаром");

  

­

    КонецПроцедуры

  

­

    Процедура ОбработкаПолученияНавигационнойСсылки(Ключ, Представление,

  

­

    НавигационнаяСсылка, СтандартнаяОбработка)

  

­

           Если Ключ = "СсылкаСВыбраннымТоваром" Тогда

  

­

                 СтандартнаяОбработка = Ложь;

  

­

                 ВыбранныйТовар = Новый Структура("ВыбранныйТовар",

  

­

                         Элементы.Товары.ТекущаяСтрока);

  

­

                 НавигационнаяСсылка = ПолучитьНавигационнуюСсылкуОбъекта(

  

­

                         Представление, ВыбранныйТовар);

  

­

           КонецЕсли;

  

­

    КонецПроцедуры

  


img-06.png

Далее нам нужно добавить параметр формы с именем «ВыбранныйТовар» и типом «Число». В обработчике формы ПриСозданииНаСервере мы можем проверить этот параметр и в случае отличия его от нуля установить текущую строку табличной части в нужное значение.

Теги: 8.3.19 

Рассказать друзьям: