Имя: Пароль:
1C
 
Ссылка в макете не работает через web-клиент
0 Хрюкин
 
01.10.24
15:19
В макете есть ссылка на другой макет. В тонком клиенте ссылка работает без проблем. Но при входе через web-клиент при нажатии на ссылку выдает ошибку. Подскажите, как это побороть.
{
  "#exception": "{http://v8.1c.ru/8.2/virtual-resource-system}Exception" ,
  "exception": {
    "clsid": "580392e6-ba49-4280-ac67-fcd6f2180121",
    "reason": 404,
    "descr": "HTTP: Not found\nОшибка при выполнении запроса GET к ресурсу /id40a9c34c-5193-44b0-a811-701dc4ea6737/8eb4fad1-1fa6-403e-970f-2c12dbb43e23:",
    "category": "0000000000000000000000",
    "creationStack": "core83.dll:0x0000000000085998 mngsrv.dll:0x0000000000079D31 mngsrv.dll:0x00000000000B729C VCRUNTIME140.dll:0x0000000000001030 VCRUNTIME140.dll:0x00000000000032E8 unknown:0x0000000000000000 mngsrv.dll:0x000000000007BF33 vrsbase.dll:0x00000000000DCC13 rserver.dll:0x0000000000251025 rserver.dll:0x00000000003294C3 vrsbase.dll:0x00000000000DA59F rserver.dll:0x000000000032A1D4 rserver.dll:0x000000000032A85E rtrsrvc.dll:0x00000000000B134B rtrsrvc.dll:0x0000000000151A1F rtrsrvc.dll:0x0000000000144BD1 rtrsrvc.dll:0x00000000001473EB rtrsrvc.dll:0x00000000001467EC rtrsrvc.dll:0x0000000000145ECD rtrsrvc.dll:0x000000000013DD92 rscalls.dll:0x000000000000E06C rscalls.dll:0x000000000000E8A0 core83.dll:0x00000000002B166B core83.dll:0x00000000002B169C core83.dll:0x00000000001773DF unknown:0x0000000000000000 unknown:0x0000000000000000 KERNEL32.DLL:0x0000000000000000 unknown:0x0000000000000000 "
  }
}
1 Волшебник
 
01.10.24
15:27
кривая ссылка

правильные ссылки на объекты базы:
"e1c://server/" + ИмяСервера + "/" + ИмяБазы + "#"
e1c://server/srv_1c_02/TestBase#e1cib/data/Справочник.ИмяСправочника?ref=af24ba53a5818805497e8a489192ddc2
2 Хрюкин
 
01.10.24
20:42
(1) А как прописать путь к макету? К примеру лежит в общих макетах с именем Макет1.
3 1cVandal
 
01.10.24
20:56
кодом попробуй получить через ПолучитьНавигационнуюСсылку
4 Волшебник
 
01.10.24
21:02
(2) Плохой пример
5 DiMel_77
 
02.10.24
00:25
(0) Скорее всего у вас ссылка вида:
v8config://v8cfgHelp/mdobject/id...

Такой код поможет:

&НаСервере
Функция ЗаменитьОтносительныеСсылкиНаАбсолютныеДляИБ(ТекстHTML)

    СтандартныйПрефикс = ПолучитьНавигационнуюСсылкуИнформационнойБазы() + "/";
    ЭтоВебКлиент = СтрНайти(СтандартныйПрефикс, "http://") > 0;
    Если ЭтоВебКлиент Тогда
        КодЛокализации = ТекущийКодЛокализации();
        СтандартныйПрефикс = СтандартныйПрефикс + КодЛокализации + "/";
    КонецЕсли;

    ТекстHTML = СтрЗаменить(ТекстHTML, "v8config://", СтандартныйПрефикс + "e1cib/helpservice/topics/v8config/");

Возврат ТекстHTML;

КонецФункции

(Писал руками, поэтому могут быть опечатки.)
Вообще то это не документировано, но должно сработать. (по крайней мере я на сайте https://hrm.demo.1c.ru открыл ссылку на общий макет).

Не за что :)
6 Волшебник
 
02.10.24
00:26
(5) Вам позор!
7 DiMel_77
 
02.10.24
00:28
(6) Это за что же?
8 Волшебник
 
02.10.24
00:39
(7) Ваш код не работает!
9 DiMel_77
 
02.10.24
00:55
(8) У меня работает: