ПолеHTML Метод объекта не обнаружен. Попытка обратиться к методу JavaScript из 1С

1. serverstar 64 19.09.21 17:03 Сейчас в теме
Здравствуйте!

Собственно сабж. Есть форма обработки. На этой форме полеHTML. Программно полностью формирую html-документ, со стилями и скриптом JS. Верстка и все объекты отображаются корректно. В браузере проверяю, тоже все ок.

Но потребовалось мне обратиться из модуля 1с к функции JS этого объекта полеHTML. Ведь ограничений на это никаких нет. Пишем

a = ЭтаФорма.Элементы.ПолеHTML.Документ.defaultView.<ИмяФункцииJS()>;

и в а мы должны получить результат выполнения функции. Но вместо этого я получаю: Метод объекта не обнаружен.

Почему?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. serverstar 64 19.09.21 18:01 Сейчас в теме
То есть, дана обработка. На этой обработке только лишь элемент формы ПолеHTML.ПутьКДАнным = СтрокаСкрипта. Реквизит формы СтрокаСкрипта. Всего две функции в обработке, и те на клиенте.

&НаКлиенте
Процедура ПолеHTMLДокументСформирован(Элемент)
	view = ЭтаФорма.Элементы.ПолеHTML.Документ.defaultView;
	mResult = view.func();
	Сообщить(mResult);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	СтрокаСкрипта = "<HT ML>
		|<head>
		|	<met a http-equiv=""X-UA-Compatible""/>
		|</HEAD>
		|<body>
		|	<sc ript>function func() {return a=5;} </sc ript>
		|	<div id=""TEST"">TEST-TEST-TEST</div>
		|</body>
		|</html>";
	
	Документ = ЭтаФорма.Элементы.ПолеHTML.Документ;
КонецПроцедуры
Показать


Короче, все оказалось очень интересно.
Во всем виноват ключевое слово JavaScript 'USE STRICT'

В тестовом скрипте, приведенном выше, вызов функции func() из 1С отрабатывает нормально, без ошибок.

А в моем изначальном скрипте, присутствовал модификатор 'USE STRICT'. Из-за этого функции JS невозможно было вызывать из 1с
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот