Имя: Пароль:
1C
1С v8
Спозиционироваться на строке ТП
0 Chameleon1980
 
28.03.14
06:11
Чет не пойму.
Есть ТП, данными которой является ТЗ.
ТЗ заполненная. После определенных действий ТЗ ну и соотв ТП перезаполняются. Само собой перед перезаполнением запоминаю строку после последней выделенной вот так:
    ПоследняяВыделенная=ЭлементыФормы.ТПНоменклатуры.ВыделенныеСтроки[ЭлементыФормы.ТПНоменклатуры.ВыделенныеСтроки.Количество()-1];
    Индекс=ТаблицаНоменклатуры.Индекс(ПоследняяВыделенная);
    Возврат ТаблицаНоменклатуры.Получить(Индекс+1);


После перезаполнения пытаюсь сделать что-то типа:

ЭлементыФормы.ТПНоменклатуры.ТекущаяСтрока=СтрокаПосле;

Нифига. Позиционируется на первой.

Что делаю не так люди?
1 ОбычныйЧеловек
 
28.03.14
06:17
(0) СтрокаПосле - точно является строкой таблиичного поля?
2 Wobland
 
28.03.14
06:21
(0) смахивает на Возврат ТЗ[ТЗ.Количество()-1]
3 Chameleon1980
 
28.03.14
06:26
(1) Во пля. Ето строка ТЗ.
А как получить строку ТП после последней выделенной?
4 Defender aka LINN
 
28.03.14
06:30
ЭлементыФормы.ТПНоменклатуры.ВыделенныеСтроки[ЭлементыФормы.ТПНоменклатуры.ВыделенныеСтроки.Количество()-1] - а это что вообще символизирует?
5 Chameleon1980
 
28.03.14
06:35
(4)
думаю идекс последней выделенной строки в тп
или:
Это вопрос или наводка?
6 Defender aka LINN
 
28.03.14
06:40
(5) Любопытные мысли.
7 Chameleon1980
 
28.03.14
06:45
вернее после этого идекс получаается

ПоследняяВыделенная=ЭлементыФормы.ТПНоменклатуры.ВыделенныеСтроки[ЭлементыФормы.ТПНоменклатуры.ВыделенныеСтроки.Количество()-1];
    Индекс=ТаблицаНоменклатуры.Индекс(ПоследняяВыделенная);
8 Chameleon1980
 
28.03.14
06:45
Это по выделенным строкам. Мне нужно получить строку после последней выделенной.
9 Wobland
 
28.03.14
06:47
вот опять "строку после последней выделенной". что это такое?
10 Cube
 
28.03.14
06:47
(7) Не проще вместо этой галиматьи написать?

Индекс=ТаблицаНоменклатуры.Индекс(ЭлементыФормы.ТПНоменклатуры.ТекущаяСтрока);
11 Wobland
 
28.03.14
06:48
(10) без текущей строки получится не очень
12 Cube
 
28.03.14
06:49
(9) А ты чё в Красноярске-то делал?))
13 Wobland
 
28.03.14
06:49
(12) мимо ехал. заехал поглядеть на город ;)
14 Cube
 
28.03.14
06:50
(13) Ну и что успел посмотреть?)
Ты сам-то откеда?
15 Chameleon1980
 
28.03.14
06:51
Всегда перед повторным заполнением ТП выделена либо одна либо несколько строк.
По определению после перезаполнения выделенная (выделенные) строки уже не попадут в таблицу. Мне нужно, чтобы строка после перезаполнения установилась на следующей строке после ранее выделенных.
16 Cube
 
28.03.14
06:52
(15) У тебя последняя выделенная не обязательно будет последней... Попробуй выделять строки снизу вверх и удивись :)
17 Wobland
 
28.03.14
06:53
(15) надо прекращать хотеть противоестественного
18 Wobland
 
28.03.14
06:55
(14) с Томска. по красрабу прогулялся. когда село солнце и стало сложно ориентироваться. какие-то закоулки в большом количестве видел ;)
19 Wobland
 
28.03.14
06:57
+(17) сумеешь рассказать ТП о том, какие строки были выделены в её прошлой жизни?
20 Chameleon1980
 
28.03.14
06:57
есть идеи как реализовать?
21 Cube
 
28.03.14
06:57
(18) Мда... Нашел где гулять... :)
Так можно и в такие места зайти, где тебе выхлопуху сам знаешь куда вставять и деньги в долг возьмут)))

Хоть бы по вантовому мосту прогулялся и по о. Татышева...
22 Wobland
 
28.03.14
06:58
(21) не, культпрограмма с мостом и прочими татышевыми была ;)
23 Cube
 
28.03.14
06:59
(22) Ну и как тебе наш промышленный сибирский город?))
24 Wobland
 
28.03.14
07:01
(20) нет. было 200 строк, выделенных 3, стало 2 - что выделять?
(23) здоров весьма. как Новосибирск ;)
25 Cube
 
28.03.14
07:01
(20) Есть: но комп сейчас занят - УПП обновляется... Через час-два помог бы)))
26 Chameleon1980
 
28.03.14
09:00
(24) уйдут только выделенные.
Если после всех выделенных строк ничего нет - после перезаполнения позиционироваться на первой
27 Cube
 
28.03.14
09:23
Ничего сложного. Пять минут с перекурами:

    ИндексСтроки = 0;
    Для Каждого ВыделеннаяСтрока Из ЭлементыФормы.ТЗ.ВыделенныеСтроки Цикл
        ИндексСтроки = Макс(ИндексСтроки, ТЗ.Индекс(ВыделеннаяСтрока) + 1);
    КонецЦикла;
    ТЗ.Очистить();
    Для Сч = 1 По 50 Цикл
        ТЗ.Добавить().Колонка1 = "Строка " + Сч;
    КонецЦикла;
    Если ИндексСтроки < ТЗ.Количество() Тогда
        ЭлементыФормы.ТЗ.ТекущаяСтрока = ТЗ.Получить(ИндексСтроки);
    КонецЕсли;