Добрый день! Подскажите пожалуйста, что я делаю не так

В данном коде я хочу, чтобы создавалась новая строка в ТЧ (пустая)
Далее программа переходила бы сразу к ней (этой пустой строке) и там происходит всё остальное.
В итоге новая затирает текущую и переход к новой таки и не происходит.

```1c
    &НаКлиенте
    Процедура Документы_ЗагрузитьФайл(Команда)

    НоваяСтрока = Объект.Документы.Добавить();
    Для Каждого Стр из Объект.Документы Цикл
    Если Стр.ИмяФайла = " Тогда
    Элементы.Документы.ТекущаяСтрока = НоваяСтрока;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

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

    КонецЕсли;
    КонецЦикла;
```

Также на всякий случай процедура, которая в этой же форме, куда заходит вышеидущий код.

```1c
    &НаКлиенте
    Процедура ВыполнитьЗагрузку(Результат, Адрес, ПомещаемыйФайл, СтрокаДанных) Экспорт

    Если НЕ Результат Тогда
    Возврат;

    КонецЕсли;
    Файл = Новый Файл(ПомещаемыйФайл);
    СтрокаДанных.ИмяФайла = Файл.Имя;
    СтрокаДанных.ИмяФайлаВХранилище = Служебный.ЗагрузитьФайлНаСервере(Адрес, Файл.Расширение);
    Если СтрокаДанных.ИмяФайлаВХранилище <> " Тогда
    СтрокаДанных.ЕстьДокумент = Истина;
    КонецЕсли;
    КонецПроцедуры
```
---
А я бы так ))

```1c
    &НаКлиенте
    Процедура Документы_ЗагрузитьФайл(Команда)

    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

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

    КонецПроцедуры

    &НаКлиенте
    Процедура ВыполнитьЗагрузку(Результат, Адрес, ПомещаемыйФайл) Экспорт

    Если НЕ Результат Тогда
    Возврат;

    КонецЕсли;

    СтрокаДанных= Объект.Документы.Добавить();

    Файл = Новый Файл(ПомещаемыйФайл);
    СтрокаДанных.ИмяФайла = Файл.Имя;
    СтрокаДанных.ИмяФайлаВХранилище = Служебный.ЗагрузитьФайлНаСервере(Адрес, Файл.Расширение);
    Если СтрокаДанных.ИмяФайлаВХранилище <> " Тогда
    СтрокаДанных.ЕстьДокумент = Истина;
    КонецЕсли;
    КонецПроцедуры
```
---
у вас тут ошибка

```1c
    НоваяСтрока = Объект.Документы.Добавить();
    Для Каждого Стр из Объект.Документы Цикл
    Если Стр.ИмяФайла = " Тогда
    Элементы.Документы.ТекущаяСтрока = НоваяСтрока;
```

в цикле присваивается одна и та же строка. это первое.
второе. в цикле вызывать диалог выбора файла? серьезно?.. тут цикл вообще уместен? код ужасный
---
Здравствуйте.

я бы сделал так:

```1c
    &НаКлиенте
    Процедура Документы_ЗагрузитьФайл(Команда)

    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

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

    НоваяСтрока = Объект.Документы.Добавить();

    НоваяСтрока.ВашФайл = то что вы хотите туда записать...

    КонецПроцедуры
```
---
я смотрю, что месье знает толк в извращениях
---
Когда пытаешься сделать хранилище в томах по гайду от экспертов)))
---
А я бы так ))

```1c
    &НаКлиенте
    Процедура Документы_ЗагрузитьФайл(Команда)

    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогОткрытияФайла.МножественныйВыбор = Ложь;

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

    КонецПроцедуры

    &НаКлиенте
    Процедура ВыполнитьЗагрузку(Результат, Адрес, ПомещаемыйФайл) Экспорт

    Если НЕ Результат Тогда
    Возврат;

    КонецЕсли;

    СтрокаДанных= Объект.Документы.Добавить();

    Файл = Новый Файл(ПомещаемыйФайл);
    СтрокаДанных.ИмяФайла = Файл.Имя;
    СтрокаДанных.ИмяФайлаВХранилище = Служебный.ЗагрузитьФайлНаСервере(Адрес, Файл.Расширение);
    Если СтрокаДанных.ИмяФайлаВХранилище <> " Тогда
    СтрокаДанных.ЕстьДокумент = Истина;
    КонецЕсли;
    КонецПроцедуры
```
---
Большое спасибо!!! Лучшее решение)
---
Ну и я вставлю пять копеек. Сейчас бы через попытку устанавливать заголовок... не говоря, реально, о вызове диалогового окна в цикле...
---
Не пойму, зачем перебирать Объект.Документы, если, создавая новую строку, вы и так находитесь на ней? У вас есть НоваяСтрока. Вот в ней и манипулируем.