Доброго времени суток!
С момента предыдущей публикации //infostart.ru/public/248770/ прошло много времени. И честно говоря, если вы запустите старую обработку на Windows 10 и новой платформе 8.3.14, то звук уже не будет воспроизводиться. За это время многие уже перебрались на платформу выше 8.3.14, а значит, и html поле теперь всегда новое и это не зависит от режима совместимости ;) и режима классических форм. Все старое перестало работать! Значит, есть основание сделать мир лучше!
Можно пойти путем использования функций операционной системы (внешняя компонента) или взаимодействия с другой системой, которая сумеет воспроизвести звук. Это правильный подход и я его рекомендую в сложных проектах. Но если вам дано добавить два, три звукового сопровождения к существующей доработке, то предлагаю действующий метод.
Прежде всего скажем, что будем использовать поле html, интернет стандарты это единственное, на чем можно основываться в нашем проприоритетном мире. И конечно если мы доделываем для Web клиента, то других вариантов у нас просто нет.
Итак начнем с самых основ звука в html5 и тега audio (https://www.w3schools.com/html/tryit.asp?filename=tryhtml5_audio_all):
<!DOCTYPE html>
<html>
<body>
<audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Your browser does not support the audio element.
</audio>
</body>
</html>
Проблема номер один ссылка на файл в контексте сервера. Где должен быть расположен файл по отношению сервера 1С, локального компьютера ил того подобного.
Ответ 1: полная ссылка на звуковой файл типа - https://blog.sikuda.ru/1c/sound1c.mp3 - ВСЕ ПРЕКРАСНО и для Вэб-клиента это пока единственный вариант.
Ответ 2: Прописывание звука в тело html типа - src='data:audio/mpeg;base64 НЕ ПРОХОДИТ 1С клиент.
Ответ 3: Указание ссылки Адрес во временном хранилище у меня НЕ ЗАРАБОТАЛО.
Ответ 4: Использовать временные локальные файлы на клиенте file:// вместе с ПолучитьИмяВременногоФайла - РАБОТАЕТ даже в тонком клиенте.
И вторая проблема с которой я столкнулся, это однократное воспроизведение звука. Я так понял это проблема кэширования самой 1С html поля с этим сложно бороться. Если Вы выведите стандарный элемент управления Аудио в 1С тонкий клиент, то при нажатии второго раза на воспроизведение или прослушать с середины у Вас может не получиться.
Простое решение работает если перезагружать страницу с кодом:
<script>
var aud = new Audio('"+АдресЗвукаНаСтранице+"');
aud.play();
</script>
Ну а тем кто хочет использовать элементы управления звуком и не получить в стандартном 1С черный прямоугольник, рекомендую воспользоваться сторонним плеером (мне понравился https://plyr.io/#audio и третья обработка)
Ну вот и все. Тестируем, критикуем, комментируем. Если найдете лучший метод не стесняйтесь рассказывайте.
Р.S.
Вторая обработка - Щелкающие счеты - в качестве приятного бонуса ;)
Обязательно расскажите если у кого получится сделать через Поместить во временное хранилище! Скачаю и прорекламирую Вас.