Имя: Пароль:
1C
1С v8
УФ. Можно ли узнать номер видимой строки в таблице формы?
,
0 psy_sln
 
30.10.20
13:01
Здравствуйте,
возможно ли узнать позицию выделенной строки (не в данных объекта!), а в таблице формы? т.е. например у нас таблица из 100 строк, на форме мы видим строки с 20 по 40, выделена третья строка сверху (допустим ее индекс в таблице 23). Вот мне нужно получить номер 3
1 Ёпрст
 
30.10.20
13:04
(0) зачем ?просто получай текущую строку и всё.. вот не пофик ли, 3-я она сверху или 5-ая..
2 psy_sln
 
30.10.20
13:05
Если бы было пофик, не было бы этой темы
3 Ёпрст
 
30.10.20
13:08
(2) ну и скажи, зачем ?
4 psy_sln
 
30.10.20
13:10
Для синхроницазии действий, на форме 2 таблицы, и когда чтото выделяю в одной, мне нужно чтобы в другой нужная строка встала на ту же позицию, что и в первой
5 Ёпрст
 
30.10.20
13:12
(4) дык заведи ключ записи в обеих таблицах и приактивизации в первой ищи во второй по этому ключу
6 Ёпрст
 
30.10.20
13:12
какй нахрен еще..3-ий номер сверху..
7 psy_sln
 
30.10.20
13:14
да это есть, но мне нужно чтоб визуально строки были друг напротив друга
8 Вафель
 
30.10.20
13:14
так он наверное и скролить синхронно хочет
9 Вафель
 
30.10.20
13:15
такое только на хтмл возможно
10 psy_sln
 
30.10.20
13:17
(8) это в идеале, мне хотябы при выделении строки такое организовать
11 Вафель
 
30.10.20
13:20
так если у тебя строк больше, что при скроле должно быть, когда тек строка не меняется?
12 psy_sln
 
30.10.20
13:25
Строк в этих таблицах будет всегда одинаковое количество, к тому же на скрол нет событий, по этому пытаюсь что то придумать при выделении строки
13 Ёпрст
 
30.10.20
13:50
(12) то как ?
14 Ёпрст
 
30.10.20
13:51
На первой таблице у тебя 10 строк, мышой тыркаешь в 9-ую, во второй таблице  сколько строк ?  с чего там должна быть активна 9-ая ?
15 УдавВПопугаях
 
30.10.20
13:55
ну при активизации в одной таблице находишь нужную строку в другой и делаешь ее активной
16 УдавВПопугаях
 
30.10.20
13:56
если надо что бы всегда были друг напротив друга, то строк должно быть одинаковое количество + одинаковая сортировка
17 psy_sln
 
30.10.20
13:57
(15) Да, активной она становится, но мне нужно управлять размещением этой строки в отображаемой части таблицы
18 УдавВПопугаях
 
30.10.20
13:58
а скролл - только если не колесом, а как то по-другому список прокручивать, кнопкой например, и там уже отлавливать
19 psy_sln
 
30.10.20
13:59
(16) нет, ситуация, я прокрутил 5 экранов в низ и выделил самую нижнюю видимую строку, в другой таблице выделенная строка помещается в центр
20 УдавВПопугаях
 
30.10.20
14:00
(19) во второй таблице выделенная всегда должна быть в центре? или друг напротив друга должны быть не понял
21 hhhh
 
30.10.20
14:01
(19) сделай одну таблицу тогда. зачем вдруг понадобилось 2 таблицы?
22 УдавВПопугаях
 
30.10.20
14:02
может отбор поставить на вторую таблицу, тогда там будут только строки, которые имеют ключ из первой, если она всегда будет одна, то будет в начале списка
23 psy_sln
 
30.10.20
14:03
(20) друг на против друга
24 УдавВПопугаях
 
30.10.20
14:07
(23) во второй таблице она в центре, а в первой... тоже в центре? давай картинку, как есть и как хочется, со стрелками, непонятно
25 psy_sln
 
30.10.20
14:12
(24) Попробую без картинки, в первой таблице я выделяю строку (пусть будет вторая снизу), система в другой таблице находит эту строку и устанавливает на нее курсор, но курсор может быть расположен где угодно, а мне надо чтобы найденная строка во второй таблице была также второй снизу
26 УдавВПопугаях
 
30.10.20
14:17
ох ты ж епт, знает толк в извращениях
поставить фильтр на вторую таблицу не вариант? в ней не останется ничего, кроме подходящего по условию
27 УдавВПопугаях
 
30.10.20
14:18
табличная часть.сдвинуть() есть
28 УдавВПопугаях
 
30.10.20
14:21
если количество строк одинаковое то
текданные1 = таб1.текущиеданные
строкатаб2 = таб.найти(текданные1.ключ, "ключ")
таб2.сдвинуть(строкатаб2, таб1.индекс(текданные1) - таб2.Индекс(строкатаб2))

это не точный код, считать и проверять надо, смысл где то такой
29 УдавВПопугаях
 
30.10.20
14:22
а, ну и таб2.текущаястрока = строкатаб2
30 УдавВПопугаях
 
30.10.20
14:26
может еще табличноеполе.обновитьстроки() или аналогичное нужно будет сделать, если при сдвиге в тч табполе не отобразит
ну и я про обычные формы, в управляемых должно быть аналогично
31 SleepyHead
 
гуру
30.10.20
14:28
(12) Нахрен две таблицы? Одна тогда нужна.
32 УдавВПопугаях
 
30.10.20
14:28
(31) ну видимо разные данные в таблицах
33 psy_sln
 
