gifts2017

Звук в 1С

Опубликовал Олег Никоноров (nikolega) в раздел Программирование - Практика программирования

Как просто воспроизвести звук в 1С ?
Вот пример обработки, демонстрирующей одно из решений.
Код открытый.

Как просто воспроизвести звук в 1С без внешних файлов (wav, mid) ?
Вот пример обработки, демонстрирующей одно из решений.
Код открытый.

Идеи решения:

1. Хранить звуковые файлы в макетах (двоичные данные) обработки или отчета.
2. Воспроизводить их стандартным медиаплеером так, чтобы медиаплеера не было видно.
3. Автоматически закрывать медиаплеер.

В модуле также есть процедура для воспроизведения звукового файла с указанием пути к файлу.

Буду рад, если кому идея пригодиться ;-)

PS: В обработке 6 звуков, для примера. Звук выбирается указанием числа в поле - от 1 до 6 (проверено на XP).

Для других ОС возможно понадобится другая командная строка. 

Скачать файлы

Наименование Файл Версия Размер
Звук.epf 159
.epf 307,58Kb
06.10.09
159
.epf 307,58Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Ярослав Радкевич (WKBAPKA) 06.10.09 15:54
2. Ярослав Радкевич (WKBAPKA) 06.10.09 15:55
правда можно также хранить двоичные данные в хранилище значений, если использовать справочники
3. Олег Никоноров (nikolega) 06.10.09 18:13
Да, но идея хранить данные в макете мало кем используется ...
4. Сергей (Che) Коцюра (CheBurator) 06.10.09 18:19
хм.. автор хочет сказать, что вытянув "звук" из хранилища он его не преобразует в файл на диске? если это так - то зачет! если не так - фуфло! ;-)
5. dushelov (Душелов) 06.10.09 18:27
6. Олег Никоноров (nikolega) 06.10.09 22:12
(5) Уважайте друг друга - поставил минус - объясни почему, есть лучше идея- сделай обработку - выложи - поделись идеей с другими.
7. dushelov (Душелов) 06.10.09 22:20
(6) Минус поставлен комментарию.

>идея хранить данные в макете мало кем используется

Это просто пять!
deniseek77; coder1cv8; awa; +3 1 Ответить 2
8. Олег Никоноров (nikolega) 06.10.09 22:41
По крайней мере я не встречал таких обработочек ))
9. Ярослав Радкевич (WKBAPKA) 06.10.09 22:45
2(7): зри в корень.. если речь идет об обработке, которая не привязана к конфигурации, тогда только через макеты...
10. Ярослав Радкевич (WKBAPKA) 06.10.09 22:46
плюс однозначно за оригинальность и простоту идеи, по крайней мере тут я такого не встречал
11. WellMaster (WellMaster) 07.10.09 09:40
(4) Файл создается временный, и потом проигрывается.
(0) Под windows7 не работает, т.к. в нем нет проигрывателя mplay32. Есть wmplayer, но параметры запуска "wmplayer /play /close" отрабатываются не корректно: звук постоянно повторяется в плейере.
12. Андрей Григорьев (Borisych) 07.10.09 09:52
Виста Бизнес и типовой медиаплеер - скрипт не выполняется, нужна другая команда. Кто знает какая?
13. Андрей Григорьев (Borisych) 07.10.09 09:57
Использовал следующую
Код
WshShell.Run("""%programfiles%\Windows Media Player\wmplayer.exe"" /play /close "+ИмяФайла,0,0);
Показать полностью

14. Андрей Григорьев (Borisych) 07.10.09 10:00
Если было включено повторение - то мелодия многократно повторяется :)
15. Юрий Португалов (Sprite) 07.10.09 11:22
Принцип подходит и для хранения (кодирования) изображений.
16. Максим Арендаренко (Larkin) 07.10.09 11:59
Идея стара как мир, я в обработке по КБ (http://infostart.ru/public/20208/) мануал по работе с самим КБ храню в макете в формате html контейнера... да и в типовых конфигурациях где-то встречал подобное... посему ни "+" ни "-" ставить не буду.
17. Ярослав Радкевич (WKBAPKA) 07.10.09 13:39
2(16): все новое это хорошо забытое старое
nikolega; +1 Ответить
18. Оракул Айметдинов (jhfrek) 07.10.09 14:33
(13) Как-то раз хотел сделать медиаплеер на 7.7 используя код:

WshShell.Run("""%programfiles%\Windows Media Player\wmplayer.exe"" /play /close "+ИмяФайла,0,0);

Получилось, но только я не знаю как проиграть несколько файлов один за другим, как в winamp. Интересно, есть ли выход в этой ситуации? Только без ВК!
19. Олег Никоноров (nikolega) 07.10.09 15:16
(11) Верно

(4) Временный файл создастся и автоматически удалиться при закрытии 1С

(12) Поищи универсальный проигрыватель (а не медиаплеер), сомневаюсь, что его нет в Висте ...

(18) Создай плейлист - скорми его медиаплееру .... Команду посмотри в расширении плейлиста (Проводник - Сервис - Свойства папки - Типы файлов)
20. Андрей Скляров (coder1cv8) 07.10.09 15:55
То что автор впервые (видимо) для себя открыл тип макета "двоичные данные" и гордо написал в заголовке "без использования внешних файлов" (хотя это не правда) - это "минус".
За пример с параметрами командной строки медиаплеера - "плюс".
Итого 0.
21. Сергей (Che) Коцюра (CheBurator) 07.10.09 16:05
Идея хранить данные в макете стара как мир, т.е. по возрасту примерно как 7.7 ;-). В т.ч. таким способом изготавливаются обработки, инсталлирующие "из себя" недостающие ВК и прочее... Учите матчасть... Тем более, что такие вещи даже на ИСе пробегали уже давно (то ли у Маляева, то ли у Душелова)
22. Сергей (Che) Коцюра (CheBurator) 07.10.09 16:08
да, жаль что автор всех наколол лажовым заявлением "без внешних файлов" ;-) А на проигрывании звука в 1С медиаплеером еще Опланет в дремучие времена неплохо себе шпинга.. ээээ рейтинга нарубил.. ;-)
23. Дмитрий Шерстобитов (DitriX) 06.01.12 00:33
Какое отношение это имеет к 1С?
Запуск проги с параметром?

