Мерцание строки в форме списка 8.2

1. user1089020 19.02.21 08:36 Сейчас в теме
Добрый день, монстры 1С!

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

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

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

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

Процедура ПриОткрытии()
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	Номенклатура.Код КАК Код
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|
	|УПОРЯДОЧИТЬ ПО
	|	Код УБЫВ");
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		ПоследнийКод = Выборка.Код;
	КонецЕсли;
	
	ПодключитьОбработчикОжидания("ПроверитьНаличиеНовыхЭлементов", 5);
	
КонецПроцедуры

Процедура ПроверитьНаличиеНовыхЭлементов()
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка КАК Ссылка,
	|	Номенклатура.Код КАК Код
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	Номенклатура.Код > &ПоследнийКод
	|
	|УПОРЯДОЧИТЬ ПО
	|	Код");
	Запрос.УстановитьПараметр("ПоследнийКод", ПоследнийКод);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Если РезультатЗапроса.Пустой() Тогда
		Возврат
	КонецЕсли;
	
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл
		МассивНовыхЭлементов.Добавить(Выборка.Ссылка);
		ПоследнийКод = Выборка.Код;
	КонецЦикла;
	
	ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);
	
КонецПроцедуры

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

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

ПоследнийКод = "";
МассивНовыхЭлементов = Новый Массив;
Показать
Прикрепленные файлы:
СписокОФ.epf
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. SlavaKron 19.02.21 10:37 Сейчас в теме
Пример мигания новых элементов в списке справочника. Модуль формы списка:
Перем ПоследнийКод;
Перем МассивНовыхЭлементов;

Процедура ПриОткрытии()
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	Номенклатура.Код КАК Код
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|
	|УПОРЯДОЧИТЬ ПО
	|	Код УБЫВ");
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() Тогда
		ПоследнийКод = Выборка.Код;
	КонецЕсли;
	
	ПодключитьОбработчикОжидания("ПроверитьНаличиеНовыхЭлементов", 5);
	
КонецПроцедуры

Процедура ПроверитьНаличиеНовыхЭлементов()
	
	Запрос = Новый Запрос(
	"ВЫБРАТЬ
	|	Номенклатура.Ссылка КАК Ссылка,
	|	Номенклатура.Код КАК Код
	|ИЗ
	|	Справочник.Номенклатура КАК Номенклатура
	|ГДЕ
	|	Номенклатура.Код > &ПоследнийКод
	|
	|УПОРЯДОЧИТЬ ПО
	|	Код");
	Запрос.УстановитьПараметр("ПоследнийКод", ПоследнийКод);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	Если РезультатЗапроса.Пустой() Тогда
		Возврат
	КонецЕсли;
	
	Выборка = РезультатЗапроса.Выбрать();
	Пока Выборка.Следующий() Цикл
		МассивНовыхЭлементов.Добавить(Выборка.Ссылка);
		ПоследнийКод = Выборка.Код;
	КонецЦикла;
	
	ПодключитьОбработчикОжидания("МиганиеСтрок", 0.2, Истина);
	
КонецПроцедуры

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

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

ПоследнийКод = "";
МассивНовыхЭлементов = Новый Массив;
Показать
Прикрепленные файлы:
СписокОФ.epf
4. user1089020 19.02.21 14:14 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот