Имя: Пароль:
1C
1С v8
УФ указание ТекущаяСтрока после обновления ТЧ обработки
0 EarthsSoul
 
03.07.14
12:04
Добрый день

У меня в обработке имеется табличная  часть, которая отображена на форме.
Пользователь нажимает кнопку, и часть данных меняется, и содержимое табличной части обновляется. В момент нажатия у пользователя выделена некоторая строчка в табличной части. После обновления информации в табличной части, возможно, эта строчка останется, в таком случае мне нужно снова выделить данную строчку (строчка конечно другая, то данные идентичные и уникальные).
Понимаю, что нужно написать, что то вроде
Элементы.ДокументыКПодписанию.ТекущаяСтрока = Индентификатор ВНужнойСтроке;
Вот вопрос как определить идентификатор нужной строке ?
1 EarthsSoul
 
03.07.14
12:05
*Вот вопрос как определить идентификатор в нужной строке ?
2 EarthsSoul
 
03.07.14
12:15
up
3 SUA
 
03.07.14
12:27
- ищешь строчку по данным идентичным и уникальным
- берешь ее идентификатор
- ?????????
- PROFIT!
4 YF
 
03.07.14
12:28
(0) Дополнительная колонка в источноке строк, в которую будешь писать некое уникальное значение спасет отца русской демократии
5 EarthsSoul
 
03.07.14
12:41
(3) При обновлении ТЧ на сервере. В табличную часть подргужаются данные из запроса, соответственно идентификатор у всех строк новый.
У текущих данных он определяется как

Элементы.ДокументыКПодписанию.ТекущиеДанные.ПолучитьИдентификатор()

Перебрать в цикле значения набора Элементы.ДокументыКПодписанию не возможно.

Придумал такой вариант
        
СтруктураОтбора = Новый ФиксированнаяСтруктура("ПрисоединенныеФайл",ПрисоединенныеФайлНаПодпись);
        
        Элементы.ДокументыКПодписанию.ОтборСтрок=СтруктураОтбора;
        
ИдентификаторСтроки = Элементы.ДокументыКПодписанию.ТекущиеДанные.ПолучитьИдентификатор();
        
        Элементы.ДокументыКПодписанию.ОтборСтрок=Неопределено;

Элементы.ДокументыКПодписанию.ТекущаяСтрока=ИдентификаторСтроки;


Выделяет нужную строку, но сбивает расположение полос прокрутки, есть достигается через визуально манипулирование формой, что не правильно ...
6 EarthsSoul
 
03.07.14
12:56
(4) может быть конкретнее сформулируете
7 YF
 
03.07.14
13:04
(6) Куда уж конкретнее? В табличную чать еще реквизит, в него писать при заполнении строки некие уникальные значения, запоминать это значение при смене текущей строки. Потом искать и позиционироваться
8 EarthsSoul
 
03.07.14
13:39
(7) код это конкретно.
Слова искать и позиционироваться абстрактные понятие по отношению к языку 1с.

Можно сформулировать хотя бы примерный код.
Как будите искать ?
Что и чему присваивать при позиционировании?

У меня уникальные данные и так уже есть.
9 Fedor-1971
 
03.07.14
13:41
(8) перебор строк ТЧ в цикле тебе поможет.
10 EarthsSoul
 
03.07.14
13:44
(8) и что мне это даст ?
Да я узнаю номер строки, но не узнаю идентификатор строки. А мне нужен идентификатор.
11 Timon1405
 
03.07.14
13:56
&НаСервере
Процедура Сортировать()
    
    СтрокаКоллекции = Объект.Товары.НайтиПоИдентификатору(Элементы.Товары.ТекущаяСтрока);
    ИндексСтрокиКоллекции = Объект.Товары.Индекс(СтрокаКоллекции);
    
    ТЗ = Объект.Товары.Выгрузить();
    СтрокаВыгруженнойТаблицы = ТЗ.Получить(ИндексСтрокиКоллекции);
    
    ТЗ.Сортировать("Цена"); //<--или обработать как хочешь
    
    ИндексСтрокиПослеСортировки = ТЗ.Индекс(СтрокаВыгруженнойТаблицы);
    
    Объект.Товары.Загрузить(ТЗ);
    
    СтрокаКоллекции = Объект.Товары.Получить(ИндексСтрокиПослеСортировки);
    Элементы.Товары.ТекущаяСтрока = СтрокаКоллекции.ПолучитьИдентификатор();
                                    
КонецПроцедуры
12 EarthsSoul
 
03.07.14
14:19
(11) спасибо, завтра попробую
13 Fedor-1971
 
03.07.14
14:21
(10) ПолучитьИдентификатор() на найденной строке?
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.