Заметки из Зазеркалья

20.09.2018

Перевод клиентских приложений для Windows на использование WebKit (оптимизация отображения HTML)

Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.

Реализовано в версии 8.3.14.1565.

В клиентских приложениях для операционной системы Windows вместо Internet Explorer мы задействовали библиотеку WebKit. Это позволяет унифицировать работу элементов управления, использующих браузер, а также избавиться от проблем, связанных с ошибками Internet Explorer.

Элементы управления, использующие браузер

В платформе 1С:Предприятия существует несколько прикладных и системных элементов, работа которых в операционной системе Windows основывается на COM-объекте движка Internet Explorer. Это такие элементы как:

В разных версиях Windows используются разные версии Internet Explorer, зачастую устаревшие. Это сильно усложняет разработку функциональности, основанной на браузере. Причём это справедливо как для вас, прикладных разработчиков, так и для нас, когда мы разрабатываем платформу 1С:Предприятия.

Клиентские приложения, работающие под управлением операционных систем Linux и macOS, вместо COM-объекта Internet Explorer используют библиотеку WebKit. Это свободная кроссплатформенная библиотека с открытым исходным кодом. В результате DOM-модель HTML документа, полученная через свойство поля Документ (ПолеФормы.Документ), в этих клиентских приложениях может отличаться от аналогичной DOM-модели в клиентском приложении в операционной системе Windows. Это также усложняет разработку прикладной функциональности, работающей одинаково на разных операционных системах.

Преимущества перехода на WebKit

Перевод всех клиентских приложений на использование WebKit даёт следующие преимущества:

  • Одинаковое поведение в различных версиях Windows;
  • Максимально схожее поведение при работе в операционных системах, поддерживаемых 1С:Предприятием, так как используется одна и та же библиотека, хоть и разных версий;
  • Лучшая производительность в ряде сценариев работы;
  • Более стабильная и более быстрая работа форматированного документа;
  • Лучшая поддержка веб-стандартов;
  • При переходе на WebKit мы исправили большое количество ошибок, которые невозможно было исправить при использовании Internet Explorer.

Реализация

Последний пункт предыдущего списка нужно пояснить подробнее. В отличие от Internet Explorer библиотека WebKit содержит открытый исходный код, поэтому мы можем самостоятельно исправлять какие-то её проблемы, если они возникают.

Мы используем доработанную библиотеку WebKit, и поставляем её вместе с дистрибутивом платформы.

В первую очередь доработка потребовалась потому, что прикладные решения 1С:Предприятия могут работать под управлением операционной системы Windows XP, а стандартный WebKit её уже не поддерживает. Мы реализовали такую поддержку в нашей библиотеке WebKit.

Также открытый исходный код этой библиотеки даёт нам возможность разобраться в нюансах поведения и проблемах, а также самостоятельно поддерживать актуальность этой библиотеки в платформе 1С:Предприятия.

Влияние на существующую функциональность

В результате перехода на WebKit тип свойства Документ у поля, имеющего вид ПолеHTMLДокумента, изменится с COMОбъект на ВнешнийОбъект. Также изменится DOM модель документа, доступная через это свойство.

Если при разработке функциональности вы учитывали рекомендации для операционных систем Linux и macOS, то никаких проблем возникнуть не должно.

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

Теги: UI  8.3.14