Как встроить и воспроизвести видео на управляемой форме в 1С?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Особенности работы поля HTML-документа и движка WebKit в 1С

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

Однако встроенный WebKit имеет ряд отличий от полноценного десктопного браузера (например, Google Chrome). Основные проблемы, с которыми мы сталкиваемся при попытке встроить видео (особенно с внешних ресурсов вроде YouTube или сложных 3D-моделей), связаны с жесткой политикой безопасности (CSP — Content Security Policy), ограничениями CORS (Cross-Origin Resource Sharing) и отсутствием поддержки некоторых проприетарных мультимедийных кодеков. Из-за этих ограничений ролики через стандартные iframe-вставки могут просто не загружаться.

Решение проблемы через нативный HTML5 (тег video)

Выясним причину неудач с внешними плеерами и разберем по шагам наиболее надежный способ. Самым стабильным решением для современных релизов 8.3 является использование базового стандарта HTML5, а именно тега video. Платформа отлично справляется с рендерингом простых HTML-страниц, сформированных программно.

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


<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        body { margin: 0; padding: 0; background-color: #000; display: flex; justify-content: center; align-items: center; height: 100vh; }
        video { max-width: 100%; max-height: 100%; outline: none; }
    </style>
</head>
<body>
    <video controls autoplay>
        <source src="file://C:/VideoArchive/sample.mp4" type="video/mp4; codecs="avc1.42E01E, mp4a.40.2"">
        Ваш браузер не поддерживает тег video.
    </video>
</body>
</html>

Этот код генерируется на сервере или клиенте и присваивается реквизиту формы, связанному с полем HTML. При необходимости мы можем обращаться к свойствам плеера напрямую из встроенного языка 1С, используя объект Документ.defaultView, чтобы программно управлять воспроизведением, ставить на паузу или регулировать звук через выполнение JavaScript-функций.

Проблема использования тяжелых JS-библиотек (например, Video.js)

Многие разработчики пытаются подключить красивые внешние плееры, написанные на JavaScript (например, Video.js). Разберем, почему в 8.3 это может не работать с коробки. Встроенный WebKit часто блокирует загрузку связанных локальных скриптов, таблиц стилей или шрифтов, если они лежат отдельными файлами в каталогах.

Если проект требует использования именно внешнего JS-плеера, рабочим обходом является инкапсуляция всех ресурсов в один файл. Нам потребуется:

  1. Взять исходный код библиотеки (JavaScript).
  2. Взять CSS-стили библиотеки.
  3. Перекодировать все используемые иконки и шрифты в формат Base64.
  4. Поместить всё это внутрь единого HTML-макета (в теги script и style соответственно).

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

Влияние режима совместимости конфигурации

Если вы всё сделали правильно, но элементы HTML5 всё равно не работают корректно, обязательно проверьте настройки конфигурации. Движок WebKit в 1С чувствителен к свойству РежимСовместимости. Если ваша база работает в режиме совместимости со старыми релизами платформы (например, 8.3.12 и ниже), 1С может искусственно урезать поддержку современных веб-стандартов. Повышение режима совместимости до актуальных версий часто решает проблему с загрузкой медиаконтента и скриптов.

Альтернативный вариант для Windows: ActiveX WMP

Рассмотрим еще одну альтернативу. Если ваша конфигурация не предназначена для веб-клиента и работает исключительно на компьютерах под управлением ОС Windows (в тонком или толстом клиенте), можно отказаться от поля HTML-документа и использовать вставку ActiveX-объекта.

На форму можно добавить элемент управления и выбрать тип "Windows Media Player". Этот способ отличается высокой производительностью и часто используется для вывода потокового видео в реальном времени напрямую с IP-камер видеонаблюдения по протоколу RTSP. Однако стоит помнить, что это решение не является кроссплатформенным и не будет работать на рабочих местах под управлением Linux или macOS.

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

← На главную