Имя: Пароль:
1C
1С v8
Работа по РДП передача сигнала с сервера например Сигнал()
0 temsa
 
20.10.12
17:23
Удаленный склад заходя через РДП на сервер в 1С проверяет собранные заказу по факту.  При этом проверка ведется сканером ШК. Поскольку при сканировании товара пользователь может не заметить исключительные ситуации, которые выдаются в виде предупреждений 1С, решено реализовать звуковой сигнал. Но почему-то звуковой сигнал не передается от сервера.
И команда Сигнал() тоже тем более.

Здесь по форуму поискал и не нашел нужного варианта решения.

Подскажите, как это сделать?
1 aleks-id
 
20.10.12
17:24
прокинь звук с компа на терминал и проигрывай вавку
2 temsa
 
20.10.12
17:25
В рдп доступе при подключении стоит галочка передвать звук.
3 temsa
 
20.10.12
17:26
4 aleks-id
 
20.10.12
17:35
(3) да. но где то был более изящный способ проиграть вавку
5 aleks-id
 
20.10.12
17:38
6 temsa
 
20.10.12
17:38
(4) Проверил (3) не прокатил.

Даже просто открываю папку с вавками и реально проигрываю виндой, сигнал приходит с опозданием. Иногда даже прерывистый.
Понятное дела туту дело в канале итп.
Пусть даже так играло бы.
7 temsa
 
20.10.12
17:41
(5) Спасибо выручил с поиском! Попробую.
Если не устроит клиента тогда скажу покупать еще одну прогу и РИБ их спасет. Или как вариант офигенный инет канал пусть делают.
8 aleks-id
 
20.10.12
17:43
(7) качество вавки пищащей сделай моно и 16кбит и будет щастье
9 temsa
 
20.10.12
17:53
(7) Что-то не хочет пример из (5) работать.
Спецом в паку положил C:\temp\sss.wav

пишу обработку

ПутьФ = "C:\temp\" + "sss.wav";
   ЗвукФ = Новый Файл(ПутьФ);
   //создать звук, если его нет
   Если ЗвукФ.Существует() Тогда
   //очень хорошо, просто замечтательно
   Иначе    
        ЗВ = ПолучитьОбщийМакет("ЗвукСообщения");
       ЗВ.Записать(ПутьФ);
   КонецЕсли;
   //сыграть
   Ком = Новый ComОбъект("WMPlayer.OCX");
   Ком.URL = ПутьФ;
   Ком = 0;

Не играет ((((
10 aleks-id
 
20.10.12
18:05
попробуй "msdxm.ocx" вместо "WMPlayer.OCX"
11 aleks-id
 
20.10.12
18:07
и тут покури http://forum.script-coding.com/viewtopic.php?id=1031
особенно предпоследний пост
12 temsa
 
20.10.12
18:09
Попробвоал это ЗапуститьПриложение("C:\Windows\Media\tada.wav");

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

(11) ок гляну.
13 temsa
 
20.10.12
18:11
(11) И как этот код пристроить в 1С? Я просто никогда не  работал в 1с с кодами на других языках...
14 temsa
 
20.10.12
18:15
+(13) Разбрался чуток положил в vbs удаленно сработало с рабочего стола.
Осталось привязать vbs к 1С процедуре и подобрать сигнал который более менее "легкий" для канала...
15 aleks-id
 
20.10.12
18:18
(14) ёлы-палы... покури MSScriptControl.ScriptControl
это чистый вбс на 1с
16 aleks-id
 
20.10.12
18:19
17 temsa
 
20.10.12
18:22
(16) Ну ты прости друг. :( Никогда не юзал. Все в диковинку. Хотя в 1 с77 что-то там я запускал и это было давно.
С твоей помощью почти разобрался.  Огромное спасибо за поиск в место меня!
18 aleks-id
 
20.10.12
18:23
напиши потом тут результат. в базу знаний запишут. вдруг кому поможет еще.
19 temsa
 
20.10.12
19:16
Сделал следующее.
1. В начале обработки объявляем переменную Скрипт.

2. В модуле ПередОТкрытием()
Скрипт = Новый COMОбъект("MSScriptControl.ScriptControl");
Скрипт.Language="vbscript";
Скрипт.AddCode("
|Function Main()
|Set oVoice = CreateObject("SAPI.SpVoice")
|set oSpFileStream = CreateObject("SAPI.SpFileStream")
|oSpFileStream.Open "c:\Windows\Media\tada.wav"
|oVoice.SpeakStream oSpFileStream
|End Function");

3. В нужных местах кода вставляем
Рез = Скрипт.Run("Main");
Сообщить(Рез);

Все заработало. Только код из источника (11) oSpFileStream.Close не срабтал ругается убрал из скрипта...
Вроде вполне нормально передает звук. Иногда чуток разрывиста иногда меняется звук. Но это проблема канала.

Отдельно спасибо   aleks-id!
20 temsa
 
20.10.12
19:17
уточнение в строках CreateObject("SAPI.SpVoice")
как кавычки писать думаю умеют все- CreateObject(""SAPI.SpVoice"")
21 aleks-id
 
20.10.12
19:22
(20) лучше так:

oVoice = Новый COMОбъект("SAPI.SpVoice");
oSpFileStream = Новый COMОбъект("SAPI.SpFileStream");
oSpFileStream.Open("c:\Windows\Media\tada.wav");
oVoice.SpeakStream(oSpFileStream);
22 temsa
 
20.10.12
20:10
(21) Попробовал. Сработало. Рахмет, еще раз.
23 aleks-id
 
20.10.12
20:18
модеры, суньте плиз (21) в базу знаний. поможет тем кто на тонких переходит!!!