Информационный поток
Задания вакансии материалы разработки сообщения форума
Яндекс-директ

Включаем звук в 1С

  • Добавить свою разработку
 
Кудашкин Сергей Иванович
Связаться с автором
06.01.2014 16:11:22
+3
Как сделать воспроизведение звука в 1С без внешних компонентов? Решаем средствами интернета. Для тонкого и толстого клиента.
Скриншоты
Описание

Доброго времени суток!

 

1. Когда в 1С не было управляемых форм, вывод звука основывался на системных вызовах Windows. Можно было зарегистрировать специальный ActiveX и вызвать его специальную функцию. Например в http://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;

 

3. А как нам работать в web клиенте? Правильно, в web клиенте 1С работает все по другому, ближе к современным стандартам. Возьмем в руки тэг audio, попробуем сделать данные во временном хранилище и получим полным облом. Так пока сделать звук не удалось. Но мы используем другой метод, не столь распостраненный. Надо превратить звук в текст. Скажете сказки? Нет читаем спецификации и доделываем (data:audio/mpeg;base64)

Дополнительная обработка (http://infostart.ru/public/248770/) -  бухгалтерские счеты из первой ссылки.  Уж больно они мне понравились.

 

Р.S.

Ну далее вы понимаете к чему я клоню - пора делать простые игрушки работающие и в 1С.

 

Ключевые слова:   Звук   Sound   audio   beep
Файлы для скачивания
    • скачиваний: 382
    • дата загрузки: 06.01.2014 16:15:30
0
    ≡ к списку разработок