1С выбор каталога управляемые формы

Рассмотрим как асинхронно (а в управляемых формах необходимо только так) программно обработать выбор пользователем пути к файлу.

Постановка задачи

Предположим, что на форме создан реквизит ПутьКФайлу. Этот реквизит имеет тип Строка и выведен на форму. Пользователь должен указывать в этом поле путь к файлу Excel.

Решение

Для удобства свойство КнопкаВыбора элемента формы установим в значение Да и будем обрабатывать событие НачалоВыбора этого элемента.

В процедуре начала выбора элемента ПутьКФайлу необходимо написать код:

&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора ( Элемент , ДанныеВыбора , СтандартнаяОбработка )

// Отказываемся от стандартной обработки процедуры
СтандартнаяОбработка = Ложь;

// Создаем диалог выбора файла и указываем для чего он будет использоваться
Диалог = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие );
// Задаем фильтр доступных расширений файлов для выбора
Диалог . Фильтр = НСтр ( «ru=’Книга Excel 97 (*.xls)|*.xls|Книга Excel 2007 (*.xlsx)|*.xlsx’» );
// Задаем текст заголовка окна выбора
Диалог . Заголовок = НСтр ( «ru=’Выберите файл Excel’» );
// Создаем объект ОписаниеОповещения, который будет передан в метод Показать
ОповещениеЗавершения = Новый ОписаниеОповещения ( «ВыборФайлаЗавершение» , ЭтотОбъект );
// Открываем окно выбора файла
Диалог . Показать ( ОповещениеЗавершения );

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

содержит описание процедуры, которая будет вызвана после закрытия диалога выбора. В этой процедуре должно быть два параметра:

  • ВыбранныеФайлы — массив выбранных имен файлов. Если пользователь отказался от выбора файла, то в параметре будет содержаться Неопределено;
  • ДополнительныеПараметры — произвольное значение, которое указано при создании объекта ОписаниеОповещения в третьем параметре (в нашем примере не задано).

Пример процедуры, которая будет вызвана после закрытия окна выбора файла:

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

Если ВыбранныеФайлы <> Неопределено Тогда

Читайте также:  Создать аву для ютуба

ПутьКФайлу = ВыбранныеФайлы [ 0 ];

Внимание!

Процедура, указанная в объекте ОписаниеОповещения должна иметь ключевое слово Экспорт.

Приведенный пример можно немного усовершенствовать: передать в третий параметр конструктора ОписаниеОповещения переменную Диалог.

ОповещениеЗавершения = Новый ОписаниеОповещения ( «ВыборФайлаЗавершение» , ЭтотОбъект , Диалог );

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

В конструкторе объекта ДиалогВыбораФайла в параметре указывается для чего будет открыт диалог. Возможные значения системного перечисления РежимДиалогаВыбораФайла:

Приведу еще несколько свойств объекта ДиалогВыбораФайла:

  • Каталог — текущий каталог;
  • ПолноеИмяФайла — начальное полное имя файла. После выбора файла содержит полное имя выбранного файла (кроме множественного выбора и выбора каталога);
  • МножественныйВыбор — флаг возможности выбора нескольких файлов;
  • ПредварительныйПросмотр — флаг необходимости показа окна предварительного просмотра файлов;
  • ПроверятьСуществованиеФайла — флаг необходимости проверки существования выбираемого файла.

Решение средствами БСП

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

ОбработчикВыбораФайла ( Объект , Знач ИмяСвойства , СтандартнаяОбработка = Ложь, Знач ПараметрыДиалога = Неопределено, ОповещениеЗавершения = Неопределено ) Экспорт

общего модуля ОбменДаннымиКлиент. При помощи этого метода приведенную выше задачу можно решить так:

&НаКлиенте
Процедура ПутьКФайлуНачалоВыбора ( Элемент , ДанныеВыбора , СтандартнаяОбработка )

НастройкиДиалога = Новый Структура ;
НастройкиДиалога . Вставить ( «Заголовок» , НСтр ( «ru=’Выберите файл Excel’» ));
НастройкиДиалога . Вставить ( «Фильтр» , НСтр ( «ru=’Книга Excel (*.xlsb)|*.xlsb|Книга Excel 2007 (*.xlsx)|*.xlsx|Книга Excel 97 (*.xls)|*.xls’» ));

ОбменДаннымиКлиент . ОбработчикВыбораФайла ( ЭтотОбъект , «ПутьКФайлу» , СтандартнаяОбработка , НастройкиДиалога );

Остались вопросы?
Спросите в комментариях к статье.

Достаточно часто нам требуется получить от пользователя какую-либо информацию — имя файла или каталога, цвет или шрифт. Для всего этого в 1С существуют диалоги. Код, который требуется для вызова диалога, довольно стандартный и мало чем отличается из раза в раз. Собственно именно о том, как вызвать различные диалоги в 1С 8.2 и 8.3 и пойдет речь.

Читайте также:  Что значит зарезервировано на юле

Отмечу, что приведенные ниже примеры подходят для любых конфигураций 1С 8.2, а также для конфигураций 1С 8.3 у которых свойство конфигурации «Режим использования модальности» установлено как «Использовать» либо «Использовать с предупреждениями». Если же Вы имеете дело с конфигурацией 1С 8.3 не использующей модальность, то рекомендую прочесть статью о модальности в 1С.

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

Выбор файла в 1С

Обращаю Ваше внимание, что несколько масок расширений в одном фильтре должны разделяться знаком — точка с запятой (в синтаксис-помощнике об этом по-моему не написано).

Программирование системы 26.04.2016 10:54 26091

При создании обработок или в процессе разработки конфигураций может возникнуть необходимость организовать выбор файла на форме. Для этой цели в платформе 1С есть все необходимые инструменты.

Обычное приложение

В обычном приложение необходимо добавить на форму элемент "Поле ввода" и установить галочку напротив свойства "КнопкаВыбора". В событии "НачалоВыбора" прописать функцию, которая будет предоставлять выбор
файла. Функцию добавить в модуль формы.

Управляемое приложение

В управляемом приложении сначала необходимо создать реквизит формы. Затем для этого реквизита на форму надо добавить элемент "Поле" и установить для свойства "КнопкаВыбора" значение "Да". И так же как в обычном приложении, в событии "НачалоВыбора", прописать функцию. Функция будет расположена в модуле
формы. В отличии от обычного приложения перед функцией надо прописать &НаКлиенте.

Параметры объекта ДиалогВыбораФайла:

  • Заголовок – заголовок окна выбора фйлов
  • ИндексФильтра – индекс активного фильтра
  • Каталог – текущий каталог выбора файла
  • МножественныйВыбор – задаёт возможность выбора нескольких файлов
  • ПолноеИмяФайла – имя выбранного файла
  • ПредварительныйПросмотр – отображение окна предварительного просмотра содержимого файла
  • ПроверятьСуществованиеФайла – определяет проверять существование файла
  • Расширение – расширения для записи файлов
  • Режим – РежимДиалогаВыбораФайла.(ВыборКаталога, Открытие, Сохранение)
  • Фильтр – строка с файловыми фильтрами
Читайте также:  Эмулятор directx 11 для windows 10

Выбор одного файла

Множественный выбор файлов

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Оцените статью
Добавить комментарий

Adblock detector