|  | Перебор выделенных строк в табличной части. Проблема с индексом | ☑ | 
    
        | 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]);
 КонецЦикла;
 |  |