Имя: Пароль:
1C
1С v8
Нестандартная проблема "двойного тыка" на сенсорном экране
0 Ashabad
 
04.07.12
02:50
Делаю обработку для сенсорного экрана с большим количеством табличных полей. Табличные поля активно перезаполняются при работе мышкой (или тыка пальцем в строку табличного поля): строка в одном табличном поле исчезает, а в другом появляется новая. Клиент не хочет для выбора действия "быстро тыкать два раза". Т.е. с мышкой-то это хорошо получается (или привыкли уже), а с сенсорным экраном (пальцем) - нет.
Для отработки сенсорного экрана нет. Все эмулирую мышкой. В последний раз с сенсорным экраном работал лет пять назад.
Если для отлова однократного тыкания использовать событие ПриАктивацииСтроки (или ячейки), то проваливаюсь в цикл событий: строка активируется, я её удаляю, активируется следующая нижняя строка, срабатывает событие и происходит несанкционированное удаление всех нижестоящих строк.
Есть у кого-нибудь идеи?
1 Ashabad
 
04.07.12
03:15
up! уплывает тема...
2 France
 
04.07.12
03:26
ну, поставь семафор, чтоб в циклы не уходил. один раз выполнить при активации, а второй раз стандартную обработку отправь в ложь.
3 Total Commander
 
04.07.12
04:05
Я бы еще предложил убрать выделение строк, чтобы не вводить в заблуждение пользователей.
4 Ashabad
 
04.07.12
04:08
Спасибо большое всем. На просторах инета нашёл лучшее решение

Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
   ЭлементыФормы.ТабличнаяЧасть1.Колонки.Колонка1.УстановитьЭлементУправления(Тип("Кнопка"));
   ЭлементыФормы.ТабличнаяЧасть1.Колонки.Колонка1.Ширина = 5;
   ЭлементыФормы.ТабличнаяЧасть1.Колонки.Колонка1.РежимРедактирования = РежимРедактированияКолонки.Непосредственно;
КонецПроцедуры

Процедура ТабличнаяЧасть1ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
   ТабличнаяЧасть1.Удалить(Элементыформы.ТабличнаяЧасть1.ТекущаяСтрока);
КонецПроцедуры