Имя: Пароль:
1C
1С v8
УФ горизонтальная полоса прокрутки у таб. части
0 I_learn_1c
 
01.07.25
16:07
Доброго всем дня,

Вопрос такой - есть таб. часть на форме документа, в таб. части много колонок, некоторые из них нужно менять руками иногда, но они не помещаются на экране.
Приходится использовать горизонтальную полосу прокрутки.

Для удобства нужно, чтобы после изменения значения в ячейке фокус оставался на ней же и полоса прокрутки тоже в том же положении.
Стандартно фокус остается на строке и полоса прокрутки устанавливается на начало таб. части и приходится снова ее двигать

Установку фокуса на нужную ячейку дописала, устанавливается, ячейка выделена, но она за пределами экрана.. вот как сделать, чтобы полоса прокрутки не соскакивала обратно на начальное положение?
1 I_learn_1c
 
01.07.25
17:02
или может есть способ программно задать положение полосы прокрутки..
2 I_learn_1c
 
01.07.25
17:16
или может есть способ чтобы после изменения значения в ячейке ТЧ отменить обновление элементов формы, чтобы фокус с ячейки и положение горизонтальной полосы прокрутки не слетали
3 I_learn_1c
 
02.07.25
23:39
методом перебора вариантов установлено, что

если у поля (колонки) задан обработчик ПриИзменении, то после редактирования значения в ячейке (именно если ввели значение отличное от того что было), то происходит будто бы обновление элементов и полоса прокрутки перепрыгивает на начало, фокус остается на нужной колонке, но она не видна.
НО! если при редактировании ввели то же самое значение/число, то полоса прокрутки не меняется, все остается в том же положении, как мне и нужно

и также, если обработчик ПриИзменении не задан (убрала у того же самого поля), то независимо от того какое значение вводим при редактировании ячейки все работает корректно, полоса прокрутки не меняется, все остается в том же положении

куда копать? какое событие реагирует именно на то, что ввели значение отличное от предыдущего?
4 I_learn_1c
 
02.07.25
23:50
пробовала написать
&НаКлиенте
Процедура ТоварыПриИзменении(Элемент)
	ЭтаФорма.ОбновитьОтображениеДанных();
	ЭтаФорма.ТекущийЭлемент = Элементы.Найти(Элемент.ТекущийЭлемент.Имя);
КонецПроцедуры


событие ТоварыПриИзменении для таблицы вызывается после обработчика ПриИзменении для ячейки, выделение на нужной ячейке устанавливается, но она за пределами экрана.. ну если задан обработчик у ячейки или ввели значение отличное от предыдущего
5 Asmody
 
03.07.25
00:04
(3) А вы ещё попробуйте в тонком, в толстом и в веб-клиенте (в разных браузерах) поиграть. И в разных версиях платформы. Подозреваю, что нора гораздо глубже.
6 I_learn_1c
 
03.07.25
00:09
(5) это все можно конечно... но делать то что? явно есть же какой-то механизм за это отвечающий. не могу найти только как именно это работает. может есть мысли конкретные?
7 I_learn_1c
 
03.07.25
00:12
получается работает как надо в 2 вариантах
1) если не задан обработчик ПриИзменении для ячейки (вводить можем что угодно)
или
2) если при редактировании ячейки вводить ровно то же самое значение, что и было ранее (если обработчик задан, если обработчика нет, то вводить можем что угодно)