Код не переходит к текущей строке

1. 1Eset 3 08.09.21 22:51 Сейчас в теме
Добрый день! Подскажите пожалуйста, что я делаю не так

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

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



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

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

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

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

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

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

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

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

КонецЕсли;    

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

Файл = Новый Файл(ПомещаемыйФайл);
СтрокаДанных.ИмяФайла = Файл.Имя;
СтрокаДанных.ИмяФайлаВХранилище = Служебный.ЗагрузитьФайлНаСервере(Адрес, Файл.Расширение);
Если СтрокаДанных.ИмяФайлаВХранилище <> "" Тогда
СтрокаДанных.ЕстьДокумент = Истина;
КонецЕсли;
КонецПроцедуры
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. DJ_Codebase 08.09.21 23:04 Сейчас в теме
(1) у вас тут ошибка
НоваяСтрока = Объект.Документы.Добавить();
    Для Каждого Стр из Объект.Документы Цикл
        Если Стр.ИмяФайла = "" Тогда
            Элементы.Документы.ТекущаяСтрока = НоваяСтрока;

в цикле присваивается одна и та же строка. это первое.
второе. в цикле вызывать диалог выбора файла? серьезно?.. тут цикл вообще уместен? код ужасный
3. slavyan_arena 09.09.21 05:39 Сейчас в теме
(1)
Здравствуйте.

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

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

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

КонецПроцедуры
Показать
5. PhoenixAOD 62 09.09.21 08:57 Сейчас в теме
(1)я смотрю, что месье знает толк в извращениях
1Eset; retr0; +2 Ответить
9. 1Eset 3 09.09.21 11:32 Сейчас в теме
Когда пытаешься сделать хранилище в томах по гайду от экспертов)))
6. user5300 1051 09.09.21 09:26 Сейчас в теме
(1) А я бы так ))

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

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

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

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

КонецЕсли;    

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

Файл = Новый Файл(ПомещаемыйФайл);
СтрокаДанных.ИмяФайла = Файл.Имя;
СтрокаДанных.ИмяФайлаВХранилище = Служебный.ЗагрузитьФайлНаСервере(Адрес, Файл.Расширение);
Если СтрокаДанных.ИмяФайлаВХранилище <> "" Тогда
СтрокаДанных.ЕстьДокумент = Истина;
КонецЕсли;
КонецПроцедуры
Показать
8. 1Eset 3 09.09.21 11:31 Сейчас в теме
Большое спасибо!!! Лучшее решение)
4. retr0 09.09.21 07:08 Сейчас в теме
Ну и я вставлю пять копеек. Сейчас бы через попытку устанавливать заголовок... не говоря, реально, о вызове диалогового окна в цикле...
7. Vlan 36 09.09.21 10:27 Сейчас в теме
Не пойму, зачем перебирать Объект.Документы, если, создавая новую строку, вы и так находитесь на ней? У вас есть НоваяСтрока. Вот в ней и манипулируем.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот