|
v7: Форма списка. Движение вверх/вниз программно | ☑ | ||
---|---|---|---|---|
0
slicem
29.10.13
✎
07:11
|
Чой-та не найду аналога ТекущаяСтрока() для формы списка справочника.
Задача: двигаться по списку рисованными кнопками. |
|||
1
ДенисЧ
29.10.13
✎
07:15
|
АктивизироватьОбъект() ?
|
|||
2
slicem
29.10.13
✎
07:20
|
(1)
И как понять, какой следующий(Вниз), а какой предыдущий(Вверьх)? |
|||
3
ДенисЧ
29.10.13
✎
07:21
|
(2) Отсортировать и выбирать по порядку....
|
|||
4
slicem
29.10.13
✎
07:23
|
(3) Ну с малым количеством элементов, наверное такой изврат прокатит.. Но это же ужас-ужас.
|
|||
5
Mikeware
29.10.13
✎
07:24
|
(4) какая задача, такое и решение....
|
|||
6
ДенисЧ
29.10.13
✎
07:28
|
(4) если руки растут из не того места, то ужас....
|
|||
7
Повелитель
29.10.13
✎
07:35
|
(0) А нафиг это надо?
У нас тоже люди которые на FoxPro сидели, когда 1 увидели, тоже хотели эти кнопки приделать, ничего хорошего не получилось, да потомучто они и не нужны. |
|||
8
Повелитель
29.10.13
✎
07:35
|
*когда 1с увидели
|
|||
9
slicem
29.10.13
✎
07:36
|
(6) и как должны расти руки, если оперировать справочником позиций так на тысячу? С иерархией?
(7) Сенсорный экран 800*600 |
|||
10
slicem
29.10.13
✎
07:37
|
(7) большие пальцы юзверей
|
|||
11
povar
29.10.13
✎
07:38
|
подменяй справочник, своей формой с тз
|
|||
12
slicem
29.10.13
✎
07:39
|
Как вариант, канеш, рисовать ТаблицуЗначений и выдавать её на поругание - она всё стерпит.
Похоже так и сделаю с большими списками. |
|||
13
slicem
29.10.13
✎
07:39
|
(11) одновременно подумали :).
|
|||
14
1dvd
29.10.13
✎
07:42
|
(12) очень тормознутое решение
|
|||
15
slicem
29.10.13
✎
07:43
|
(14) какие ваши предложения?
|
|||
16
1dvd
29.10.13
✎
07:46
|
(15) см (1), (3)
|
|||
17
1dvd
29.10.13
✎
07:47
|
а вообще. Возможно поможет индексированная таблица. Но, я с ними не работал
|
|||
18
Mikeware
29.10.13
✎
07:50
|
(15) Варианты:
1.не делать так. 2. зная сортировку, получать следующий/предыдущий прямым запросом 3. ИТЗ 4. эмулировать события от клавиатуры 5. ПоставщикДанных ----------- хватит? |
|||
19
1dvd
29.10.13
✎
07:52
|
(18) во, точно! сендкей самое простое
|
|||
20
Mikeware
29.10.13
✎
07:55
|
А вообще, конечно, повеселил вопросом....
|
|||
21
slicem
29.10.13
✎
08:02
|
(18)
4 это довольно красивый вариант - однозначный. Что видишь с тем и работаешь. Воспользуюсь. |
|||
22
Мимохожий Однако
29.10.13
✎
08:06
|
Достаточно поля поиск и отказаться от движений вверх и вниз кнопками.
|
|||
23
Mikeware
29.10.13
✎
08:08
|
(21) ширше видеть надо! и глубее!
ты вместо задачи пользователя (то, что нужно решить на самом деле) решаешь задачу "передвижения по экрану". |
|||
24
slicem
29.10.13
✎
08:37
|
(23) Задача пользователя выбрать элемент справочника на сенсорном экране с низким разрешением. С даблтапом у пользователя проблемы.
|
|||
25
slicem
29.10.13
✎
08:38
|
(22) я не хочу рисовать виртуальную клавиатуру ;)
|
|||
26
slicem
29.10.13
✎
08:41
|
(24) Даже не с даблтапом, а с попаданием пальцем в скроллбанды.
А кнопку можно сделать БОЛЬШОЙ. |
|||
27
1dvd
29.10.13
✎
08:44
|
(26) не слушай никого. Делай (21), это реальная задача. И не ты первый её решаешь
|
|||
28
KishMish
29.10.13
✎
08:46
|
(0) как я понял задачу, вот это поиск следующего элемента
Спр=СоздатьОбъект("Справочник."+Вид()); Спр.НайтиЭлемент(ТекущийЭлемент()); Сообщить("Теукщий"+Спр.ТекущийЭлемент()); Спр.ИспользоватьРодителя(Спр.Родитель); Если Сортировка()="Код" Тогда Спр.ПорядокКодов(); ИначеЕсли Сортировка()="Наименование" Тогда Спр.ПорядокНаименований(); Иначе Спр.ПорядокРеквизита(Сортировка()); КонецЕсли; Спр.ВыбратьЭлементы(1); Пока Спр.ПолучитьЭлемент()=1 Цикл Если Спр.ТекущийЭлемент() = ТекущийЭлемент() Тогда Если Спр.ПолучитьЭлемент()=1 Тогда Сообщить("Следующий "+Спр.ТекущийЭлемент()); Иначе Сообщить("Неа, это последний"); КонецЕсли; КонецЕсли; КонецЦикла; предыдущий искать подобным образом |
|||
29
slicem
29.10.13
✎
09:11
|
(28)у мене малость проще ибо без учета сортировки. Мне сам подход мне не нравитса.
Тек1 = СоздатьОбъект("Справочник.Контрагенты"); Предыдущий = ТекущийЭлемент(); Тек1.ВыбратьЭлементы(); Пока Тек1.ПолучитьЭлемент() = 1 Цикл Если Тек1.ТекущийЭлемент() = ТекущийЭлемент() Тогда Если Флаг = 1 Тогда Тек1.ПолучитьЭлемент(); ИначеЕсли Флаг = -1 Тогда Тек1.НайтиЭлемент(Предыдущий); КонецЕсли; Прервать; КонецЕсли; Предыдущий = Тек1.ТекущийЭлемент(); КонецЦикла; АктивизироватьОбъект(Тек1.ТекущийЭлемент()); |
|||
30
slicem
29.10.13
✎
09:24
|
(21) вылезла трабла - слетает фокус поля списка. А как его поместить назад нипанятна.
Активизировать("МногострочнаяЧасть") Не помогает.. |
|||
31
slicem
29.10.13
✎
09:33
|
(30) решил - надо на колонку фокус ставить
|
|||
32
ADirks
29.10.13
✎
11:20
|
SendKeys() - ненадёжно
1000 элементов - фигня. Кэшируй их по мере надобности в ТЗ, а уж имея ТЗ переход к предыдущей/следующей записи элементарен. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |