Переключение на Главную Страницу Страницы: 1 [2] 3 4 ... 6 ОтправитьПечать
Очень популярная тема (более 25 ответов) Примеры и наработки по использованию WebBrowser ActiveX (число прочтений - 52235 )
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #15 - 20. Сентября 2011 :: 21:11
Печать  
Вот пример как можно прямо из скрипта управлять формой 1С, создавать объекты, выполнять процедуры и функции. И это всё простой сериализацией контекста формы с передачей ее в скрипт. Также наконец-то удалось побороть долбаную систему безопасности IE, которая не давала создавать активное содержимое в скрипте страницы по "GetObject()" (то есть ошибка "Невозможно создание объекта сервером программирования объектов").

Код
Выбрать все
Процедура HTML_DocumentComplete()

	WSH=createObject("MSScriptControl.ScriptControl");
	WSH.language="javascript";
	Объект=WSH.Eval("GetObject("""+Система.Сериализовать(Контекст)+""")");

	Браузер.Объект.document.parentWindow.initObject1C(Объект);

КонецПроцедуры 



Проверял на следующем, всё работает:

ОС: Windows 7 x32 IE9, Windows XP x32 IE8
1С: SQL 7.70.026
1C++: 3.2.3.16
FormEx: 2.0.5.93
« Последняя редакция: 20. Сентября 2011 :: 23:09 - maljaev »  

___________________002.rar ( 9 KB | Загрузки )
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #16 - 20. Сентября 2011 :: 21:14
Печать  
Вот скриншот к примеру из поста #15
Всё что вы видите, сделано прямо из скрипта.
Соответственно теперь всякие обработчики событий вроде "BeforeNavigate2" и "ОбработкаВнешнегоСобытия" в общем-то не нужны, раз можно прямо из скрипта рулить 1С (ну и наоборот конечно).  Улыбка
« Последняя редакция: 20. Сентября 2011 :: 23:09 - maljaev »  

___________005.png ( 27 KB | Загрузки )
___________005.png
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #17 - 21. Сентября 2011 :: 03:09
Печать  
Пытаюсь наваять универсальную функцию для создания нового элемента любого типа, но столкнулся с тем, что жабаскрипт не получает представления значений списка значений, т.е. в следующем
Код
Выбрать все
var name = '';
var value = paramlist.ПолучитьЗначение(i, name); 

name всегда содержит пустую строку, хотя в списке представление имеется, что видно при вызове ЗначениеВСтроку на стороне жабаскрипта.

Или надо искать другой способ передачи набора пар ключ-значение. Есть идеи?

Во вложении заготовка класса, целью которого является отказ от объекта Таблица.

Забыл про пример Улыбка запускается так
Код
Выбрать все
ПанельВеб = СоздатьОбъект("ПанельВеб"); ПанельВеб.Открыть(); 

« Последняя редакция: 21. Сентября 2011 :: 05:58 - Dmitry The Wing »  

__________001.rar ( 24 KB | Загрузки )
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #18 - 21. Сентября 2011 :: 06:27
Печать  
Dmitry The Wing писал(а) 21. Сентября 2011 :: 03:09:
Или надо искать другой способ передачи набора пар ключ-значение. Есть идеи?

Да легко. "Функция ПолучитьПредставление(СЗ,Номер) ...." - в 1С, или классом...
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #19 - 21. Сентября 2011 :: 06:59
Печать  
Обновил свой пример. Использовать также, как в прошлом посте.

Пример простейший, но показывает как можно из 1С полностью сформировать страницу без шаблона (точнее шаблон то есть, но пустой).

В большинстве реальных задач будет выгоднее использовать готовый шаблон, но я ставил целью отладить возможность добавления на лету любых объектов, поддерживаемых IE.
  

__________002.rar ( 15 KB | Загрузки )
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #20 - 29. Сентября 2011 :: 04:57
Печать  
Во изврат ... если создавать элементы таблицы - то их не видно, но если создать дивку и в иннерхтмл засунуть таблицу - то все в порядке ...  Озадачен
  
Наверх
 
IP записан
 
maljaev
Senior Member
****
Отсутствует


Классический секс с 1С
надоел. Хочется изврата...

Сообщений: 405
Местоположение: Нижний Новгород
Зарегистрирован: 19. Октября 2006
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #21 - 29. Сентября 2011 :: 05:54
Печать  
Это неправда, любые элементы нормально создаются в динамике. Вы просто не умеете их готовить Улыбка Не забывайте про THEAD и TBODY!
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #22 - 30. Января 2012 :: 02:42
Печать  
Очень интересно! Как раз то, что нужно в будущем проекте.
Правда, пока еще не копал код, но возник вопрос. Как я понимаю, используется один хтмл документ (шаблон) для формирования всей этой прелести? А как это все будет работать одновременно (ну или почти одновременно) под разными пользователями?
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #23 - 30. Января 2012 :: 07:35
Печать  
Html формируется в памяти, а не на диске, а у каждого пользователя память своя ... технология позволяет успешно реализовать аналог AJAX'а. И даже использовать готовые JS-классы, например jQuery и его потомки. Но по началу придется поиметь много секса, зато после осознания и овладевания все становится очень даже приятно и красиво.
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #24 - 30. Января 2012 :: 07:45
Печать  
Ну тогда вообще отлично!
  
Наверх
 
IP записан
 
trdm
1c++ power user
qt1l developer
1c++ moderator
Отсутствует



Сообщений: 2343
Местоположение: г. Ростов-на-Дону
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #25 - 30. Января 2012 :: 09:26
Печать  
Dmitry The Wing писал(а) 30. Января 2012 :: 07:35:
Html формируется в памяти, а не на диске, а у каждого пользователя память своя ... технология позволяет успешно реализовать аналог AJAX'а. И даже использовать готовые JS-классы, например jQuery и его потомки. Но по началу придется поиметь много секса, зато после осознания и овладевания все становится очень даже приятно и красиво.

ajax не так уж и сложен если использовать библиотеки.
Я вчера разбирался с движком, используемом на mista.ru
Там используется Subsys_JsHttpRequest от Котлерова.
Все достаточно просто.
  
Наверх
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #26 - 31. Января 2012 :: 01:16
Печать  
trdm писал(а) 30. Января 2012 :: 09:26:
ajax не так уж и сложен если использовать библиотеки.
Я вчера разбирался с движком, используемом на mista.ru
Там используется Subsys_JsHttpRequest от Котлерова.
Все достаточно просто.
Ты не понял. C аяксом я дружу очень давно и плодотворно, но одно дело работать на стороне сервера и клиента, а совсем другое - только на стороне клиента, т.к. в обсуждаемом сдесь варианте вызовов сервера нет и не будет. Все производится через перехват обработчиков браузера, т.е. на сервер ничего не идет, а аякс именно в этом заключается - в асинхронной работе с сервером.
Потому и выходит не аякс, а только его аналог, хотя пользователь врядли заметит разницу ...
Для полноценного аякса надо биндить сокет(ы), запускать параллельные треды (иначе будет слишком часто белое окно 1С) и обрабатывать запросы клиента, но разве оно того стоит?
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #27 - 31. Января 2012 :: 23:55
Печать  
Все это прекрасно и отлично. Но движок IE все таки убог, если использовать CSS и JS.
Никто не юзал Mozilla ActiveX Control? Ибо под WebBrowser ActiveX много красивостей и вкусностей просто не работают. В лучшем случае работают на половину.
  
Наверх
 
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #28 - 01. Февраля 2012 :: 02:17
Печать  
ziflex писал(а) 31. Января 2012 :: 23:55:
Ибо под WebBrowser ActiveX много красивостей и вкусностей просто не работают. В лучшем случае работают на половину.
Все там работает, просто ты не умеешь его готовить ... исторически сложилось, что большинство нововведений идут как раз от IE, но мозилла делает это несколько провильнее. Я к тому, что если у тебя что-то не пашет в IE, то это объясняется или версией IE (кстати, версия активикса всегда ниже версии браузера) или тем, что ты просто не знаешь, как такое сделать именно в IE установленной версии...
Преимущество IE здесь только в том, что оно уже растет в системе, а все остальное необходимо устанавливать отдельно... активиксов существует немеряно, но этот предустановлен: не требует проверки и на всех компах работает.
  
Наверх
 
IP записан
 
ziflex
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 76
Местоположение: Владивосток
Зарегистрирован: 05. Мая 2011
Пол: Мужской
Re: Примеры и наработки по использованию WebBrowser ActiveX
Ответ #29 - 20. Февраля 2012 :: 05:31
Печать  
Либо я что-то не так делаю, либо невозможно вызвать функцию из сериализованной формы элемента справочника... Печаль а с обработкой работает.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 3 4 ... 6
ОтправитьПечать