Как открыть страницу с 3D-графикой или сложным HTML-кодом в браузере из 1С?

Программист 1С v8.3 (Управляемые формы) Промышленность, строительство и АПК
← На главную

При работе с современными веб-технологиями, такими как Autodesk Forge или сложные интерактивные BIM-модели, разработчики 1С часто сталкиваются с критическим ограничением: стандартный элемент управления ПолеHTMLДокумента не справляется с отрисовкой тяжелого 3D-контента. Это происходит потому, что встроенный компонент базируется на устаревших движках рендеринга (Internet Explorer или ранние версии WebKit), которые не поддерживают современные стандарты WebGL и аппаратное ускорение.

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

Причина неработоспособности Поля HTML документа

Стандартное ПолеHTMLДокумента предназначено для отображения простого контента. При попытке загрузить в него полноценное 3D-приложение возникают следующие проблемы:

  1. Отсутствие поддержки WebGL: современные визуализаторы требуют аппаратного ускорения графики, которого нет в старых движках 1С.
  2. Зависание интерфейса: попытка инициализировать тяжелые скрипты приводит к тому, что 1С перестает отвечать на действия пользователя.
  3. Отсутствие взаимодействия: даже при частичной загрузке модели, скроллинг, зум и вращение объекта через стандартный элемент управления работают некорректно или не работают вовсе.

Решение через использование внешнего браузера

Самым надежным и простым способом корректного отображения 3D-контента является вынос страницы за пределы интерфейса 1С. Мы можем сохранить HTML-код во временный файл и запустить его с помощью установленного в системе браузера (Chrome, Edge или Firefox). Рассмотрим этот процесс по шагам.

Шаг 1: Подготовка HTML-файла

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

Сохраните полученный текст в файл с расширением .html в папку временных файлов пользователя, используя объект ТекстовыйДокумент или метод Записать строки в файл.

Шаг 2: Программный запуск через 1С

Для открытия подготовленного файла в браузере мы воспользуемся методом НачатьЗапускПриложения. Этот метод является асинхронным и безопасным для работы в управляемых формах.

Разберем пример реализации процедуры открытия:


&НаКлиенте
Процедура ЗапуститьВнешнийБраузер(Команда)
    // Формируем путь к файлу
    ПутьКФайлу = ПолучитьИмяВременногоФайла("html");
    
    // Здесь должен быть код записи вашего HTML в файл
    // ТекстовыйДокумент.Записать(ПутьКФайлу);
    
    // Запускаем браузер
    НачатьЗапускПриложения(
        Новый ОписаниеОповещения("ЗапуститьЗавершение", ЭтотОбъект), 
        ПутьКФайлу
    );
КонецПроцедуры

&НаКлиенте
Процедура ЗапуститьЗавершение(КодВозврата, ДополнительныеПараметры) Экспорт
    // Здесь можно обработать результат закрытия браузера, если это необходимо
КонецПроцедуры

Использование НачатьЗапускПриложения позволяет операционной системе автоматически выбрать браузер по умолчанию, установленный у пользователя. Поскольку внешние браузеры (например, Google Chrome) обладают современными движками, 3D-модели будут отрисовываться корректно, а инструменты вращения и масштабирования будут работать с высокой производительностью.

Перспективные альтернативы

Если специфика вашей задачи требует, чтобы модель отображалась строго внутри окна 1С, рекомендуем рассмотреть следующие подходы для актуальных версий платформы:

Проанализировав ситуацию, мы видим, что использование внешнего браузера через временные файлы является наиболее стабильным и доступным методом решения проблемы на текущий момент. Это позволяет избежать проблем с несовместимостью движков и обеспечить пользователя полноценным функционалом для работы с 3D-объектами.

← На главную