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