Диалог выбора файла

Печать (Ctrl+P)

По материалам БСП

В расширении конфигурации или внешних обработках часто возникает необходимость выбора файла для открытия файла для чтения или записи.

Если разработка предназначена для конфигурации, написанной на базе библиотеки стандартных подсистем я рекомендую вызывать на клиенте процедуру ПоказатьДиалогВыбора из общего модуля ФайловаяСистемаКлиент. Данная процедура показывает диалог выбора файла, а при работе в веб-клиенте пользователю будет показан диалог установки расширения для работы с файлами, если требуется.

Посмотрим пример из обработки БСП Демо: Загрузка номенклатуры из прайс-листа, где на форме требуется выбрать файл ( см рис 1).

Рис 1 Форма обработки Демо: Загрузка номенклатуры из прайс-листа

При нажатии кнопки выбора вызывается следующая процедура:

&НаКлиенте
Процедура АдресФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Укажите путь к файлу прайс-листа'");
ДиалогОткрытияФайла.Фильтр = НСтр("ru = 'Файл Microsoft Office Excel (*.xls)|*.xls|Архив (*.zip)|*.zip'");
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
	
Контекст = Новый Структура("ДиалогОткрытияФайла", ДиалогОткрытияФайла);
	
Оповещение = Новый ОписаниеОповещения("ВыборФайлаЗавершение", ЭтотОбъект, Контекст);
ФайловаяСистемаКлиент.ПоказатьДиалогВыбора(Оповещение, ДиалогОткрытияФайла);
	
КонецПроцедуры


&НаКлиенте
Процедура ВыборФайлаЗавершение(ВыбранныеФайлы, Контекст) Экспорт

ДиалогОткрытияФайла = Контекст.ДиалогОткрытияФайла;
	
Если (ВыбранныеФайлы <> Неопределено) Тогда
АдресФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
КонецЕсли;
	
КонецПроцедуры

В этом примере используется диалог выбора файла для открытия. Если нужно выбрать файл целью сохранения, то тогда нужно использовать другой режим диалога выбора (см рис 2)

Рис 2. Значения сисетмного перечисления РежимДиалогаВыбора
Previous Article
Next Article

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.