При обновлении технологической платформы 1С:Предприятие до релизов ветки 8.3.16 (например, 8.3.16.1030) пользователи отраслевого решения БИТ.Аренда часто сталкиваются с критической ошибкой: на графических планах этажей пропадает возможность выделять площади, кликать по объектам или просматривать интерактивные схемы. Визуально картинка может отображаться, но интерактивный функционал (обработка кликов, двойных щелчков, выделение цветом) полностью «отваливается».
В данной статье мы подробно разберем, почему это происходит, проанализируем изменения в архитектуре платформы 1С и рассмотрим пошаговые сценарии решения проблемы: от экстренного отката системы до правильной адаптации кода.
Первопричина кроется в глобальном изменении движка отображения HTML-документов в платформе 1С. Рассмотрим ситуацию глубже:
ПолеHTMLДокумента использовались компоненты системного браузера Internet Explorer. Многие разработчики отраслевых решений, включая БИТ, использовали технологию ActiveX для реализации сложной графики и перехвата событий мыши на схемах.Проанализируем доступные способы решения проблемы в зависимости от ваших возможностей по обновлению конфигурации и требований ИТ-инфраструктуры.
Как показывает практика и обсуждение специалистов, наиболее быстрым способом восстановить работоспособность старых релизов БИТ.Аренда (например, редакции 3.0.37.35 и ниже) является использование платформы, которая еще полноценно поддерживает старый движок рендеринга.
Опытным путем установлено, что функционал графических схем сохраняется на платформе не выше 8.3.14. Однако для максимальной стабильности рекомендуется использовать ветку 8.3.13 (например, релиз 8.3.13.1753). Если вы используете конфигурации, требующие более свежую платформу (например, новые релизы УТ 11 или БП 3.0), вам придется искать компромисс или использовать разные версии платформы для разных баз.
Если ваша ИТ-стратегия требует использования актуальных версий платформы 1С (8.3.16, 8.3.20 и выше), единственным правильным решением будет обновление самой конфигурации БИТ.Аренда. Разработчики выпустили исправления, начиная с ветки 3.0.38.х.
В новых релизах графическое ядро было полностью переписано. Вместо использования специфических функций ActiveX, разработчики перешли на современные методы работы с SVG и HTML5, которые нативно поддерживаются движком WebKit в новых версиях 1С. Это обеспечивает стабильную работу графики в тонком клиенте на любой современной ОС.
В некоторых случаях проблему можно частично обойти, изменив способ передачи данных в ПолеHTMLДокумента. Рассмотрим технический нюанс: в платформе 8.3.16 ужесточились правила безопасности (CORS) при загрузке локальных файлов в поле HTML.
Если ваша конфигурация пытается загрузить текст HTML напрямую в реквизит формы, попробуйте изменить логику: сначала записывайте HTML-код во временный файл на диске клиента, а затем передавайте в реквизит путь к этому файлу. Рассмотрим пример кода, который помогал восстановить работоспособность некоторых виджетов:
// Пример записи текста виджета во временный файл для корректного отображения в WebKit
ИмяФайла = ПолучитьИмяВременногоФайла("html");
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.УстановитьТекст(ТекстВиджета); // ТекстВиджета - ваш HTML/JS код
ТекстовыйДокумент.Записать(ИмяФайла, КодировкаТекста.UTF8);
// Присваиваем путь к файлу реквизиту формы, связанному с Полем HTML документа
Элементы.ПолеСхемы.Документ.location.href = ИмяФайла;
ОбновитьОтображениеДанных();
Важный момент: Если графика использует внешние картинки (планы этажей в формате JPG/PNG), убедитесь, что пути к ним указаны корректно. В 8.3.16 рекомендуется использовать кодирование изображений в формат Base64 непосредственно внутри HTML-кода, чтобы избежать блокировок браузера по соображениям безопасности.
Если после манипуляций графика все равно не работает, выполните следующие шаги для анализа ситуации:
WebKit могут кэшироваться и вызывать ошибки выполнения JavaScript.Проанализировав ситуацию, мы видим, что проблема носит фундаментальный характер и связана с развитием технологий 1С. Для долгосрочной стабильной работы рекомендуем планировать переход на современные релизы БИТ.Аренда, поддерживающие новый движок WebKit, так как возврат к старым версиям платформы (8.3.13) является лишь временной мерой, ограничивающей развитие остальной ИТ-системы предприятия.