Modber Сообщество
профессионалов по 1С

Встроенный браузер в 1С. Кто здесь?



Скачиваний: 48
Платформы: 1С:Предприятие 8.3, 1С:Предприятие 8.2, Linux, Web, Windows
Конфигурации: Все конфигурации
2013-02-11
5068 
sikuda
8  

Доброго времени суток!

В первые увидев ПолеHTML документа в обычном приложении можно подумать, что это полноценный браузер в 1С. Что-то подсказывает, что нет.

 

Проверим что нам напишет по поводу браузера простая проверка или внутреннее свойство ИнформацияПрограммыПросмотра (8.2.17.153) в Windows:

Локальная машина — Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
Толстый клиент — Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Тонкий клиент — Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)
Web-клиент — Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)

Без комментариев. Смотрим и думаем. 

Насчет пункта 4 тоде не стоит себя обольщать. В IE есть режим совместимости со старыми версиями. Так вот web-клиент 1С в IE работает только  в данном режиме (http://sikuda.ru/?p=168). Ахилесова пята 1С. Будем надеется, что в 8.4 дело сдвинется с мертвой точки.

Пробуем написать простой браузер для толстого клиента (прикрепленный ВэбБраузер1С.epf). И начнем тестировать. Введем  www.1c.ru и сразу получим ошибку стилей...(обычная копроративная система Win7x64, IE9). И воспроизвести ошибку в режиме ie7 не удасться, значит дело не в номере движка.
 

Залезаем в документацию 1C толстого клиента: Описание объекта, в целом, определяется стандартом World Wide Web Consortium (W3C) Document Object Model (DOM) Level 1 (http://www.w3.org/TR/2000/WD-DOM-Level-1-20000929/) Но, объект имеет особенности, связанные с реализацией. ПолеHTMLДокумента реализовано с использованием WebBrowser Control http://msdn.microsoft.com/en-us/library/aa752040(VS.85).aspx Тип свойства документ соотвествует типу HTMLDocument http://msdn.microsoft.com/en-us/library/ms531073(VS.85).aspx. Вот где здесь точно собака порылась...

Ошибки это плохо. Сделаем новую форму ФормаОбычнаяActivеX. И вставим туда ActiveX элемент Browser. Немного поколдуем с кнопками, что выглядело как в первоначальной форме. Запускаем www.1c.ru баз, опять ошибка. Нет ну так не пойдет. По логике интернет программирования, есть есть ошибка она просто что-то не делает, а не напрягает пользователя. Поэтому отыскиваем в нашем объекте свойство Silent и устанавливаем его в Истина. Ура! Момент истины, www.1c.ru открывается без ошибок. Поставим эту форму по умолчанию. И посмотрим на версию движка: "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C)" — а он тот-же старый.

В бета версии 8.3 на Linux предварительно все хорошо. Но там сразу понятно, что это webkit (libwebkitgtk-1.0-0). Доработанность решений 1С с ним это я думаю процесс долгий.

 

Теперь  займемся тонким клиентом. Здесь у нас есть только свойство Данные типа строка, типа текст страницы. Посмотрим как это сделано в типовых конфигурациях. Внутренние ссылки работают, а внешние вызываются по ПерейтиПоСсылке во внешнем браузере. Что это значит, это не облом, это философия такая.И разумное объяснение может упирается в безопасность и рабоспособность старого движка, а не разумное в маркетинг(Наш тонкий клиент круче чем все вэб-браузеры мира...). Но даже по безопасности видна явная дырка. Скрипты на странице работают, если их загрузить отдельно. Пока в версии 8.3.3.641 так и ничто не говорит чтобы что-то измениться.

Для любителей смотреть ошибки в скриптах — сделаем эту возможность в тонком клиенте. Поставим начальную страницу v8.1c.ru, чтобы сразу не ругался. Скачивайте — наслаждайтесь. Даже можно запустить демо 8.3 внутри тонкого клиента. 

 



Как установить отработку или отчет 1С


Скачивание доступно только зарегистрированным пользователям.
Зарегистрируйтесь или войдите под своим аккаунтом.


Бесплатная юридическая
консультация по телефону

8 (499) 350-80-26(Москва)
8 (812) 627-15-62(Спб)

звонок бесплатный

В центре внимания

Комментарии (1)