Как стать автором
Обновить

Интеграция HTML движка в нативное Windows приложение – выбор и архитектура

Время на прочтение 10 мин
Количество просмотров 20K
Всего голосов 16: ↑15 и ↓1 +14
Комментарии 44

Комментарии 44

С какой версии 1С этот новый движек доступен?
8.3.14.
Спасибо за вопрос по делу, сейчас добавлю в статью.
Когда планируется поддержка таблиц в форматированном документе?
Примечание: Если у кого-нибудь в конфигурации использовался, например, разбор html-страницы c помощью объектной модели IE, то при переходе на новую версию платформы, такую конфигурацию надо будет доработать (перевести на модель WebKit).
Возможно, таких конфигураций немного, но всё же…
Один вопрос — вы все эти патчи при себе держите или хоть что-то в апстрим отправляете? Те же баги со вставкой под виндой или курсивом думаю у многих встречаются.
Пока держим при себе.
Согласен, влить было бы хорошо, но пока руки не доходят.
Добрый день. Планируются ли какие-либо улучшения поля HTML в веб-клиенте? Например, программная работа с буфером обмена.
В форматированном документе, если работать с ним через веб-клиент, есть очень неприятная вещь — он теряет часть содержимого. Воспроизвести можно примерно следующим образом:

1) Добавить на управляемую форму (скажем, справочника) группу страниц.
2) Разнести элементы формы по разным страницам. При этом форматированный документ оставить на второй странице.
3) В режиме «Предприятие» в веб-клиенте наполнить форматированный документ.
4) Мышью переключиться на другую страницу и нажать CTRL+S.
5) После записи объекта перейти на вкладку с форматированным документом. Текст или его часть будет отсутствовать.

Опытным путем пришли к решению, что изменения содержимого поля форматированного документа помещаются в реквизит формы при смене фокуса на другой элемент. А в приведенном выше примере этого не происходит, соответственно, обновления данных в реквизите тоже.

Пока проблему решили принудительной установкой фокуса на другой элемент формы при смене страницы.

P.S. Платформа 8.3.11. Если не получится воспроизвести, могу скинуть видео.
Спасибо!
Если не получится воспроизвести — запрошу у вас видео.
Спасибо, хорошие новости.
Скажите а когда можно будет реализовать событие ПриНажатии в HTML поле в мобильном приложении?
Тоже с ним проблемы? Оно вроде как есть, но у нас не работало. Хотя надо бы на последних версиях проверить, может починили.
Да мы перешли на последнюю ознакомительную мобильную 8.3.13, но проблема не решена.
Насколько помню, в мобильной платформе событие ПриНажатии происходит только если нажатие приводит к переходу на другую страницу. У вас нажатие приводит к переходу на другую страницу?
Спасибо попробуем!

Пока что мы сильно не пользовались полем HTML в мобильной версии, т.к. при клике не срабатывало ПриНажатии.
Если что — пишите. Не работает — постараемся починить.
Уже попробовали, действительно работает.
Спасибо, действительно чувствуется ускорение в решении проблем, что не может не радовать.
А можно, пожалуйста, исправленный код поддержки вставки пулл-реквестом в вебкит и, по возможности, блинк? Спасибо!
Как дойдут у разработчиков руки — вольем. Но обычно разработчики у нас сильно загружены :(
А исходники этой доработанной версии WebKit где-то доступны?
Пока нет.
К выпуску версии 8.3.14 (ориентировочно — конец 2018 г.) планируем выложить исходники WebKit с нашими доработками здесь: github.com/1C-Company-third-party
8.3.14 вроде уже вышла. Когда планируете выложить исходники WebKit? :)
Планы по выкладке есть. Сейчас наши изменения в исходниках WebKit проходят ревью. Думаю в течение месяца выложим.
Спасибо! Буду с нетерпением ждать :)
Чьё ревью?
с версии 8.3.14 (релиз — конец 2018 г.)

