Рассмотрим как асинхронно (а в управляемых формах необходимо только так) программно обработать выбор пользователем пути к файлу.
Постановка задачи
Предположим, что на форме создан реквизит ПутьКФайлу. Этот реквизит имеет тип Строка и выведен на форму. Пользователь должен указывать в этом поле путь к файлу 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С 8.3 (8.2) для работы с файлами существует два объекта: Файл и ДиалогВыбораФайла.
Рассмотрим каждый по отдельности.
Объект 1С — файл
Объект Файл служит для управления параметрами файлов.
Сразу стоит заметить, что данный объект не предназначен для чтения и записи из файлов.
Например, прочитаем параметры некоторого файла, находящегося на диске C:
В результате мы получим следующую информацию (если файл найден):
Параметры файла:
Полное имя файла: C:Работа с файламистатья.txt
Имя: статья.txt
Имя без расширения: статья
Расширение: .txt
Путь без имени: C:Работа с файлами
Размер: 899
Это файл: Да
Изменен: 18.05.2015 16:21:28
Только чтение: Нет
Невидимость: Нет
Запись в файл
Теперь, когда мы выбрали и открыли файл, можно с ним работать, т.е. прочитать его содержимое или записать в него что-нибудь.
Рассмотрим пример:
Получите 267 видеоуроков по 1С бесплатно:
Чтение файла в 1С
Часто бывает необходимо прочитать текст файла построчно, например, для анализа каждой строки. Для этого используем объект ЧтениеТекста.
Запись текста из 1С в файл
Заметим, что при записи текстового файла можно установить кодировку.
Копирование файла
Здесь все очень просто
Перемещение
Удаление
Диалог выбора файла
В указанных выше примерах есть одно неудобство. Путь к файлу прописан жестко в коде. Чтобы выбрать файл интерактивно, существует объект ДиалогВыбораФайла, о котором речь пойдет ниже.
Объект ДиалогВыбораФайла служит для открытия файла (файлов), сохранения файла или выбора каталога в диалоге специального вида.
Например, выберем и откроем некоторый файл с расширением txt:
Задаем режим диалога выбора. Доступны три варианта: ВыборКаталога, Открытие, Сохранение
Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.



При создании обработок или в процессе разработки конфигураций может возникнуть необходимость организовать выбор файла на форме. Для этой цели в платформе 1С есть все необходимые инструменты.
Обычное приложение
В обычном приложение необходимо добавить на форму элемент «Поле ввода» и установить галочку напротив свойства «КнопкаВыбора». В событии «НачалоВыбора» прописать функцию, которая будет предоставлять выбор
файла. Функцию добавить в модуль формы.
Управляемое приложение
В управляемом приложении сначала необходимо создать реквизит формы. Затем для этого реквизита на форму надо добавить элемент «Поле» и установить для свойства «КнопкаВыбора» значение «Да». И так же как в обычном приложении, в событии «НачалоВыбора», прописать функцию. Функция будет расположена в модуле
формы. В отличии от обычного приложения перед функцией надо прописать &НаКлиенте.
Параметры объекта ДиалогВыбораФайла:
- Заголовок — заголовок окна выбора фйлов
- ИндексФильтра — индекс активного фильтра
- Каталог — текущий каталог выбора файла
- МножественныйВыбор — задаёт возможность выбора нескольких файлов
- ПолноеИмяФайла — имя выбранного файла
- ПредварительныйПросмотр — отображение окна предварительного просмотра содержимого файла
- ПроверятьСуществованиеФайла — определяет проверять существование файла
- Расширение — расширения для записи файлов
- Режим — РежимДиалогаВыбораФайла.(ВыборКаталога, Открытие, Сохранение)
- Фильтр — строка с файловыми фильтрами
Выбор одного файла
Множественный выбор файлов
Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться