Имя: Пароль:
1C
1С v8
Последняя строка ДокументСписок
,
0 Popovnm
 
29.06.12
09:21
Всем привет.
Есть форма списка документов. На ней реквизит типа "ДокументСписок". Вопрос - можно ли как то программно поставить курсор на последнюю строку списка документов?
1 Popovnm
 
29.06.12
09:22
Ах да, забыл добавить - 1С 8.2 толстый клиент
2 kosts
 
29.06.12
09:26
(0) при открытии?
3 golden-pack
 
29.06.12
09:26
ТабличноеПоле.ТекущаяСтрока (TableBox.CurrentRow)
ТабличноеПоле (TableBox)
ТекущаяСтрока (CurrentRow)
Использование:

Чтение и запись.
Описание:

Содержит текущую строку табличного поля.

Доступность:

Толстый клиент.
Примечание:

Тип значения строки табличного поля приведен в описаниях расширений табличного поля у соответствующих объектов.
См. также:

ТабличноеПоле, свойство ТекущаяКолонка
4 golden-pack
 
29.06.12
09:27
(2) естествено перед открытием
5 ale-sarin
 
29.06.12
09:27
(0) В пользовательских настройках можно это поставить. Не катит?
6 Popovnm
 
29.06.12
09:33
Спасибо за отзывы. при открытии стоит - позиционировать на последней строке. Но если пользователь изменяет отбор, курсор остается на середине списке. (я понимаю что есть клавиша end, но пользователям это не удобно и необходимо, чтобы при смене отбора курсор вставал на последнюю строку)
7 golden-pack
 
29.06.12
09:47
(6) че спасибо - СП читай.
8 Popovnm
 
29.06.12
09:51
Читаю, и что же я вижу:

ДокументСписок.<Имя документа> (DocumentList.<Имя документа>)

Свойства:
Колонки (Columns)
Отбор (Filter)
Порядок (Order)

Методы:
Обновить (Refresh)

Описание:
Предназначен для управления списком документов, отображаемым в табличном поле.

Доступность:
Сервер, толстый клиент, внешнее соединение.

Здесь нет методов для перебора строк. Поэтому и спрашиваю - можно ли как то установить курсор на последнюю строку? Да и вообще коллеги, сюда обращаются за помощью, а не за фразами "СП читай". Если нашел что-то в помощнике, будь добр выложи, облегчи решение задачи.
9 Jaap Vduul
 
29.06.12
10:01
(8) Есть два способа:
1. Определить ссылку документа, который с учётом текущих настроек списка (сортировка, отборы) должен быть последним и применить к нему (3).
2. sendkeys
10 ssh2006
 
29.06.12
10:08
(8) Сделать все это можно, но имхо брось эту затею, костыль какой-то, а то еще будешь париться как определить смену отбора пользователем. Хотя если это какая-то спец форма и нужно чего-то там быстро делать, отбор повешен на свои кнопки, ну может быть...

Можно, например, передать текущий отбор списка в построитель запроса, определить ссылку и применить (3)
11 Popovnm
 
29.06.12
10:19
"Определить ссылку документа, который с учётом текущих настроек списка (сортировка, отборы) должен быть последним и применить к нему (3). "
Хм, я правильно понимаю, что при смене отбора, можно делать запрос на текущие условия отбора и сортировку, искать ссыль на документ и затем... Текущая строка - передается тек строка документа, как её вытащить? Отбор, вытаскиваем строку, ставим старый отбор и устанавливаем тек строку? По моему там "огород" будет, ляжет форма списка)) SendKeys - сейчас ищу инфу, попробую затестить.
"ssh2006" - "отлов" смены отбора я реализовал, затык именно на установке последней строки.
12 Popovnm
 
29.06.12
11:04
В общем все получилось - спасибо (9).
Появился такой код в форме:

Процедура ДокументСписокПриПолученииДанных(Элемент, ОформленияСтрок)
       
   СтрокаОтбора = Строка(ДокументСписок.Отбор);
   
   Если Не (мГенераторКлавиш = Неопределено Или мТекущийОтбор = СтрокаОтбора) Тогда        
       мТекущийОтбор = СтрокаОтбора;        
       Этаформа.ТекущийЭлемент = ЭлементыФормы.ДокументСписок;
       мГенераторКлавиш.SendKeys("{END}");
   КонецЕсли;
   
КонецПроцедуры

мГенераторКлавиш = Новый COMОбъект("Wscript.shell");

Переключается на ок. Отлов отбора может и "кривоват", но в моем случае отбор идет в большинстве по 2-м реквизитам, имена элементов у них уникальные.
13 kosts
 
29.06.12
12:14
(12) Да, событие явно подходящее. Всё время будет на последнюю строку скакать, по делу и без...
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.