Имя: Пароль:
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) если при редактировании ячейки вводить ровно то же самое значение, что и было ранее (если обработчик задан, если обработчика нет, то вводить можем что угодно)
8 Мультук
 
гуру
03.07.25
08:38
(0)

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

1) Возьмем ЗаказКлиента
Для одних пользователей часть колонок вообще никогда не нужна, просто захламляет экран
Для других -- не важна другая часть колонок
Третьи сами скрыли ненужные колонки, важные колонки перетащили ближе к левому краю
у них всё важно - всегда под рукой

2) Даже если вы найдете работающий "лайфхак" вероятность, что он будет работать и дальше -- "ну такое"


Итого -- может попробовать вместо задачи программиста, решить задачу UI-дизайнера или как его там ?
9 I_learn_1c
 
03.07.25
09:44
(8) не прокатит

именно тут пользователю эти колонки нужны все. кому нет - у них и так скрыто.
но те, кому нужно - их бесит, что они редактируют и перескакивает вечно на начало, просят это исправить.
и вместо решения предлагаете сказать "нет, вам это не надо"? другой вопрос если технически нет возможности
10 Ёпрст
 
гуру
03.07.25
10:03
(9) переходите на обычные формы - там такой проблемы нет от слова совсем
11 Ёпрст
 
гуру
03.07.25
10:08
И.. посмотрел в типовой рознице, такой проблемы тоже нет на УФ.
Ничего там не "слетает",ПриИзминении есть и срабатывает как надо
12 Ёпрст
 
гуру
03.07.25
10:10
Такси, формы в "закладках"
13 Ёпрст
 
гуру
03.07.25
10:12
>>>если обработчик ПриИзменении не задан (убрала у того же >>>самого поля), то независимо от того какое значение вводим >>>при редактировании ячейки все работает корректно


Вот и ищите проблему в нём. В типовой, работает без "слёта"
14 Мультук
 
гуру
03.07.25
10:17
(0)

1С:Предприятие 8.3 (8.3.25.1546)
Файловая база, УФ
Управление торговлей, редакция 11 (11.5.11.56) ( http://v8.1c.ru/trade/ )

Для колонки "Цена" есть типовой обработчик
&НаКлиенте
Процедура ТоварыЦенаПриИзменении(Элемент)

//Всякий пересчёт
КонецПроцедуры


Открыл документ (см рис)
-- есть прокрутка
-- меняю цену  на другую

Ничего "само" не скроллится, фокус никуда не уходит.
Всё хорошо.


Я что-то не так делаю ?

P.S.
Снимать видео мне лень.
15 Ёпрст
 
гуру
03.07.25
10:54
(14) ага, так и есть..тоже, выше проверил.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.