Открывает окно диалога выбора файла.
Синтаксис
Выбрать()Примеры платформы
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл с фотографией";
Диалог.ПолноеИмяФайла = "";
Диалог.ПредварительныйПросмотр = Истина;
Диалог.Фильтр =
"Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
+ "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
+ "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
+ "Формат TIFF (*.tif)|*.tif|"
+ "Формат GIF (*.gif)|*.gif|"
+ "Формат PNG (*.png)|*.png|"
+ "Формат icon (*.ico)|*.ico|"
+ "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|";
Если Диалог.Выбрать() Тогда
ВыбранноеФото = Новый Картинка(Диалог.ПолноеИмяФайла,Ложь);
ЭлементыФормы.ПолеИзображения.Картинка = ВыбранноеФото;
Иначе
Отказ = Истина;
Возврат;
КонецЕсли;Полное описание, параметры и ограничения
ДиалогВыбораФайла.Выбрать (FileDialog.Choose)
ДиалогВыбораФайла (FileDialog)
Выбрать (Choose)
Доступен, начиная с версии 8.0.
Синтаксис:
Выбрать()
Возвращаемое значение:
Тип: Булево.
Истина - выбор/сохранение завершено успешно; Ложь - в противном случае.
Описание:
Открывает окно диалога выбора файла.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
Примечание:
Для использования метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
Пример:
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Выберите файл с фотографией";
Диалог.ПолноеИмяФайла = "";
Диалог.ПредварительныйПросмотр = Истина;
Диалог.Фильтр =
"Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|"
+ "Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|"
+ "Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|"
+ "Формат TIFF (*.tif)|*.tif|"
+ "Формат GIF (*.gif)|*.gif|"
+ "Формат PNG (*.png)|*.png|"
+ "Формат icon (*.ico)|*.ico|"
+ "Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|"; // картинки
Если Диалог.Выбрать() Тогда
ВыбранноеФото = Новый Картинка(Диалог.ПолноеИмяФайла,Ложь);
ЭлементыФормы.ПолеИзображения.Картинка = ВыбранноеФото;
Иначе
Отказ = Истина;
Возврат;
КонецЕсли;
См. также:
ДиалогВыбораФайла, метод ВыбратьАсинх
Использование в версии:
Доступен, начиная с версии 8.0.
Описание изменено в версии 8.3.18.
Методическая информация
Практические примеры
Выбрать и прочитать один собственный текст с обработкой отмены
ПолноеИмяФайла задаёт исходное имя, а после успешного одиночного выбора содержит результат. Фильтр помогает человеку, но допуск к чтению проверяет отдельная процедура собственного урока.
Где и как запускать
Полный модуль своей управляемой формы внешней обработки. Настольный тонкий клиент Windows 8.5.1.1343; файловая система именно клиента. Запуск и отображение в 1С не проверены.
Подготовка
Работайте в отдельной учебной базе 8.5.1.1343. Создайте внешнюю обработку УчебныйВыборФайла85 с новой управляемой формой; рабочие документы, настройки и формы не нужны.
Сами создайте на компьютере клиента собственный каталог C:\1CLab\FileDialog85. Не используйте существующий чужой каталог, сетевой диск, символическую ссылку или папку с рабочими файлами.
В этом каталоге самостоятельно создайте book.txt с единственной строкой Книга: 3 и pen.txt со строкой Ручка: 1. Сохраните как UTF-8. Это собственные маленькие учебные тексты, не выгрузка клиентских данных.
Для каждого урока используйте отдельную копию формы. Вставьте полный код на уровне модуля. Создайте указанную команду, назначьте её Действие точно указанной процедуре и перетащите команду на форму как кнопку.
Примеры не выполнялись. При будущем ручном запуске первый и второй уроки могут только прочитать два подготовленных текста; третий только проверяет каталог, четвёртый только выбирает имя. Код не записывает и не удаляет файлы, не вызывает сервер, сеть или печать.
Windows-клиент указан намеренно: правила масок, доступность методов и поведение свойств различаются на веб-клиенте, Linux, macOS и мобильных платформах. Этот модуль не переносится туда без проверки.
Команда формы: ВыбратьОдинУчебныйТекст → ВыбратьОдинУчебныйТекст. Другие обработчики вручную не создавайте.
Только для этого исторического синхронного варианта разрешите модальные вызовы в своей учебной конфигурации. Для обычного нового кода предпочтительны ВыбратьАсинх или Показать.
&НаКлиенте
Процедура ВыбратьОдинУчебныйТекст(Команда)
Каталог = Новый Файл("C:\1CLab\FileDialog85");
Если Не Каталог.Существует() Тогда
Сообщить("Сначала создайте свой учебный каталог и два текста по инструкции");
Возврат;
КонецЕсли;
Если Не Каталог.ЭтоКаталог() Тогда
Сообщить("Учебный путь должен быть собственным каталогом");
Возврат;
КонецЕсли;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "Открыть только собственный учебный текст";
Диалог.Каталог = "C:\1CLab\FileDialog85";
Диалог.ПолноеИмяФайла = "C:\1CLab\FileDialog85\book.txt";
Диалог.МножественныйВыбор = Ложь;
Диалог.Фильтр = "Учебные тексты (*.txt)|*.txt|Все файлы (*.*)|*.*";
Диалог.ПредварительныйПросмотр = Ложь;
Диалог.ПроверятьСуществованиеФайла = Истина;
Если Не Диалог.Выбрать() Тогда
Сообщить("Выбор отменён; ничего не читаем");
Возврат;
КонецЕсли;
Если Диалог.ВыбранныеФайлы.Количество() <> 1 Тогда
Сообщить("Ожидался ровно один выбранный файл");
Возврат;
КонецЕсли;
Сообщить(Диалог.Режим = РежимДиалогаВыбораФайла.Открытие);
Сообщить("Фактический индекс выбранного фильтра: " + Строка(Диалог.ИндексФильтра));
ПрочитатьСвойТекст(Диалог.ПолноеИмяФайла);
КонецПроцедуры
&НаКлиенте
Процедура ПрочитатьСвойТекст(ИмяФайла)
Если ИмяФайла = "C:\1CLab\FileDialog85\book.txt" Тогда
ОжидаемыйТекст = "Книга: 3";
ИначеЕсли ИмяФайла = "C:\1CLab\FileDialog85\pen.txt" Тогда
ОжидаемыйТекст = "Ручка: 1";
Иначе
Сообщить("Этот урок не читает файлы вне двух собственных учебных текстов");
Возврат;
КонецЕсли;
ФайлНаДиске = Новый Файл(ИмяФайла);
Если Не ФайлНаДиске.Существует() Тогда
Сообщить("Выбранный учебный файл уже отсутствует; восстановите свой образец");
Возврат;
КонецЕсли;
Если ФайлНаДиске.ЭтоКаталог() Тогда
Сообщить("Ожидался свой текстовый файл, а не каталог");
Возврат;
КонецЕсли;
Текст = Новый ТекстовыйДокумент;
Попытка
Текст.Прочитать(ИмяФайла, "UTF-8");
Исключение
Сообщить("Не удалось прочитать собственный образец; проверьте его наличие и права клиента");
Возврат;
КонецПопытки;
СтрокаОбразца = СтрЗаменить(СтрЗаменить(Текст.ПолучитьТекст(), Символы.ВК, ""), Символы.ПС, "");
Сообщить(СтрокаОбразца);
Сообщить(СтрокаОбразца = ОжидаемыйТекст);
КонецПроцедуры
Разбор по шагам
Сначала проверяется существование именно своего каталога. ЭтоКаталог вызывается только после Существует: по справке он требует реально существующий объект.
Режим передаётся конструктору и затем только читается. Режим — readonly; присваивания Диалог.Режим нет.
Выбрать возвращает Булево. При Ложь процедура выходит до чтения результата и файла. Синхронный метод показан для понимания старых модулей.
ВыбранныеФайлы — readonly-массив выбранных полных имён. При одиночном выборе ожидаем один элемент, после чего используем ПолноеИмяФайла.
ИндексФильтра читается после ручного выбора. Урок не угадывает начальную базу индексов и не использует его как разрешение читать файл.
ПрочитатьСвойТекст принимает только два точных подготовленных имени. Маска *.txt сама по себе не защищает от чужого текста. Существование перепроверяется, а ошибка чтения обработана отдельно.
Образец читается в UTF-8. Удаление переводов строки нужно только для сравнения однострочного образца; это не универсальный парсер документов.
Как проверить результат
book.txt → Истина режима, фактический индекс фильтра, Книга: 3 и Истина сравнения. pen.txt → Ручка: 1 и Истина.
Нажмите Отмена: только сообщение отмены. Выберите другой файл: сообщение запрета до Прочитать.
Измените текст своего book.txt: сравнение честно станет Ложь; это не считается успешным контрольным образцом.
Ожидаемый результат
Реальное выбранное имя передано в ограниченное чтение собственных данных, а отмена не обрабатывается как файл.
На что обратить внимание
Нужен отдельный учебный режим использования модальности Использовать; при запрете модальных вызовов применяйте следующий асинхронный урок, а не меняйте рабочую конфигурацию.
ПолноеИмяФайла не является результатом множественного выбора или выбора каталога.
Имя и фильтр не доказывают происхождение или безопасность содержимого. Подготовка исключает чужие файлы и ссылки, но код не объявляется файловой песочницей.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.