Бред, лучше бы просто сказал что в 1с есть такая штука как Сигнал()
24. Олег Никоноров (nikolega) 06.01.12 08:32
(23) DitriX,
В обработке реализован пример как в программе средствами 1С вызвать воспроизведение звука, отличного от сигнал и не хранящегося по конкретному жесткому пути.
25. Дмитрий Шерстобитов (DitriX) 06.01.12 13:56
(24) но для воспроизведения - таки нужен жесткий путь...
Или и саму программу засунуть во внешние? Тогда опять вопрос - почему не сделали? И пути выбора программы воспроизведения тоже нету, автоопределения операционки и подстановки соответствующего пути - нету.
Комментариев что будет на серверах - не увидел...

З.Ы. Я просто к чему - обычному пользователю 1с - это не пригодится, а если ему будет интересно все же, то он ничего не сможет сделать если только у не не ХП, стоит тот плеер и т.д. и т.п.
А вот для программистов - ничего интересного...
26. Олег Никоноров (nikolega) 06.01.12 14:32
(25) DitriX,
Если честно - я потратил время, чтобы определить простой путь для воспроизведения звукового файла по определенному событию в 1С. А выложил сюда обработку не для поднятия рейтинга, а для того чтобы другие меньше тратили время при решении аналогичной задачи.
Тем более я удалял эту обработку с проекта еще в 2009 году. Не понимаю почему администрация сайта восстановила ее :-)
27. Ranika (Ranika) 11.01.12 05:09
Идея действительно очень занимательная, будет полезно для пользователя, которые всегда закрывает окна предупреждения
28. grigory пкш (dryms) 01.11.12 18:13
Все скачали? Теперь в 1С будет еще больше свистелок и перделок)))
29. Артем Талицкий (Atal) 02.09.13 09:28
Ставлю минус за истраченный стартмани. Автору необходимо было указать Операциооную систему (на Win 7) не работает:
{ВнешняяОбработка.Звук.МодульОбъекта(7)}: Ошибка при вызове метода контекста (Run): Произошла исключительная ситуация (0x80070002)
И что мешало дописать:
Исключение
Сообщить(ОписаниеОшибки());
а то получается:Не воспроизвело, догадайтесь почему.
30. "Я" ("Я") 25.09.13 22:54
(29) Atal,

ну да, собственно можно было статьей написать и код выложить, три строки...
Прикрепленные файлы:
31. Денис Новиков (deniseek77) 25.09.13 23:00
(8) nikolega, Если не использовал- то не надо и писать-в макетах можно хранить любые (в том числе и в двоичном формате данные), а вытаскиваются они 2 строчками кода.
32. Сергей Кудашкин (sikuda) 06.01.14 22:39
1. Хранить звуковые файлы в макетах - Да
2. Воспроизводить звук средствами интернета http://infostart.ru/public/248770