Пролистнуть таблицу до текущей строки

1. user599125_shegynn 30.10.23 16:59 Сейчас в теме
Всем, вечер добрый! Есть код:
ТекСтрока = ДобавитьРезультатСканированияТовараНаСервере(Штрихкод);
	
	Если ТекСтрока = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	Элементы.ДанныеПоДокументу.ТекущаяСтрока = ТекСтрока; 

Текущая строка устанавливается. Но визуально таблица не прокручивается до текущей строки! Менял свойство таблицы "ИспользованиеТекущейСтроки" на "Отображение выделения и выбор". Есть ли какие-то еще варианты, как можно прокрутить до текущей строки?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. SlavaKron 31.10.23 09:47 Сейчас в теме
(1) Скорее всего, функция ДобавитьРезультатСканированияТовараНаСервере возвращает не идентификатор строки, иначе всё должно работать – установка текущей строки автоматически прокручивает таблицу.
Идентификатор строки можно получить только методом ПолучитьИдентификатор() из строки таблицы.
Sashares; +1 Ответить
5. user599125_shegynn 31.10.23 10:16 Сейчас в теме
(4)
сё должно работат

Заметил особенность, при количество строк > 20 докручивает только до 20, но при этом текущую строку устанавливает. Сейчас попробую создать программно нужное количество таблиц по 20 строк и уже в них устанавливать тек.строку
6. Sashares 35 31.10.23 10:24 Сейчас в теме
(5)Циклом на клиенте, в ПриОткрытии обойди таблицу.
Тогда данные таблицы подгрузятся на клиент.
И после этого установка текущей строки должна сработать.
7. user599125_shegynn 31.10.23 11:31 Сейчас в теме
(6)
дгрузятся на клиент.
И после этого установка текущей строки дол

Можно пример? Не особо понял, как это выглядит
8. Sashares 35 31.10.23 11:37 Сейчас в теме
(7)Пустой цикл, этого достаточно.
&НаКлиенте
Процедура ПриОткрытии()
Для Каждого Стр Из Объект.МояТЧ Цикл КонецЦикла;
КонецПроцедуры
9. user599125_shegynn 31.10.23 12:27 Сейчас в теме
(8)Все тоже самое. Честно говоря, я не понял, почему должна была сработать данная конструкция?
10. Sashares 35 31.10.23 12:41 Сейчас в теме
(9)Если строка не позиционируется, хотя должна, предположил, что есть баг в платформе - что строка не находится на клиенте, потому что данные еще не подгружены.
Обход таблицы в цикле на клиенте автоматом подгружает все данные таблицы на клиент.

Вы событие форме назначили же, ПриОткрытии, а то мало ли?)

Upd. Судя по названию процедуры, вы добавляете новую строку.
Тогда действительно, в ПриОткрытии ее не будет, и это не имеет смысла.

Другая теория в (4) - покажите код "ДобавитьРезультатСканированияТовараНаСервере"
11. user785225 26 03.10.24 20:18 Сейчас в теме
(1) удалось побороть?

Также добавляю новую строку, количество < 20
выделяется, но не прокручивается
12. independ 1551 04.10.24 07:21 Сейчас в теме
(11) я вместо добавления в конец, сделал вставку в начало (или перемещение найденной строки в строку 1) + условное оформление по строке 1 (выделение цветом + шрифт), пользователям это вариант подошел хорошо, сразу видно что отсканировано и экран не скроллится
Прикрепленные файлы:
13. user785225 26 08.10.24 03:59 Сейчас в теме
(12) Так и делал раньше, но версионирование объектов на 3000 товаров потом очень сложно сравнивать, решил отказаться. Фиксирую высоту в строках в зависимости от разрешения дисплея так, чтобы вся ТЧ всегда входила на экран.
+ последний отсканированный товар всегда видно
- шапка занимает 3 строчки экрана
14. user599125_shegynn 08.10.24 09:53 Сейчас в теме
(13)
(11)
&НаСервере
Процедура УстановитьТекущуюСтроку(ТекСтрока)
	
	Для Каждого Строка Из ДанныеПоДокументу Цикл
		Строка.ИконкаТекущаяСтрока = 0;
	КонецЦикла; 
	
	ТекСтрока.ИконкаТекущаяСтрока = "▶";//"►";//"◉";
	Элементы.ДанныеПоДокументу.ТекущаяСтрока = ТекСтрока.ПолучитьИдентификатор();
	
КонецПроцедуры
Показать


Плюс настроил свойства таблицы, но что именно настраивал, уже не помню...

https://ibb.co/Yybwd71
https://ibb.co/0X3680w
https://ibb.co/jzcgsML
https://ibb.co/BN3YPcC

Теперь работает как надо
15. user599125_shegynn 08.10.24 09:54 Сейчас в теме
(13)
(11)
&НаСервере
Процедура УстановитьТекущуюСтроку(ТекСтрока)
	
	Для Каждого Строка Из ДанныеПоДокументу Цикл
		Строка.ИконкаТекущаяСтрока = 0;
	КонецЦикла; 
	
	ТекСтрока.ИконкаТекущаяСтрока = "▶";//"►";//"◉";
	Элементы.ДанныеПоДокументу.ТекущаяСтрока = ТекСтрока.ПолучитьИдентификатор();
	
КонецПроцедуры
Показать


Плюс настроил свойства таблицы, но что именно настраивал, уже не помню...

Теперь работает как надо
Прикрепленные файлы:
2. polax 30.10.23 20:33 Сейчас в теме
(1)
ПерейтиКСтроке

Синтаксис:
ПерейтиКСтроке(<ОписаниеСтроки>, <Направление>, <ПереключитьВыделение>)
Параметры:
<ОписаниеСтроки> (необязательный)
Тип: Соответствие.
Содержит набор пар "Заголовок колонки" - "Текст ячейки" для поиска строки перехода.
Значение по умолчанию: Неопределено.
<Направление> (необязательный)
Тип: НаправлениеПереходаКСтроке.
Указывает направление перехода от текущей строки.
Значение по умолчанию: Вниз.
<ПереключитьВыделение> (необязательный)
Тип: Булево.
Если установлено Ложь, поведение метода эмулирует щелчок мышью в строке.
Если установлено Истина, поведение метода эмулирует щелчок мышью в строке с нажатой клавишей Ctrl.
Значение по умолчанию: Ложь.
Возвращаемое значение:
Тип: Булево.
Истина - переход на указанную строку выполнен, Ложь - в противном случае .
Описание:
Выполняет переход к указанной строке.

Доступность:
Тонкий клиент, толстый клиент.
3. user599125_shegynn 31.10.23 08:12 Сейчас в теме
(2)
ПерейтиКСтроке

Спасибо, но этот метод относится к "ТестируемаяТаблицаФормы (TestedFormTable)"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот