|
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) да тут я напутал:
на самом деле Элемент.ТекущиеДанные и Таблицаданных.НайтиПоИдентификатору(ВыбраннаяСтрока) это одно и тоже (элемент коллекции). А ВыбраннаяСтрока - как раз его(элемента) идентификатор.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший