Имя: Пароль:
1C
1С v8
Перебор выделенных строк в табличной части. Проблема с индексом
0 R0mbes
 
09.11.15
21:41
Всем добрый вечер.
Есть задача - перебрать список выделенных строк табличной части.

Реализация :
<code>
Для Каждого Строка Из Элементы.Товары.ВыделенныеСтроки Цикл
   //Строка - содержит индекс выделенной строки

КонецЦикла;
</code>

Перебирая выделенные строки - индексы строк хорошо работают только когда из ТЧ ничего не удалялось, а если удалить строку и добавить, то индекс выделенных строк будет не соответствовать (собьется, и первая строка будет уже второй)

Как от этого уйти ?

(УТ 11.1, документ Заказ Покупателя. (Платформа 8.3.6.2237)
1 R0mbes
 
09.11.15
21:41
Для Каждого Строка Из Элементы.Товары.ВыделенныеСтроки Цикл
  //Строка - содержит индекс выделенной строки
КонецЦикла;
2 DrShad
 
09.11.15
21:54
Уверен что это индекс?
3 R0mbes
 
09.11.15
21:54
(2) возможно и не индекс, а что же тогда ?
4 R0mbes
 
09.11.15
21:55
в справке написано :
Содержит массив идентификаторов выделенных строк.
5 romix
 
09.11.15
22:00

&НаКлиенте
Процедура КомандаПродолжить(Команда)
    ИмяТЧ="Накладные";
    тч=Объект[ИмяТЧ];
    эл=Элементы[ИмяТЧ];
    чИндексОткуда=тч.Индекс(эл.ТекущиеДанные);
    чИндексКуда = чИндексОткуда+1;
    Если чИндексОткуда <> тч.Количество()-1 Тогда
        ЗаполнитьСледующуюСтроку(тч, эл, чИндексОткуда, чИндексКуда, ИмяТЧ);
        эл.ТекущаяСтрока = тч[чИндексКуда].ПолучитьИдентификатор();
    КонецЕсли;
КонецПроцедуры
6 romix
 
09.11.15
22:01
Т.е. надо обратить внимание на методы Индекс и ПолучитьИдентификатор.
7 DrShad
 
09.11.15
22:09
Массив идентификаторов и хотя они числовые, но не тождественны индексам, кури найти по идентификатору
8 R0mbes
 
09.11.15
22:26
(5)
"эл.ТекущиеДанные" - ошибка чтения значения
9 R0mbes
 
09.11.15
22:32
(7) да, помогло.
10 R0mbes
 
09.11.15
22:32
Спасибо вам =)
11 R0mbes
 
09.11.15
22:34
сделал вот так:

Для Каждого Строка Из Элементы.Товары.ВыделенныеСтроки Цикл
    НСтроки = объект.Товары.НайтиПоИдентификатору(Строка).НомерСтроки;    
    МассивСтрок.Добавить(объект.Товары[НСтроки-1]);
КонецЦикла;