1с диалог выбора файла фильтр несколько расширений
Объект ДиалогВыбораФайла 1C выводит пользователю стандартный диалог Windows для выбора каталога или файла (на открытие/запись). При этом можно указать фильтр расширений, которые можно использовать пользователю.
Например, выбор каталога:
//Открываем стандартный диалог Windows выбора каталога/файла в режиме выбора каталога - ДиалогВыбораФайла 1С
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
//Если пользователь не нажал кнопку ОТМЕНА в диалоге
Если Диалог.Выбрать() Тогда
ИмяКаталога = Диалог.Каталог;
КонецЕсли;
При выборе каталога в ДиалогВыбораФайла 1С имя каталога возвращается без слэш «\», кроме начала диска, например:
С:\
C:\ИмяКаталога
Например, выбор имени файла на сохранение txt файла в ДиалогВыбораФайла 1С (отличается от режима «выбор файла на открытие» тем, что если выбран существующий файл – будет задан вопрос – действительно ли желаете перезаписать файл?):
//Открываем стандартный диалог Windows выбора каталога/файла в режиме выбора файла на сохранение - ДиалогВыбораФайла 1С
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
//каталог по-умолчанию, можно не указывать
Диалог.Каталог = "C:\";
//фильтр для одного вида файлов, для нескольких – см. следующий пример
Диалог.Фильтр = "Текстовый файл (*.txt)|*.txt|";
//Если пользователь не нажал кнопку ОТМЕНА в диалоге
Если Диалог.Выбрать() Тогда
//Полное имя файла – с учетом «пути к нему» (имени каталога к нему)
ИмяФайла = Диалог.ПолноеИмяФайла;
КонецЕсли;
При выборе имени файла полное имя файла содержит «путь к нему», например:
C:\ИмяКаталога\ИмяФайла.txt
Например, выбор имени файла на открытие файла Excel:
При выборе имени файла полное имя файла содержит «путь к нему». Если пользователь ввел имя файла без расширения, то будет подставлено расширение, указанное первым в списке из нескольких видов в фильтре, например:
C:\ИмяКаталога\ИмяФайла.xls
Фильтр (например, «Документ Excel (*.xls, *.xlsx)|*.xls;*.xlsx|») состоит:
- Документ Excel (*.xls, *.xlsx) — произвольная строка для пользователя
- |*.xls;*.xlsx|
Предположим, что на форме создан реквизит ПутьКФайлу. Этот реквизит имеет тип Строка и выведен на форму. Пользователь должен указывать в этом поле путь к файлу 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’» ));
ОбменДаннымиКлиент . ОбработчикВыбораФайла ( ЭтотОбъект , «ПутьКФайлу» , СтандартнаяОбработка , НастройкиДиалога );
Остались вопросы?
Спросите в комментариях к статье.
Объект ДиалогВыбораФайла 1C выводит пользователю стандартный диалог Windows для выбора каталога или файла (на открытие/запись). При этом можно указать фильтр расширений, которые можно использовать пользователю.
Например, выбор каталога:
//Открываем стандартный диалог Windows выбора каталога/файла в режиме выбора каталога — ДиалогВыбораФайла 1С
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
//Если пользователь не нажал кнопку ОТМЕНА в диалоге
Если Диалог.Выбрать() Тогда
ИмяКаталога = Диалог.Каталог;
КонецЕсли;
При выборе каталога в ДиалогВыбораФайла 1С имя каталога возвращается без слэш «», кроме начала диска, например:
С:
C:ИмяКаталога
Например, выбор имени файла на сохранение txt файла в ДиалогВыбораФайла 1С (отличается от режима «выбор файла на открытие» тем, что если выбран существующий файл – будет задан вопрос – действительно ли желаете перезаписать файл?):
//Открываем стандартный диалог Windows выбора каталога/файла в режиме выбора файла на сохранение — ДиалогВыбораФайла 1С
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
//каталог по-умолчанию, можно не указывать
Диалог.Каталог = «C:»;
//фильтр для одного вида файлов, для нескольких – см. следующий пример
Диалог.Фильтр = «Текстовый файл (*.txt)|*.txt|»;
//Если пользователь не нажал кнопку ОТМЕНА в диалоге
Если Диалог.Выбрать() Тогда
//Полное имя файла – с учетом «пути к нему» (имени каталога к нему)
ИмяФайла = Диалог.ПолноеИмяФайла;
КонецЕсли;
При выборе имени файла полное имя файла содержит «путь к нему», например:
C:ИмяКаталогаИмяФайла.txt
Например, выбор имени файла на открытие файла Excel:
При выборе имени файла полное имя файла содержит «путь к нему». Если пользователь ввел имя файла без расширения, то будет подставлено расширение, указанное первым в списке из нескольких видов в фильтре, например:
C:ИмяКаталогаИмяФайла.xls
Фильтр (например, «Документ Excel (*.xls, *.xlsx)|*.xls;*.xlsx|») состоит:
- Документ Excel (*.xls, *.xlsx) — произвольная строка для пользователя
- |*.xls;*.xlsx|
Для вызова стандартного диалога выбора файла или папки Windows в 1С существует специальный объект ДиалогВыбораФайла. У него существует три режима работы:
- выбор каталога;
- открытие файла;
- сохранение файла.
Рассмотрим эти режимы.
Во всех режимах для того, чтобы определить, выбрал ли пользователь файл или каталог (не нажал ли он кнопку Отмена) используется функция Выбрать(). Если была нажата кнопка Отмена, эта функция возвращает Ложь. Эта же функция вызывает появление окна выбора у пользователя.
Диалог выбора каталога в 1С
Следует помнить, что путь к каталогу записывается без последнего слэша. Например, так: c:Папка1Папка2
Диалог открытия файла в 1С
В режиме открытия появляются дополнительные параметры работы диалога:
-
Фильтр состоит из двух частей, разделенных символом «|»: строки представления, которая отображается в окне выбора файла, и строки маски. В маске могу использоваться стандартные символы: ? — любой символ, * — любые символы. Можно последовательно перечислить несколько фильтров, разделенных символом «|». Например:
Итак, код вызова диалога открытия одного файла будет выглядеть так:
Код вызова диалога открытия нескольких файлов будет выглядеть так:
Диалог сохранения файла в 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’» ));
ОбменДаннымиКлиент . ОбработчикВыбораФайла ( ЭтотОбъект , «ПутьКФайлу» , СтандартнаяОбработка , НастройкиДиалога );
Остались вопросы?
Спросите в комментариях к статье.
Для вызова стандартного диалога выбора файла или папки Windows в 1С существует специальный объект ДиалогВыбораФайла. У него существует три режима работы:
- выбор каталога;
- открытие файла;
- сохранение файла.
Рассмотрим эти режимы.
Во всех режимах для того, чтобы определить, выбрал ли пользователь файл или каталог (не нажал ли он кнопку Отмена) используется функция Выбрать(). Если была нажата кнопка Отмена, эта функция возвращает Ложь. Эта же функция вызывает появление окна выбора у пользователя.
Диалог выбора каталога в 1С
Следует помнить, что путь к каталогу записывается без последнего слэша. Например, так: c:Папка1Папка2
Диалог открытия файла в 1С
В режиме открытия появляются дополнительные параметры работы диалога:
-
Фильтр состоит из двух частей, разделенных символом «|»: строки представления, которая отображается в окне выбора файла, и строки маски. В маске могу использоваться стандартные символы: ? — любой символ, * — любые символы. Можно последовательно перечислить несколько фильтров, разделенных символом «|». Например:
Итак, код вызова диалога открытия одного файла будет выглядеть так:
Код вызова диалога открытия нескольких файлов будет выглядеть так:
Диалог сохранения файла в 1С
Диалог сохранения отличается от диалога открытия тем, что если выбранный файл существует, при сохранении будет задан вопрос, хочет ли пользователь его перезаписать. Также при сохранении не работает возможность множественного выбора файлов. В остальном все работает точно так же:
Объект ДиалогВыбораФайла 1C выводит пользователю стандартный диалог Windows для выбора каталога или файла (на открытие/запись). При этом можно указать фильтр расширений, которые можно использовать пользователю.
Например, выбор каталога:
//Открываем стандартный диалог Windows выбора каталога/файла в режиме выбора каталога — ДиалогВыбораФайла 1С
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
//Если пользователь не нажал кнопку ОТМЕНА в диалоге
Если Диалог.Выбрать() Тогда
ИмяКаталога = Диалог.Каталог;
КонецЕсли;
При выборе каталога в ДиалогВыбораФайла 1С имя каталога возвращается без слэш «», кроме начала диска, например:
С:
C:ИмяКаталога
Например, выбор имени файла на сохранение txt файла в ДиалогВыбораФайла 1С (отличается от режима «выбор файла на открытие» тем, что если выбран существующий файл – будет задан вопрос – действительно ли желаете перезаписать файл?):
//Открываем стандартный диалог Windows выбора каталога/файла в режиме выбора файла на сохранение — ДиалогВыбораФайла 1С
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
//каталог по-умолчанию, можно не указывать
Диалог.Каталог = «C:»;
//фильтр для одного вида файлов, для нескольких – см. следующий пример
Диалог.Фильтр = «Текстовый файл (*.txt)|*.txt|»;
//Если пользователь не нажал кнопку ОТМЕНА в диалоге
Если Диалог.Выбрать() Тогда
//Полное имя файла – с учетом «пути к нему» (имени каталога к нему)
ИмяФайла = Диалог.ПолноеИмяФайла;
КонецЕсли;
При выборе имени файла полное имя файла содержит «путь к нему», например:
C:ИмяКаталогаИмяФайла.txt
Например, выбор имени файла на открытие файла Excel:
При выборе имени файла полное имя файла содержит «путь к нему». Если пользователь ввел имя файла без расширения, то будет подставлено расширение, указанное первым в списке из нескольких видов в фильтре, например:
C:ИмяКаталогаИмяФайла.xls
Фильтр (например, «Документ Excel (*.xls, *.xlsx)|*.xls;*.xlsx|») состоит:
Для вызова стандартного диалога выбора файла или папки Windows в 1С существует специальный объект ДиалогВыбораФайла. У него существует три режима работы:
- выбор каталога;
- открытие файла;
- сохранение файла.
Рассмотрим эти режимы.
Во всех режимах для того, чтобы определить, выбрал ли пользователь файл или каталог (не нажал ли он кнопку Отмена) используется функция Выбрать(). Если была нажата кнопка Отмена, эта функция возвращает Ложь. Эта же функция вызывает появление окна выбора у пользователя.
Диалог выбора каталога в 1С
Следует помнить, что путь к каталогу записывается без последнего слэша. Например, так: c:Папка1Папка2
Диалог открытия файла в 1С
В режиме открытия появляются дополнительные параметры работы диалога:
-
Фильтр состоит из двух частей, разделенных символом «|»: строки представления, которая отображается в окне выбора файла, и строки маски. В маске могу использоваться стандартные символы: ? — любой символ, * — любые символы. Можно последовательно перечислить несколько фильтров, разделенных символом «|». Например:
Итак, код вызова диалога открытия одного файла будет выглядеть так:
Код вызова диалога открытия нескольких файлов будет выглядеть так:
Диалог сохранения файла в 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С
Обращаю Ваше внимание, что несколько масок расширений в одном фильтре должны разделяться знаком — точка с запятой (в синтаксис-помощнике об этом по-моему не написано).
« Как стать программистом 1С » Программирование 1С » Как записать в текстовый файл из 1С
Как записать в текстовый файл из 1С
- На форме организовать выбор файла (формат файла txt)
- Заполнить файл данными
- Ну и сохранить естественно (если файл с данными, то чтобы спросил перезаписать или нет).
Как это сделать?
Организуем форму толстого клиента 1С
Выполним эту задачу на примере формы внешней обработки. Создаем внешнюю обработку, добавляем форму, на форму кидаем поле с типом строка без ограничения длины.
У добавленного нами поля нужно включить кнопку выбора.
Добавим обработчик нажатия.
Обратите внимание, что в модуле у нас появились две функции – одна обработчик нажатия кнопки «Выполнить», которая была автоматически добавлена на форму обработки при ее создании. Другая – добавленный нами обработчик.
Организуем форму тонкого клиента 1С
Пример такой же организации формы на тонком клиенте 1С.
Добавляем реквизит в обработку — неограниченная строка (т.е. длина = 0).
Только что добавленный реквизит вытаскиваем на форму. Чтобы открыть его свойства — нажмите на вытащенном реквизите правой кнопкой мыши.
Свойство КнопкаВыбора установите Да.
Тонкий клиент не добавляет автоматически кнопку. Поэтому нам нужно самостоятельно на форму обработки добавить кнопку Записать.
На закладке Команды добавьте новую команду и нажмите в ее свойствах лупу, чтобы добавить обработчик.
Также перетащите добавленную команду на форму (влево).
В модуле у нас также две функции – одна обработчик нажатия кнопки «Записать», который мы добавили. Другая – добавленный нами обработчик события при выборе.
Программируем выбор [имени и места записи] файла
В Windows есть общепринятый диалог работы с выбором файла.
Из 1С есть доступ к управлению этим диалогом. Для этого существует специальный объект «ДиалогВыбораФайла».
Вот пример кода для нашего случая:
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);
Диалог.Заголовок = "Выберите имя файла для сохранения";
Диалог.Фильтр = "Текстовый файл(*.txt)|*.txt";
//Вызов собственно диалога на экран
Если Диалог.Выбрать() Тогда
//Сюда попадем только если пользователь нажал ОК
//Сохранение выбранного имени файла (полного имени, значит включая путь к нему)
Если Вы хотите дать возможность выбирать несколько расширений файлов, например txt и rtf, то нужно написать так:
Диалог.Фильтр = "Документ Microsoft Word (*.txt)|*.txt|"
+ "Документ Microsoft Excell (*.rtf)|*.rtf|";
Программируем запись файла на диск
Для записи текстовых файлов в 1С есть объект «ЗаписьТекста».
Работа с ним очень простая.
Вот пример кода для нашего случая:
Файл = Новый ЗаписьТекста(ИмяФайла);
Файл.ЗаписатьСтроку("Привет!");
Файл.ЗаписатьСтроку("Как дела?");
Файл.Закрыть();
Читайте также: