Как вызвать диалог выбора файла или папки в 1С

Для вызова стандартного диалога выбора файла или папки Windows в 1С существует специальный объект ДиалогВыбораФайла. У него существует три режима работы:

  • выбор каталога;
  • открытие файла;
  • сохранение файла.

Рассмотрим эти режимы.

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

Диалог выбора каталога в 1С

Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
Если Диалог.Выбрать() Тогда
ИмяКаталога = Диалог.Каталог;
//Полный путь к каталогу помещен в переменную ИмяКаталога
КонецЕсли;

Следует помнить, что путь к каталогу записывается без последнего слэша. Например, так: c:\Папка1\Папка2

Диалог открытия файла в 1С

В режиме открытия появляются дополнительные параметры работы диалога:

  1. Фильтр состоит из двух частей, разделенных символом «|»: строки представления, которая отображается в окне выбора файла, и строки маски. В маске могу использоваться стандартные символы: ? — любой символ, * — любые символы. Можно последовательно перечислить несколько фильтров, разделенных символом «|». Например:
    Фильтр = "Текстовый документ, *.txt|*.txt";
    Фильтр ="Текстовый документ(*.txt)|*.txt|Табличный документ(*.mxl)|*.mxl"
  2. МножественныйВыбор имеет тип булево и позволяет выбирать несколько файлов или наоборот ограничить выбор одним файлом. Если множественный выбор включен, то диалогом возвращается массив имен файлов.

Итак, код вызова диалога открытия одного файла будет выглядеть так:

Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Фильтр = "Текстовый документ, *.txt|*.txt";
Диалог.МножественныйВыбор=Ложь;
Если Диалог.Выбрать() Тогда
ИмяФайла = Диалог.ПолноеИмяФайла;
//Полный путь к файлу помещен в переменную ИмяФайла
КонецЕсли;

Код вызова диалога открытия нескольких файлов будет выглядеть так:

Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Фильтр = "Текстовый документ, *.txt|*.txt";
Диалог.МножественныйВыбор=Истина;
Если Диалог.Выбрать() Тогда
МассивВыбранныхФайлов = ДиалогОткрытия.ВыбранныеФайлы;
//все файлы помещены в массив, осталось его обойти в цикле
Для Каждого Файл Из МассивВыбранныхФайлов Цикл
Сообщить (Файл); //Выводим полное имя файла на экран
КонецЦикла;
КонецЕсли;

Смотрите также: Загрузка файла в хранилище значения на управляемых формах

Диалог сохранения файла в 1С

Диалог сохранения отличается от диалога открытия тем, что если выбранный файл существует, при сохранении будет задан вопрос, хочет ли пользователь его перезаписать. Также при сохранении не работает возможность множественного выбора файлов. В остальном все работает точно так же:

Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Фильтр = "Текстовый документ, *.txt|*.txt";
Если Диалог.Выбрать() Тогда
ИмяФайла = Диалог.ПолноеИмяФайла;
//Полный путь к файлу помещен в переменную ИмяФайла
КонецЕсли;

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

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