Доброго времени суток!
1. Когда в 1С не было управляемых форм, вывод звука основывался на системных вызовах Windows. Можно было зарегистрировать специальный ActiveX и вызвать его специальную функцию. Например в //infostart.ru/public/85155/используется DynamicWrapperX и следующий код:
Попытка DynamicWrapper =Новый COMОбъект("DynamicWrapperX"); Исключение Объект=ПолучитьМакет("dynwrapx"); Объект.Записать(КаталогВременныхФайлов() +"dynwrapx.dll"); КомандаСистемы("regsvr32 dynwrapx.dll",КаталогВременныхФайлов() ); Предупреждение("Поздравляю теперь и тебя появился звук в 1С"+ Символы.ПС +"Запустите обработку заново", 5); Закрыть(); КонецПопытки; DynamicWrapper.Register("winmm.dll", "sndPlaySoundA", "i=su");
Легко заметить, что данная библиотека может зарегистрировать функции не только работы со звуком. И возникает большая опасность, что это может использоваться не только в благих целях. С другой стороны в тонком клиенте или web клиенте доступ к таким компонентам нету. И пользоваться системным вызовом Windows из браузера неполучиться.
2. Поэтому, вооружившись только средствами интернета, будем воспроизводить звуки в 1С. Начнем работать с тэгом audio в html5 http://w3schools.com/html/html5_audio.asp. В интернете у всех уже имеются современные браузеры, и все прекрасно работает. Но мы же будем звучать из 1С. Значит первое что нам надо — это воспроизвести звук в тонком клиенте. Так как поле HTML в 1С работает в режиме совместимости IE7, то мы воспользуемся старый тэгом для IE bgsound. Мы можем хранить звук в виде макетов двоичных данных. И использовать их внутри HTML поля:
//Код для 1С
Данные = ОбъектОбработка.ПолучитьМакет("sound_ball");
АдресЗвука = ПоместитьВоВременноеХранилище(Данные);
url = '"+АдресЗвука+"'
/* страница HTML */
BGSOUND id='sound_think' balance=0 volume='-5000'
/* И добавить скрипт в страницу */
document.all.sound_think.volume=0;
document.all.sound_think.src = url;
Проверяем работу в тонком и толстом клиенте.
— Windows 7 IE11 (компьютер)
— Windows Vista IE7 (VirtualBox)
— Windows XP IE8 (VirtualBox)
(Проверка на виратуальной машине VirtualBox со звуком, картинки прилагаются, спасибо Microsoft http://loc.modern.ie/ru/virtualization-tools#downloads)
Для понятности сделаем простую внешную обработку для вывод звука(см. ниже). Работает в тонком и толстом клиенте.
Но интересной особенностью этого метода, является то что IE и соответственно 1С не воспроизводит wav файлы, а mp3 легко. Вот вам и собственный формат (http://w3schools.com/html/html5_audio.asp)
3. А как нам работать в web клиенте? Правильно, в web клиенте 1С работает все по другому, ближе к современным стандартам. Возьмем в руки тэг audio, попробуем сделать данные во временном хранилище и получим полным облом. Так сделать звук в тонком клиенте не удалось. Но мы используем другой метод, не столь распостраненный. Надо превратить звук в текст. Скажете сказки? Нет читаем спецификации и доделываем (тип данных data:audio/mpeg;base64)
Дополнительная обработка — бухгалтерские счеты //infostart.ru/public/85155/ Уж больно они мне понравились. Там полностью делаем для всех видов клиентов 1С.
Попробовать их в интернете — пожалуйста http://jsfiddle.net/sikuda/eY8Ba/
Р.S.
И самое главное не забудьте включить звук в Internet Explorer!
Свойство обозревателя — Дополнительно — Мультимедиа — Воспроизводить звуки на вэб-страницах.
…Надо превратить звук в текст
в Base64, наверное?
Скачал, запустил. Звука нет 🙁
В чем может быть проблема? — ОС Win Vista
(1) Ну да.
http://jsfiddle.net/sikuda/gvGY9/ ?
(2) Какой у Вас IE? Здесь работает
Скачал, запустил, все зависло и вылетело ?!
(4) DenisKin,
Проверил на Windows 7 IE11(реал), Windows 8.1 IE11, Windows Vista IE7, Windows XP IE8(три VirtualBox) если приведете параметры вашей системы — проверю.
(5) Win7 64 bit ie-11
(6) DenisKin, Моя основная машина на работе и стационарник дома отлично работают. Не лазили в реестр для улучшения 1С?
Я не пойму где это применить? Это стартовая площадка для 1Сников которые решат писать игрушки на 1С?
(9) Скорее для звукового сопровождения процесса. Справку или демо пример по программе можно начитать. И пользователь будет сидеть и слушать.
(3)
IE 9. Проблема была связана с тем, что в свойствах IE был отключено воспроизведение звука.
(10) а какой в этом смысл? эти игрушки и без 1С работают.
(12) cool.vlad4, ну мало ли. Может у людей на работе в браузере ограничения на некоторые сайты, хотя не уверен точно, не сработают ли эти ограничения в 1с, смотря как их настроили.
(13) Gendalf_beliy, Если все скрипты перенести в обработку 1С(моя со счетами), то и интернет не нужен.
(5) Да работает не плохо — но не стабильно — кликаю много и в какой то момент вылетает 1С с ошибкой ядра. Как сделать плей-лист из звуков?
(15) 2vadmaster,
Давайте по серьезному, версия Windows, IE, 1C, клиента 1С, обработка «Доступно и всерьез» или Счеты.
Пока не встречал вылетов, кроме компьютеров в которых залезли в реестр доброжелатели.
Если все приведете смогу проверить на виртуальной машине.
Наверно для игр было бы полезно.
Ну уж нет. Чтобы я своим юзверям это поставил… Они и так любят радио через Инет слушать. Еще им озвучку ставить…
при выполнении ругается на :
{Документ.ВводОстатков.Форма.ФормаДокумента.Форма(175)}: Ошибка при вызове метода контекста (ПолучитьМакет)
Данные = ОбъектОбработка.ПолучитьМакет(«sound_ball»);
по причине:
Недопустимое значение параметра (параметр номер ‘1’)
И я бы тоже не понял, чего он меня хотят. Где взять (как сделать) этот макет?
(19) Serge_ASB, Сам скачал обработку с Инфостарта. Проверил в УФ и обячных формах 1С 8.3.5.1186. Все работает. Бинарный макет «sound_ball» в обработке есть. Проверьте что за Документ.ВводОстатков?
И самое главное не забудьте включить звук в Internet Explorer!
Решил другим способом:
Но — звук есть под «обычной» Виндой — Win 7 или Win 8. А будучи запущенной из-под серверной (когда на сервере стоит SQL и база крутится там) — ругается на
(15) 2vadmaster,
Предприятие под отладкой из конфигуратора?
Сейчас внедряю DynamicWrapperX в своем проекте и методом плясок с бубном обнаружил, что если запускать обработку без отладки, то все просто идеально. Если из-под отладчика, то получаем постоянные вылеты 1С (в ntdll.dll). Причем вылетает как захочет, а может и не вылететь.
(15) 2vadmaster, Исправил ошибку повторного нажатия кнопки в толстом клиенте. Проверил в новой версии 1С 8.3.6.
Тонкий клиент, база на веб сервере, не работает звук. Если через браузер то работает… Как заставить работать в тонком клиенте? 1С:Предприятие 8.3 (8.3.5.1119)
(24) pri_hod, Честно говоря звук для web-клиенте доделан только в счетах(вторая обработка). Работает даже для Linux клиента(Звук работает, градиент цвета нет). Проверяли именно счеты?
Не работает звук под вэб клиентом; подскажите возможные варианты что делать, звук в браузерах включен
(26) В вэб-клиенте вывод звука происходит совершенно по другому. Галочка в IE там не важна. Только в вэб работает вторая обработка со счетами. Проверил сейчас IE 11 (Режим документов Edge).
В интернете:http://jsfiddle.net/sikuda/eY8Ba/