Имя: Пароль:
1C
1С v8
Генерация события поля HTML документа в 1С из javascript
0 Sashko773
 
25.05.18
11:32
Добрый день!
Есть 1C обработка использующая google maps API. С определенного времени она перестала работать из-за того что API больше не поддерживает старые версии IE (1С по умолчанию как известно использует IE7). Пришлось через реестр подсунуть 1Ске IE11, что повлекло за собой необходимость изменения кода javascript:
перестала работать генерация события onhelp у поля html документа.
Я заменил устаревшие функции на новые, но событие не генерится
//var evt = document.createEventObject();
//document.body.fireEvent('onhelp', evt);
var evt = document.createEvent('Event');        
evt.initEvent('onhelp', false, false);            
document.body.dispatchEvent(evt);    
Знающие люди, ткните плиз где я накосячил, а то уже всю голову сломал.
P.s. с javascript не дружу.
1 lubitelxml
 
25.05.18
11:52
"Пришлось через реестр подсунуть 1Ске IE11" - а вот тут можно подробнее? А то мне уже написали скрипт совместимый с ie7 ))
2 Asmody
 
25.05.18
11:54
(0) html в ie11 открой и посмотри в консоли разработчика на что ругается javascript
3 Sashko773
 
25.05.18
12:00
(1) необходимо добавить параметр в реестр.
Имя параметра (DWORD): 1Cv8c.exe
Значения параметров:
7000 – IE7
8000 – IE8
9000 – IE9
10000 - IE10
11000 – IE11
Для 64 разрядной Windows с установленной 32 разрядной 1С:
HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
Для 64 разрядной Windows с установленной 64 разрядной 1С:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION
Для 32 разрядной Windows с установленной 32 разрядной 1С:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION

+ в javascript указать нужную версию <meta http-equiv=Content-Type content="IE=11" />
4 Sashko773
 
25.05.18
12:02
(2) ни на что не ругается. Весь код проходит норм, но событие в С-ке не генерится.
5 lubitelxml
 
25.05.18
12:05
(3) спасибо. По сабжу не подскажу, сам нанимал человека чтобы сделал
6 Sashko773
 
25.05.18
15:24
(5) пожалуйста
7 lubitelxml
 
25.05.18
15:33
var evt = document.createEventObject();
document.body.fireEvent('ondatasetcomplete', evt);

у меня в макете (тоже гугл мапс апи) так написано
8 Sashko773
 
25.05.18
16:05
(7) А какая версия API используется?
9 lubitelxml
 
25.05.18
16:08
(8) третья версия вроде
content="IE=9" - только так у меня работает
10 lubitelxml
 
25.05.18
16:10
(8) а расскажи какой функционал хочешь прикрутить...
11 Sashko773
 
25.05.18
16:28
(9) хм, странно, у гугла написано что поддерживают версии с 10 и выше. Попробую тогда у себя сейчас на 9ку изменить, возможно действительно достаточно было с 7 на 9 перейти. 9-ка fireEvent еще поддерживает.
(10) мне функционал реализовывать не надо, он реализован. Мне просто надо починить). А так стандартная тема доставки: точки доставки на карту, формирование маршрутов, оптимизация маршрута и т.д.
12 lubitelxml
 
25.05.18
16:37
(11) я только что прикрутил к стандартным - при открытие простановку точек на карте сразу, обведение области на карте, и дальше одной кнопкой отправление в рейс (заказы из обведенной области)
13 Sashko773
 
28.05.18
10:38
(9) Удивительно. Я попробовал, у меня с 9ткой работать отказывается: "Ваш браузер не поддерживается Google Maps JavaScript API. Выберите другой."
Посмотри пожалуйста создан ли у тебя параметр в реестре для указания версии. И еще посмотри как строка вызова API выглядит, версия указана или нет?
14 lubitelxml
 
28.05.18
11:41
"Ваш браузер не поддерживается Google Maps JavaScript API. Выберите другой."  - это сообщение у меня тоже висит, но на функционал не влияет. Параметра у меня нет. Эта строка: google-maps-utility-library-v3 ?
15 Asmody
 
28.05.18
12:31
(0) Если тебе карту показывать, то попробуй вот это https://leafletjs.com/ с картами OSM.
Закон Брукера: Даже маленькая практика стоит большой теории.