Добрый день, монстры 1С!
Конфигурация: УПП 1.3
Есть задача, выводить в форме списка некие строки с информацией. Изюминка в том, что люди не сидят за компом (т.е. находятся рядом и смотрят на монитор изредка), но при этом они должны эту информацию сразу заметить и должным образом отреагировать.
Чтобы не издеваться над людьми, я думаю сделать пару вещей: выделение новой строки мерцанием и звуковое оповещение через звуковую карту. Далее человек замечает информацию, нажимает кнопку, звук/мерцание прекращаются.
Собственно у меня вопрос: возможно ли в 8.2 (обычные формы) это реализовать каким-то стандартным способом? Скажу вслух "Спасибо!" каждому ))
Конфигурация: УПП 1.3
Есть задача, выводить в форме списка некие строки с информацией. Изюминка в том, что люди не сидят за компом (т.е. находятся рядом и смотрят на монитор изредка), но при этом они должны эту информацию сразу заметить и должным образом отреагировать.
Чтобы не издеваться над людьми, я думаю сделать пару вещей: выделение новой строки мерцанием и звуковое оповещение через звуковую карту. Далее человек замечает информацию, нажимает кнопку, звук/мерцание прекращаются.
Собственно у меня вопрос: возможно ли в 8.2 (обычные формы) это реализовать каким-то стандартным способом? Скажу вслух "Спасибо!" каждому ))
Найденные решения
Пример мигания новых элементов в списке справочника. Модуль формы списка:
Перем ПоследнийКод;
Перем МассивНовыхЭлементов;
Процедура ПриОткрытии()
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Код УБЫВ");
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ПоследнийКод = Выборка.Код;
КонецЕсли;
ПодключитьОбработчикОжидания("ПроверитьНаличиеНовыхЭлементов", 5);
КонецПроцедуры
Процедура ПроверитьНаличиеНовыхЭлементов()
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Код > &ПоследнийКод
|
|УПОРЯДОЧИТЬ ПО
| Код");
Запрос.УстановитьПараметр("ПоследнийКод", ПоследнийКод);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
МассивНовыхЭлементов.Добавить(Выборка.Ссылка);
ПоследнийКод = Выборка.Код;
КонецЦикла;
ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);
КонецПроцедуры
Процедура МиганиеСтрок()
Если МассивНовыхЭлементов.Количество() = 0 Тогда
Возврат
КонецЕсли;
Если ЭлементыФормы.Список.ВыделенныеСтроки.Количество() = 0 Тогда
Для Каждого НовыйЭлемент Из МассивНовыхЭлементов Цикл
ЭлементыФормы.Список.ВыделенныеСтроки.Добавить(НовыйЭлемент);
КонецЦикла;
ЭлементыФормы.Список.ТекущаяСтрока = НовыйЭлемент;
Сигнал();
Иначе
ЭлементыФормы.Список.ВыделенныеСтроки.Очистить();
КонецЕсли;
ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);
КонецПроцедуры
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
НайденнаяСтрока = МассивНовыхЭлементов.Найти(ВыбраннаяСтрока);
Если НайденнаяСтрока <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
МассивНовыхЭлементов.Удалить(НайденнаяСтрока);
КонецЕсли;
КонецПроцедуры
ПоследнийКод = "";
МассивНовыхЭлементов = Новый Массив;
ПоказатьПрикрепленные файлы:
СписокОФ.epf
![](/upload/forum/upload/06d/06db06b07a13cc82765b3c002bcac3f0.gif)
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Пример мигания новых элементов в списке справочника. Модуль формы списка:
Перем ПоследнийКод;
Перем МассивНовыхЭлементов;
Процедура ПриОткрытии()
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 1
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|
|УПОРЯДОЧИТЬ ПО
| Код УБЫВ");
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ПоследнийКод = Выборка.Код;
КонецЕсли;
ПодключитьОбработчикОжидания("ПроверитьНаличиеНовыхЭлементов", 5);
КонецПроцедуры
Процедура ПроверитьНаличиеНовыхЭлементов()
Запрос = Новый Запрос(
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Код КАК Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| Номенклатура.Код > &ПоследнийКод
|
|УПОРЯДОЧИТЬ ПО
| Код");
Запрос.УстановитьПараметр("ПоследнийКод", ПоследнийКод);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
Возврат
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
МассивНовыхЭлементов.Добавить(Выборка.Ссылка);
ПоследнийКод = Выборка.Код;
КонецЦикла;
ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);
КонецПроцедуры
Процедура МиганиеСтрок()
Если МассивНовыхЭлементов.Количество() = 0 Тогда
Возврат
КонецЕсли;
Если ЭлементыФормы.Список.ВыделенныеСтроки.Количество() = 0 Тогда
Для Каждого НовыйЭлемент Из МассивНовыхЭлементов Цикл
ЭлементыФормы.Список.ВыделенныеСтроки.Добавить(НовыйЭлемент);
КонецЦикла;
ЭлементыФормы.Список.ТекущаяСтрока = НовыйЭлемент;
Сигнал();
Иначе
ЭлементыФормы.Список.ВыделенныеСтроки.Очистить();
КонецЕсли;
ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);
КонецПроцедуры
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
НайденнаяСтрока = МассивНовыхЭлементов.Найти(ВыбраннаяСтрока);
Если НайденнаяСтрока <> Неопределено Тогда
СтандартнаяОбработка = Ложь;
МассивНовыхЭлементов.Удалить(НайденнаяСтрока);
КонецЕсли;
КонецПроцедуры
ПоследнийКод = "";
МассивНовыхЭлементов = Новый Массив;
ПоказатьПрикрепленные файлы:
СписокОФ.epf
![](/upload/forum/upload/06d/06db06b07a13cc82765b3c002bcac3f0.gif)
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот