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

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

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

КонецЕсли;

к оглавлению

Знаете ли Вы, что релятивистское объяснение феномену CMB (космическому микроволновому излучению) придумал человек выдающейся фантазии Иосиф Шкловский (помните книжку миллионного тиража "Вселенная, жизнь, разум"?). Он выдвинул совершенно абсурдную идею, заключавшуюся в том, что это есть "реликтовое" излучение, оставшееся после "Большого Взрыва", то есть от момента "рождения" Вселенной. Хотя из простой логики следует, что Вселенная есть всё, а значит, у нее нет ни начала, ни конца... Подробнее читайте в FAQ по эфирной физике.

НОВОСТИ ФОРУМА

Форум Рыцари теории эфира


Рыцари теории эфира
 10.11.2021 - 12:37: ПЕРСОНАЛИИ - Personalias -> WHO IS WHO - КТО ЕСТЬ КТО - Карим_Хайдаров.
10.11.2021 - 12:36: СОВЕСТЬ - Conscience -> РАСЧЕЛОВЕЧИВАНИЕ ЧЕЛОВЕКА. КОМУ ЭТО НАДО? - Карим_Хайдаров.
10.11.2021 - 12:36: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от д.м.н. Александра Алексеевича Редько - Карим_Хайдаров.
10.11.2021 - 12:35: ЭКОЛОГИЯ - Ecology -> Биологическая безопасность населения - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> Проблема государственного терроризма - Карим_Хайдаров.
10.11.2021 - 12:34: ВОЙНА, ПОЛИТИКА И НАУКА - War, Politics and Science -> ПРАВОСУДИЯ.НЕТ - Карим_Хайдаров.
10.11.2021 - 12:34: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вадима Глогера, США - Карим_Хайдаров.
10.11.2021 - 09:18: НОВЫЕ ТЕХНОЛОГИИ - New Technologies -> Волновая генетика Петра Гаряева, 5G-контроль и управление - Карим_Хайдаров.
10.11.2021 - 09:18: ЭКОЛОГИЯ - Ecology -> ЭКОЛОГИЯ ДЛЯ ВСЕХ - Карим_Хайдаров.
10.11.2021 - 09:16: ЭКОЛОГИЯ - Ecology -> ПРОБЛЕМЫ МЕДИЦИНЫ - Карим_Хайдаров.
10.11.2021 - 09:15: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Екатерины Коваленко - Карим_Хайдаров.
10.11.2021 - 09:13: ВОСПИТАНИЕ, ПРОСВЕЩЕНИЕ, ОБРАЗОВАНИЕ - Upbringing, Inlightening, Education -> Просвещение от Вильгельма Варкентина - Карим_Хайдаров.
Bourabai Research - Технологии XXI века Bourabai Research Institution