Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Взаимодействие 1С и JS (Платформа 8.3.14)

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

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

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

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

Программно кликать можно по любому элементу даже скрытому.
var testEl = document.getElementById('testEl');
testEl.click();

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

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

Буфер = ОбъектHTML.ParentWindow.ClipboardData.Getdata("Text");

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.