Открыть диалог выбора файла 1C
Не асинхронный метод выбора файла в 1С
В управляемом приложении сначала необходимо создать реквизит формы. Затем для этого реквизита на форму надо добавить элемент «Поле» и установить для свойства «КнопкаВыбора» значение «Да». И так же как в обычном приложении, в событии «НачалоВыбора», прописать функцию. Функция будет расположена в модуле
формы. В отличии от обычного приложения перед функцией надо прописать &НаКлиенте.
Параметры объекта ДиалогВыбораФайла:
- Заголовок — заголовок окна выбора фйлов
- ИндексФильтра — индекс активного фильтра
- Каталог — текущий каталог выбора файла
- МножественныйВыбор — задаёт возможность выбора нескольких файлов
- ПолноеИмяФайла — имя выбранного файла
- ПредварительныйПросмотр — отображение окна предварительного просмотра содержимого файла
- ПроверятьСуществованиеФайла — определяет проверять существование файла
- Расширение — расширения для записи файлов
- Режим — РежимДиалогаВыбораФайла.(ВыборКаталога, Открытие, Сохранение)
- Фильтр — строка с файловыми фильтрами
Выбор одного файла
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выбор файла"; Диалог.Фильтр = "Excel файлы(*.xls;*.xlsx)|*.xls;*.xlsx"; Диалог.ИндексФильтра = 0; Диалог.ПредварительныйПросмотр = Ложь; Диалог.ПроверятьСуществованиеФайла = Истина; Диалог.МножественныйВыбор = Ложь; Диалог.ПолноеИмяФайла = ПутьКФайлу; Если Диалог.Выбрать() Тогда ПутьКФайлу = Диалог.ПолноеИмяФайла; КонецЕсли; КонецПроцедуры
Диалог выбора каталог
Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогОткрытия = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытия.Каталог = "";
ДиалогОткрытия.МножественныйВыбор = Ложь;
ДиалогОткрытия.Заголовок = "Выберите каталог";
Если ДиалогОткрытия.Выбрать() Тогда
ПутьККаталогу = ДиалогОткрытия.Каталог;
КонецЕсли;
Асинхронный метод выбора файла в 1С
С появлением веб-клиентов понадобился асинхронный диалог с клиентом.
&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
// Отказываемся от стандартной обработки процедуры
СтандартнаяОбработка = Ложь;
// Создаем диалог выбора файла и указываем для чего он будет использоваться
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
// Задаем фильтр доступных расширений файлов для выбора
Диалог.Фильтр = НСтр(«ru=’Книга Excel 97 (*.xls)|*.xls|Книга Excel 2007 (*.xlsx)|*.xlsx’»);
// Задаем текст заголовка окна выбора
Диалог.Заголовок = НСтр(«ru=’Выберите файл Excel’»);
// Создаем объект ОписаниеОповещения, который будет передан в метод Показать
ОповещениеЗавершения = Новый ОписаниеОповещения(«ВыборФайлаЗавершение», ЭтотОбъект);
// Открываем окно выбора файла
Диалог.Показать(ОповещениеЗавершения);
КонецПроцедуры
Процедура выполняемая после выбора файла
&НаКлиенте
Процедура ВыборФайлаЗавершение(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
Если ВыбранныеФайлы <> Неопределено Тогда
ПутьКФайлу = ВыбранныеФайлы[0];
КонецЕсли;
КонецПроцедуры
Выбор файла средствами БПС в 1С
Создаем реквизит формы например с именем ИмяФайлаЗагрузки, кидаем его на форму и устанавливаем свойство Кнопка выбора в Да.
Для события НачалоВыбора пишем процедуру.
&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
НастройкиДиалога = Новый Структура;
НастройкиДиалога.Вставить("Режим", РежимДиалогаВыбораФайла.Открытие);
НастройкиДиалога.Вставить("Заголовок", НСтр("ru= 'Укажите файл Excel'"));
НастройкиДиалога.Вставить("Фильтр", НСтр("ru='Книга Excel (*.xlsb)|*.xlsb|Книга Excel 2007 (*.xlsx)|*.xlsx|Книга Excel 97 (*.xls)|*.xls|OpenDocument (*.ods)|*.ods'"));
ОбменДаннымиКлиент.ОбработчикВыбораФайла(ЭтотОбъект, "ИмяФайлаЗагрузки", СтандартнаяОбработка, НастройкиДиалога);
КонецПроцедуры