Имя: Пароль:
1C
1С v8
Позиционирование на строке динамического списка
0 Jokerman
 
09.09.16
12:16
Здравствуйте всем, поискал на форуме, не нашел ответа для себя.
Платформа скажу 8.2.13
Делаю отбор
    Если ЭлементОтбора = неопределено Тогда
        ЭлементОтбора = СписокТоваров.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    КонецЕсли;
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка.Наименование");
    ЭлементОтбора.ПравоеЗначение = Текст;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Содержит;
    ЭлементОтбора.Использование = Истина;

В следующем событии позиционируюсь на первую строку, убираю отбор
    Элементы.СписокТоваров.ТекущаяСтрока = 1;
        ЭлементОтбора.Использование = Ложь;
    
И как бы здесь остаться на той первой строке, а то сбрасывается позиционирование. Это типа замена штатного поиска. Спасибо заранее.
1 Jokerman
 
09.09.16
12:19
В динамическом списке не указана основная таблица ..
2 Jokerman
 
09.09.16
12:34
up
3 Catseye
 
09.09.16
12:36
А переставить строки местами?
4 Catseye
 
09.09.16
12:37
Типа:
ЭлементОтбора.Использование = Ложь; Элементы.СписокТоваров.ТекущаяСтрока = 1;
5 Jokerman
 
09.09.16
12:39
(4) Будет тоже самое. Вся беда в том, что в ТекущаяСтрока это относительное значение (с учетом отборов)
6 Jokerman
 
09.09.16
13:09
Нет мыслей
7 apokrit
 
09.09.16
14:03
(0) Это от недопонимания.
Позиционирование на самом деле не сбрасывается - текущей строка как было строка с "ключом" 1 так и осталась. Проблема только в том, что при отсутствии основной таблицы "ключ" это просто порядковый номер записи.

Можно конечно (вместо текущего отбора):
- на сервере выполнить запрос списка (со всеми отборами и сортировкой)
- перебором результат определить порядковый номер записи
- установить его в текущую строку
Понятное дело при более менее существенным количестве записей это будет ужас как неэффективно

(можно наверное и без перебора, прямо запросом - но это может не тривиально оказаться)
8 Jokerman
 
09.09.16
14:19
(7) Спасибо, удивляет что все так сложно, уже переделал на таблицу значений
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.