|
Установить текущую строку | ☑ | ||
---|---|---|---|---|
0
Amfiaray
24.02.15
✎
11:35
|
Добрый день!
Есть документ с табличной частью, при определенных условиях необходимо чтобы активной была только последняя строка вне зависимости от того на какую строку встанет пользователь. никак не могу программно указать активную строку, помогите плиз! Чуть не забыл, это на управляемых формах. |
|||
1
D_E_S_131
24.02.15
✎
11:39
|
ОФФ:
Очень задача напоминает ситуацию с выборами в нашей стране. :) |
|||
2
zak555
24.02.15
✎
11:40
|
Расширение таблицы формы для динамического списка.ВосстанавливатьТекущуюСтроку (Form table extension for dynamic list.RestoreCurrentRow)
Расширение таблицы формы для динамического списка (Form table extension for dynamic list) ВосстанавливатьТекущуюСтроку (RestoreCurrentRow) Использование: Чтение и запись. Описание: Признак необходимости сохранения и восстановления текущей позиции в списке при следующем открытии формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер). |
|||
3
Amfiaray
24.02.15
✎
11:49
|
(2) мне не надо при следующем открытии, мне надо чтобы все строки в таб части кроме последней были недоступны пользователю
|
|||
4
mikecool
24.02.15
✎
11:50
|
(3) перед началом редактирования проверяй - если текущая не последняя, то в отказ
|
|||
5
Бубка Гоп
24.02.15
✎
11:51
|
(0) Сообщить("Нажми на последнюю строчку, а то покусаю!");
|
|||
6
D_E_S_131
24.02.15
✎
11:53
|
(3) Не проще ли тогда запретить пользователю вообще "ходить по строкам"?
|
|||
7
Рэйв
24.02.15
✎
11:57
|
ПередНачаломРедактирования проверяй индекс тек строки и если не новая строка и инрдекс не равен количество строк-1 то Отказ=Истина;
|
|||
8
Amfiaray
24.02.15
✎
11:57
|
(4) не пойдет, там есть команда завязанная на текущую строку, поэтому надо чтобы текущая была всегда последняя.
И запретить нельзя, последнюю строку они должны редактировать, а вот остальные нет |
|||
9
Amfiaray
24.02.15
✎
11:58
|
(7) При редактировании с команд на форме документа, в процедуру ПередНачаломРедактирования не заходит
|
|||
10
D_E_S_131
24.02.15
✎
11:59
|
Может вообще редактировать не таблицу?
|
|||
11
Бубка Гоп
24.02.15
✎
12:01
|
хм, а если такой некрасивый метод: в обработчике ожидания проверять, текущаятрока = последняя, если нет, то устанавливать ее.
|
|||
12
Amfiaray
24.02.15
✎
12:01
|
А что на УФ нельзя просто установить фокус на определенной строку таб части?
|
|||
13
Бубка Гоп
24.02.15
✎
12:02
|
(12) тут фишка в другом, что пользователю помешает перейти на другие строки?
|
|||
14
Amfiaray
24.02.15
✎
12:02
|
(11) Как утсановить текущую строку? Если это возможно то можно просто в процедуре ПриАктивизацииСтроки устанавливать последнюю строку активной и всё
|
|||
15
Amfiaray
24.02.15
✎
12:03
|
(13) Вот я и хочу в ПриАктивизацииСтроки устанавливать последнюю строку, и в какую бы строку он не перешел, фокус оставался бы всё время на последней
|
|||
16
D_E_S_131
24.02.15
✎
12:05
|
(14) Эдакая иллюзия выбора? :)
Выведи данные последней строки в другие реквизиты и пусть там редактируют. А программно будешь при изменении этих реквизитов менять значение в последней строке. |
|||
17
Amfiaray
24.02.15
✎
12:08
|
(16) В документе и без того реквизитов огромное количество, если ещё вывести и реквизиты из таб части, то пользователи вообще запутаются
|
|||
18
D_E_S_131
24.02.15
✎
12:10
|
(17) Новый закладки, не?
|
|||
19
Amfiaray
24.02.15
✎
12:11
|
(18) Это крайний случай, может всё таки возможно программно устанавливать текущую строку таб части?
|
|||
20
kosts
24.02.15
✎
12:14
|
(19) Никто не запрещает устанавливать текущую строку. Для верности можно заблокировать другие строки, что бы пользователи не пытались там что-то поменять.
|
|||
21
Amfiaray
24.02.15
✎
12:19
|
(20)Как установить?
Пробовал так: Элементы.ТабЧасть.ТекущаяСтрока = Объект.ТабЧасть[Объект.ТабЧасть.Количество()-1]; не устанавливается, всё равно переходит на другие строки |
|||
22
Бубка Гоп
24.02.15
✎
12:21
|
(21) не устанавливается, или не видно что устанавливается?
|
|||
23
Amfiaray
24.02.15
✎
12:24
|
(22) Не видно что устанавливается, активной становится другая строка
|
|||
24
Бубка Гоп
24.02.15
✎
12:26
|
[code]
Элементы.Товары.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор(); Элементы.Товары.ТекущийЭлемент = Элементы.ТоварыКоличество; Элементы.Товары.ИзменитьСтроку(); [/code] |
|||
25
Бубка Гоп
24.02.15
✎
12:28
|
(24) Там новаяСтрока - Это добавленная, то есть позиционирование идет на добавленную строку. в тваем случае, там должен быть идентификатор последней строки
|
|||
26
Amfiaray
24.02.15
✎
12:30
|
в (21) тоже самое только с позиционированием на нужную строку, без выбора ячейки
|
|||
27
kosts
24.02.15
✎
12:31
|
В (21) Для УФ не правильно. Надо юзать идентификатор.
|
|||
28
Бубка Гоп
24.02.15
✎
12:37
|
(26) Индекс != Идентификатор.
вот почитай это http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=592073 |
|||
29
Amfiaray
24.02.15
✎
12:38
|
Текущая строка меняется, но на фокус всё равно встает на другую строку )
|
|||
30
Бубка Гоп
24.02.15
✎
12:40
|
(29) на какую другую? не совсем понял
|
|||
31
Amfiaray
24.02.15
✎
12:44
|
в таб части 2 строки, активной должна быть всегда последняя
Процедура ТабЧастьПриАктивизацииСтроки(Элемент) Если Элемент.ТекущаяСтрока<Объект.ТабЧасть.Количество()-1 Тогда Элементы.ТабЧасть.ТекущаяСтрока = Объект.ТабЧасть[Объект.ТабЧасть.Количество()-1].ПолучитьИдентификатор(); КонецЕсли; КонецПроцедуры Когда на форме путаюсь мышкой тыкнуть в первую строку то код выполняется и Элементы.ТабЧасть.ТекущаяСтрока с 0 меняется на 1. Но на форме всё равно активируется первая строка |
|||
32
Amfiaray
24.02.15
✎
12:44
|
путаюсь->пытаюсь
|
|||
33
Бубка Гоп
24.02.15
✎
12:53
|
добавь в конце ИзменитьСтроку() и посмотри какая строка туда попадет
|
|||
34
Amfiaray
24.02.15
✎
13:03
|
Добавил всё равно.
Элементы.ТабЧасть.ТекущаяСтрока = 1 это правильно, но Элементы.ТабЧасть.ТекущиеДанные это данные из 0-й строки, и встает всё равно на 0 строку |
|||
35
kosts
24.02.15
✎
13:03
|
Вот это не надо.
Если Элемент.ТекущаяСтрока<Объект.ТабЧасть.Количество()-1 Тогда Возможно система не позволит изменить текущую строку в событии при активизации. Можно попробовать повесить на форму вызов обработчика через 0.1 секунду. |
|||
36
kosts
24.02.15
✎
13:14
|
Только надо заблокировать все строки кроме последней, что бы даже супермен не успел ничего изменить в промежуток 0.1 секунду... Это можно сделать в условном оформлении или в событии ПереводыПередНачаломИзменения().
|
|||
37
666 Devil
24.02.15
✎
13:15
|
а если в доке 100 строк и пользователю захочется посмотреть на первую строку?
|
|||
38
Бубка Гоп
24.02.15
✎
13:21
|
(37) пускай выводит список и хоть заглядится, до дыр может его разглядывать
|
|||
39
Amfiaray
24.02.15
✎
13:37
|
Спасибо, сделал через обработчик ожиданий.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |