К статье
Практический материал

Администрирование · 9 мин

WebKit в 1С: с какой версии платформы он появился и что пришло ему на смену

Разбираем, с какой версии платформы 1С:Предприятие используется движок WebKit, когда его сменил Chromium (CEF) и как это влияет на HTML-поля и веб-клиент.

Вопрос «1С WebKit — с какой версии» возникает у разработчиков и администраторов, когда HTML-поля, веб-клиент или публикации информационных баз начинают вести себя по-разному на разных релизах платформы. Ответ зависит от того, что именно имеется в виду: движок отображения HTML в поле HTML-документа, движок веб-клиента или компонент, поставляемый вместе с платформой.

Коротко: движок WebKit впервые появился в составе платформы 1С:Предприятие 8.3 начиная с версии 8.3.6 — он использовался для отображения HTML-содержимого на Linux и macOS, а также в ряде сценариев на Windows как альтернатива Internet Explorer. Позже, начиная с версии 8.3.14, фирма «1С» перевела платформу на движок Chromium Embedded Framework (CEF), который постепенно вытеснил и WebKit, и привязку к Internet Explorer.

Ниже разберём, какие версии какие движки использовали, как проверить, какой движок работает у вас, и на что это влияет в прикладной разработке.

Какие движки отображения HTML использовались в 1С по версиям

Платформа 1С:Предприятие исторически прошла через три этапа в части отображения HTML. На ранних версиях 8.3 (и в 8.2) единственным движком был Internet Explorer через системный компонент WebBrowser — это создавало массу проблем: старые стандарты, разное поведение в зависимости от версии IE на машине пользователя, уязвимости.

Второй этап — появление WebKit в версии 8.3.6. На Linux и macOS, где Internet Explorer отсутствует, WebKit стал стандартным движком для поля HTML-документа. На Windows в ряде релизов можно было переключаться между IE и WebKit через настройки или параметры запуска.

Третий этап — переход на Chromium Embedded Framework начиная с версии 8.3.14. CEF — это тот же движок, что лежит в основе Google Chrome, поэтому современные релизы платформы корректно отображают современные веб-стандарты: HTML5, CSS3, актуальный JavaScript.

Версия платформыДвижок HTMLКомментарий
8.2 и ранние 8.3 (до 8.3.5)Internet Explorer (WebBrowser)Только Windows, зависимость от версии IE
8.3.6 – 8.3.13WebKit (Linux, macOS), IE или WebKit (Windows)Первое появление WebKit в платформе
8.3.14 и новееChromium Embedded Framework (CEF)Единый современный движок на всех ОС

Как проверить, какой движок используется в вашей установке

Самый надёжный способ — вывести в поле HTML-документа тестовую страницу, которая показывает строку User-Agent браузерного движка. Для этого достаточно загрузить в поле HTML небольшой документ с JavaScript, выводящим navigator.userAgent, или открыть любой публичный сервис определения браузера.

По содержимому строки легко определить движок: упоминание «AppleWebKit» вместе с «Chrome» указывает на CEF, упоминание «MSIE» или «Trident» — на Internet Explorer, «AppleWebKit» без «Chrome» и с упоминанием 1C — на классический WebKit.

bsl
// Вывести User-Agent в поле HTML-документа
ПолеHTML = "<script>document.write(navigator.userAgent);</script>";

Дополнительно можно посмотреть каталог установки платформы: в релизах с CEF рядом с исполняемыми файлами присутствуют библиотеки libcef.dll и сопутствующие ресурсы Chromium. Их наличие — признак того, что платформа работает на Chromium.

Что изменилось для разработчика при переходе с WebKit на Chromium

Переход на CEF принёс практические последствия. Во-первых, HTML-поля стали отображать современные сайты и сложные интерфейсы без «разваливания» вёрстки — то, что в WebKit и IE выглядело сломанным, в Chromium работает как в обычном браузере.

Во-вторых, изменились тонкости взаимодействия между встроенным языком 1С и JavaScript внутри HTML-поля. События ПриНажатии, ДокументСформирован и обмен данными через window.external в общих чертах сохранились, но отдельные нестандартные приёмы, рассчитанные на особенности WebKit или IE, могли перестать работать.

В-третьих, вырос объём дистрибутива и потребление памяти: CEF — полноценный браузерный движок, и каждый экземпляр HTML-поля требует заметно больше оперативной памяти, чем старый WebKit.

Как выбрать минимальную версию платформы под задачу

Если прикладное решение активно использует HTML-поля, карты, онлайн-виджеты или веб-интерфейсы внутри форм, минимально разумной целью является платформа 8.3.14 и новее — только там гарантирован современный движок. Работать с современными веб-сервисами на WebKit из 8.3.6–8.3.13 или на IE практически невозможно: многие сайты просто откажутся открываться.

Если база работает на старой платформе и обновление невозможно по политическим или техническим причинам, альтернативой может быть вынос HTML-отображения во внешний браузер пользователя через ЗапуститьПриложение() или ПерейтиПоНавигационнойСсылке() — тогда отображение не зависит от встроенного движка.

Маршрут решения

Как выбрать действие

HTML-поле должно показывать современные сайты и сложный JavaScriptОбновите платформу до версии 8.3.14 или новее с движком CEF
Обновить платформу нельзя, а отобразить страницу нужноОткройте страницу во внешнем браузере через ПерейтиПоНавигационнойСсылке
Форма с HTML-полем работает только на Linux или macOSНа версиях 8.3.6–8.3.13 используется WebKit — учитывайте его ограничения по стандартам

Типичные проблемы и ошибки при работе с HTML-полями

Наиболее частая жалоба — «после обновления платформы HTML-поле перестало работать». Обычно причина в JavaScript, написанном под старый движок: устаревшие API, прямой доступ к объектной модели IE, нестандартные расширения WebKit. Решение — привести код к стандартному JavaScript, совместимому с Chrome.

Вторая группа проблем — безопасность. Современный CEF по умолчанию строже относится к смешанному контенту (HTTPS-страница с HTTP-ресурсами), локальным файлам и межсайтовым запросам. То, что WebKit молча показывал, Chromium может заблокировать.

Типичные ошибки
01
Предполагать, что на всех клиентских машинах одинаковый движок: на старых релизах поведение зависело от ОС и версии IE
02
Использовать в HTML-поле функции JavaScript, специфичные для IE, — после перехода на CEF они перестанут работать
03
Грузить в HTML-поле HTTP-ресурсы внутри HTTPS-страницы — Chromium блокирует смешанный контент
04
Не тестировать печать из HTML-поля после смены версии платформы — механизм печати зависит от движка

Ограничения и риски при обновлении платформы

Обновление платформы ради нового движка — небезопасная операция сама по себе: меняется не только HTML-компонент, но и поведение встроенного языка, механизмов СКД, совместимости. Перед обновлением рабочей базы сделайте полную выгрузку и проверьте решение на тестовой копии.

Отдельный риск — сторонние внешние компоненты и расширения, которые встраивались в старый движок. После перехода на CEF они могут потребовать обновления от поставщика или полного отказа от них.

Проверка результата после смены версии

После перехода на релиз с CEF пройдите по всем формам, где есть поле HTML-документа, и проверьте: корректность отображения, работу обработчиков событий, печать, обмен данными между 1С и JavaScript. Убедитесь, что User-Agent показывает Chromium.

Контрольные точки

Как проверить результат

Строка User-Agent в HTML-поле
Норма

Содержит Chrome и AppleWebKit — работает CEF

Тревожный признак

Содержит MSIE или Trident — используется устаревший IE

Отображение тестовой страницы со сложной вёрсткой
Норма

Страница выглядит как в обычном Chrome

Тревожный признак

Сломанная вёрстка, неработающие скрипты

Печать из HTML-поля
Норма

Документ печатается полностью и без искажений

Тревожный признак

Пустые страницы или обрезанный контент

FAQ

С какой версии 1С используется WebKit?

Движок WebKit появился в платформе 1С:Предприятие начиная с версии 8.3.6 — прежде всего для Linux и macOS, где Internet Explorer недоступен. На Windows в ряде релизов WebKit использовался как альтернатива IE.

А с какой версии 1С перешла на Chromium?

Переход на Chromium Embedded Framework начался с версии 8.3.14. В актуальных релизах CEF — основной движок отображения HTML на всех поддерживаемых операционных системах.

Как узнать, какой движок работает в моей базе?

Выведите в поле HTML-документа значение navigator.userAgent. Наличие в строке «Chrome» указывает на CEF, «MSIE» или «Trident» — на Internet Explorer, «AppleWebKit» без «Chrome» — на классический WebKit.

Почему HTML-поле сломалось после обновления платформы?

Чаще всего причина в JavaScript, написанном под старый движок (IE или WebKit), либо в блокировке смешанного контента — Chromium строже относится к HTTP-ресурсам на HTTPS-страницах и к устаревшим API.

Можно ли работать с современными сайтами на платформе 8.3.10?

Практически нет: WebKit тех версий и Internet Explorer не поддерживают современные веб-стандарты, и многие сайты откажутся открываться. Решение — обновить платформу до 8.3.14+ или открывать страницы во внешнем браузере пользователя.

Влияет ли движок на веб-клиент 1С?

Нет, веб-клиент работает в обычном браузере пользователя (Chrome, Firefox, Edge и др.) и не зависит от встроенного движка платформы. Движок WebKit/CEF относится к полю HTML-документа в тонком и толстом клиенте.

Итог

Что важно запомнить

WebKit появился в 1С с версии 8.3.6, а начиная с 8.3.14 его сменил Chromium (CEF). Для работы с современными веб-страницами внутри 1С нужна платформа 8.3.14 или новее; проверить движок можно через navigator.userAgent в поле HTML-документа.