Определяет, соответствует ли файловый объект файлу или каталогу.
Синтаксис
ЭтоФайл()Примеры платформы
Если ВыбФайл.ЭтоФайл() Тогда
Предупреждение(НСтр("ru = 'Укажите каталог!'; en = 'Define a directory!'"));
КонецЕсли;Полное описание, параметры и ограничения
Файл.ЭтоФайл (File.IsFile)
Файл (File)
ЭтоФайл (IsFile)
Доступен, начиная с версии 8.0.
Синтаксис:
ЭтоФайл()
Возвращаемое значение:
Тип: Булево.
Истина - объект соответствует файлу; Ложь - объект соответствует каталогу.
Описание:
Определяет, соответствует ли файловый объект файлу или каталогу.
Доступность:
Тонкий клиент, веб-клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Примечание:
Противоположен методу ЭтоКаталог. Применим только к файлам, которые реально существуют.
Для работы метода на веб-клиенте необходимо предварительно подключить расширение работы с файлами.
Пример:
Если ВыбФайл.ЭтоФайл() Тогда
Предупреждение(НСтр("ru = 'Укажите каталог!'; en = 'Define a directory!'"));
КонецЕсли;
См. также:
Файл, метод НачатьПроверкуЭтоФайл
Файл, метод ЭтоФайлАсинх
Использование в версии:
Доступен, начиная с версии 8.0.
Описание изменено в версии 8.3.18.
Методическая информация
Практические примеры
Прочитать паспорт только своего CF, не устанавливая конфигурацию
Реальный собственный CF сохраняется при подготовке стенда. Перед чтением проверяются имя и размер файла, после конструктора — настоящие три readonly-поля снимка.
Где и как запускать
Полный серверный общий модуль собственной файловой Windows-базы 8.5.1.1343; подготовленный вручную свой пустой CF, только чтение. Здесь в 1С не запускался.
Подготовка
Создайте отдельную пустую файловую Windows-базу на платформе 8.5.1.1343. В свойствах корневой конфигурации задайте Имя=УчебнаяКонфигурацияСинтаксиса, Версия=1.0.0.0, Поставщик=УчебныйСтенд85.
Обновите конфигурацию базы данных. Это подготовка своего нового стенда, не изменение УТ/КА2/УНФ/БП. В рабочей базе эти уроки не выполняйте.
Для положительного опыта в Конфигураторе сохраните только собственную пустую конфигурацию через Конфигурация → Сохранить конфигурацию в файл… под именем УчебныйПаспорт85.cf. Не используйте скачанный, рабочий или чужой CF.
Создайте серверный непривилегированный общий модуль УчебныйПаспорт. Вставьте полный модуль одного урока. Клиентские флаги выключены, Глобальный=Ложь.
Для положительного опыта создайте у своей формы строковый реквизит ПутьКУчебномуCF. В него вручную вставьте фактический абсолютный путь только что сохранённого своего CF, не демонстрационный C:/… и не адрес временного хранилища.
Свою клиентскую команду свяжите с серверной процедурой формы; из неё вызовите УчебныйПаспорт.ВыполнитьПример(ПутьКУчебномуCF). Для отрицательного модуля экспортная процедура без параметра: УчебныйПаспорт.ВыполнитьПример().
Используется отдельная файловая база Windows, поэтому путь доступен локальному серверному коду на этой машине. В клиент-серверной базе путь на клиентском ПК не является автоматически серверным: этот урок не загружает файл на сервер и не обходит права доступа.
Файл только читается. Размер ограничен 20 МиБ, имя фиксировано УчебныйПаспорт85.cf, а полученные Имя/Версия/Поставщик проверяются до вывода. Не разбирайте недоверенные файлы: лимит внешнего размера не гарантирует защиту от всех повреждённых форматов.
ОписаниеКонфигурации не устанавливает и не загружает конфигурацию в информационную базу. Конструктор работает с ДвоичныеДанные своего CF; текст XML-выгрузки или обычный TXT не подменяют этот формат.
Три поля описания readonly. Не присваивайте им новую версию/поставщика и не выдавайте изменение локальной переменной за обновление конфигурации.
Конструктор также поддерживает CFE, но данный положительный опыт проверяет именно подготовленный собственный CF. Описания обновления и загрузка расширения этим уроком не выполняются.
В отрицательном опыте берутся только встроенные собственные UTF-16 TXT-байты. Файлов нет; возможная ошибка формата обрабатывается, а отсутствие ошибки фиксируется как неожиданное поведение, не как пригодный CF.
Здесь в 1С конструктор не запускался, CF не сохранялся и базы не обновлялись. Проверены исходник и точный контракт установленной справки; runtime-успех проверяйте вручную только на своём стенде.
Процедура ВыполнитьПример(ПутьКУчебномуCF) Экспорт
ПроверитьУчебнуюПлатформу();
Если ТипЗнч(ПутьКУчебномуCF) <> Тип("Строка") Тогда
ВызватьИсключение "Нужен фактический путь к собственному сохранённому CF";
КонецЕсли;
Если ПустаяСтрока(ПутьКУчебномуCF) Тогда
ВызватьИсключение "Сначала сохраните свой учебный CF и укажите его путь";
КонецЕсли;
ФайлСнимка = Новый Файл(ПутьКУчебномуCF);
Если ФайлСнимка.Имя <> "УчебныйПаспорт85.cf" Тогда
ВызватьИсключение "Разрешён только свой заранее подготовленный УчебныйПаспорт85.cf";
КонецЕсли;
Если НЕ ФайлСнимка.Существует() Или НЕ ФайлСнимка.ЭтоФайл() Тогда
ВызватьИсключение "Собственный CF недоступен в этом серверном файловом контексте";
КонецЕсли;
Если ФайлСнимка.Размер() <= 0 Или ФайлСнимка.Размер() > 20 * 1024 * 1024 Тогда
ВызватьИсключение "Нужен непустой CF собственной пустой конфигурации не больше 20 МиБ";
КонецЕсли;
ДанныеCF = Новый ДвоичныеДанные(ПутьКУчебномуCF);
Паспорт = Новый ОписаниеКонфигурации(ДанныеCF);
Если Паспорт.Имя <> "УчебнаяКонфигурацияСинтаксиса"
Или Паспорт.Версия <> "1.0.0.0"
Или Паспорт.Поставщик <> "УчебныйСтенд85" Тогда
ВызватьИсключение "Снимок не соответствует собственному учебному паспорту; данные не выводятся";
КонецЕсли;
Сообщить("Имя снимка: " + Паспорт.Имя);
Сообщить("Версия снимка: " + Паспорт.Версия);
Сообщить("Поставщик снимка: " + Паспорт.Поставщик);
Сообщить("Это только чтение собственного CF. Ничего не установлено и конфигурация базы не обновлялась.");
КонецПроцедуры
Процедура ПроверитьУчебнуюПлатформу()
Система = Новый СистемнаяИнформация;
Если Система.ТипПлатформы <> ТипПлатформы.Windows_x86
И Система.ТипПлатформы <> ТипПлатформы.Windows_x86_64 Тогда
ВызватьИсключение "Этот пример использует Windows CryptoAPI";
КонецЕсли;
КонецПроцедуры
Разбор по шагам
Подготовить свою пустую конфигурацию с точными Имя/Версия/Поставщик и сохранить фактический CF.
Передать его настоящий путь серверной процедуре формы; путь и байты — разные значения.
Ограничить имя, проверить существование, что это файл, и непустой размер не больше 20 МиБ.
Получить ДвоичныеДанные своего файла и передать их конструктору ОписаниеКонфигурации.
Сравнить три поля с подготовленным учебным снимком до их вывода. Не делать readonly-присваиваний.
Вывести только подтверждённый собственный паспорт. Загрузка, установка и обновление базы не вызываются.
Как проверить результат
Виден УчебнаяКонфигурацияСинтаксиса, 1.0.0.0, УчебныйСтенд85.
Пустой путь, другое имя/версия/поставщик, каталог, отсутствие файла или превышение размера останавливают опыт.
Сохранённый CF не удаляется и не меняется; сведения рабочей конфигурации не выдаются за содержимое этого файла.
Ожидаемый результат
Получен проверенный паспорт самостоятельно подготовленного CF без установки и без доступа к рабочей конфигурации.
На что обратить внимание
Имя файла УчебныйПаспорт85.cf не доказывает его содержимое. После чтения дополнительно сверяются три поля настоящего описания.
Реквизит формы — путь на стороне исполнения. Он не является ДвоичныеДанные и не переносит файл с клиентского компьютера на произвольный сервер.
CF — двоичный формат конфигурации; файл Configuration.xml из XML-выгрузки не равен сохранённому CF.
Readonly Версия/Имя/Поставщик описывают снимок файла, а не состояние рабочей базы. Чтение описания не выполняет обновление.
Отрицательный опыт не обещает текст конкретного сообщения об ошибке на всех машинах. При неожиданном принятии TXT результат не объявляется корректным учебным CF.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Перечислить JSON-файлы в учебной папке
Поиск по маске без чтения содержимого и без рекурсивного обхода.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
На сервере выполнения создайте C:\1C_УчебныеФайлы.
Положите a.json и b.txt; в подпапку Вложенные положите c.json.
Дайте учётной записи сервера право чтения каталога.
Каталог = "C:\1C_УчебныеФайлы";
НайденныеФайлы = НайтиФайлы(Каталог, "*.json", Ложь);
Для Каждого НайденныйФайл Из НайденныеФайлы Цикл
Если НайденныйФайл.ЭтоФайл() Тогда
Сообщить(НайденныйФайл.ПолноеИмя);
КонецЕсли;
КонецЦикла;Разбор по шагам
НайтиФайлы применяет маску *.json.
Ложь отключает поиск во вложенных папках.
Для каждого найденного объекта Файл проверяем ЭтоФайл и выводим полное имя.
Как проверить результат
На первом запуске выводится только a.json.
Замените Ложь на Истина: должен появиться c.json из подпапки.
Ожидаемый результат
Список полных имён JSON-файлов без изменения данных.
На что обратить внимание
Не полагайтесь на порядок найденных файлов.
Серверный путь не относится к компьютеру пользователя тонкого клиента.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.