30.10.20
14:28
(29) Такой вариант, к сожалению, не подходит. У меня не табличная часть, да и двигать тут нельзя строки ибо смысл тогда теряется, наверно надо смотреть в сторону одной таблицы. Похоже что в платформе нет механизмов управления отображаемыми данными
34 УдавВПопугаях
 
30.10.20
14:29
(0) при этом разве обязательно строку перемещать напротив другой? может достаточно просто выделить нужную и все?
35 УдавВПопугаях
 
30.10.20
14:30
(33) в таблице значений тоже самое
36 УдавВПопугаях
 
30.10.20
14:32
(33) механизмы есть, но обычно это для извращений, чем проще механизм тем он надежней
37 УдавВПопугаях
 
30.10.20
14:38
че то странное
(17) "Да, активной она становится, но мне нужно управлять размещением этой строки в отображаемой части таблицы"
и
(33) "да и двигать тут нельзя строки ибо смысл тогда теряется, наверно надо смотреть в сторону одной таблицы. Похоже что в платформе нет механизмов управления отображаемыми данными"

и не сходится где то
38 psy_sln
 
30.10.20
14:42
(37) на сколько я понял метод сдвинуть физически переместит строку на нужную позицию, т.е. ее индекс изменится, а мне не нежно менять индекс, мне нужно чтобы система проскролила таблицу так, чтобы выделенная строка оказалась на нужной мне позиции.
39 УдавВПопугаях
 
30.10.20
14:49
ну активизируй нужную строку, она и проскролит
40 УдавВПопугаях
 
30.10.20
14:50
не факт что встанут друг напротив друга, даже факт что не встанут
41 УдавВПопугаях
 
30.10.20
14:52
что это за херня
42 psy_sln
 
30.10.20
14:54
(40) вот именно, что не факт, а мне надо ))))
43 psy_sln
 
30.10.20
14:54
но видимо это невозможно, я понял
44 hhhh
 
30.10.20
14:57
(43) просто делай одну таблицу из двух и выводи ее. Ведь всё равно это не табчасти, значит вообще без проблем.
45 Мимохожий Однако
 
30.10.20
14:59
И на хрена это? Если у двух таблиц одинаковые ключи поиска при одинаковом количестве строк, то логичнее сделать одну таблицу
46 psy_sln
 
30.10.20
15:03
(45) тут тема в визуальном представлении, в таблице отображается дерево, и если делать одну таблицу но с 2мя колонками, то дерево (визуально в виде дерева) будет только в одной колонке
47 Cthulhu
 
30.10.20
15:04
запомнил номер строки в первой - нашел во второй - активизировал во второй (стало по центру) - активизировал запомненный  номер строки в первой (стало по центру) == обе синхронно по центру одна напротив другой...
визуально выглядит как тек.строка всегда посередине, а список движется. норм.
48 УдавВПопугаях
 
30.10.20
15:07
(47) да хрен оно встанет по центру, она может быть с индексом 3 например, в самом верху
49 УдавВПопугаях
 
30.10.20
15:08
(43) все возможно
в этом случае надо двигать строки и будет ок
50 УдавВПопугаях
 
30.10.20
15:09
либо отсортировать в обеих таблицах, тогда ваще все одинаковое будет
51 hhhh
 
30.10.20
15:14
(46) так значит у вас неодинаковое количество строк? Что же вы писали, что одинаковое?
52 hhhh
 
30.10.20
15:16
(46) тогда невозможно в принципе. Первая строка не прокатит. в первой таблице на первой строке иерархия, а во второй таблице иерархии нет, сразу идут элементы.
53 Cthulhu
 
30.10.20
15:21
(48) да вообще-то до лампады где, главное что рядом-напротив как надо автору. исключение - только конец списка если размер списков разный, но автор говорил вроде, что списки равной длины...
54 hhhh
 
30.10.20
15:24
(53) левый исписок иерархический, как оказалось.
55 Cthulhu
 
30.10.20
15:25
(54): еще раз. до лампочки. тек.строка по центру - сисок движется - найденная строка второго списка всегда рядом.
56 psy_sln
 
30.10.20
15:27
(55) да, вот вы меня правильно поняли, и да как я и говорил количество элементов в таблице одинаково. то что они иерархические это для дела не суть важно
57 Ёпрст
 
30.10.20
15:31
(55) врят ли в первой скрол сдвинет текущую строку посерёдке, если она и так текущая..лень проверять
58 Ёпрст
 
30.10.20
15:31
*не скрол а установка текущей..
59 УдавВПопугаях
 
30.10.20
15:37
(53) нуууу рядом это не напротив
60 УдавВПопугаях
 
30.10.20
15:40
а напротив они не встанут
61 УдавВПопугаях
 
30.10.20
15:40
только если отсортированы одинаково
62 Cthulhu
 
30.10.20
15:55
(57): есть такая вероятность, но если даже и так - установка тек.строкой другой потом обратно той же решает такую проблему (если! она возникнет)
(60),(61): блин, "Василий Иванович, иногда мне кажется, что вы бредите" (с)
и рядом, и напротив в двух списках на форме, расположенных рядом и имеющих одинаковую высоту - одно и то же, и встанут. сортировки - до лампады, тек.строка второго будет рядо=напротив тек.строки первого. как нашли строку второго чтобы сделать ее текущей - дело семнассатое.
63 ДедМорроз
 
31.10.20
13:54
Если в таблицах одинаковое число строк,то просто в одну таблицу.
Если разное,то не поставите вы третьей строку,если во второй таблице всего две строки.
Как вариант,нарисуйте поля второй таблицы для текущей строки,а саму таблицу сделайте невидимой и меняйте в ней текущую строку,будет то,что нужно.
Независимо от того, куда вы едете — это в гору и против ветра!