d9e5a92d

Файловая система

Для работы с файлами и каталогами в 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 Тогда

ВремКартинка = СоздатьОбъект(Картинка);

ВремКартинка.Загрузить(ИмяКаталога + ИмяФайла);

КартинкаНаФорме.УстановитьКартинку(ВремКартинка);

КонецЕсли;



Содержание раздела