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

Содержание:

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С:Управление холдингом 8»
ОАО «Фрейт Линк»

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

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

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

Внедрение ПП "1С:Корпоративный инструментальный пакет 8" в ООО «Торговый Дом Факел»
ООО «Торговый Дом Факел»

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

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

Различная отраслевая специфика:
- Переработка давальческого сырья
- Уче...

Оптимизация производительности системы
ЗАО ИД «Комсомольская правда»

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

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

- Оптимизация производительности системы, в том числе сервера Postgre. ...

Автоматизация интеграции с информсистемами клиентов на базе «1С:Предприятие 8. WMS Логистика. Управление складом»
ОАО «Фрейт Линк»

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

Внедренное типовое решение:
«1С:Предприятие 8. WMS Логистика. Управление складом»

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

ООО «Стейдж Энтертейнмент Россия»
ООО «Стейдж Энтертейнмент Россия»

Отрасль:
Театральная деятельность

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

Реализован процесс трансформации данных бухгалтерского учета по РСБУ в дан...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

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

- Финансово-бухгалтерский блок
- Казначейство ...

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

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

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

Бухгалтерский учет;
Расчет зарплаты и кадровый учет;...

Московский филиал ООО «Авиакомпания «Икар»
Московский филиал ООО «Авиакомпания «Икар»

Отрасль:
Авиаперевозки

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

Бухгалтерский учет Производственные операции Регламентированная отчетнос...

ООО "СЖД"
ООО "СЖД"

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

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

Расчет зарплаты
Подбор кадров
Кадровый учет
Анализ кадрового состава...

ООО "ЛИКАРД" (Лукойл)
ООО "ЛИКАРД" (Лукойл)

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

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

Делопроизводство
• Учет и контроль исполнения поручений
Учет и хранение...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление...

ОАО «Фаберлик»
ОАО «Фаберлик»

Отрасль:

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

- Регламентированный учет;
- Кадровый учет;...

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

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

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

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