Добрый день, прошу помочь с JavaScript - ом.
Имею макет с текстом :
Пытаюсь выполнить функцию из 1С :
Но результат выходит пустой(
Такое ощущение что функция просто не выполняется... Ошибок не выводит никаких.
Может кто подскажет ?
Имею макет с текстом :
|<!DO CTYPE html">
|.....
| <sc ript type="text/javascript">
|
|function Sweet(point1,point2) {
| // Координаты Москвы
|ymaps.geocode(point1).then(function (res) { var moscowCoords = res.geoObjects.get(0).geometry.getCoordinates();
| // Координаты Питера
|ymaps.geocode(point2).then(function (res) { var Piter= res.geoObjects.get(0).geometry.getCoordinates();
| // Расстояние
| document.getElementById('Znach').value = (ymaps.formatter.distance(ymaps.coordSystem.geo.getDistance(moscowCoords, Piter)));
|});
|});
|}
|......
|
|<body>
| <input type="hidden" id="Znach" name="Znach" value=""></input>
|</body>
ПоказатьПытаюсь выполнить функцию из 1С :
Процедура ВыполнитьСкрипт(Команда) Экспорт
ЭлементыФормы.HTMLДок.document.getElementById("WebClientOperation").value = Команда;
ЭлементыФормы.HTMLДок.document.getElementById("WebClient").click();
КонецПроцедуры
...
ЭлементыФормы.HTMLДок.document.getElementById("WebClientOperation").value ="Sweet(Москва,Питер)";
Результат = ЭлементыФормы.HTMLДок.document.getElementById("Znach").value;
....
ПоказатьНо результат выходит пустой(
Такое ощущение что функция просто не выполняется... Ошибок не выводит никаких.
Может кто подскажет ?
По теме из базы знаний
- Скрипты для проекта Снегопат: автоматизация работы в Конфигураторе
- Опыт разработки скриптов для автоматизации работы в конфигураторе
- Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX
- Как сделать плагин для 1С:EDT для начинающего Java+1C разработчика. Часть 2
- Что такое ОСень? Или как лучшие практики из мира Java прижились в экосистеме OneScript
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Добейтесь сначала, чтобы этот скрипт просто работал.
Отлаживайте без 1с.
Создайте любой html файл.
Скопируйте Ваш скрипт.
Открываете файл любым браузером и запускаете инструменты разработчика - консоль.
Смотрим сообщения об ошибках.
Отлаживайте без 1с.
Создайте любой html файл.
Скопируйте Ваш скрипт.
<!do ctype html>
<ht ml lang="ru">
<head>
<met a charset="utf-8" />
</head>
<body>
<div id = "Znach"></div>
<button on click = "Sweet">Тест</button>
</body>
<sc ript type="text/javascript">
function Sweet(point1,point2) {
//**** Ваш скрипт ********
// Координаты Москвы
ymaps.geocode(point1).then(function (res) { var moscowCoords = res.geoObjects.get(0).geometry.getCoordinates()}
// Координаты Питера
ymaps.geocode(point2).then(function (res) { var Piter= res.geoObjects.get(0).geometry.getCoordinates();}
// Расстояние
document.getElementById('Znach').value = (ymaps.formatter.distance(ymaps.coordSystem.geo.getDistance(moscowCoords, Piter)));
}
</sc ript>
</html>
ПоказатьОткрываете файл любым браузером и запускаете инструменты разработчика - консоль.
Смотрим сообщения об ошибках.
(19) из формы 1с :
Процедура ВыполнитьСкрипт(Команда) Экспорт
ЭлементыФормы.HTMLДок.document.getElementById("WebClientOperation").value = Команда;
ЭлементыФормы.HTMLДок.document.getElementById("WebClient").click();
КонецПроцедуры
Процедура Нажатие()
ЭлементыФормы.HTMLДок.document.getElementById("WebClientOperation").value ="Sweet(Москва,Питер)";
Результат = ЭлементыФормы.HTMLДок.document.getElementById("Znach").value;
конецпроцедуры
Показать
(23) вот же функция
function WebClientClick() {
//очистка перед кликом координат, иначе после клика в упр. формах идет считывание координат
document.getElementById('CoordX').value = "0";
document.getElementById('CoordY').value = "0";
var WebClientOperation = document.getElementById("WebClientOperation").value;
alert(WebClientOperation);
switch (WebClientOperation) { ////ВОТ тут передается наименование функции ( Ошибок нет, до сюда все работает)
case "0": // ничего не делаем
var a = 1;
default: // запускаем функцию
eval(WebClientOperation); ////А вот отсюда запускается
}
document.getElementById('WebClientOperation').value = "0";
}
Показать
(25) как вообще произвольно написать функцию ? чтоб напрямую обращаться к ней ?
Добавить класс <input type="hidden" id="Sweet" name="Sweet" on click="Sweet(point1,point2);"></input>
и на форме обратиться к ней ЭлементыФормы.Эксплорер.document.getElementById("Sweet").click();
Как тогда параметры передавать ? ...запутался)
Добавить класс <input type="hidden" id="Sweet" name="Sweet" on click="Sweet(point1,point2);"></input>
и на форме обратиться к ней ЭлементыФормы.Эксплорер.document.getElementById("Sweet").click();
Как тогда параметры передавать ? ...запутался)
(27) Примерно так должен файл выглядеть.
Жмете кнопку, и все что нужно, должно работать.
Жмете кнопку, и все что нужно, должно работать.
Прикрепленные файлы:

(31) Сюда загляните.
Пример вызова js из 1с
Примерно так надо
Примерно так надо
Элементы.НТМЛ.Документ.getElementById ("TestButton").click()
Я так понял все эти пляски лишь для того, чтобы вернуть значение из функции Sweet в JS?
В зависимости от платформы это будет работать так:
Параметры можно передавать только простых типов. Но если все данные есть на странице, на самой карте, то из 1С наверное нет смысла что-то тащить.
В зависимости от платформы это будет работать так:
&НаКлиенте
Процедура КакаяТоПроцедура()
Результат = Элементы.HTMLДок.Документ.parentWindow.Sweet(<какие-то параметры>); // в случае осла
// или так
Результат = Элементы.HTMLДок.Документ.defaultView.Sweet(<какие-то параметры>);//в случае вебкита
КонецПроцедуры
Параметры можно передавать только простых типов. Но если все данные есть на странице, на самой карте, то из 1С наверное нет смысла что-то тащить.
(32)В ранних версиях Internet Explorer (далее IE) вплоть до IE8 вызовы функций Javascript (далее JS) можно было осуществлять примерно так:
ПолеHTMLДокумента.document.parentWindow.MyFunc (...);
Начиная с версии IE9 такие вызовы, а также вызовы через eval () не работают... )
ПолеHTMLДокумента.document.parentWindow.MyFunc (...);
Начиная с версии IE9 такие вызовы, а также вызовы через eval () не работают... )
(40) написал правильно, ругается на parentWindow,
У меня IE 10 подключен.
parentWindow уже не работаетhttps://infostart.ru/public/347442/ вот, почитай
У меня IE 10 подключен.
parentWindow уже не работает
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот