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