Для
работы с файлами и каталогами в 1С:Предприятие используется специальный
объект "ФС" (файловая система). Средства языка 1С имеют
возможности поиска, копирования, переименования, удаления и совершения
других операций с файлами и каталогами.
Обращение
к файловой системе
Для
работы с файловой системой предназначен объект "ФС". В
принципе его не требуется создавать с помощью функции СоздатьОбъект.
Можно считать, что он уже создан. Но 1С позволяет создать сколько
угодно таких объектов при помощи функции СоздатьОбъект;
Пример:
ГдеМыНаходимся
= ФС.ТекКаталог();
ФС.СоздатьКаталог("DOCS");
НовФС = СоздатьОбъект("ФС");
Объект
"ФС" имеет следующие методы:
Метод |
Описание |
ВыбратьФайл(<ИмяФайла>) |
Открывает
окно диалога выбора/сохранения файла. Возвращает: 0 - если
в окне диалога нажата кнопка 'Отмена', 1 - если нажата кнопка
'ОК'.
Синтаксис:
ВыбратьФайл (<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>,
<ЗаголовокОкна>, <Фильтр>, <Расширение>,
<Таймаут>)
Параметры:
<ТипДиалога> -: 0 - диалог типа <открыть>, 1 -
диалог типа <сохранить>;
<ИмяФайла> - переменная, содержащая на входе строку
с именем файла, а на выходе - имя выбранного файла;
<ИмяНачКаталога> - переменная, содержащая на входе строку
с начальным каталогом, а на выходе - имя выбранного каталога;
<ЗаголовокОкна> - строка с заголовком окна;
<Фильтр> - строка с фильтром отбора файлов (например:
'Все файлы (*.*) |*.*');
<Расширение> - строка с расширением файла по умолчанию;
<Таймаут> - время ожидания отклика пользователя в секундах
(необязателен).
|
ВыбратьФайлКартинки |
Открывает
окно диалога выбора/сохранения файла картинки.
Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена',
1 - если нажата кнопка 'ОК'.
Синтаксис: ВыбратьФайлКартинки (<ТипДиалога>, <ИмяФайла>,
<ИмяНачКаталога>, <ЗаголовокОкна>, <Расширение>,
<Таймаут>) |
ВыбратьКаталог |
Открывает
окно диалога выбора каталога.
Возвращает: 0 - если в окне диалога нажата кнопка 'Отмена';
1 - если в окне диалога нажата кнопка 'ОК', при этом в переменную
<ИмяНачКаталога> возвращается имя выбранного каталога;
-1 (минус единица) - закончилось время <Таймаут> ожидания
отклика пользователя.
Синтаксис: ВыбратьКаталог(<ИмяКаталога>,<ЗаголовокОкна>,<Таймаут>) |
СуществуетФайл |
Проверяет
существование файла..
Возвращает: 1 - файл существует; 0 - не существует.
Синтаксис: СуществуетФайл(<ИмяФайла>) |
КопироватьФайл |
Копирует
файл.
Синтаксис: КопироватьФайл(<ИмяФайлаИсточника>,<ИмяФайлаПриемника>,<ФлагПерезаписи>)
Параметры:
<ИмяФайлаИсточника> - строка с именем файла источника;
<ИмяФайлаПриемника> - строка с именем файла приемника;
<ФлагПерезаписи> -:
0 - существующий файл приемника перезаписать;
1 - существующий файл приемника не перезаписывать. |
УдалитьФайл |
Удаляет
файл.
Синтаксис: УдалитьФайл(<ИмяФайла>) |
ПереименоватьФайл |
Переименовать/переместить
файл.
Синтаксис: ПереименоватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>,
<ФлагПерезаписи>)
Параметры:
<ИмяФайлаИсточника> - строка с именем файла источника;
<ИмяФайлаПриемника> - строка с новым именем файла;
<ФлагПерезаписи> -:
0 - запрещает перемещение файла между дисками и существующий
файл приемника не перезаписывается;
1 - разрешает перемещение файла между дисками (только для
файлов) и существующий файл приемника перезаписывается. |
НайтиПервыйФайл |
Открывает
выборку файлов по заданной маске и находит первый файл.
Возвращает строку с именем найденного файла.
Синтаксис: НайтиПервыйФайл(<МаскаИмени>) |
НайтиСледующийФайл |
Находит
следующий файл по открытой выборке файлов.
Возвращает строку с именем найденного файла.
Синтаксис: НайтиСледующийФайл() |
АтрибутыФайла |
Возвращает
атрибуты файла (в параметрах).
Синтаксис:
АтрибутыФайла (<ИмяФайла>, <РазмерФайла>, <АтрибутыФайла>,
<ВремяСоздания>, <ВремяПоследнегоДоступа>, <ВремяПоследнейЗаписи>,
<РасширенноеИмяФайла>)
Атрибуты
файла закодированы, об этом см. Синтакс-Помощник или описание
встроенного языка |
СоздатьКаталог |
Создать
новый каталог (папку).
Синтаксис:СоздатьКаталог(<ИмяКаталога>) |
УдалитьКаталог |
Удаляет
каталог файлов.
Синтаксис: УдалитьКаталог(<ИмяФайла>) |
УстТекКаталог |
Устанавливает
текущий каталог файлов.
Синтаксис: УстТекКаталог(<ИмяФайла>) |
ТекКаталог |
Возвращает
строку с именем текущего каталога файлов. |
WindowsКаталог |
Возвращает
строку с именем Windows директории. |
СвободноеМестоНаДиске |
Возвращает
размер свободного дискового пространства в байтах.
Синтаксис: СвободноеМестоНаДиске(<ИмяДиска>) |
Также часто
применяются системные функции:
Метод |
Описание |
КаталогИБ |
Возвращает
имя каталога базы данных. |
КаталогПользователя |
Возвращает
имя каталога пользователя. |
КаталогПрограммы |
Возвращает
имя каталога с исполняемыми файлами системы 1С:Предприятие. |
КаталогВременныхФайлов |
Возвращает
имя каталога временных файлов. |
ИмяКомпьютера |
Возвращает
сетевое имя компьютера, работающего в данный момент с программой. |
Примеры
Пример
1
//переместить все текстовые файлы (*.txt) из каталога информационной
базы в каталог TXT.
ФС.УстТекКаталог(КаталогИБ());
ИмяФайла = "";
ИмяФайла = ФС.НайтиПервыйФайл("*.txt");
Если ИмяФайла <> "" Тогда
.... ФС.СоздатьКаталог("TXT");
.....ФС.КопироватьФайл(ИмяФайла,ФС.ТекКаталог() + "TXT"
+ ИмяФайла);
.....ФС.УдалитьФайл(ИмяФайла);
Пока 1=1 Цикл
ИмяФайла =
" ";
.....ИмяФайла = ФС.НайтиСледующийФайл()
Если ИмяФайла <> "" Тогда
.....ФС.КопироватьФайл(ИмяФайла,ФС.ТекКаталог() + "TXT"
+ ИмяФайла);
.....ФС.УдалитьФайл(ИмяФайла);
Иначе
..... Прервать;
КонецЕсли;
КонецЦикла;
Пример 2
//выбрать
файл с фотографией сотрудника
ИмяФайла = "";
ИмяКаталога = КаталогИБ();
Если ФС.ВыбратьФайлКартинки(0,ИмяФайла,ИмяКаталога,"Укажите
файл с фотографией:",,20)=1 Тогда
ВремКартинка
= СоздатьОбъект("Картинка");
ВремКартинка.Загрузить(ИмяКаталога + ИмяФайла);
КартинкаНаФорме.УстановитьКартинку(ВремКартинка);
КонецЕсли;
|