|
Получить объект конфигурации по 1С ссылке denfil, scanduta, LoneMan, Aleshchenko, dedmoroz777, unenu, Garykom, RomanYS, LienXo, Джордж1, Бычье сердце, ass1c, Конструктор1С, Hawk_1c, H A D G E H O G s, Rico_1C, paramedic, Олдж, obs191, RVN, Волшебник, okmail, Elf_80_lvl, maxab72, Ботаник Гарден Меран, azt-yur, YFedor, rozer76, RomaH, Tvolod, vis, craxx, avkynev, Fish, ЗлаяЗая, Федя Тяпкин, maxar, wHammer, Timon1405, КонецЕсли, AleksandrM09, Шаграм, X Leshiy, Климов Сергей, Dmitrii, aka MIK, Мультук, Fregat, arsik, Prog_man, trad, Кир Пластелинин, Seriy_Volk, Chameleon1980, Gucci76, banco, kir-g, Crusher, toypaul, finis2010, ndrv, PuhUfa, shuhard, Гипервизор, DeeK, zva, abfm, lubitelxml, Redkiy, 2S, Vstur, calmius, formista2000, spiller26, evorle145, SleepyHead, torgm, BaZZiL, Группа неравнодушных, San787, Mr_Boogie, alexela
| ☑ | ||
|---|---|---|---|---|
|
0
Tvolod
02.11.26
✎
11:43
|
Подскажите, пожалуйста, есть ли нормальный, простой, человеческий (не БСП!) способ получения объекта в дереве конфигурации (не объекта БД!) по ссылке, которую 1С генерит при вставке в макет HTML документа ссылки на объект?
Это когда в макет через меню "Элементы / Ссылка" вставляем ссылку, например на справочник "Номенклатура", или форму, или отчёт. В коде документа ссылка имеет вид: ../id48ab453f-8206-442e-8360-0cd34f87f601/91337169-a39b-4142-a837-a71c898a18cd При отображении в интерфейсе ссылка преобразуется к абсолютному адресу такого вида: v8config://v8cfgHelp/mdobject/id48ab453f-8206-442e-8360-0cd34f87f601/91337169-a39b-4142-a837-a71c898a18cd Судя по всему, первый GUID объекта, второй типа объекта (Справочники, Отчёты и т.п.). Нашёл кучу документации, как это сделать, но ни один способ не работает. БСП не пробовал - рамки проекта не позволяют. |
|||
|
1
Волшебник
02.11.26
✎
11:47
|
Ссылка.Метаданные()
|
|||
|
2
Tvolod
02.11.26
✎
12:01
|
(1) Поясните, пожалуйста, что есть ссылка в данном случае?
Получаю ссылку на кликнутую ссылку через ДанныеСобытия.Element. Соответственно: ДанныеСобытия.Element.Метаданные() = Неопределено! |
|||
|
3
Garykom
гуру
02.11.26
✎
12:14
|
Сообщить(ТипЗнч(ДанныеСобытия)); Сообщить(ТипЗнч(ДанныеСобытия.Element)); ? |
|||
|
4
Tvolod
02.11.26
✎
12:19
|
(3) ДанныеСобытия:: Фиксированная структура
ДанныеСобытия.Element:: Внешний объект Обрабатываю событие в ПолеHTMLДокументаПриНажатии() |
|||
|
5
Garykom
гуру
02.11.26
✎
12:22
|
В платформе 1С:Предприятие при работе с элементом Поле HTML-документа в клиентском событии ПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка) свойство ДанныеСобытия.Element имеет тип ВнешнийОбъект.
Этот тип представляет собой COM/DOM-объект веб-браузера (встроенного WebKit/Blink или IE, в зависимости от режима и платформы). Прямо из кода 1С к нему нельзя применить привычные встроенные функции, но с ним можно работать через механизм «точки» по правилам языка JavaScript (DOM API). https://share.google/aimode/x0QU18GeiU0CsKn3w |
|||
|
6
Garykom
гуру
02.11.26
✎
12:23
|
(1) Может пора вернуть ТелепатБот уже на новых LLM технологиях?
|
|||
|
7
Tvolod
02.11.26
✎
12:24
|
(5) Ну, это и ежу понятно. :) Ну я получил через ДанныеСобытия.Element.href ссылку такого вида, как в заглавном топике (тип строка).
Вот и спрашиваю, что с этой стороковой ссылкой можно сделать, чтобы выйти на сам объект. |
|||
|
8
Garykom
гуру
02.11.26
✎
12:26
|
(7) Никак
Куда ты собрался выходить по данным из встроенного браузера? Делай некую связь через типы метаданных и УИДы А еще лучше наймите уже программиста, за деньги |
|||
|
9
Tvolod
02.11.26
✎
12:31
|
Человек! Я и спрашиваю в ПЕРВОМ топике, как сделать эту связь через УИДы!
|
|||
|
10
Tvolod
02.11.26
✎
12:31
|
*сообщении, не топике. :) Почему здесь нет правки?
|
|||
|
11
Garykom
гуру
02.11.26
✎
12:37
|
(9) Эмм.
Ответ "как сделать" сильно выходит за рамки бесплатного общения в свое удовольствие на форуме... |
|||
|
12
Garykom
гуру
02.11.26
✎
12:37
|
(10) Все есть. Но заслужить надо.
|
|||
|
13
Волшебник
02.11.26
✎
12:38
|
Получить ссылку из навигационной ссылки
https://fastcode.im/Templates/8612/poluchit-ssylku-iz-navigacionnoj-ssylki |
|||
|
14
Garykom
гуру
02.11.26
✎
12:43
|
Для начала освой отладчик в Конфигураторе 1С
Поставь точку останова и сделай там "Вычислить выражение" на своем "ДанныеСобытия.Element" Далее посмотри что раскрывается, что показывает внутри Вероятно придется иметь некую табличку/соответствие для связи, где ее взять и как заполнить отдельный вопрос |
|||
|
15
Garykom
гуру
02.11.26
✎
12:44
|
(13) Тут интересный вопрос что он открывает внутри ПолеHTML
Подозреваю заканчивает перетаскивание В этом случае все сильно проще, нам пофиг что, главное куда! |
|||
|
16
Garykom
гуру
02.11.26
✎
12:46
|
Хотя если таскает нечто внутри ПолеHTML тут да, легкая проблема
|
|||
|
17
Ботаник Гарден Меран
02.11.26
✎
12:56
|
А = Справочники.Контрагенты.ЧтоТоПредопределенное;
ЗначениеВСтрокуВнутр(А) ЗначениеВСтрокуВнутр(ТипЗнч(А)) {"#",9f6206b2-1ed6-423c-9b08-fd4978930c49,1152:9f71b30ebaf66ef84ef137cd2c385047} {"T",9f6206b2-1ed6-423c-9b08-fd4978930c49} Не так и сложно собрать соответствие uuid и типов. |
|||
|
18
Tvolod
02.11.26
✎
13:57
|
(13), (17) Спасибо, но это всё про объекты в БД (записи). Ссылка же содержит GUID объектов конфигурации (форм или отчётов, например).
(14) Разумеется, делал. Разумеется, нет там нужных свойств. Ссылка в HTML-документе и не должна их иметь, см. (5) (15) Ну написано же всё в первом сообщении. Есть поле HTML-документа. В него загружаем, например макет, в котором одна строчка "Ссылка на форму". Ссылка имеет вид, указанный в первом сообщении. Впрочем, судя по всему, это не ссылка на объект, а ссылка на справку для данного объекта. :(( Хотя если ставишь ссылку на макет, то данный макет и открывается... |
|||
|
19
unenu
02.11.26
✎
14:37
|
(18) "v8config://v8cfgHelp/mdobject/i..." - адрес страницы в базе знаний.
ее можно преобразовать в навигационную, теоретически, попробуйте: Ссылка в макете не работает через web-клиент |
|||
|
20
Garykom
гуру
02.11.26
✎
16:27
|
(18) >Есть поле HTML-документа. В него загружаем, например макет, в котором одна строчка "Ссылка на форму". Ссылка имеет вид, указанный в первом сообщении.
Можно спросить цель всего этого? |
|||
|
21
Garykom
гуру
02.11.26
✎
16:28
|
Резюме и рекомендация
Поскольку готового простого метода одной строкой (МетаданныеПоСсылке()) для таких внутренних ссылок платформа не предоставляет, а использование БСП невозможно: Самым рабочим вариантом без сторонних библиотек является построение собственного кэша (словаря соответствий) при старте системы, который связывает GUID из ссылок с реальными объектами метаданных. Альтернативный вариант — пересмотреть архитектуру задачи: если нужно открывать формы или отчёты из HTML, передавать в href кастомные параметры (например, имя объекта в виде строки cmd:OpenMetadata?name=Справочник.Номенклатура), которые легко парсятся в коде 1С без зависимости от внутренних GUID платформы. |
| Форум | Правила | Описание | Секции | Поиск |