Имя: Пароль:
1C
1С v8
Как по-человечески открыть веб-страничку внутри окна со справкой
0 Лефмихалыч
 
23.12.15
14:05
С целью сокращения объема cf-ника, нами было принято решение всю справку к объектам метаданных из конфигурации выкосить и перенести во внутренний корпоративный портал. Соответственно, вместо справки к объектам метаданных надо (одно из):
1. показывать ссылку на соответствующую страницу портала
2. открывать окно браузера со страничкой портала вместо окна справки
3. открывать страничку портала прямо внутри окна со справкой

Как-то не получается по-человечески. Вариант №1 проблем не вызывает, но это не красиво - пользователю надо лишний "тык" мышью делать в ссылку.
Варианты 2 и 3 в принципе достижимы, но с нюансами, которые я надеюсь с вашей помощью, коллеги, победить.

Итого, нами пока найдено два решения:
Решение А: Если в Html-справке к объекту написать:

<head>
<script>document.location.href="http://forum.mista.ru";</script&gt;
</head>

, то при открытии справки миста откроется в браузере по умолчанию и в, собственно, справке.

Решение Б: А если написать:

<head>
<script>window.open("http://forum.mista.ru");</script&gt;
</head>

то откроется именно новое окно эксплорера (именно эксплорера, не взирая ни на какие умолчания).

Теперь, проблемы, решения которых я не могу найти:
1. в обоих решениях страничка со справокй открывается при любом сохранении объекта метаданных, у которого в справке это написано. Даже если справка не меняется.
2. в решении А страничка открывается и внутри окна со справкой, и в новом окне браузера по умолчанию.

Собственно, вопросы:
1. Есть ли способ, при котором в решении А справка бы открывалась только в одном окне? Не важно в каком, главное, чтобы в одном, а не в двух.
2. Можно ли что-то сделать, чтобы окно браузера со справкой не открывалось при сохранении объекта?

Платформа 8.3.6.2299.
Конфа - самопись.
Справка в конфе весит 40 метров, база распределенная, узлов много и некоторые узлы находятся в том числе в бубенях с плохими интернетами, по этому размер имеет значение

Элементы <META HTTP-EQUIV="REFRESH" CONTENT="N;URL=адрес"> платформа вырезает при сохранении справки автоматически.
Элементы iframe - тоже вырезаются при сохранении.
Пробовал прикрутить jquery, но не работает оно в 1С (или у меня руки не той стороной вставлены, не знаю).
1 Лефмихалыч
 
23.12.15
14:17
а, забыл сказать - location.assign() и location.open() работают так же, как присвоение к location.href.
2 NikVars
 
23.12.15
14:36
"пользователю надо лишний "тык" мышью делать в ссылку."
Так размести там несколько ссылок - тык будет обоснован.
Один тык - справка, другой тык - видеосправка, третий тык - инфо по заполнению документов, 4-й тык - ссылка на анектоды.
3 Лефмихалыч
 
23.12.15
14:41
(2) ну, это не решение. Да и у нас нет ни столько разных страничек к каждому объекту, ни ресурсов эти странички делать. Один объект метаданных, одна страничка со справкой по работе с ним.
4 Лефмихалыч
 
23.12.15
14:48
грусть, печаль
5 Asmody
 
23.12.15
14:49
(0) проблема 1 — это галка "включать в содержание справки". Оно же индекс составляет.
6 Лефмихалыч
 
23.12.15
16:06
ХА! А ларчик-то просто открывался. Проблема 1 есть только у внешних всяких обработок, а для них нам не нужно инструкции на портале хранить. На старуху случилась проруха - я тестировал ТОЛЬКО на внешних обработках.
То, что встроено в конфигурацию, при сохранении не открывает справку при любых значениях галки (5).
Проблема в общем-то решена, спасибо!
7 Лефмихалыч
 
23.12.15
16:14
решение вот такое:

<BODY><SCRIPT>document.location.assign("http://forum.mista.ru");</SCRIPT></BODY&gt;


но оно открывает страничку внутри окна справки и только один раз, при сохранении объекта ни чего ни где не открывается. Однако это справедливо исключительно для встроенных в конфу объектов - внешние обработки и отчеты с таким кодом в справке будут открывать два окна и делать это при любом сохранении, а не только по F1.
8 Лефмихалыч
 
14.01.16
08:50
методом тыка нашлось решение, которое работает во всех режимах адекватно - открывает страничку внутри окна справки без лишних окон и прочих артефактов.


<body>
<script>
setTimeout(function(){document.location.assign("Как по-человечески открыть веб-страничку внутри окна со справкой;);}, 1);
</script>
</body>