Добрый день, монстры 1С!

Конфигурация: УПП 1.3

Есть задача, выводить в форме списка некие строки с информацией. Изюминка в том, что люди не сидят за компом (т.е. находятся рядом и смотрят на монитор изредка), но при этом они должны эту информацию сразу заметить и должным образом отреагировать.

Чтобы не издеваться над людьми, я думаю сделать пару вещей: выделение новой строки мерцанием и звуковое оповещение через звуковую карту. Далее человек замечает информацию, нажимает кнопку, звук/мерцание прекращаются.

Собственно у меня вопрос: возможно ли в 8.2 (обычные формы) это реализовать каким-то стандартным способом? Скажу вслух "Спасибо!" каждому ))
---
Воспроизведение звука
---
Пример мигания новых элементов в списке справочника. Модуль формы списка:
```1c
    Перем ПоследнийКод;
    Перем МассивНовыхЭлементов;

    Процедура ПриОткрытии()

    Запрос = Новый Запрос(
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | Номенклатура.Код КАК Код
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    | Код УБЫВ");

    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    ПоследнийКод = Выборка.Код;
    КонецЕсли;

    ПодключитьОбработчикОжидания("ПроверитьНаличиеНовыхЭлементов", 5);

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

    Процедура ПроверитьНаличиеНовыхЭлементов()

    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Код КАК Код
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Код > &ПоследнийКод
    |
    |УПОРЯДОЧИТЬ ПО
    | Код");
    Запрос.УстановитьПараметр("ПоследнийКод", ПоследнийКод);

    РезультатЗапроса = Запрос.Выполнить();

    Если РезультатЗапроса.Пустой() Тогда
    Возврат
    КонецЕсли;

    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл
    МассивНовыхЭлементов.Добавить(Выборка.Ссылка);
    ПоследнийКод = Выборка.Код;
    КонецЦикла;

    ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);

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

    Процедура МиганиеСтрок()

    Если МассивНовыхЭлементов.Количество() = 0 Тогда
    Возврат
    КонецЕсли;

    Если ЭлементыФормы.Список.ВыделенныеСтроки.Количество() = 0 Тогда
    Для Каждого НовыйЭлемент Из МассивНовыхЭлементов Цикл
    ЭлементыФормы.Список.ВыделенныеСтроки.Добавить(НовыйЭлемент);
    КонецЦикла;
    ЭлементыФормы.Список.ТекущаяСтрока = НовыйЭлемент;
    Сигнал();
    Иначе
    ЭлементыФормы.Список.ВыделенныеСтроки.Очистить();
    КонецЕсли;

    ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);

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

    Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    НайденнаяСтрока = МассивНовыхЭлементов.Найти(ВыбраннаяСтрока);

    Если НайденнаяСтрока <> Неопределено Тогда
    СтандартнаяОбработка = Ложь;
    МассивНовыхЭлементов.Удалить(НайденнаяСтрока);
    КонецЕсли;
    КонецПроцедуры

    ПоследнийКод = ";
    МассивНовыхЭлементов = Новый Массив;
```
---
Воспроизведение звука
---
Пример мигания новых элементов в списке справочника. Модуль формы списка:
```1c
    Перем ПоследнийКод;
    Перем МассивНовыхЭлементов;

    Процедура ПриОткрытии()

    Запрос = Новый Запрос(
    "ВЫБРАТЬ ПЕРВЫЕ 1
    | Номенклатура.Код КАК Код
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    | Код УБЫВ");

    Выборка = Запрос.Выполнить().Выбрать();
    Если Выборка.Следующий() Тогда
    ПоследнийКод = Выборка.Код;
    КонецЕсли;

    ПодключитьОбработчикОжидания("ПроверитьНаличиеНовыхЭлементов", 5);

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

    Процедура ПроверитьНаличиеНовыхЭлементов()

    Запрос = Новый Запрос(
    "ВЫБРАТЬ
    | Номенклатура.Ссылка КАК Ссылка,
    | Номенклатура.Код КАК Код
    |ИЗ
    | Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    | Номенклатура.Код > &ПоследнийКод
    |
    |УПОРЯДОЧИТЬ ПО
    | Код");
    Запрос.УстановитьПараметр("ПоследнийКод", ПоследнийКод);

    РезультатЗапроса = Запрос.Выполнить();

    Если РезультатЗапроса.Пустой() Тогда
    Возврат
    КонецЕсли;

    Выборка = РезультатЗапроса.Выбрать();
    Пока Выборка.Следующий() Цикл
    МассивНовыхЭлементов.Добавить(Выборка.Ссылка);
    ПоследнийКод = Выборка.Код;
    КонецЦикла;

    ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);

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

    Процедура МиганиеСтрок()

    Если МассивНовыхЭлементов.Количество() = 0 Тогда
    Возврат
    КонецЕсли;

    Если ЭлементыФормы.Список.ВыделенныеСтроки.Количество() = 0 Тогда
    Для Каждого НовыйЭлемент Из МассивНовыхЭлементов Цикл
    ЭлементыФормы.Список.ВыделенныеСтроки.Добавить(НовыйЭлемент);
    КонецЦикла;
    ЭлементыФормы.Список.ТекущаяСтрока = НовыйЭлемент;
    Сигнал();
    Иначе
    ЭлементыФормы.Список.ВыделенныеСтроки.Очистить();
    КонецЕсли;

    ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);

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

    Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    НайденнаяСтрока = МассивНовыхЭлементов.Найти(ВыбраннаяСтрока);

    Если НайденнаяСтрока <> Неопределено Тогда
    СтандартнаяОбработка = Ложь;
    МассивНовыхЭлементов.Удалить(НайденнаяСтрока);
    КонецЕсли;
    КонецПроцедуры

    ПоследнийКод = ";
    МассивНовыхЭлементов = Новый Массив;
```
---
Спасибо!

(3) Спасибо!