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

ВремКартинка = СоздатьОбъект(“Картинка”);
ВремКартинка.Загрузить(ИмяКаталога + ИмяФайла);
КартинкаНаФорме.УстановитьКартинку(ВремКартинка);

КонецЕсли;

От admin