Режим диалога выбора файла

1. aalu14 13.04.23 14:56 Сейчас в теме
Всем привет! Не могу победить проблему, подскажите, пожалуйста. Модуль формы документы, УФ. В ОФ всё работало...
Режим = РежимДиалогаВыбораФайла.Открытие;
	Диалог = Новый ДиалогВыбораФайла(Режим);
	Фильтр = "Файл PDF|*.pdf";
	Диалог.Фильтр = Фильтр; 
	Диалог.ПолноеИмяФайла = "";
	Диалог.Заголовок = "Выберите файл";
	Если Диалог.Выбрать() Тогда
		Попытка
			ПутьКВнешнемуФайлу = Диалог.ПолноеИмяФайла;
			ВывестиСканНаФорму(ПутьКВнешнемуФайлу);	
		Исключение
			Сообщить(ОписаниеОшибки());
		КонецПопытки; 		
	КонецЕсли;  
Показать

Пробовал и на клиенте и на сервере.
Тип не определен (ДиалогВыбораФайла)
ДиалогОткрытияФайла = Новый <<?>>ДиалогВыбораФайла(Режим);
По теме из базы знаний
Найденные решения
8. spacecraft 13.04.23 16:22 Сейчас в теме
(6) это не полный код. Где он вызывается? Где полный текст ошибки? Предположительно код вызывается на сервере. На сервере ДиалогВыбораФайла не поддерживается.

ps. и да, если перед процедурой/функцией не прописана директива препроцессора (типо: &НаКлиенте), то в модуле формы это равнозначно директиве &НаСервере. Возможно вызываете метод без директивы и ожидаете выполнения ДиалогВыбораФайла в контексте сервера, что не допустимо.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. spacecraft 13.04.23 15:40 Сейчас в теме
(1)
Диалог = Новый ДиалогВыбораФайла(Режим);

(1)
Тип не определен (ДиалогВыбораФайла)
ДиалогОткрытияФайла = Новый >ДиалогВыбораФайла(Режим);

Ничего не говорит?
4. aalu14 13.04.23 15:42 Сейчас в теме
(3) Это я скопировал код из СП и получил ту же ошибку, но там переменная ДиалогОткрытияФайла, а не как у меня была Диалог
5. spacecraft 13.04.23 15:45 Сейчас в теме
(4) т.е. намеренно запутываете?
Приводите полный текст кода и полный текст ошибки.
6. aalu14 13.04.23 15:59 Сейчас в теме
(5) Не намеренно, конечно!!! Просто не увидел, что там другая переменная, но ошибка та же.
"В управляемом приложении сначала необходимо создать реквизит формы. Затем для этого реквизита на форму надо добавить элемент "Поле" и установить для свойства "КнопкаВыбора" значение "Да"."

Через реквизит формы работает тот же самый код из вопрос. Но что делать , если я хочу эту процедуру вызывать из других процедур? Выскакивает такая же ошибка.
Полный код вот, здесь нет каких-то других вызовов, но даже такой не работает, если это не обработка выбора..
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Фильтр = НСтр("ru = 'Текст'; en = 'Text'")
    + "(*.txt)|*.txt";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
Если ДиалогОткрытияФайла.Выбрать() Тогда
Сообщить("Да"); 
КонецЕсли;
Показать
8. spacecraft 13.04.23 16:22 Сейчас в теме
(6) это не полный код. Где он вызывается? Где полный текст ошибки? Предположительно код вызывается на сервере. На сервере ДиалогВыбораФайла не поддерживается.

ps. и да, если перед процедурой/функцией не прописана директива препроцессора (типо: &НаКлиенте), то в модуле формы это равнозначно директиве &НаСервере. Возможно вызываете метод без директивы и ожидаете выполнения ДиалогВыбораФайла в контексте сервера, что не допустимо.
7. MustDieff 13.04.23 16:16 Сейчас в теме
(1)

&НаКлиенте
Процедура ВыполнитьДействие(Команда)  
	
	Сообщить("Начало");
	
	ОткрытьДиалогВыбораФайла();
	
	Сообщить("Конец");
	
КонецПроцедуры 

&НаКлиенте
Процедура ОткрытьДиалогВыбораФайла()

	Режим = РежимДиалогаВыбораФайла.Открытие;
	ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
	ДиалогОткрытияФайла.ПолноеИмяФайла = "";
	Фильтр = НСтр("ru = 'Текст'; en = 'Text'")
	    + "(*.txt)|*.txt";
	ДиалогОткрытияФайла.Фильтр = Фильтр;
	ДиалогОткрытияФайла.Заголовок = "Выберите файлы";
	Если ДиалогОткрытияФайла.Выбрать() Тогда
		Сообщить("Файл выбран"); 
	КонецЕсли;

КонецПроцедуры
Показать
10. user1826630 13.04.23 16:43 Сейчас в теме
(7) Это из какого года код? Про асинхронность и отказ от модальности не в курсе?
12. MustDieff 13.04.23 16:59 Сейчас в теме
(10)
Это код из этой же темы. Если у тебя есть желание тратить больше двух минут на этот пример - валяй.
14. user1826630 13.04.23 17:02 Сейчас в теме
(12) Я не спрашивал "из какой темы". Я спрашивал "из какого года".
2. aalu14 13.04.23 15:39 Сейчас в теме
В УФ видимо нельзя просто на кнопку повесить диалог выбора файла, необходимо обязательно на поле с выбором значения...
9. nomad_irk 76 13.04.23 16:43 Сейчас в теме
11. user1826630 13.04.23 16:44 Сейчас в теме
13. user1826630 13.04.23 17:00 Сейчас в теме
(2) Где здесь кнопка? Или поле ввода?
&НаКлиенте
Процедура ПриОткрытии(Отказ)
	
	Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
	Диалог.Показать(Новый ОписаниеОповещения("ПриВыбореФайла", ЭтотОбъект));
	
КонецПроцедуры                       

&НаКлиенте
Процедура ПриВыбореФайла(ВыбранныеФайлы, ДопПараметры) Экспорт
	
	Если ВыбранныеФайлы <> Неопределено Тогда
		Для Каждого ВыбранныйФайл Из ВыбранныеФайлы Цикл
			Сообщить(ВыбранныйФайл);
		КонецЦикла;
	КонецЕсли;
	
КонецПроцедуры
Показать
Оставьте свое сообщение

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