Имя: Пароль:
1C
1С v8
Взаимодействие 1С и JS (Платформа 8.3.14)
0 Barakuda1C
 
17.04.19
09:56
Всем привет! С выходом платформы 8.3.14 1С стали использовать webkit.

При этом перестала передаваться форма (ЭтаФорма) из 1С в JS. Вместо объекта там теперь неопределенно.

Может кто-то сталкивался уже с такой проблемой?
1 ДенисЧ
 
17.04.19
10:00
ЭтотОбъект из формы попробуй
2 Barakuda1C
 
17.04.19
10:03
(1) Всё равно undefined
3 sikuda
 
17.04.19
10:18
Привыкайте к новым костылям ;)
4 Barakuda1C
 
17.04.19
10:19
(3) Знать бы ещё к каким)
5 sikuda
 
17.04.19
10:32
Элемент.Документ - Внешний объект(1С). Остальное в любой следующей версии 1С может перестать работать.
6 Garykom
 
гуру
17.04.19
10:42
(0) Раньше был ослик который через COM теоретически понимал COM модель объекта 1С.

Сейчас тютю ослика и используется переделка завоевателя из кед, там COM|OLE|ActiveX нету.
7 Garykom
 
гуру
17.04.19
10:45
(3) Не к костылям а к нормальной правильной работе, через написание своих функций на JS и их вызов из 1С.
8 Barakuda1C
 
17.04.19
10:51
(7) То есть сейчас нет способа передать объект формы в JS?
9 Garykom
 
гуру
17.04.19
10:56
(8) Только простые типы строка, число, дата и т.д.
10 DES
 
17.04.19
11:01
скиньте пример вызова чего не будь из webkit. ДЛЯ ПРИМЕРА
11 Garykom
 
гуру
17.04.19
11:10
(10) Чего нибудь из webkit можно вызывать столько через его плагины или по http(s).
Так что если надо из поля HTML обращаться к 1С (а не наоборот из 1С в webkit данные заталкивать и результат получать оттуда) то придется в 1С поднимать веб-сервис или нечто внешнее (типа ВК) для заворачивания COM модели 1С по http.
12 PloAl
 
17.04.19
15:23
(11) не самый простой вариант

Передавал всегда данные в 1С через событие ПолеХТМЛДокументаПриНажатии

Программно кликать можно по любому элементу даже скрытому.

var testEl = document.getElementById('testEl');
testEl.click();

Скачал проверил 8.3.14 все работает, из параметра ДанныеСобытия, можно получить все данные из атрибутов кликнутого элемента.

<div id="testEl" data-testdata="somedata"></div>
13 Cyberhawk
 
11.10.19
13:36
Кто-нибудь уже придумал, как теперь работать с буфером обмена? Начнем с помещения в него произвольного текста.
14 Garykom
 
гуру
11.10.19
13:47
(13) Эээ а зачем?
15 hhhh
 
11.10.19
13:50
(13) а как раньше работали? что, уже всё?
16 Cyberhawk
 
11.10.19
16:32
(15) Через поле ХТМЛ-документа, обращаясь к его свойству "Документ".
В реализации ИЕ там сидит СОМ-объект с полным доступом до буфера обмена, в реализации ВебКита там уже такого нет :)
17 Cyberhawk
 
11.10.19
16:34
(14) Универсальный локальный транспорт для передачи любых данных между окнами
18 pechkin
 
11.10.19
16:35
(13) в винде как и раньше
Новый COMОбъект("HTMLFile")
19 pechkin
 
11.10.19
16:36

ОбъектHTML = Новый COMОбъект("htmlfile");
ОбъектHTML.ParentWindow.ClipboardData.Setdata("Text", Буфер);    

Буфер = ОбъектHTML.ParentWindow.ClipboardData.Getdata("Text");
20 Cyberhawk
 
11.10.19
16:37
(19) Проснись: начиная с 8.3.14.1565 такое не работает, ибо уже не ИЕ, а ВебКит
21 Garykom
 
гуру
11.10.19
16:38
(17) Веб-сервисы?
22 Cyberhawk
 
11.10.19
16:40
(21) Неуниверсально
23 Cyberhawk
 
11.10.19
16:40
(21) Ты же в (7) на что-то намекаешь - для меня это темный лес. Оно реализуемо?
24 Cyberhawk
 
11.10.19
16:41
Функцию вызвать через ВебКит из 1С не проблема. Сама ЖС-функция ВебКита может класть строку в буфер обмена окружения?
25 Cyberhawk
 
11.10.19
16:42
+(24) И читать из буфера тоже. На этот счет у меня большие сомнения, иначе браузеры могли бы следить за буфером)
26 pechkin
 
11.10.19
16:42
(20) все работает. ты же к системному ком объекту обращаешься а не к полю хтмл
27 Cyberhawk
 
11.10.19
16:42
+(25) Но может можно сэмулировать вставку из буфера?
28 Garykom
 
гуру
11.10.19
16:44
(23) Оно реализуемо но это как сообщение с сервера на клиент в 1С.
29 Cyberhawk
 
11.10.19
16:45
(26) Дошло, попробую, спс. Но получается что _не_ в Винде оно и через ХТМЛ-документ никогда не должно было работать?
30 trdm
 
11.10.19
16:45
(20) должно работать. Разберись.
31 pechkin
 
11.10.19
16:45
(29) само собой
32 Cyberhawk
 
11.10.19
16:46
(30) (31) Спс, лучи добра вам)
33 Cyberhawk
 
11.10.19
16:47
(28) Ну хост-то один.
Пользователь нажимает кнопку в одной базе 1С и потом нажимает другую кнопку в другой базе 1С - и вуаля, все передалось.
Это проще выделения, Ctrl+C и Ctrl+V )
2 + 2 = 3.9999999999999999999999999999999...