|
|
Получить объект конфигурации по 1С ссылке
obs191, unenu, RVN, Волшебник, okmail, Elf_80_lvl, maxab72, Ботаник Гарден Меран, azt-yur, Hawk_1c, YFedor, rozer76, RomaH, Tvolod, RomanYS, vis, craxx, avkynev, Fish, ЗлаяЗая, Джордж1, paramedic, Федя Тяпкин, H A D G E H O G s, maxar, LoneMan, wHammer, denfil, Timon1405, КонецЕсли, AleksandrM09, Шаграм, Garykom, X Leshiy, Климов Сергей, Dmitrii, aka MIK, Мультук, Fregat, ass1c, 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
|
|
|
|
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-клиент
|
|