|
вызов метода 1С из поля html-документа | ☑ | ||
---|---|---|---|---|
0
Игорь_МММ
24.03.22
✎
19:54
|
передаю в переменную java управляемую форму:
&НаКлиенте Процедура ПолеHTMLДокументаДокументСформирован(Элемент) Элементы.ПолеHTMLДокумента.Документ.DefaultView.externalForm = ЭтотОбъект; КонецПроцедуры в java переменная определена: <script type="text/javascript"> var myMap; var externalForm = null; и из 1С эта переменная в принципе видна через Элементы.ПолеHTMLДокумента.Документ.DefaultView.externalForm но увы форма не передается, в отладчике Элементы.ПолеHTMLДокумента.Документ.DefaultView.externalForm = неопределено если передать что-то типа строки или числа - все хорошо передается и java выводит переданное значение в чем косяк? |
|||
1
Юрий Лазаренко
24.03.22
✎
19:57
|
(0) А как яваскрипт должен распознать тип "УправляемаяФорма"?
И что вы потом с этой переменной в js хотите делать? |
|||
2
Игорь_МММ
24.03.22
✎
19:59
|
(1) надо вызвать из java метод формы 1с
|
|||
3
Игорь_МММ
24.03.22
✎
20:00
|
взял отсюда:
https://infostart.ru/public/398366/ "Вызов методов 1С из JavaScript В тонком клиенте под Windows доступен очень удобный метод: В HTML документе создается глобальная переменная, например externalForm. При загрузке документа, переменной externalForm присваивается ссылка на текущую упрваляемую форму, доступную через ЭтотОбъект или ЭтаФорма. Затем, в коде JavaScript становятся доступны любые клиентские экспортные методы и переменные модуля данной управляемой формы. Пример: ....." |
|||
4
Ivan_495
24.03.22
✎
20:03
|
может к разработчику обратиться. у меня есть похожие решения. интеграция с яндекс картами))
|
|||
5
Kassern
24.03.22
✎
20:05
|
(3) это статья от 15 года. А вы скорее всего пытаетесь на новой платформе с вебкитом реализовать подобный механизм...
|
|||
6
Kassern
24.03.22
✎
20:06
|
почитайте вот это
https://habr.com/ru/post/481768/ |
|||
7
Игорь_МММ
24.03.22
✎
20:07
|
(5) да, подозревал это ... где-то встречал тоже самое от 19 года
а как теперь это делается? |
|||
8
Игорь_МММ
24.03.22
✎
20:08
|
(6) о спасибо
|
|||
9
Kassern
24.03.22
✎
20:15
|
(7) вроде как это была дыра в защите, поэтому отказались от подобного и сделали более изолированным html поле. Могу ошибаться. Представьте, зная процедуру, любой может образно нажать ctrl+shift+alt+f12 и подменить html документ и в нем вызвать какую-то процедуру 1с.
|
|||
10
Юрий Лазаренко
24.03.22
✎
20:33
|
(2) Размещаете на странице html скрытый элемент, например, div. Когда надо вызвать функцию 1С, помещаете в содержимое этого элемента имя функции и параметры и делаете в js для этого элемента эмуляцию нажатия.
В 1С у поля HTML сработает событие ПриНажатии, в которое в качестве параметра будет передан скрытый элемент. Из его содержимого достаете имя вызываемой функции и параметры, запускаете что требуется. |
|||
11
Юрий Лазаренко
24.03.22
✎
20:40
|
(9) Оно изолированное, но общение возможно как в одну сторону, так и в другую. Изоляция дает преимущества, мы, например, один и тот же код используем для формирования html-страницы как в тонком клиенте, так и в отдельном окне браузера, и все работает без проблем. Потому что полю все равно, где оно отображается: оно изолированное. Пример - канбан внутри 1С: https://s1.hostingkartinok.com/uploads/images/2022/03/b9fdd1c8d3aa0b60957608de28109a86.png
и в отдельной странице браузера: https://s1.hostingkartinok.com/uploads/images/2022/03/a2ab0664014fc8262ebc97f97b742aaa.png При перетаскивании задачи в другую колонку вызывается один и тот же код 1С, который меняет статус задачи. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |