Как встроить воспроизведение видео в формы 1С 7.7?

Программист 1С v7.7 IT и автоматизация бизнеса
← На главную

Вопрос интеграции мультимедийного контента в интерфейс 1С:Предприятия 7.7 остается актуальным, несмотря на почтенный возраст платформы. Часто возникает необходимость показать обучающий ролик, запись работы оборудования или видеоинструкцию непосредственно внутри учетной системы, не заставляя пользователя переключаться на внешние плееры. В этой статье мы подробно проанализируем, как реализовать механизм воспроизведения видео с помощью различных ActiveX-компонентов и какие технические нюансы следует учитывать при работе в современных операционных системах.

Метод 1. Использование компонента Shell.Explorer и решение проблемы совместимости

Рассмотрим ситуацию, когда мы пытаемся отобразить видео через встроенный браузерный движок. Стандартный подход заключается в создании объекта Shell.Explorer, который по сути является оболочкой Internet Explorer. Однако многие разработчики сталкиваются с тем, что современные стандарты HTML5 (тег video) просто не работают, выдавая ошибку о неподдерживаемом браузере.

Выясним причину этой проблемы. По умолчанию контрол Shell.Explorer запускается в режиме совместимости с Internet Explorer 7, даже если в системе установлена Windows 10 или 11 с актуальным движком. В те времена поддержки video в HTML еще не существовало. Чтобы исправить это, нам необходимо принудительно заставить 1С использовать современный движок рендеринга через реестр Windows.

Проанализируем шаги по настройке реестра:

  1. Откройте редактор реестра (regedit).
  2. Перейдите в ветку: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION.
  3. Создайте новый параметр DWORD (32 бита).
  4. В качестве имени параметра укажите имя исполняемого файла 1С: 1cv7.exe (или 1cv7s.exe для сетевой версии).
  5. Установите значение 11001 (в десятичной системе), что соответствует режиму IE11 Edge Mode.

После этой манипуляции мы можем использовать следующий код в модуле формы 1С для вывода видео через HTML-файл:


Перем обVideo;

Процедура ПослеОткрытия()
    ИмяФайлаHTML = "C:\Users\User\Desktop\Video.html";
    ИмяХТМЛ = "file:///" + ИмяФайлаHTML;
    
    // Создаем ActiveX на форме, где "текстVideo" - идентификатор текстового поля-контейнера
    обVideo = СоздатьОбъект("АктивИкс");
    обVideo = СоздатьЭлементУправленияНаФорме(Форма, "АктивИкс", "текстVideo");
    обVideo.СоздатьЭУ("Shell.Explorer");
    
    обVideo.Объект.Visible = -1;
    обVideo.Объект.Navigate(ИмяХТМЛ);
КонецПроцедуры

Важно помнить, что в самом HTML-файле пути к видео должны быть оформлены корректно, с использованием протокола file:///, а кодеки видеофайла должны поддерживаться браузером.

Метод 2. Использование Windows Media Player (WMPlayer.OCX)

Разберем более «нативный» для Windows способ — использование прямого интерфейса проигрывателя Windows Media. Этот метод зачастую работает стабильнее, так как не зависит от настроек безопасности браузера и зон интернета.

Для реализации этого метода нам потребуется библиотека WMPlayer.OCX.7. Основное преимущество здесь заключается в том, что мы получаем прямой доступ к методам управления воспроизведением (пауза, стоп, перемотка) через объектную модель 1С.

Посмотрим на пример кода для встраивания плеера:


Перем Плеер;

Процедура ПриОткрытии()
    // Предположим, на форме есть объект ActiveX с идентификатором "КонтролПлеера"
    Попытка
        АктивХ = СоздатьОбъект("АктивИкс");
        АктивХ.УстановитьКонтрол(Форма.КонтролПлеера);
        АктивХ.СоздатьЭУ("WMPlayer.OCX.7");
        Плеер = АктивХ.Объект;
        
        // Настройка параметров отображения
        Плеер.uiMode = "full"; // Режим отображения кнопок управления
        Плеер.URL = "E:\PHOTO_VIDEO\CELEBRATE.mp4"; // Путь к файлу
    Исключение
        Предупреждение("Не удалось загрузить Windows Media Player");
    КонецПопытки;
КонецПроцедуры

Процедура Воспроизвести()
    Плеер.controls.play();
КонецПроцедуры

При использовании данного метода крайне важно убедиться, что в системе установлены соответствующие кодеки. Если штатный проигрыватель Windows не может открыть файл .mp4 или .mkv, то и 1С 7.7 не сможет его воспроизвести. В таких случаях рекомендуется установка пакетов кодеков, таких как K-Lite Codec Pack.

Метод 3. Альтернатива через VLC ActiveX

Проанализируем ситуацию, когда системные кодеки ограничивают наши возможности. Если вам требуется поддержка огромного количества форматов без установки дополнительных кодеков в систему, оптимальным решением станет использование компонента от плеера VLC (VideoLAN). После установки VLC в системе регистрируется компонент VideoLAN.VLCPlugin.2.

Рассмотрим, как это реализовать в коде 1С:


// Создание и инициализация VLC плеера
обVLC = СоздатьОбъект("АктивИкс");
// ... инициализация на форме ...
обVLC.СоздатьЭУ("VideoLAN.VLCPlugin.2");
VLC = обVLC.Объект;

// Добавление файла в список воспроизведения и запуск
VLC.playlist.add("file:///E:/video/training.mp4");
VLC.playlist.play();

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

Технические рекомендации и нюансы

Работа с ActiveX в 1С 7.7 имеет свои особенности, которые мы должны учитывать для обеспечения стабильности приложения:

Таким образом, мы выяснили, что воспроизведение видео в 1С 7.7 вполне реально. Выбор конкретного метода зависит от ваших требований к гибкости интерфейса и готовности настраивать окружение (реестр и кодеки) на рабочих станциях пользователей.

← На главную