Тип: РежимДиалогаВыбораФайла. Содержит режим диалога для выбора файла. Для записи следует использовать метод ПолучитьФайл с установленным параметром <Интерактивно>.
Полное описание, параметры и ограничения
ДиалогВыбораФайла.Режим (FileDialog.Mode)
ДиалогВыбораФайла (FileDialog)
Режим (Mode)
Доступен, начиная с версии 8.0.
Использование:
Только чтение.
Описание:
Тип: РежимДиалогаВыбораФайла.
Содержит режим диалога для выбора файла.
Для записи следует использовать метод ПолучитьФайл с установленным параметром <Интерактивно>.
Доступность:
Тонкий клиент, веб-клиент, толстый клиент.
Примечание:
В веб-клиенте, если расширение работы с файлами не установлено, то доступен только режим Открытие.
Использование в версии:
Доступен, начиная с версии 8.0.
Методическая информация
Практические примеры
Получить выбранный каталог через оповещение
В режиме ВыборКаталога результат берём из Каталог. Свойство ВыбранныеФайлы содержит пустой массив; его нулевой элемент нельзя читать как путь каталога.
Где и как запускать
Полный модуль своей управляемой формы внешней обработки. Настольный тонкий клиент 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";
Диалог.Показать(Новый ОписаниеОповещения("УчебныйКаталогВыбран", ЭтаФорма, Диалог));
КонецПроцедуры
&НаКлиенте
Процедура УчебныйКаталогВыбран(ВыбранныеФайлы, Диалог) Экспорт
Если ВыбранныеФайлы = Неопределено Тогда
Сообщить("Выбор каталога отменён");
Возврат;
КонецЕсли;
ИмяКаталога = Диалог.Каталог;
Если ИмяКаталога <> "C:\1CLab\FileDialog85"
И ИмяКаталога <> "C:\1CLab\FileDialog85\" Тогда
Сообщить("Выбран другой каталог; его содержимое не исследуем");
Возврат;
КонецЕсли;
Каталог = Новый Файл(ИмяКаталога);
Если Не Каталог.Существует() Тогда
Сообщить("Свой каталог уже отсутствует");
Возврат;
КонецЕсли;
Сообщить(Каталог.ЭтоКаталог());
Сообщить(Диалог.Режим = РежимДиалогаВыбораФайла.ВыборКаталога);
Сообщить(Диалог.ВыбранныеФайлы.Количество() = 0);
КонецПроцедуры
Разбор по шагам
Показать начинает отображение и не возвращает выбранный каталог синхронно. Остальная обработка находится в отдельной экспортной процедуре.
ОписаниеОповещения передаёт сам Диалог третьим аргументом конструктора. После закрытия callback получает два параметра: ВыбранныеФайлы и это дополнительное значение.
Неопределено означает отмену. Только после этой проверки читаем фактический Диалог.Каталог.
Урок допускает только свой подготовленный каталог с необязательным завершающим разделителем Windows. Другую папку не перечисляет и не открывает.
После повторной проверки существования ЭтоКаталог проверяет фактический вид объекта. Режим и пустое свойство ВыбранныеФайлы подтверждают различие выбора каталога и файла.
Как проверить результат
Выберите FileDialog85: три Истина. Ни один текст в этом уроке не читается.
Отмена: только сообщение отмены. Другая папка: сообщение отказа без чтения её содержимого.
Ожидаемый результат
Путь каталога получен из правильного свойства в правильный момент, а пустой массив не индексируется.
На что обратить внимание
Фильтр, ПредварительныйПросмотр и ПроверятьСуществованиеФайла не используются для выбора каталога; их фиктивная настройка сюда не добавлена.
Показать требует расширения работы с файлами в веб-клиенте; урок написан для Windows-клиента.
Оповещение — callback с двумя параметрами, не обработчик Нажатие обычной кнопки.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Выбрать имя отчёта и отделить диалог от записи файла
Режим Сохранение и Расширение помогают выбрать имя назначения. В уроке намеренно нет Записать: существовавший файл не перезаписывается, а отсутствие нового проверяется отдельно.
Где и как запускать
Полный модуль своей управляемой формы внешней обработки. Настольный тонкий клиент 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\report-preview.txt";
ФайлОтчета = Новый Файл(ИмяОтчета);
Если ФайлОтчета.Существует() Тогда
Сообщить("Этот путь уже существует; урок не предлагает перезапись и не удаляет его");
Возврат;
КонецЕсли;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Только выбрать имя: учебный код ничего не записывает";
Диалог.Каталог = "C:\1CLab\FileDialog85";
Диалог.ПолноеИмяФайла = ИмяОтчета;
Диалог.Фильтр = "Текстовый отчёт (*.txt)|*.txt";
Диалог.Расширение = "txt";
Диалог.ПроверятьСуществованиеФайла = Ложь;
Имена = Ждать Диалог.ВыбратьАсинх();
Если Имена = Неопределено Тогда
Сообщить("Выбор имени отменён; записи не было");
Возврат;
КонецЕсли;
Если Имена.Количество() <> 1 Тогда
Сообщить("Ожидалось одно имя назначения");
Возврат;
КонецЕсли;
Если Диалог.ПолноеИмяФайла <> ИмяОтчета Или Имена[0] <> ИмяОтчета Тогда
Сообщить("Выбрано другое имя; этот урок его не использует");
Возврат;
КонецЕсли;
Сообщить(Диалог.Режим = РежимДиалогаВыбораФайла.Сохранение);
Сообщить(Диалог.Расширение = "txt");
Сообщить("Имя назначения согласовано; записи файла в коде нет");
Сообщить(Не ФайлОтчета.Существует());
КонецПроцедуры
Разбор по шагам
Сначала проверяем точное собственное имя report-preview.txt. Если оно уже существует, диалог вообще не показываем и не предлагаем удалить файл.
Режим Сохранение задаётся конструктором, readonly-свойство не присваивается. Расширение txt — расширение по умолчанию, не команда записи и не смена типа содержимого.
Ждать возвращает результат выбора. Отмена проверяется до обращения к массиву; количество — до Имена[0].
Сопоставляем и одиночное ПолноеИмяФайла, и имя результата с точным собственным назначением. Для другого имени дальнейшего использования нет.
Проверка Существует после выбора показывает фактическое состояние. Если файл появился из-за внешнего действия, последняя проверка Ложь: урок не объявляет это своей записью и не удаляет его.
Как проверить результат
При исходно отсутствующем имени и выборе report-preview.txt: Истина режима, Истина расширения, сообщение согласования и Истина отсутствия файла.
Отмена: сообщение отмены. Если путь уже существует: сообщение до показа диалога, существующий файл остаётся.
Проверьте свой каталог вручную: у кода нет вызова записи. Не принимайте успешный выбор имени за созданный отчёт.
Ожидаемый результат
Новичок видит границу между выбором назначения и отдельной операцией записи, которую этот урок не выполняет.
На что обратить внимание
Согласование имени не гарантирует право записи, свободное место или отсутствие файла в момент будущей записи.
Для настоящего отчёта нужна отдельная реализация безопасной записи; добавлять её в этот урок не требуется.
МножественныйВыбор в режиме сохранения не применяется. Урок не притворяется сохранением нескольких файлов.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.