Есть динамический список формирующийся из регистра сведений. Нужно обойти все выделенные элементы и проверить является ли текущий пользователь автором записи.

```1c
    &НаКлиенте
    Функция ЯвляетсяАвторомЗаписи()
    ЯвляетсяАвтором = ложь;
    ВыдСтроки = Элементы.КомментарииПоХронологии.ВыделенныеСтроки;
    Для каждого строка из ВыдСтроки цикл
    Элементы.КомментарииПоХронологии.ТекущаяСтрока = строка;//здесь по идее должны получить данные со строки, но получаем данные только первой, на вторую не переходит
    НужныеДанные = Элементы.КомментарииПоХронологии.ТекущиеДанные;
    Если НужныеДанные.Автор = ПользователиКлиентСервер.ТекущийПользователь() тогда
    ЯвляетсяАвтором = Истина;
    Иначе
    Возврат Ложь;
    КонецЕсли;
    КонецЦикла;
    Возврат ЯвляетсяАвтором;
    КонецФункции;
```

Проблема в том, что почему-то все равно остаются данные первой считаной строки
---
Попробуйте так:

```1c
    &НаКлиенте
    Функция ЯвляетсяАвторомЗаписи()
    ЯвляетсяАвтором = ложь;
    ВыдСтроки = Элементы.КомментарииПоХронологии.ВыделенныеСтроки;
    ТекПользователь = ПользователиКлиентСервер.ТекущийПользователь();
    Для каждого строка из ВыдСтроки цикл
    НужныеДанные = Элементы.КомментарииПоХронологии.ДанныеСтроки(строка);
    Если НужныеДанные.Автор = ТекПользователь тогда
    ЯвляетсяАвтором = Истина;
    Иначе
    Возврат Ложь;
    КонецЕсли;
    КонецЦикла;
    Возврат ЯвляетсяАвтором;
    КонецФункции;
```
---
Внимательно проанализируй свой код; (Пример прилагаю)

```1c
    &НаКлиенте
    Процедура вчОтменитьРегистрациюВыполненных(Команда)
    // Вставить содержимое обработчика.
    Элемент = Элементы.СписокСсылок;

    СписокУдаления = Новый Массив;
    Для Каждого Строка Из Элемент.ВыделенныеСтроки Цикл
    Данные = Элемент.ДанныеСтроки(Строка);
    НадоУдалятьРегистрацию = Ложь;
    Если Данные.НомерСообщения <> 0 Тогда
    НадоУдалятьРегистрацию = Истина;
    КонецЕсли;
```
---
Попробуйте так:

```1c
    &НаКлиенте
    Функция ЯвляетсяАвторомЗаписи()
    ЯвляетсяАвтором = ложь;
    ВыдСтроки = Элементы.КомментарииПоХронологии.ВыделенныеСтроки;
    ТекПользователь = ПользователиКлиентСервер.ТекущийПользователь();
    Для каждого строка из ВыдСтроки цикл
    НужныеДанные = Элементы.КомментарииПоХронологии.ДанныеСтроки(строка);
    Если НужныеДанные.Автор = ТекПользователь тогда
    ЯвляетсяАвтором = Истина;
    Иначе
    Возврат Ложь;
    КонецЕсли;
    КонецЦикла;
    Возврат ЯвляетсяАвтором;
    КонецФункции;
```
---
Спасибо, переиграл сам себя, ларчик проще открывался)
---
Внимательно проанализируй свой код; (Пример прилагаю)

```1c
    &НаКлиенте
    Процедура вчОтменитьРегистрациюВыполненных(Команда)
    // Вставить содержимое обработчика.
    Элемент = Элементы.СписокСсылок;

    СписокУдаления = Новый Массив;
    Для Каждого Строка Из Элемент.ВыделенныеСтроки Цикл
    Данные = Элемент.ДанныеСтроки(Строка);
    НадоУдалятьРегистрацию = Ложь;
    Если Данные.НомерСообщения <> 0 Тогда
    НадоУдалятьРегистрацию = Истина;
    КонецЕсли;
```
---
Потому что цикл проходит только один раз. После твоего
```1c
    Элементы.КомментарииПоХронологии.ТекущаяСтрока = строка
```
 все и ломается.
---
Потому что цикл проходит только один раз

В отладчике смотрел - проходит нужное количество раз.

(2) все и ломается

Можете пояснить почему ломается? Таким образом с динамическим списком работаю первый раз, могу не верно понимать принцип работы.
---
Элементы.КомментарииПоХронологии.ТекущаяСтрока = строка

Зачем устанавливать текущую строку в списке? Выделенные строки включают текущую,
вот ёё данные и остаются. Установка текущей используется для позиционирования
на определённую строку списка. Здесь такой задачи нет, нужно перебрать выделенные.
Если делать через ТЗ, то только выделенные можно в неё выгрузить, а потом использовать
метод НайтиСтроки. Но перебор списка будет быстрее работать.
Динамический список выгружает данные на клиент порциями, в нём может быть много записей,
на экране меньше. В отличие от ТЗ, которая вся выгружается целиком. За счёт этого оптимальнее
распределяется память.
---
В таблицу значений переведите список. Ее и обходите потом.
---
А как я узнаю какую строчку выбрал пользователь?