новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Яндекс-директ

Встроенный браузер в 1С. Надеемся на webkit?

  • Добавить свою разработку
 
Кудашкин Сергей Иванович
Связаться с автором
08.05.2013 10:16:16
+1
Скриптов много сделано в интерете для браузерных движков, а в 1С есть и ПолеHTML документа. Что все не так просто понимает каждый, но в Winodws 7 уже по умолчанию Internet browser 9, а 10 в релизе. Значит стоит копать. Идея первая - простой браузер.
Скриншоты
Описание

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

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

 

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

  1. Локальная машина - Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)
  2. Толстый клиент - 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)
  3. Тонкий клиент - 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)
  4. 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 не удасться, значит дело не в номере движка. Погуляем еще по сайтам и заметим что ошибки не так уж заменты. v8.1c.ru и Инфостарт не выдают ошибок...

Залезаем в документацию 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.687 так и ничто не говорит чтобы что-то измениться.

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

 

Сайт: sikuda.ru

Ключевые слова:   html   webkit   browser   IE9   IE10   1c 8.3   1с 8.2   javascript   ActiveX   COM+   тонкий клиент   такси
Файлы для скачивания
0
    Разработки
    Конфигурация 1с.
    Рабочая конфигурация 1С
    Рассылка писем из 1с, ver. 2.0
    Обработка для рассылки писем
    Моя "Доминикана" или Я и Рафаэль.
    Как рисовать с html в 1С
    Читайте также
    Встраиваем Silverlight-приложение в любую форму 1С: Предприятие
    Приложение Silverlight помогаем втроить в 1С Предприятие
    Веб сервисы, работа с динамической ссылкой
    Как работать с динамической ссылкой
    Управляемый интерфейс. Подсистемы 1с.
    Статья про управляемый интерфейс
    ≡ к списку разработок
    Яндекс-директ