Ничего не перепутали? Конец 2018 года это же релиз 8.3.13 или же все таки к концу года и 8.3.14 ждать еще?
8.3.13 уже опубликована
Увы мечтам не было суждено сбыться :D
Есть еще пятый вариант: Gecko
Где можно найти инструкцию по использованию Gecko?
Совершенно верно. Я даже его на картинке нарисовал :)
Но Gecko у нас отвалился на ранней стадии рассмотрения, причину уже и не вспомню.
А у вас есть пример удачного использования Gecko? Кроме Firefox.
Будет здорово, если поделитесь.
А простые смертные (те, которые не могут себе позволить штат разработчиков, которые поставят ActivePerl, Php, Python, и кучу всего, разберутся как каждый компонент настроить, разберутся с такими советами, как отключение антивирусов, не обновлять WinCairo (!), «You may have to build twice before it works.» и т.д.) могут где-то получить замечательный WinCairo, чтоб вот как «этот уродский IE» взять и подключить к проекту одной строкой/dll'кой?
Даже не знаю. Нам пришлось пройти длинным путем.
Расскажите пожалуйста, PeterG, чуть подробнее про решение НЕ в пользу
Chromium(Blink)

Первый и единственный не WebKit-подобный движок, который рассматривался как кандидат для решения задачи. Был отвергнут из-за больших различий в логике работы компонент для отрисовки HTML по сравнению с WebKitGTK+ и другой библиотеки для работы с JavaScript (V8).

Вроде бы считается, что движок V8 является одним из самых производительных для Javascript, а связка V8 + libuv позволяет реализовывать полноценный обмен с вешним миром, NODE.JS тому пример.
Что имеется в виду под «различиями в отрисовки HTML», которые оказались критичны для 1С, но с другой стороны создают конкурентное преимущество для Хрома?

И почему вы его называете не WebKit-подобным, хотя он основан на WebCore из WebKit?
Главная причина отказа от Chromium в пользу WebKit была в том, что у WebKit для исполнения JavaScript используется библиотека JavaScriptCore, на основе которой у нас уже была реализована работа с DOM для Linux. Эту реализацию мы использовали в готовом виде для Windows и macOS, т.к. API у этой библиотеки для всех ОС одинаковый.
В случае с Blink, хотя за основу и была взята библиотека WebCore, далее движок развивался независимо. Поэтому WebKit выглядит предпочтительнее в смысле унификации поведения нашего клиента в разных ОС.
Что будет с конфигурациями, которые будут запущены на платформе 8.3.14, которые на текущий момент используют ActiveX?
Если речь идет о внешних ActiveX-компонентах, которые использовались в ПолеHTMLДокумента в нативном клиенте, то их функционирование в 8.3.14 прекратится, WebKit эту технологию не поддерживает.
Портировать актуальную версию движка на WinXP самостоятельно и использовать её везде
Не означает ли это, что вы надолго/навсегда застрянете на текущей версии WebKit, которая через какое-то время всё равно устареет?
Нет, мы планируем периодически обновляться. Естественно, с учетом возможностей той же WinXP; думаю, не все обновления смогут быть применены на WinXP по объективным причинам.
PeterG, уточните, пожалуйста, запланирована ли возможность работы с инстументами разработчика WebKit при работе в тонком клиенте?
В актуальной версии 8.3.15 их можно вызвать, но весьма своеобразным способом через контекстное меню проверки орфографии. Возможно есть какой-то более простой прием, если возможность планировали как штатную?
Да, инструменты разработчика вызываются нажатием комбинации Ctrl+Shift+Alt+F12.
В 8.3.16 есть ошибка, из-за которой не применяются настройки прокси из файла inetcfg.xml. Ошибка зарегистрирована под номером 10208275. Планируют поправить к 8.3.17
Зарегистрируйтесь на Хабре , чтобы оставить комментарий