1С 8.3 Диалог выбора файла - Программист 1С Минск. Автоматизация бизнеса.

Популярные страницы:
Перейти к контенту

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

Данные > Примеры кода 1С > 1С 8.3 Диалоги
Перейти в раздел примеры кода 1С 8.3:
В группах и на форумах встречаются советы с кодом из типовой - устаревшего стандартного диалога выбора файла (пример №2). Как же всё-таки корректно выполнить программную обработку выбора пользователя пути к файлу для УФ? Делайте правильно - используйте асинхронные методы (пример №1).
Пример №1 (рекомендуется): Асинхронный диалог выбора файла на клиенте в 1С 8.3:
&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

  // Свойство КнопкаВыбора элемента формы установим в значение Да
  // и будем обрабатывать событие НачалоВыбора этого элемента
  СтандартнаяОбработка = Ложь;// Отказываемся от стандартной обработки процедуры

  // Создаем диалог выбора файла и указываем для чего он будет использоваться
  Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); // или ВыборКаталога или Сохранение
  Диалог.Фильтр = "Документ PDF (*.pdf)|*.pdf"; // Строка с файловыми фильтрами
  Диалог.Заголовок = "Выберите документ PDF"; // Текст заголовка окна выбора

  // Создаем объект ОписаниеОповещения, который будет передан в метод Показать
  ОповещениеЗавершения = Новый ОписаниеОповещения("ПриВыбореФайла", ЭтотОбъект);
  // Также можно задать и третий параметр - Диалог. Тогда в процедуре ПриВыбореФайла из параметра ДополнительныеПараметры
  // можно получить каталог (в котором хранится выбранный файл), и фильтр (которому соответствует файл)
  // Пример: ОповещениеЗавершения = Новый ОписаниеОповещения("ПриВыбореФайла", ЭтотОбъект, Диалог);

  Диалог.Показать(ОповещениеЗавершения); // Открываем окно выбора файла

КонецПроцедуры

// Эта процедура будет вызвана после закрытия окна выбора файла:
&НаКлиенте
Процедура ПриВыбореФайла(ВыбФайлы, ДополнительныеПараметры) Экспорт

  Если ВыбФайлы <> Неопределено Тогда
      ПутьКФайлу = ВыбФайлы[0];
  КонецЕсли;

КонецПроцедуры
Пример №2: Диалог выбора файла на клиенте в 1С 8.3:
&НаКлиенте
Функция ПриВыбореФайла()

  Режим = РежимДиалогаВыбораФайла.Открытие;//(ВыборКаталога, Открытие, Сохранение)

  ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
  ДиалогОткрытияФайла.ПолноеИмяФайла = "";

  Текст = "ru = ""Текст""; en = ""Text""";
  //Текст = "ru = ""Таблица""; en = ""Excel""";
  //Текст = "ru = ""Документ PDF""; en = ""Adobe Acrobat PDF""";

  Фильтр = НСтр(Текст)+"(*.txt)|*.txt"; // Строка с файловыми фильтрами
  //Фильтр = НСтр(Текст)+"(*.xlsx)|*.xlsx| (*.xls)|*.xls (*.xlsb)|*.xlsb|";
  //Фильтр = НСтр(Текст)+"(*.pdf)|*.pdf";

  ДиалогОткрытияФайла.Фильтр = Фильтр;
  ДиалогОткрытияФайла.МножественныйВыбор = Истина;// Ложь - Если нужен один фай
  ДиалогОткрытияФайла.Заголовок = "Выберите файлы";// "Выберите файл"

  Если ДиалогОткрытияФайла.Выбрать() Тогда
      Текст = "ru = ""; Размер = ""; en = ""; Size = """;

      // МножественныйВыбор = Истина:
      МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
      Для Каждого ИмяФайла Из МассивФайлов Цикл
          ВыбФайл = Новый Файл(ИмяФайла);
          Сообщить(ИмяФайла+НСтр(Текст)+ВыбФайл.Размер());
      КонецЦикла;
      // МножественныйВыбор = Ложь:
      // ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла;
      // Сообщить(ПутьКФайлу+ДиалогОткрытияФайла.Размер());
  Иначе
      Текст = "ru = ""Файл(ы) не выбран!""; en = ""File(s) not selected!""";
      Предупреждение(НСтр(Текст));
  КонецЕсли;

КонецФункции
Поиск кода
0
Комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 05.09.2021
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Назад к содержимому