Имя: Пароль:
1C
1С v8
ВыделенныеСтроки расчет значение индекса после каждого использования
0 Jenstel
 
05.12.18
11:27
&НаСервере
Процедура ПолучитьРезультатыНаСервере()
    ТЧ = Объект.Запросы;    
    ВыделенныеСтроки = Элементы.СписокЗапросов.ВыделенныеСтроки;
    Для Каждого ТекСтрока Из ВыделенныеСтроки Цикл
        ПолучениеРезультата(ТЧ[ТекСтрока]);
    КонецЦикла;
    ОбновитьСписокЗаявок();    
КонецПроцедуры

Доброго времени суток. Использую такой код для перебора выделенных в таблице строк и выполнения по ним запроса, но с каждым повторным выполнением этой процедуры значение ТекСтрока увеличивается на количество строк в таблице. Что не так?
1 dezss
 
05.12.18
11:32
Такое может быть, если ТЧ перезаполняется.
2 hhhh
 
05.12.18
11:35
(0) ТекСтрока - это не индекс теперь. Это раньше был индекс, в обычных формах.
3 dezss
 
05.12.18
11:40
(2) ТаблицаФормы (FormTable)
ВыделенныеСтроки (SelectedRows)
Использование:

Только чтение.
Описание:

Тип: Массив.
Содержит массив идентификаторов выделенных строк.

А идентификатор - это ж и есть индекс, если не ошибаюсь...
4 Cyberhawk
 
05.12.18
11:42
(3) Ошибаешься
5 Jenstel
 
05.12.18
11:42
(1) А как сделать правильно?
6 dezss
 
05.12.18
11:43
(4) а что это тогда?
7 Jenstel
 
05.12.18
11:43
Список перезаполняетя, и я так понимаю значение индекса увеличивается с каждым перезаполнением. Как правильно тогда обращаться в выделенным строкам? Можно кусок кода?
8 Cyberhawk
 
05.12.18
11:45
(6) Идентификатор - то, что позволяет однозначно идентифицировать
9 dezss
 
05.12.18
11:45
(7) А что тебя не устраивает в (0)?
Может тебе не надо каждый раз перезаполнять, а только добавлять/изменять/сортировать?
10 dezss
 
05.12.18
11:45
(8) хм...ну так индекс, не?)))
11 Cyberhawk
 
05.12.18
11:45
Вероятно, обычный инкремент. С индексом не соотносится, т.к. индекс всегда с нуля, а идентификатор - нет.
12 Cyberhawk
 
05.12.18
11:46
(10) При первом открытии вероятно совпадает с индексом. При сношениях с таблицей формы начинает расходиться.
13 Jenstel
 
05.12.18
11:46
(8) А можно кусок кода как по идентификатору перебирать выделенные строки?
14 dezss
 
05.12.18
11:48
(13) Ты их и так по нему перебираешь перебираешь)

(11) (12) Э, у нас, видимо, проблема с использованием разной терминологии.
С чего уверенность, что индекс всегда с 0 начинается?
15 dezss
 
05.12.18
11:49
(11) Из вики:
И́ндекс (лат. index — список, реестр, указатель, а также указательный палец) — число, буквы или другая комбинация символов, указывающая место элемента в совокупности или характеризующая состояние некоторой системы, например показатель активности, производительности, развития, изменения чего-либо.


Идентифика́тор, ID (англ. data name, identifier — опознаватель) — уникальный признак объекта, позволяющий отличать его от других объектов, т.е. идентифицировать.
16 Cyberhawk
 
05.12.18
11:49
(13) Смотри в разделе "См. также" в СП для "ТекущаяСтрока"
17 Cyberhawk
 
05.12.18
11:50
(15) Ты повторил в (8), все усложнив
18 Jenstel
 
05.12.18
11:50
Для Каждого ТекСтрока Из ВыделенныеСтроки Цикл
  ПолучениеРезультата(ТЧ.НайтиПоИдентификатору(ТекСтрока));
КонецЦикла;

Вот так работает
19 dezss
 
05.12.18
11:50
(17) ага...только идентификатор и индекс, в данном контексте - это одно и то же)
20 Cyberhawk
 
05.12.18
11:51
(14) "С чего уверенность, что индекс всегда с 0 начинается?" // С того, что индекс определяет положение, нумерация с нуля
21 Cyberhawk
 
05.12.18
11:51
(19) Могу только отправить в (4)
22 dezss
 
05.12.18
11:52
(20) Слишком узко мыслишь)
23 Cyberhawk
 
05.12.18
11:53
(22) В 1С только так