СКД и НавигационнаяСсылка

1. homer_ 79 02.09.26 10:14 Сейчас в теме
Имеется строка с навигационной ссылкой в виде строки. Штатными средствами СКД есть возможность при формировании отчета преобразовывать и в последующем открывать по ссылке объект.
или какие есть варианты работы с неявными ссылками в скд.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
9. alexey97 07.09.26 12:39 Сейчас в теме
(1) Это штатный механизм СКД. В настройках поля для реквизита «Ссылка» задайте выражение представления. В нём вы формируете текстовое представление, которое пользователь увидит (например, «Номенклатура.Наименование» или «Клиент.Наименование»), но в параметр расшифровки передаёте исходное поле с типом Ссылка.

Как: в настройках поля СКД найдите свойство «Выражение представления» и напишите функцию, которая по данным из строки (типа объекта + ключ) возвращает ссылку.
Плюс: не нужно писать код, всё настраивается в интерфейсе.
Минус: требует логики для каждого типа объекта (справочник, документ, регистр).
2. SAShikutkin 17 02.09.26 10:35 Сейчас в теме
Вы можете использовать внешние функции в СКД.
3. usershmuser 02.09.26 13:29 Сейчас в теме
СКД может преобразовать только отображение объекта, сам объект не преобразовывает. Т.е. только чтение
Открытие ссылки вполне возможно при использовании СКД какой то программной оберткой
4. waider 69 02.09.26 17:17 Сейчас в теме
Переопределить процедуру ОбработкаРасшифровки и прописать примерно такой код:

СтандартнаяОбработка = Ложь;
		ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(Расшифровка);
5. polax 02.09.26 18:19 Сейчас в теме
Рабочий ответ в (4). Только я бы реализовал через макет поля группировки. Создать макет поля, указать что в этой ячейке гиперссылка, текст - параметр с самой ссылкой, расшифровка - параметр с выражением как в (4)
6. waider 69 02.09.26 19:39 Сейчас в теме
(5) Кстати, да. Я чет не подумал)
7. nedomolkov.ivan 229 03.09.26 09:55 Сейчас в теме
( 1 ) Если нужен сам объект, а не открытие по ссылке, соберите его вычисляемым полем СКД через функцию общего модуля. Поле станет ссылочным, и расшифровка заработает сама, без кода в форме.

Грабля там одна: hex после ref= это не идентификатор в привычном виде, группы переставлены. Проверил на 8.3.27.1606:

ref=96efac120374ce0c11f05348c3819d09
УникальныйИдентификатор c3819d09-5348-11f0-96ef-ac120374ce0c

Сборка: Сред(Ref,25,8)+"-"+Сред(Ref,21,4)+"-"+Сред(Ref,17,4)+"-"+Сред(Ref,1,4)+"-"+Сред(Ref,5,12) и дальше ПолучитьСсылку. Собранная ссылка совпала с исходной.
8. meriferi 04.09.26 15:46 Сейчас в теме
СКД сделайте в отчет и на форме отчета напишите функцию расшифровки
10. homer_ 79 07.09.26 12:49 Сейчас в теме
Преобразовать строку каждый дурак может! (С)
Вопрос - как движком это сделать!
11. nedomolkov.ivan 229 08.09.26 04:41 Сейчас в теме
( 10 ) Так для открытия и не надо ничего преобразовывать. ПерейтиПоНавигационнойСсылке берёт строку как есть: кладёте её в расшифровку и вызываете в ОбработкаРасшифровки. Это ровно (4) и (5), они рабочие.

Сборка UUID из hex, про которую я писал в (7), нужна только если вам нужно само значение ссылки, а не переход по ней. Для открытия она лишняя, согласен.
Для отправки сообщения требуется регистрация/авторизация

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