|
8.2 Как отловить момент когда строку в табличной части сместили вверх/вниз | ☑ | ||
---|---|---|---|---|
0
Aswed
12.12.16
✎
13:54
|
САБЖ используя стандартные кнопки вверх/вниз
|
|||
1
nordbox
12.12.16
✎
13:56
|
Получить текущую позицию, запомнить, прочитать опять текущую(новую), сравнить
|
|||
2
nordbox
12.12.16
✎
13:57
|
+1 Получить текущую позицию = номер строки
|
|||
3
nordbox
12.12.16
✎
13:57
|
+2 процедуру впихнуть в обработку табличной части
|
|||
4
Aswed
12.12.16
✎
13:59
|
(1) Блин, а типового механизма нет?
А то это гемор. |
|||
5
nordbox
12.12.16
✎
14:03
|
(4) а как ты себе представляешь типовой механизм????
|
|||
6
Aswed
12.12.16
✎
14:11
|
(5) ну есть же событие ПриПеретаскивании, могли бы и подобное сделать.
|
|||
7
Cool_Profi
12.12.16
✎
14:17
|
(6) У тебя есть шанс. Сменить жаркий юг на душную Москву...
|
|||
8
Mort
12.12.16
✎
14:18
|
Интересно, для чего понадобилось такое?
|
|||
9
Aswed
12.12.16
✎
14:21
|
(7) )))))
|
|||
10
RomaH
naïve
12.12.16
✎
14:23
|
запретить изменение порядка
и добавить свои две команды |
|||
11
Aswed
12.12.16
✎
14:27
|
(8) Вот для этого
ТаблицаДанных[ВыбраннаяСтрока][Поле.Имя] По индексу получаю значение. При этом когда меняется порядок строки, значение ВыбраннаяСтрока остается первоначальной. Т.е. поднимаю снизу списка строку наверх, а её номер по прежнему остается 18 |
|||
12
RomanYS
12.12.16
✎
14:31
|
(11) ВыбраннаяСтрока - это идентификатор, используй индекс и всё будет ОК.
|
|||
13
Aswed
12.12.16
✎
14:33
|
(12) Выбранная строка это число.
Номер строки в таблице &НаКлиенте Процедура ТаблицаДанныхВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) ТаблицаДанных[ВыбраннаяСтрока][Поле.Имя] = НЕ ТаблицаДанных[ВыбраннаяСтрока][Поле.Имя]; |
|||
14
lubitelxml
12.12.16
✎
14:34
|
(10) +1
|
|||
15
Aswed
12.12.16
✎
14:36
|
Разрулил по другому
&НаКлиенте Процедура ТаблицаДанныхВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) ВыбраннаяСтрока = Таблицаданных.Индекс(Элемент.ТекущиеДанные); ТаблицаДанных[ВыбраннаяСтрока][Поле.Имя] = НЕ ТаблицаДанных[ВыбраннаяСтрока][Поле.Имя]; Получил по индексу элемента |
|||
16
Aswed
12.12.16
✎
14:36
|
Всем спасибо за участие.
|
|||
17
RomanYS
12.12.16
✎
14:42
|
(13) (15) потому что "идентификатор" :) (да числовой, не ГУИД).
Если "правильно" переименовать: &НаКлиенте Процедура ТаблицаДанныхВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) ИндексВС = Таблицаданных.Индекс(ВыбраннаяСтрока); ТаблицаДанных[ВыбраннаяСтрока][Поле.Имя] = НЕ ТаблицаДанных[ИндексВС [Поле.Имя]; |
|||
18
Aswed
12.12.16
✎
14:46
|
ИндексВС = Таблицаданных.Индекс(ВыбраннаяСтрока);
будет возвращать всегда -1 |
|||
19
RomanYS
12.12.16
✎
14:55
|
(18) да тут я напутал:
на самом деле Элемент.ТекущиеДанные и Таблицаданных.НайтиПоИдентификатору(ВыбраннаяСтрока) это одно и тоже (элемент коллекции). А ВыбраннаяСтрока - как раз его(элемента) идентификатор. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |