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

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 

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