Добрый день! 8.3.18, конфа - кастом. Ситуация такая: сотрудник сканирует штрих-коды и заносит в базу, его ПК находится на расстоянии, и сотрудник не может отслеживать качество сканирования и занесения кодов в базу. На событие "штрих-код не найден", повесил "Сигнал()", - раз сотрудник не может ориентироваться на экран монитора, то пусть хотя бы на звук, и он был очень доволен. Теперь же сотрудник просит, чтобы на правильно отсканированный код издавался сигнал один раз (дзынь), а на "не найден" - издавался два раза (дзынь-дзынь). Вопрос: как сделать, чтобы сигнал воспроизводился два раза? Пытался сделать через паузу - не вышло. COM-компоненты - не мой вариант.
Спасибо!
---
попробуй второй сигнал запустить через обработку ожидания:

```1c
    Сигнал();
    Если Ошибка Тогда
    ПодключитьОбработчикОжидания("ЕщеСигнал", 0.1, Истина); //тут с паузой поиграться, хотя и так должно по-идее сработать
    КонецЕсли;

    &НаКлиенте
    Процедура ЕщеСигнал()
    Сигнал();
    КонецПроцедуры
```

Хотя проще, МК или МП слепить на коленке + телефончик с синезубым сканёром, как и советовали ранее
---
```1c
    Сигнал();Сигнал();Сигнал();Сигнал();Сигнал();Сигнал();
```
---
Пробовал, все равно один раз воспроизводит :(
(2)
---
Блин точно не работает. Ну тогда остается записать два Сигнал() и ВоспроизвестиФайл()
---
2
---
Попробуй из обработки идею взять
---
Я бы не рискнул обработку с таким названием запускать. Вдруг всю базу сожрет.
---
Почти))) На новой работе достался РС забитый под самую завязку. Вот и пришлось создать Жруна, который чистит по 1000 записей с временным интервалом перезапуска
---
Так ее же можно через конфу глянуть и посмотреть что она делает
---
Сам не пробовал, но кто-то делал через html-тег bgsound - звук храним в макете, на фору выводим html поле, если надо воспроизвести звук пишем в него соотв. текст. Поле должно быть обязательно видно, иначе звук не играется.

Подробностей не помню, но легко гуглится через "Поле HTML документа воспроизвести звук".
---
https://infostart.ru/public/655524/
---
Поставь задержку.

```1c
    Сигнал();
    Для каждого й = 1 по 10000 цикл
    КонецЦикла;
    Сигнал();
```
---
пустой цикл нагружает процессор на 100%
т.е. система у других будет подвисать
---
Действительно. Попробовал, зависло так, что снять пришлось через диспетчер. :(
---
Ну подавайте два раза. В паузе можете написать на экран матерные сообщение.
---
А если вообще не подавать сигнал при ошибке? Не благодарите.
---
если вообще не подавать сигнал при ошибке?А вдруг чел ушел на столько далеко, что беспроводной сканер перестал работать...

(1) Вообще, все решается примитивным мобильным приложением. Сканер можно подоткныть к телефону. Ходит с телефоном, сканит прям в него, сразу видит, что и как.
---
А вдруг чел ушел на столько далеко, что беспроводной сканер перестал работать... Тогда нахера ему сигнал из соседнего цеха?
---
из соседнего цехаА это уже лютые домыслы.
---
Хорошо. Длинный цех, и компьютер с сигналом офигенно далеко.
Если с одного конца цеха не слышно матершины начальника - то это не цех.
А мы тут про компьютер.
---
А мы тутНе мы, а Вы в одну харю. Исходные данные были такие:раз сотрудник не может ориентироваться на экран монитора, то пусть хотя бы на звук, и он был очень доволен
---
Вы в одну харю Смотрю на аватары участников дискуссии... гм! ;-)
---
Отсутствие звука - это вполне себе звуковой ориентрир!
---
Отсутствие звука при успешном сканировании невозможно отличить от отсутствия звука при потере связи.
---
Я же предлагаю использовать отсутствие звука на ошибку. И уже неважно из-за чего произошло неуспешное сканирование - кривой штрих-код или отсутствие связи.
А вот успешное пусть продолжает подтверждаться звуковым сигналом.

В супермаркетах нет двойного звука при ошибке. Там есть только тишина.
---
В супермаркетах нет двойного звука при ошибке. Там есть только тишина.Правда? Там даже другого характера звук при необходимости ввести количество, например. Ну и при отсутствии ШК в базе там вообще другой тип звука.
---
Ввести количество??? Что за бред... Количество или зашито в ШК весового товара, или оно равно 1 штуке.
---
ну если ничего не понимаешь в торговле - так и скажи. Не нужно выдумывать.
---
У меня опыта нет в разработке мобильного приложения, хотя думал об этом) Попробую еще ТСД, если получится надыбать поюзать. Мы уже много вариантов пересмотрели, и все сошлись на звуке, и это показалось удобным, - блютуз модуль помощнее воткнул, и звук сотруднику идет в наушники, чтобы других не напрягать.
---
опыта нет в разработке мобильного приложенияhttps://infostart.ru/1c/articles/533248/
В принципе мобильное приложение можно на смартфоне запустить, а сканер подоткнуть к смартфону по блютус...
---
Может будет полезным:
https://infostart.ru/1c/articles/714025/
https://infostart.ru/public/557682/
---
попробуй второй сигнал запустить через обработку ожидания:

```1c
    Сигнал();
    Если Ошибка Тогда
    ПодключитьОбработчикОжидания("ЕщеСигнал", 0.1, Истина); //тут с паузой поиграться, хотя и так должно по-идее сработать
    КонецЕсли;

    &НаКлиенте
    Процедура ЕщеСигнал()
    Сигнал();
    КонецПроцедуры
```

Хотя проще, МК или МП слепить на коленке + телефончик с синезубым сканёром, как и советовали ранее
---
Хвала тебе, добрый человек!!! Крепко жму руку! Заработало!
---
он же однократный, не должен виснуть.

А ёпт, не мне написали..
---
пустой цикл нагружает процессор на 100%...

Откуда информация? Там две операции: добавление единицы и условный переход. Я попробовал, даже 100 млн итераций больше 30% (общей нагрузки) не показали. Шли 42 секунды.

...т.е. система у других будет подвисать...

Цикл на клиенте подвесит клиента на другом компе? Так не бывает.

(32) ...зависло так, что снять пришлось через диспетчер...

Не зависло, задумалось. Можно было бы дождаться, само бы отвисло как цикл закончился. И поставить количество итераций меньше.

Я не настаиваю. Этот метод очень старый, допотопный.
Есть другие. Суть: организовать задержку, отсрочку выполнения следующего оператора.
---
Я поставил 10, вместо 10000. Не исключаю, что я мог не правильно воспользоваться Вашим способом, я только учусь.
---
Я попробовал, даже 100 млн итераций больше 30% (общей нагрузки) не показали.Пустой цикл грузит то ядро процессора, на котором сейчас выполняется процесс 1С, на 100%. Сейчас ядер у всех от 4 шт, поэтому резонно, что одно полностью загруженное выполнением пустого цикла ядро будет использовать 25% ресурсов процессора.

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

Так это все операторы грузят процессор))

Спор ни о чём. Оператора 'delay()' в 1С нету, всё остальное есть чем покритиковать.
---
Всем большое спасибо за участие! Всем кто старался помочь!