|
1C и WebKit | ☑ | ||
---|---|---|---|---|
0
Asim222
27.07.23
✎
19:06
|
Добрый день, есть внешняя обработка с html документом, который отрисовывает кнопки(ссылки) с фамилиями на canvas(не столь важно). Как в 1С перехватить нажатие на эту кнопку и открыть форму записи регистра сведений по этой фамилии? Пробовал использовать методы 1С внутри html, но нет никакой реакции на нажатие по ссылке. За неимением знаний, столкнулся с данными трудностями.
|
|||
1
Волшебник
27.07.23
✎
19:09
|
событие ПриНажатии, OnClick
|
|||
2
Asim222
27.07.23
✎
19:11
|
(1) А можно немного поподробнее?
У меня есть событие OnClick в js, но на него нет реакции в 1С |
|||
3
Волшебник
27.07.23
✎
19:19
|
(2) В свойствах HTML-поля внутри 1С есть событие ПриНажатии. Вам надо добавить туда обработчик (процедуру)
|
|||
4
novichok79
27.07.23
✎
21:47
|
делал что-то такое в 2018м году, открывал последний раз конфигуратор 2 года назад.
ну тут скорее костыльно придется делать, как и многие такие приседания. в onClick в js заполняйте какое-то невидимое поле в html документе. в событии в 1С смотрите в это поле и если там будет какой-то признак нажатия на кнопку, то надо открыть форму регистра сведений. |
|||
5
Asim222
28.07.23
✎
05:49
|
(4) Вы имеете ввиду некую невидимую кнопку?
Если да, то не совсем понятно с реализацией данного метода. Кнопки в моем html документе создаются динамически, то есть в зависимости от параметров будет меняться расположение кнопки. То есть мне нужно поверх этих кнопок отрисовать некоторые невидимые кнопки и обрабатывать их нажатие уже в 1С? |
|||
6
novichok79
28.07.23
✎
10:02
|
(5) я имею в виду невидимый div на форме куда вы пишите из скрипта на js какие-то данные, какой-то признак, например, имя формы, которую надо открыть.
при нажатии на другие кнопки, на стороне js затираете этот div. соответственно в 1С при нажатии на кнопку смотрите в этот div в DOM дереве, если надо открыть то что надо открыть, открываете эту несчастную форму списка. |
|||
7
novichok79
28.07.23
✎
10:03
|
ну может вебкит в 1Сине за годы моего отсутствия эволюционировал и все это не нужно и делается гораздо проще.
|
|||
8
iddroide
28.07.23
✎
11:13
|
Заинтересовался темой и попробовал сделать на основе того, что нагуглил.
Создал форму c полем HTML документа. В HTML документ загрузил текст HTML (из макета): &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ВрОбъект = РеквизитФормыВЗначение("Объект"); ДокументHTML = ВрОбъект.ПолучитьМакет("МакетHTML").ПолучитьТекст(); КонецПроцедуры Содержимое текстового макет: <html><head> <script> function isEmail() { document.getElementById("FunctionName").innerHTML = "Функция1"; document.getElementById("FunctionName").onclick(); } </script> </head> <body> <div id="FunctionName" hidden></div> <p><input type="button" value="Нажми меня" onclick="isEmail()"></p> </body></html> На форме создал обработчик события ПриНажатии для поля HTML документа: &НаКлиенте Процедура ДокументHTMLПриНажатии(Элемент, ДанныеСобытия, СтандартнаяОбработка) ЭлементHTML = ДанныеСобытия.Document.getElementById("FunctionName"); ИмяФункции = ЭлементHTML.innerHTML; Если ИмяФункции = "" Тогда Возврат КонецЕсли; Если ИмяФункции = "Функция1" Тогда Сообщить("Вызываем функцию 1"); ЭлементHTML.innerHTML = ""; КонецЕсли; КонецПроцедуры Кликаем по кнопке HTML и получаем сообщения от 1С. Всё просто хоть и костыльно. |
|||
9
novichok79
28.07.23
✎
12:06
|
(8) ну типа я это и предлагал выше.
|
|||
10
iddroide
28.07.23
✎
12:34
|
(9) Да, я именно это и пытался сделать)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |