Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Позиционирование текущей строки в начале таблицы значений

Позиционирование текущей строки в начале таблицы значений
Я
   Impuls20_03
 
13.03.20 - 15:46
На форме есть таблица значений. Условно состоящая из двух колонок:
1. Номенклатура
2. Группа номенклатуры
Таблица заполняется программно.
Добавил на форму две кнопки:
1. Следующая группа
2. Предыдущая группа
Каждая из кнопок устанавливает текущую строку на первый элемент группы (следующей или предыдущей соответственно).
Это все прекрасно работает, но для идеального результата хотелось бы чтобы текущая строка прокручивалась к самому верху таблицы.
На данный момент текущая строка может быть в любой части таблицы, что немного меня сильно бесит.
Вообще реально ли реализовать мою хотелку. Спасибо за ответы
На данный момент это так:
https://ibb.co/HhxzXy4
А я хочу так:
https://ibb.co/QrxxhnW
   Жан Пердежон
 
1 - 13.03.20 - 15:49
тебе надо просто проскролить программно
   Impuls20_03
 
2 - 13.03.20 - 15:51
А как узнать сколько скролить? Как программно определить в каком месте формы находится текущая строка?
   hhhh
 
3 - 13.03.20 - 15:58
(2) идеально конечно, чтобы она где-то в середине экрана была. Чтобы сверху и снизу было видно, что там.
   Impuls20_03
 
4 - 13.03.20 - 16:00
(3) Ну это уже лирика. Если знать методику, то передвинуть в нужное место не проблема. Вопрос как раз в том и стоит, что я не знаю как проскролить таблицу и как определять текущее местоположение строки
   Жан Пердежон
 
5 - 13.03.20 - 16:05
(4) ну так, что мешает СП открыть?
   Impuls20_03
 
6 - 13.03.20 - 16:17
(5) Ничего не мешает. Но вот в упор я там не вижу ничего похожего на то, что мне нужно. Если Вы ткнете меня в нужное место буду благодарен.
   hhhh
 
7 - 13.03.20 - 16:22
(4) методика в том, что правильней будет посередине. А кто не согласен, тот по методике 1с идет в сад.
   Impuls20_03
 
8 - 13.03.20 - 16:27
(7) Ок не проблема. Пусть будет посередине. Но Эта гадость прыгает. Может быть в конце, начале, середине. В любой части
   Жан Пердежон
 
9 - 13.03.20 - 16:29
(6) всё правильно, так как такой возможности нет;
обычно в твоём случае бывает лучше сделать либо дерево, либо 2 таблицы (одна с группами, другая с номенклатурой) + ОтборСтрок при активизации группы (с возможностью его отключения);
   Impuls20_03
 
10 - 13.03.20 - 16:33
(9) Не очень хороший вариант в моем случае. Разработка ведется под мобильный клиент. Места катастрофически мало.
   Жан Пердежон
 
11 - 13.03.20 - 16:39
(10) если 
M - количество номенклатуры в группе, 
N - число строк, которые видны на экране 
попробуй сначала активизировать строку max(M, N), а потом первую (в группе)
   Жан Пердежон
 
12 - 13.03.20 - 16:40
min вместо max конечно же
   Impuls20_03
 
13 - 13.03.20 - 16:43
(12) Такой вариант я уже проходил. На разных диагоналях будет по разному. Так что не прокатит
   Жан Пердежон
 
14 - 13.03.20 - 17:10
(13) ну если сделать криво, то конечно не прокатит
   Impuls20_03
 
15 - 18.03.20 - 11:34
В общем сам отвечу на свой вопрос. Если Перед тем как установить текущую строку - сделать текущей первую, то все заработает как надо.
Как-то так:

Элементы.СписокНоменклатуры.ТекущаяСтрока = СписокНоменклатуры[0].ПолучитьИдентификатор();
Элементы.СписокНоменклатуры.ТекущаяСтрока = ПолучитьСледующийБлок();
   Начинающий_13
 
16 - 18.03.20 - 11:55
Сделать еще колонку(поставь 1с) и по ней отсортируй
   Начинающий_13
 
17 - 18.03.20 - 11:59
по группа 1А,1Б,1В сам придумай что писать

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.