Установить текущую строку #734984


#0 by Amfiaray
Добрый день! Есть документ с табличной частью, при определенных условиях необходимо чтобы активной была только последняя строка вне зависимости от того на какую строку встанет пользователь. никак не могу программно указать активную строку, помогите плиз! Чуть не забыл, это на управляемых формах.
#1 by D_E_S_131
ОФФ: Очень задача напоминает ситуацию с выборами в нашей стране. :)
#2 by zak555
Расширение таблицы формы для динамического списка.ВосстанавливатьТекущуюСтроку (Form table extension for dynamic list.RestoreCurrentRow) Расширение таблицы формы для динамического списка (Form table extension for dynamic list) Использование: Чтение и запись. Описание: Признак необходимости сохранения и восстановления текущей позиции в списке при следующем открытии формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент), мобильное приложение(сервер).
#3 by Amfiaray
мне не надо при следующем открытии, мне надо чтобы все строки в таб части кроме последней были недоступны пользователю
#4 by mikecool
перед началом редактирования проверяй - если текущая не последняя, то в отказ
#5 by Бубка Гоп
Сообщить("Нажми на последнюю строчку, а то покусаю!");
#6 by D_E_S_131
Не проще ли тогда запретить пользователю вообще "ходить по строкам"?
#7 by Рэйв
ПередНачаломРедактирования проверяй индекс тек строки и если не новая строка и инрдекс не равен  количество строк-1 то Отказ=Истина;
#8 by Amfiaray
не пойдет, там есть команда завязанная на текущую строку, поэтому надо чтобы текущая была всегда последняя. И запретить нельзя, последнюю строку они должны редактировать, а вот остальные нет
#9 by Amfiaray
При редактировании с команд на форме документа, в процедуру ПередНачаломРедактирования не заходит
#10 by D_E_S_131
Может вообще редактировать не таблицу?
#11 by Бубка Гоп
хм, а если такой некрасивый метод: в обработчике ожидания проверять, текущаятрока = последняя, если нет, то устанавливать ее.
#12 by Amfiaray
А что на УФ нельзя просто установить фокус на определенной строку таб части?
#13 by Бубка Гоп
тут фишка в другом, что пользователю помешает перейти на другие строки?
#14 by Amfiaray
Как утсановить текущую строку? Если это возможно то можно просто в процедуре ПриАктивизацииСтроки устанавливать последнюю строку активной и всё
#15 by Amfiaray
Вот я и хочу в ПриАктивизацииСтроки устанавливать последнюю строку, и в какую бы строку он не перешел, фокус оставался бы всё время на последней
#16 by D_E_S_131
Эдакая иллюзия выбора? :) Выведи данные последней строки в другие реквизиты и пусть там редактируют. А программно будешь при изменении этих реквизитов менять значение в последней строке.
#17 by Amfiaray
В документе и без того реквизитов огромное количество, если ещё вывести и реквизиты из таб части, то пользователи вообще запутаются
#18 by D_E_S_131
Новый закладки, не?
#19 by Amfiaray
Это крайний случай, может всё таки возможно программно устанавливать текущую строку таб части?
#20 by kosts
Никто не запрещает устанавливать текущую строку. Для верности можно заблокировать другие строки, что бы пользователи не пытались там что-то поменять.
#21 by Amfiaray
Как установить? Пробовал так: Элементы.ТабЧасть.ТекущаяСтрока = Объект.ТабЧасть[Объект.ТабЧасть.Количество-1]; не устанавливается, всё равно переходит на другие строки
#22 by Бубка Гоп
не устанавливается, или не видно что устанавливается?
#23 by Amfiaray
Не видно что устанавливается, активной становится другая строка
#24 by Бубка Гоп
#25 by Бубка Гоп
Там новаяСтрока - Это добавленная, то есть позиционирование идет на добавленную строку. в тваем случае, там должен быть идентификатор последней строки
#26 by Amfiaray
в тоже самое только с позиционированием на нужную строку, без выбора ячейки
#27 by kosts
В Для УФ не правильно. Надо юзать идентификатор.
#28 by Бубка Гоп
Индекс != Идентификатор. вот почитай это
#29 by Amfiaray
Текущая строка меняется, но на фокус всё равно встает на другую строку )
#30 by Бубка Гоп
на какую другую? не совсем понял
#31 by Amfiaray
в таб части 2 строки, активной должна быть всегда последняя Процедура ТабЧастьПриАктивизацииСтроки(Элемент) Когда на форме путаюсь мышкой тыкнуть в первую строку то код выполняется и Элементы.ТабЧасть.ТекущаяСтрока с 0 меняется на 1. Но на форме всё равно активируется первая строка
#32 by Amfiaray
путаюсь->пытаюсь
#33 by Бубка Гоп
добавь в конце ИзменитьСтроку и посмотри какая строка туда попадет
#34 by Amfiaray
Добавил всё равно. Элементы.ТабЧасть.ТекущаяСтрока = 1 это правильно, но Элементы.ТабЧасть.ТекущиеДанные это данные из 0-й строки, и встает всё равно на 0 строку
#35 by kosts
Вот это не надо. Если Элемент.ТекущаяСтрока<Объект.ТабЧасть.Количество-1 Тогда Возможно система не позволит изменить текущую строку в событии при активизации. Можно попробовать повесить на форму вызов обработчика через 0.1 секунду.
#36 by kosts
Только надо заблокировать все строки кроме последней, что бы даже супермен не успел ничего изменить в промежуток 0.1 секунду... Это можно сделать в условном оформлении или в событии ПереводыПередНачаломИзменения.
#37 by 666 Devil
а если в доке 100 строк и пользователю захочется посмотреть на первую строку?
#38 by Бубка Гоп
пускай выводит список и хоть заглядится, до дыр может его разглядывать
#39 by Amfiaray
Спасибо, сделал через обработчик ожиданий.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С