Вот, например, как привлечь внимание пользователя к полю, которое изменилось в результате правки пользователем другого элемента?
Можно штатно выкинуть сообщение и привязать к полю, но лично у меня это вызывает негативную эмоцию вида "Что там еще за ошибка?".
А можно ненавязчиво подсветить фоном, который "вспыхнет и погаснет". Мол, глянь-ка сюда.
Собственно, далее реализация через ОбработчикОповещения.
&НаКлиенте Перем ИмяПоля; // фон поля меняется от желтого к безцветному // запуск анимации СменаЦветаФона("Итого",Истина); // ИмяЭлемента - строка с названием анимируемого элемента // Старт - булево. Истина - начинаем анимацию, Ложь - продолжаем анимацию &НаКлиенте Процедура СменаЦветаФона(ИмяЭлемента,Старт=Ложь,ВызвавшаяФункция="АнимацияПоля") ИмяПоля = ИмяЭлемента; Элемент = Элементы.Найти(ИмяПоля); Скорость = 3; // 1-5 Если Старт = Ложь Тогда Синий = Элемент.ЦветФона.Синий; Синий = Синий+255/(7-Скорость); Иначе Синий = 0; КонецЕсли; Если Синий >= 255 Тогда Элемент.ЦветФона = Новый Цвет(); Возврат; КонецЕсли; Цвет = Новый Цвет(255, 255, Синий); Элемент.ЦветФона = Цвет; ПодключитьОбработчикОжидания(ВызвавшаяФункция, 0.1, Истина); КонецПроцедуры // вызывается из обработчика ожидания &НаКлиенте Процедура АнимацияПоля() СменаЦветаФона(ИмяПоля,Ложь); КонецПроцедуры
В архиве прилагается:
- Обработка, которая иллюстрирует код, описанный выше.
- Более "продвинутая" обработка с установкой произвольного цвета фона, с возможностью подсвечивать сразу несколько элементов.