19.11.2020 Александр Старосельский 20282
Как проиграть звуковой файл или воспроизвести...

Содержание:

1.       Стандартный (штатный) вариант использования системы звуковых сигналов

2.       Код 1C v 8.3

3.       Поле HTML документа


Здравствуйте, коллеги! Частенько бывает, что нужно оповестить пользователя или обратить его внимание на что-либо, используя звуковой сигнал. В данной публикации описано несколько вариантов активации звука в 1С: от стандартного до не самых тривиальных способов.  


1.      Стандартный (штатный) вариант использования системы звуковых сигналов


Синтаксис: Сигнал()


Данная функция не принимает никакие дополнительные параметры, а просто воспроизводит системные звуковые сигналы программ 1С. При этом характер и длительность звука может также зависеть от программно-аппаратного состава ПК и звуковых установок ОС.


Этот способ недоступен на сервере 1С:Предприятие 8 и не используется в модуле внешнего соединения устройств.  


2.      Код 1C v 8.3


&НаКлиенте

Процедура Команда(Команда)

   Сигнал();

КонецПроцедуры


С подключением внешних компонент в коде 1C v 8.3 (с помощью Speech API) можно реализовать голосовое воспроизведение какого-либо текста (функция «Speak», параметр — строка текста). Сама технология поддерживает 26 языков, включая русский, однако для его поддержки необходимо скачивать и устанавливать специальную библиотеку. На сегодняшний день пока только так.


Код 1C v 8.х

// Способ №1

файл = "C:\1.wav";

Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");

Скрипт.Language="vbscript";

Скрипт.AddCode("

                    |Function Main()

                    |Set oVoice = CreateObject(""SAPI.SpVoice"")

                    |set oSpFileStream = CreateObject(""SAPI.SpFileStream"")

                    |oSpFileStream.Open """+файлз+"""

                    |oVoice.SpeakStream oSpFileStream

                    |End Function");

Скрипт.Run("Main");


// Способ №2

файлз = "C:\1.wav";

oVoice = Новый COMObject("SAPI.SpVoice");

oSpFileStream = Новый COMObject("SAPI.SpFileStream");

oSpFileStream.Open(файлз);

oVoice.SpeakStream(oSpFileStream);

oSpFileStream.Close();

 

// Способ №3

файлз = "C:\1.wav";

DynamicWrapper = Новый COMОбъект("DynamicWrapperX");

DynamicWrapper.Register("winmm.dll", "sndPlaySoundA", "i=su");

DynamicWrapper.sndPlaySoundA(файлз, 1);

 

// Способ №4

// Проигрыватель - это ActiveX компонента "Windows Media Player"

Процедура КнопкаВыполнитьНажатие(Кнопка)

   ПроигратьЗвук("D:\Звуки\123.wav");

КонецПроцедуры

 

// Способ №5

Процедура ПроигратьЗвук(Путь)

   Попытка

       ЭлементыФормы.Проигрыватель.settings.autostart = Истина;

       ЭлементыФормы.Проигрыватель.settings.volume = 100;

       ЭлементыФормы.Проигрыватель.URL = Путь;

   Исключение

   КонецПопытки;

КонецПроцедуры  


3.      Поле HTML документа


И еще один способ — при помощи «bgsound» – html-тега в коде. На форме должен быть элемент «Поле HTML документа». Причем этот элемент должен быть именно виден на форме, т.к. звук не воспроизводится, если скрыть его (Видимость=Ложь).


Сама же реализация выглядит следующим образом:


// Способ №5

// при помощи html-тега bgsound, на форме должен быть элемент Поле HTML документа

&НаКлиенте

Процедура ВоспроизвестиMP3()

   мФайл = ПолучитьАдресФайла();

   ПолеHTML = "

   | <HTML>

   | <BODY scroll='no'>

   | <BGSOUND id='sound_think' balance=0 volume='-1000'></BGSOUND>

   | <div id=paperRaphael></div>

   | <script>

   | function PlaySound() {

   | if (!window.HTMLAudioElement) {

   | document.all.sound_think.volume=0;

   | document.all.sound_think.src = '"+мФайл+"';

   | }

   | }

   | window.onl oad = function(){

   | PlaySound();

   | }

   | </script>

   | </BODY>

   | </HTML>";

КонецПроцедуры

 

&НаСервере

Функция ПолучитьАдресФайла()

   Возврат ПоместитьВоВременноеХранилище(Обработки.ЗвукВ1С.ПолучитьМакет("sound"));

КонецФункции


В примере подразумевается, что существует макет с типом двоичные данные, в котором и храниться звуковой файл, а на форме имеется элемент «Поле HTML документа».


Специалист компании «Кодерлайн»

Александр Старосельский

Наши проекты

ООО «ПраксисКом»
ООО «ПраксисКом»

Отрасль:
Аутсорсинг бухгалтерских услуг

Внедренное типовое решение:
1С:Бухгалтерия ПРОФ

- Бухгалтерский учет:
Банк и касса
Завершение периода
Нематериальные ...

ООО "ТК "Сытый Дом-НН"
ООО "ТК "Сытый Дом-НН"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Управление торговлей 8

Взаиморасчеты с покупателями
Оптовая торговля
Управление складскими за...

МГК "Световые Технологии"
МГК "Световые Технологии"

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты "Кодерлайн" произвели доработки в системе 1С:ЕРП 2.4 с учетом треб...

Внедрение ПП "1С:Управление небольшой фирмой 8 ПРОФ" в
ИП Любо Виктория Александровна (ООО «Рекреация»)

Отрасль:
Производство

Внедренное типовое решение:
1С:Управление небольшой фирмой 8 ПРОФ

Осуществлены разработки:
– отчета по спецификации Заказа;
– загрузки сп...

ООО «Иви.ру»
ООО «Иви.ру»

Отрасль:
Медиаиндустрия

Внедренное типовое решение:
1С:Управление корпоративными финансами

Подсистема казначейства
Модуль бюджетного контроля по ДДС ...

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

Кадровый учет;
Расчет зарплаты;...

Автоматизация подсистемы учета взаиморасчетов с агентами и интернет-магазинами на базе «1С:Управление холдингом 8»
ОАО «Фрейт Линк»

Отрасль:
Логистика и грузоперевозки

Внедренное типовое решение:
1С:Управление холдингом

– Оформление заказов поставщикам;
– Управление отношениями с поставщика...

ООО «ТейблТок»
ООО «ТейблТок»

Отрасль:
Общественное питание и рестораны

Внедренное типовое решение:
1С:Управление торговлей

Оформление заказов поставщикам Оформление заказов покупателей Управление ...

Автоматизация документооборота в компании ООО "Ликард"
ООО «Ликард» (ОАО ЛУКОЙЛ)

Отрасль:
Нефтесервис

Внедренное типовое решение:
1С:Документооборот КОРП

- Отказ от бумажного документооборота, от громоздких систем на базе офисного...

ООО «ПКП КАБЭЛЕКТРОСНАБ»
ООО «ПКП КАБЭЛЕКТРОСНАБ»

Отрасль:
Производство кабельной продукции

Внедренное типовое решение:
1С:Управление небольшой фирмой 1.6

- Оформление заказов покупателей;
- Управление складскими запасами;
- Ана...

ФГОУ ВПО «Горский государственный аграрный университет»
ФГОУ ВПО «Горский государственный аграрный университет»

Отрасль:
Образование

Внедренное типовое решение:
1С:Колледж ПРОФ

- Управление персоналом и кадровый учет (HRM):
Кадровый учет
Управление об...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение