Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
&НаСервере Процедура ЧтениеИЗаписьФайловНаСервере() /// Как записать произвольное значение в файл в 1с 8.3, 8.2 // любое сериализуемое (то есть превращаемое // в строку и обратно) значение можно сохранять // в файл, например, массивы, списки значений, строки // структуры и т.д. Числа = Новый Массив; Числа.Добавить(35); Числа.Добавить(67); ЗначениеВФайл("c:числа.txt", Числа); // эта функция работает только на сервере /// Как восстановить произвольное значение из файла в 1с 8.3, 8.2 ЧислаИзФайла = ЗначениеИзФайла("c:числа.txt"); Сообщить(ЧислаИзФайла[0]); // 35 Сообщить(ЧислаИзФайла[1]); // 67 /// Как записать текстовый файл в 1с 8.3, 8.2 // работает как на сервере, так и на клиенте Текст = Новый ЗаписьТекста( "c:привет.txt", // имя КодировкаТекста.ANSI, // кодировка Символы.ПС, // разделитель строк (необ.) Ложь // перезаписывать файл, а не дописывать в конец (необ.) ); Текст.ЗаписатьСтроку("Добро пожаловать!"); Текст.ЗаписатьСтроку("Посторонним вход воспрещен."); Текст.Закрыть(); /// Как прочитать текстовый файл в 1с 8.3, 8.2 // работает как на сервере, так и на клиенте Текст = Новый ЧтениеТекста( "c:привет.txt", // имя КодировкаТекста.ANSI, // кодировка Символы.ПС, // разделитель строк (необ.) , Истина // монопольный режим (необ.) ); // читаем пока есть что читать Пока Истина Цикл Строка = Текст.ПрочитатьСтроку(); Если Строка = Неопределено Тогда Прервать; Иначе Сообщить(Строка); КонецЕсли; КонецЦикла; КонецПроцедуры &НаКлиенте Процедура ОперацииНадФайлами(Команда) // для тестов создадим пустой файл Текст = Новый ЗаписьТекста("c:file_src.txt"); Текст.Закрыть(); /// Как проверить существование файла в 1С 8.3, 8.2 ФайлНаДиске = Новый Файл("c:file_src.txt"); Если ФайлНаДиске.Существует() Тогда Сообщить("c:file_src.txt существует"); КонецЕсли; /// Как скопировать файл в 1с 8.3, 8.2 КопироватьФайл( "c:file_src.txt", // что копируем "c:file_dest.txt" // куда копируем ); // перезапишет, если уже есть такой файл /// Как переместить файл в 1с 8.3, 8.2 ПереместитьФайл( "c:file_dest.txt", "c:file_new.txt" ); // перезапишет, если уже есть такой файл /// Как найти файлы в каталоге в 1с 8.3, 8.2 // возвращает массив значений типа Файл МассивНайденныхФайлов = НайтиФайлы( "c:", // где искать "*.txt", // маска поиска Ложь // если Истина, то будет искать и в подкаталогах ); Для Каждого Файл Из МассивНайденныхФайлов Цикл Сообщить("Найден " + Файл.ПолноеИмя); КонецЦикла; /// Как удалить файл в 1с 8.3, 8.2 // если файл readonly - будет ошибка УдалитьФайлы( "c:file_new.txt" ); /// Как удалить файлы в каталоге по маске в 1с 8.3, 8.2 // поиск в каталоге нерекурсивный УдалитьФайлы( "c:helpme1c", // заведомо не существующий каталог "*.txt" // маска для поиска удаляемых файлов ); // если опустить маску, то удалятся все файлы и каталог /// Как получить имя временного файла в 1с 8.3, 8.2 Сообщить( ПолучитьИмяВременногоФайла() ); // например, c:Tempv8_11AE_4.tmp Сообщить( ПолучитьИмяВременногоФайла(".txt") ); // например, c:Tempv8_11AE_5.txt /// Как прочитать атрибуты файла в 1с 8.3, 8.2 Ф = Новый Файл("c:file_src.txt"); // время последнего изменения файла Сообщить(Ф.ПолучитьВремяИзменения()); // проверяем атрибут только чтение Сообщить(Ф.ПолучитьТолькоЧтение()); // проверяем атрибут hidden (скрытность, невидимость) Сообщить(Ф.ПолучитьНевидимость()); /// Как установить атрибуты файла в 1с 8.3, 8.2 // меняем время последнего изменения файла Ф.УстановитьВремяИзменения(ТекущаяДата()); // меняем атрибут только чтение Ф.УстановитьТолькоЧтение(Ложь); // меняем атрибут невидимости Ф.УстановитьНевидимость(Ложь); /// Как узнать размер файла в 1с 8.3, 8.2 Сообщить(Ф.Размер()); // в байтах // Как узнать по пути файл это или каталог в 1с 8.3, 8.2 Если Ф.ЭтоКаталог() Тогда Сообщить("Это каталог"); ИначеЕсли Ф.ЭтоФайл() Тогда Сообщить("Это файл"); КонецЕсли; /// Как вытащить расширение файла из его пути в 1с 8.3, 8.2 Сообщить(Ф.Расширение); // .txt /// Как вытащить имя файла без расширения в 1с 8.3, 8.2 Сообщить(Ф.ИмяБезРасширения); // file_src КонецПроцедуры &НаКлиенте Процедура ОперацииНадКаталогами(Команда) /// Как создать каталог в 1с 8.3, 8.2 // каталог может уже существовать СоздатьКаталог("c:new_dir"); // создадутся все подкаталоги СоздатьКаталог("c:new_dir23"); /// Как проверить существование каталога в 1с 8.3, 8.2 КаталогНаДиске = Новый Файл("c:new_dir"); Если КаталогНаДиске.Существует() Тогда Сообщить("Папка c:new_dir существует"); КонецЕсли; /// Как удалить каталог вместе с содержимым в 1с 8.3, 8.2 УдалитьФайлы("c:new_dir"); // мы опустили маску, поэтому удалятся все файлы // внутри каталога, а также сам каталог /// Как получить каталог временных файлов в 1с 8.3, 8.2 Сообщить( КаталогВременныхФайлов() ); // например, c:temp КонецПроцедуры &НаКлиенте Процедура РаботаСВременнымХранилищем(Команда) // временное хранилище - объект, в который мы можем помещать // и считывать данные произвольного типа, // доступ к которому есть и на сервере и на клиенте // это позволяет передавать между сервером и клиентом // данные, которые иначе не передать /// Как сохранить произвольное значение во временное /// хранилище в 1с 8.3, 8.2 Список = Новый СписокЗначений; Список.Добавить("Владивосток"); Список.Добавить("Хабаровск"); Список.Добавить("Петропавловск-Камчатский"); АдресВХранилище = ПоместитьВоВременноеХранилище( Список // произвольные данные ); /// Как прочитать произвольное значение из временного /// хранилища в 1с 8.3, 8.2 СписокИзХранилища = ПолучитьИзВременногоХранилища(АдресВХранилище); Если СписокИзХранилища = Неопределено Тогда Сообщить("Значение по этому адресу уже удалено из хранилища."); Иначе Сообщить(СписокИзХранилища[0]); // Владивосток КонецЕсли; /// Как перезаписать уже сохраненное значение во временном /// хранилище в 1с 8.3, 8.2 Массив = Новый Массив; Массив.Добавить(10); Массив.Добавить(20); ПоместитьВоВременноеХранилище( Массив, АдресВХранилище ); /// Сколько времени хранится значение, сохраненное во /// временном хранилище в 1с 8.3, 8.2 // всё зависит от второго параметра функции ПоместитьВоВременноеХранилище // #1 если туда в качестве адреса был передан уникальный идентификатор формы // или уже существующий адрес в хранилище, то значение будет автоматически // удалено после закрытия формы // #2 если туда в качестве адреса передан уникальный идентификатор, не // являющийся уникальным идентификатором формы, то значение будет // автоматически удалено только после завершения сеанса пользвоателя // #3 если адрес не указан, помещенное значение будет удалено после // очередного запроса сервера // см. примеры ниже /// Как сохранить значение во временное хранилище на всё /// время жизни формы в 1с 8.3, 8.2 ПоместитьВоВременноеХранилище( Массив, ЭтаФорма.УникальныйИдентификатор ); /// Как сохранить значение во временное хранилище на всё /// время сеанса пользователя в 1с 8.3, 8.2 АдресВХранилище = ПоместитьВоВременноеХранилище( Массив, Новый УникальныйИдентификатор ); /// Как удалить значение из временного хранилища в 1с 8.3, 8.2 УдалитьИзВременногоХранилища(АдресВХранилище); /// Как узнать является ли строка адресом во временном хранилище /// в 1с 8.3, 8.2 Если ЭтоАдресВременногоХранилища(АдресВХранилище) Тогда Сообщить("Да, это адрес во временном хранилище."); КонецЕсли; КонецПроцедуры /// Как передать файл с клиента на сервер в 1с 8.3, 8.2 &НаКлиенте Процедура ПередачаФайлаСКлиентаНаСервер(Команда) // создадим тестовый файл для передачи Текст = Новый ЗаписьТекста("c:test.txt"); Текст.ЗаписатьСтроку("Привет,"); Текст.ЗаписатьСтроку("Мир!"); Текст.Закрыть(); ОповещениеОЗавершении = Новый ОписаниеОповещения( "ВыполнитьПослеПомещенияФайла", ЭтотОбъект ); НачатьПомещениеФайла( ОповещениеОЗавершении, , // адрес в хранилище "c:test.txt", // имя файла Ложь, // интерактивно ЭтаФорма.УникальныйИдентификатор ); // если опустить последний параметр, то помещенный файл // будет удален после очередного запроса сервера // а если указать - то только после удаления объекта формы // если нужно предоставить пользователю возможность // выбрать файл самому четвёртый параметр (интерактивно) // нужно установить в Истина КонецПроцедуры &НаКлиенте Процедура ВыполнитьПослеПомещенияФайла(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт Если Результат Тогда // сохраним полученный адрес в реквизит формы АдресФайлаВХранилище = Адрес; Сообщить( "Наконец-то! Файл " + ВыбранноеИмяФайла + " передан на сервер и сохранён во " + "временном хранилище по адресу " + Адрес); Иначе Сообщить("Не удалось передать файл на сервер."); КонецЕсли; КонецПроцедуры /// Как прочитать файл на сервере из временного хранилища /// в 1с 8.3, 8.2 &НаСервере Процедура ПрочитатьФайлНаСервереИзХранилищаНаСервере() Если АдресФайлаВХранилище = "" Тогда Сообщить("Сначала нужно передать файл с клиента на сервер."); Возврат; КонецЕсли; ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресФайлаВХранилище); Если ДвоичныеДанные = Неопределено Тогда Сообщить("Похоже файл уже был удалён из хранилища."); Возврат; КонецЕсли; ДвоичныеДанные.Записать("c:server.txt"); Текст = Новый ЧтениеТекста("c:server.txt"); Пока Истина Цикл Строка = Текст.ПрочитатьСтроку(); Если Строка = Неопределено Тогда Прервать; Иначе Сообщить(Строка); КонецЕсли; КонецЦикла; КонецПроцедуры /// Как передать файл с сервера на клиент в 1с 8.3, 8.2 &НаКлиенте Процедура ПередатьФайлССервераНаКлиент(Команда) Если АдресФайлаВХранилище = "" Тогда Сообщить("Сначала нужно сохранить файл на сервере."); Сообщить("Воспользуйтесь кнопкой 'Передача файла с клиента...'"); Возврат; КонецЕсли; ОповещениеОЗавершении = Новый ОписаниеОповещения( "ВыполнитьПослеПолученияФайлов", ЭтотОбъект ); ПолучаемыеФайлы = Новый Массив; ПолучаемыеФайлы.Добавить( Новый ОписаниеПередаваемогоФайла( "c:from_server.txt", // куда сохранять на клиента АдресФайлаВХранилище // адрес в хранилище на сервере ) ); НачатьПолучениеФайлов( ОповещениеОЗавершении, ПолучаемыеФайлы, , Ложь // интерактивно ); КонецПроцедуры &НаКлиенте Процедура ВыполнитьПослеПолученияФайлов(ПолученныеФайлы, ДополнительныеПараметры) Экспорт Для Каждого Файл Из ПолученныеФайлы Цикл Сообщить("Получен " + Файл.Имя + " из " + Файл.Хранение); КонецЦикла; КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере
|
|||
Maniac
05.10.09 — 13:18 |
Живого примера не нашел. |
||
Aprobator
1 — 05.10.09 — 13:20 |
щаз в СП гляну. |
||
bvn13
2 — 05.10.09 — 13:21 |
НайтиФайлы (FindFiles) |
||
Maniac
3 — 05.10.09 — 13:22 |
(2) спасибо. |
||
Один С
4 — 05.10.09 — 13:22 |
ТЗ.Очистить(); |
||
Armando
5 — 01.11.09 — 21:40 |
Помню заморачивался)) |
||
Maniac
6 — 01.11.09 — 21:41 |
(5) ты б это. еще бы в годовалую ветку что нибудь написал. |
||
Armando
7 — 01.11.09 — 21:54 |
(6) Блин, жена за компом сидела. Говорит смотрела что за сайт у меня постоянно открыт)) После нее на странице был список тем, в том числе эта. Я даже на дату не посмотрел. Она говорит сама не знает куда нажала. Судя по всему как-то на твои темы попала) |
||
Фокусник 8 — 01.11.09 — 22:19 |
(7) видимо в личку смотрела |
Следующие функции языка 1С позволяют манипулировать файлами:
- СоздатьКаталог 1С
- НайтиФайлы 1С
- КопироватьФайл 1С
- ПереместитьФайл 1С
- УдалитьФайлы 1С
- РазделитьФайл 1С
- ОбъединитьФайлы 1С.
Работа с каталогами — СоздатьКаталог 1С
//создает недостающие каталоги в указанном пути
//если каталога нет – создаст всю вложенную структуру
//если есть D:Temp, то создаст подкаталоги
СоздатьКаталог("D:Temp123")
Поиск файлов — НайтиФайлы 1С
//найти все файлы 1С в каталоге «Sc»
НайденныеФайлы = НайтиФайлы("D:Sc", "*");
//найти все ТЕКСТОВЫЕ файлы 1С в каталоге, включая вложенные подкаталоги
НайденныеФайлы = НайтиФайлы("D:Sc", "*.txt", Истина);
//найти все файлы 1С в каталоге, в имени которых встречается слово "копия"
НайденныеФайлы = НайтиФайлы("D:Sc", "*копия*");
//найти все файлы 1С в каталоге, в имени которых встречается любая цифра в скобочках, например "(1)" или "(100)"
НайденныеФайлы = НайтиФайлы("D:Sc", "*(*)*");
//найти все файлы 1С в каталоге, в имени которых встречается цифра в скобочках меньше 10, например "(1)" или "(9)"
НайденныеФайлы = НайтиФайлы("D:Sc", "*(?)*");
Для каждого Файл из НайденныеФайлы Цикл
Если Файл.ЭтоКаталог() Тогда
Продолжить;
КонецЕсли;
ИмяФайла = Файл.ПолноеИмя;
Сообщить(ИмяФайла);
КонецЦикла;
Копирование, перемещение и удаление файлов — КопироватьФайл 1С, ПереместитьФайл 1С, УдалитьФайлы 1С
ИмяФайла = "Текстовый файл.txt";
КаталогИсточник = "D:sc";
КаталогПриемник = "D:";
//копирование файла
ФайлИсточник = Новый Файл(КаталогИсточник + ИмяФайла);
Если не ФайлИсточник.Существует() или ФайлИсточник.ЭтоКаталог() Тогда
ВызватьИсключение "Файл '" + КаталогИсточник + ИмяФайла + "' не существует или является каталогом";
КонецЕсли;
Попытка
КопироватьФайл(КаталогИсточник + ИмяФайла, КаталогПриемник + ИмяФайла);
Исключение
ВызватьИсключение "Нет прав на копирование файла";
КонецПопытки;
ФайлПриемник = Новый Файл(КаталогПриемник + ИмяФайла);
Если не ФайлПриемник.Существует() или ФайлПриемник.Размер() <> ФайлИсточник.Размер() Тогда
ВызватьИсключение "Не удалось корректно скопировать файл";
КонецЕсли;
//перемещение файла
Попытка
ПереместитьФайл(КаталогИсточник + ИмяФайла, КаталогПриемник + ИмяФайла);
Исключение
ВызватьИсключение "Нет прав на копирование файла";
КонецПопытки;
ФайлПриемник = Новый Файл(КаталогПриемник + ИмяФайла);
Если не ФайлПриемник.Существует() Тогда
ВызватьИсключение "Не удалось корректно перенести файл";
КонецЕсли;
Разделение и слияние файлов — РазделитьФайл 1С, ОбъединитьФайлы 1С
//функция создает каталог с именем файла
//в нем создает разделенные части файла, каждая размером в указанное кол-во мегабайт
//каждую часть сжимает архиватором
//возвращает имя каталога
Загрузка…
Платформа 1С:Предприятие 8.3 предоставляет большой выбор инструментов для работы с файлами. В данной статье будут рассмотрены основные функции по работе с файлами.
Поиск файлов
Для поиска файлов во встроенном языке существует метод НайтиФайлы, метод доступен в Тонком клиенте, веб-клиенте, мобильном клиенте, через сервер, толстый клиент, а также внешнее соединение, мобильное приложение (клиент) и мобильное приложение (сервер).
Приглашаем на
бесплатный вебинар!
06 июня в 11:00 мск
1 час
Метод принимает на вход путь к каталогу, в котором будет производиться поиск, маска имени для поиска файлов, флаг – «Искать в подкаталогах»:
НайтиФайлы(<Путь>, <Маска>, <ИскатьВПодкаталогах>)
Функция возвращает массив, элементы которого объекты типа Файл.
Пример кода:
Файлы = НайтиФайлы("C:", "*.doc", Ложь);
Для Каждого Ф Из Файлы Цикл
Сообщить(Ф.Имя);
КонецЦикла;
В результате работы алгоритма будут выведены имена всех doc-файлов, содержащихся на диске C:. Если последний параметр указать «истина», будут найдены все файлы во всех подчиненных каталогах. Несколько дополнительных слов по маске поиска, в ОС Windows допускается использовать символы «*» – любые символы в любом количестве и «?» – любой один символ. Сочетать несколько масок недопустимо. В других ОС (Linux, macOS, iOS, Android) маску можно задавать более гибко, подробнее можно посмотреть в справке по языку.
Объект «Файл»
Объект Файл является основным объектом для работы с файлом. Конструктор объекта принимает полное имя файла.
Свойства объекта:
- Имя
- ИмяБезРасширения
- ПолноеИмя
- Путь
- Расширение
Методы объекта:
- НачатьПолучениеВремениИзменения
- НачатьПолучениеКартинкиПредставленияФайлаБиблиотекиМобильногоУстройства
- НачатьПолучениеНевидимости
- НачатьПолучениеРазмера
- НачатьПолучениеТолькоЧтения
- НачатьПолучениеУниверсальногоВремениИзменения
- НачатьПроверкуСуществования
- НачатьПроверкуЭтоКаталог
- НачатьПроверкуЭтоФайл
- НачатьУстановкуВремениИзменения
- НачатьУстановкуНевидимости
- НачатьУстановкуТолькоЧтения
- НачатьУстановкуУниверсальногоВремениИзменения
- ПолучитьВремяИзменения
- ПолучитьКартинкуПредставленияФайлаБиблиотекиМобильногоУстройства
- ПолучитьНевидимость
- ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства
- ПолучитьТолькоЧтение
- ПолучитьУниверсальноеВремяИзменения
- Размер
- Существует
- УстановитьВремяИзменения
- УстановитьНевидимость
- УстановитьТолькоЧтение
- УстановитьУниверсальноеВремяИзменения
- ЭтоКаталог
- ЭтоФайл
Некоторые методы по своей сути делают одно и то же действие, например, НачатьУстановкуТолькоЧтения и УстановитьТолькоЧтение. Методы, которые начинаются с «Начать*», предназначены для работы в асинхронном режиме, они доступны только на клиентах, а вот их «братья» доступны и на сервере. При работе на клиенте с файлами рекомендуется использовать асинхронные методы, однако методы без префикса «Начать» также доступны на клиенте. При использовании таких методов в веб-клиенте нужно будет подключать расширение по работе с файлами (как это сделать, будет рассмотрено ниже в статье).
Пример кода работы с объектом Файл:
Файлы = НайтиФайлы("C:", "*.doc", Ложь);
Для Каждого Ф Из Файлы Цикл
ЕслиУстановитьТолькоЧтение(Ф);
КонецЦикла;
&НаКлиенте
Процедура ЕслиУстановитьТолькоЧтение(Файл)
Если Файл.Существует() И Файл.ЭтоФайл() И Файл.Размер() > 0 Тогда
Файл.УстановитьТолькоЧтение(Истина);
КонецЕсли;
КонецПроцедуры
Данный код устанавливает признак только чтения у всех файлов “*.doc” на диске C:.
Пример этого же алгоритма, но с использованием асинхронных методов:
&НаКлиенте
Процедура ЕслиУстановитьТолькоЧтение(Файл)
ОО = Новый ОписаниеОповещения("ЗавершитьПроверкуСуществования", ЭтаФорма, Новый Структура("Файл", Файл));
Файл.НачатьПроверкуСуществования(ОО);
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьПолучениеРазмера(Размер, ДопПараметры) Экспорт
Перем Файл;
ДопПараметры.Свойство("Файл", Файл);
Если Размер > 0 И Файл Неопределено Тогда
ОО = Новый ОписаниеОповещения("ЗавершитьПроверкуЭтоФайл", ЭтаФорма, Новый Структура("Файл", Файл));
Файл.НачатьПроверкуЭтоФайл(ОО);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьПроверкуСуществования(Существует, ДопПараметры) Экспорт
Перем Файл;
ДопПараметры.Свойство("Файл", Файл);
Если Существует И Файл Неопределено Тогда
ОО = Новый ОписаниеОповещения("ЗавершитьПолучениеРазмера", ЭтаФорма, Новый Структура("Файл", Файл));
Файл.НачатьПолучениеРазмера(ОО);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьПроверкуЭтоФайл(ЭтоФайл, ДопПараметры) Экспорт
Перем Файл;
ДопПараметры.Свойство("Файл", Файл);
Если ЭтоФайл И Файл Неопределено Тогда
ОО = Новый ОписаниеОповещения("ЗавершитьУстановкуТолькоЧтения", ЭтаФорма);
Файл.НачатьУстановкуТолькоЧтения(ОО, Истина);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗавершитьУстановкуТолькоЧтения(ДопПараметры) Экспорт
Сообщить("Флаг только чтение установлен");
КонецПроцедуры
Писать асинхронный код очень неудобно, он получается громоздкий, но именно асинхронный подход надо применять, а особенно – при разработке для web клиента.
Работа с файлами в клиент-серверной архитектуре
При работе в клиент-серверной архитектуре мы не можем работать с файлом на сервере, который был выбран на клиенте, т.к. сервер и клиент – это физически две разных машины. Чтобы решить эту проблему, мы должны передать файл из клиента на сервер, используя временное хранилище.
Пример синхронного кода:
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.МножественныйВыбор = Ложь;
Если Диалог.Выбрать() ТОгда
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Диалог.ПолноеИмяФайла), ЭтаФорма.УникальныйИдентификатор);
ОбработкаФайлаНаСервере(Адрес);
КонецЕсли;
&НаСервереБезКонтекста
Процедура ОбработкаФайлаНаСервере(АдресВХ)
ДД = ПолучитьИзВременногоХранилища(АдресВХ);
Если ДД Неопределено Тогда
// работа с данными.
КонецЕсли;
КонецПроцедуры
Для передачи файлов существуют также такие асинхронные методы, как:
- НачатьПомещениеФайла
- НачатьПомещениеФайлов
Вместо функции ПолучитьИзВременногоХранилища также можно использовать функцию ПолучитьФайл.
Работа с файлами в web-клиенте
Для работы с файлами в веб-клиенте необходимо расширение работы с файлами, делается это функциями:
- НачатьУстановкуРасширенияРаботыСФайлами
- НачатьПодключениеРасширенияРаботыСФайламиЗавершение
Legacy методы:
- УстановитьРасширениеРаботыСФайлами
- ПодключитьРасширениеРаботыСФайлами
В БСП (подсистема ПодключаемоеОборудование) уже есть метод, который использует указанные выше функции.
МенеджерОборудованияКлиент.ПроверитьДоступностьРасширенияРаботыСФайлами (ОповещениеПриЗавершении, ПредлагатьУстановку = Истина)
Если у вас используется web клиент, рекомендуется использовать следующую конструкцию:
#Если ВебКлиент Тогда
ОписаниеОповещения = Новый ОписаниеОповещения("callback_функция", ЭтотОбъект, ДопПараметры);
ПроверитьДоступностьРасширенияРаботыСФайлами(ОписаниеОповещения, Ложь);
#Иначе
// В тонком и толстом клиентах расширение подключено всегда.
// выполняем работу с файлами
#КонецЕсли
Выполняет поиск файлов в заданном каталоге
Синтаксис
Функция НайтиФайлы()
имеет следующий синтаксис:
Массив НайтиФайлы(Путь, [Маска], [ИскатьВПодкаталогах])
А также альтернативный англоязычный синтаксис:
Array FindFiles(Path, [Mask], [IncSubdir])
Параметры
Описание параметров функции НайтиФайлы()
:
Имя параметра* | Тип | Описание |
---|---|---|
Путь | Строка | Путь к каталогу, в котором производится поиск или полное имя искомого файла.
Если каталог находится на компьютере пользователя или в локальной сети, в пути необходимо указывать обратный слеш Если каталог находится на ftp-сервере, в пути необходимо указывать прямые слеши |
Маска | Строка | Маска поиска файлов. Если этот параметр задан, то параметр <Путь> воспринимается системой как путь к каталогу, в котором требуется найти файлы, удовлетворяющие этой маске поиска. |
ИскатьВПодкаталогах | Булево | Признак поиска в подкаталогах:Истина — будет произведен обход вложенных каталогов.Ложь — поиск в подкаталогах производиться не будет.Параметр игнорируется если не задан параметр <Маска>, т.к. предполагается что ищется один файл. |
*Жирным шрифтом выделены обязательные параметры |
Возвращаемое значение
Массив
Массив из значений типа Файл, содержащий найденные файлы.
Описание
Функция НайтиФайлы()
выполняет поиск файлов или каталогов по заданной маске поиска, расположенных в заданном каталоге. Всего метод может работать в двух режимах:
- Поиск одного файла или каталога (используется только параметр <Путь>);
- Поиск группы файлов или каталогов, удовлетворяющих маске поиска (используется минимум 2 параметра: <Путь> и <Маска>);
Внимание! Все искомые файлы (каталоги) должны находиться в одном каталоге.
Внимание!! Для работы метода на веб-клиенте, необходимо предварительно подключить расширение работы с файлами
Доступность
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример использования
Пример кода с использованием функции НайтиФайлы()
:
пример скоро будет...
Читайте также:
- Программная работа с файлами
Поделиться страницей в соц.сетях
Метки: Метки Работа с файлами