План занятия
Файлы и работа с ними
Файлы
Глобальные функции работы с файлами
Глобальные функции работы с файлами
Объект Файл
Файлы
Временные файлы
Файлы
Временные файлы
Временные файлы
Временные файлы
Временные файлы
Уборка рабочего места
Файлы
Файлы
Диалог выбора файлов
Диалог выбора файлов
Диалог выбора файлов
Диалог выбора файлов
Передача файлов между клиентом и сервером
Файлы
Временное хранилище и файлы
Передача файлов между клиентом и сервером
Передача файлов между клиентом и сервером
Передача файлов между клиентом и сервером
Передача файлов между клиентом и сервером
Передача файлов между клиентом и сервером
Примеры работы с файлами
Примеры работы с файлами
Примеры работы с файлами
Примеры работы с файлами
Итог
Домашнее задание
Домашнее задание
Домашнее задание
Домашнее задание
1.61M
Category: informaticsinformatics

Файлы и работа с ними

1.

ФАЙЛЫ

2. План занятия

1. Файлы и работа с ними
2. Временные файлы
3. Диалог выбора файлов
4. Передача файлов между клиентом и сервером
5. Сохранение файлов в базу данных
6. Примеры работы с файлами
7. Итог
8. Домашнее задание
2

3. Файлы и работа с ними

3

4. Файлы

Процедуры и функции встроенного языка 1С предоставляют
разработчику доступ к файловой системе.
В синтаксис-помощнике описание находится:
Глобальный контекст — Процедуры и функции работы с файлами.
4

5. Глобальные функции работы с файлами

позволяют:
● поискать файлы в каталоге
● перебрать файлы в каталоге
● скопировать/переместить файл
● создать каталог
● передать файл на сервер/получить файл с сервера
5

6. Глобальные функции работы с файлами

● НайтиФайлы(Каталог, Маска) - массив найденных файлов в
конкретном каталоге
● КопироватьФайл/ПереместитьФайл/УдалитьФайлы - стандартные
файловые операции
● СоздатьКаталог - создание пустого каталога
● ПоместитьФайл/ПолучитьФайл - передача файлов между клиентом
и сервером
● И их клиентские асинхронные "собратья"
○ Семейство методов с префиксом "Начать…"
6

7. Объект Файл

ОписаниеФайла = Новый Файл("C:\Users\somefile.txt");
Используется для доступа к метаданным файлов или каталогов.
● Существование файла с заданным именем
● Полное имя
● Имя каталога
● Дата/Время изменения
● Только чтение
● и др.
На веб-клиенте, необходимо подключить расширение работы с
файлами.
7

8. Файлы

При написании кода нельзя рассчитывать на то, что можно будет
писать куда угодно и читать откуда угодно.
При обращении из кода конфигурации к файлам и каталогам
файловой системы доступ ограничен правами пользователя
операционной системы, от имени которого запущено приложение.
Код на клиенте выполняется под правами пользователя, от имени
которого запущено приложение (тонкий, толстый или веб-клиент).
Код на сервере ограничен правами пользователя, от имени которого
запущен сервер 1С:Предприятия (*).
8

9. Временные файлы

9

10. Файлы

При одновременной работе с файлом на клиенте и на сервере
необходимо использовать передачу файла через временное
хранилище.
Клиент и серверы кластера - разные компьютеры.
Файлы доступные на клиенте могут быть недоступны с сервера.
Что доступно серверу, может быть недоступно клиенту.
10

11. Временные файлы

Временные файлы удобны, когда нужно что-либо сбросить на диск
на короткий период времени
● Полученный по почте документ для открытия предпросмотра
● Упаковка файлов в ZIP архив перед сохранением в базу
● и др.
Временные файлы размещаются в специальном каталоге
операционной системы, известном, как "Temp" в Windows и tmp в
Linux
11

12. Временные файлы

● КаталогВременныхФайлов() - позволяет получить путь к
каталогу Temp
● ПолучитьИмяВременногоФайла() - генерирует уникальное
случайное имя для временного файла, который мы планируем
создать
12

13. Временные файлы

При использовании функции ПолучитьИмяВременногоФайла будет
● будет получено уникальное имя;
● гарантирован доступ к файлу;
● автоматически удаляются при перезапуске рабочего процесса
(если файл был создан на стороне сервера) или клиентского
приложения (если файл был создан на стороне клиента).

В клиент-серверной среде перезапуск может случаться довольно
редко (недели и месяцы)

Массовое создание временных файлов может переполнить каталог
13

14. Временные файлы

Для получения имени временного файла и/или каталога
всегда следует использовать метод
ПолучитьИмяВременногоФайла
Пример
14

15. Уборка рабочего места

После работ с временным файлом или каталогом его необходимо
удалить.
Может закончиться свободное место в каталоге временных файлов
до следующего запуска платформы.
15

16. Файлы

В общем случае неправильно генерировать имена временных
файлов самостоятельно. Для таких файлов платформа уже не
сможет удалить их сама, и придется заботиться об удалении,
предусмотрев все возможные сбои.
Пример
16

17. Файлы

Для веб-клиента метод ПолучитьИмяВременногоФайла недоступен.
Для формирования имен временных файлов и каталогов все-таки
используем функцию КаталогВременныхФайлов и объект
УникальныйИдентификатор.
Однако, сам сценарий, в котором необходимо создавать временные файлы в
веб-клиенте - довольно редкий.
17

18. Диалог выбора файлов

18

19. Диалог выбора файлов

Тот самый, стандартный диалог операционной системы
19

20. Диалог выбора файлов

Имеет 3 режима:
● Открытие файла - выбор файла для открытия, на основной
кнопке написано "Открыть/Open"
● Сохранение файла - выбор места, куда сохранить файл. На
основной кнопке написано "Сохранить/Save"

Может автоматически спросить о перезаписи существующего файла
● Выбор каталога - режим, в котором пользователь может
выбрать только папку, но не файл
20

21. Диалог выбора файлов

● Фильтр - маска, которая позволяет точно указать, какой тип
файла нужно выбрать. Например, если нужно, чтобы
пользователь выбрал только .XML
● Фильтр это строка вида

Визуальное представление|Маска файлов
21

22. Передача файлов между клиентом и сервером

22

23. Файлы

На сервере необходимо полностью завершать работу с временными
файлами в рамках одного серверного вызова.
Иначе при следующем вызове эти файлы могут стать недоступны,
так как код начнет исполняться на другом компьютере.
Данные можно сохранить между серверными вызовами в пределах
одного сеанса, используя временное хранилище платформы.
Методы ПоместитьВоВременноеХранилище,
ПолучитьИзВременногоХранилища.
23

24. Временное хранилище и файлы

Временное хранилище – это специализированное хранилище
информации, в которое может быть помещено некоторое значение.
Основное назначение – это временное хранение информации при
клиент-серверном взаимодействии до ее переноса в базу данных.
Прикладная задача – обеспечение доступа к файлам или картинкам
до того, как объект будет записан в информационную базу,
например, в форме элемента.
Данные, помещенные в хранилище, идентифицируются уникальным
адресом. Его можно использовать в операциях записи, чтения или
удаления.
24

25. Передача файлов между клиентом и сервером

При одновременной работе с файлом на клиенте и на сервере
необходимо использовать передачу файла через временное
хранилище
Методы ПоместитьФайлы, ПолучитьФайл, ПолучитьФайлы,
НачатьПомещениеФайла, ПоместитьВоВременноеХранилище,
ПолучитьИзВременногоХранилища.
Клиент и серверы кластера - это разные компьютеры с разной
файловой системой.
Доступ к файлам может происходить под разными пользователями
ОС с различными правами.
25

26. Передача файлов между клиентом и сервером

26

27. Передача файлов между клиентом и сервером

НачатьПомещениеФайла - метод, который передает файл с
локальной машины на сервер.
По окончании загрузки в описании оповещения придет Адрес
временного хранилища в котором лежит файл.
На сервере по этому адресу нужно получить непосредственно
данные файла и обработать этот файл.
27

28. Передача файлов между клиентом и сервером

28

29. Передача файлов между клиентом и сервером

Для сохранения данных во временном хранилище между
несколькими серверными вызовами, при помещении его в
хранилище необходимо использовать параметр
УникальныйИдентификаторФормы метода ПоместитьФайл,
передав в него идентификатор текущей формы.
Такие значения будут удалены из временного хранилища только при
закрытии указанной формы.
При этом, при повторном помещении того же файла во временное
хранилище, предыдущее значение необходимо удалять вручную.
29

30. Примеры работы с файлами

30

31. Примеры работы с файлами

31

32. Примеры работы с файлами

Для поиска файлов
НайтиФайлы(<Путь>, <Маска>, <ИскатьВПодкаталогах>)
Путь - указываем каталог для поиска,
Маска - имя для поиска файлов,
Искать в подкаталогах - булево. Если “Истина”, будет
произведен обход вложенных в параметр <Путь> каталогов и
поиск в них.
Функция возвращает массив, элементы которого объекты типа
Файл.
32

33. Примеры работы с файлами

В клиент-серверном режиме файл на клиенте может быть
недоступен на сервере, т.к. сервер и клиент – это физически две
разных машины. Передадим файл из клиента на сервер через
временное хранилище.
33

34. Итог

● Мы узнали:

Общие принципы работы с файлами

Механизм временных файлов

Принцип работы с интерактивным диалогом выбора файлов

Передачу файлов с клиента на сервер и обратно
34

35. Домашнее задание

Задача 1 Создать обработку для загрузки цен из файла:
Описание задачи
Создадим обработку для загрузки цен из файла CSV.
Обработка создает новый документ Цены номенклатуры, в ТЧ заполняет данные из
файла.
Требования к результату
Выгрузка информационной базы (.dt), csv-файл содержащий список номенклатуры с
ценами.
Возможность выбора файла с фильтром *.CSV
В файле разделитель ";" между колонками
Возможность загрузить и создать документ Цены номенклатуры.
Поиск номенклатуры по наименованию
Если не найдена, вывести сообщение вида "Номенклатура: " +
НаименованиеНоменклатуры + " не найдена"
*Смотрите сл. слайд
35

36. Домашнее задание

Задача 1 Создать обработку для загрузки цен из файла:
Процесс выполнения
Создать файл с расширением .CSV формат: номенклатура;цена
пример строки файла: Тапочки;1000 Хлеб;40
Создать новую обработку "Загрузка прайса из файла"
Добавим поле "ПутьКФайлу" с диалогом выбора На событие "Начало выбора" добавим
обработчик
В этом же модуле нужно объявить процедуру-обработчик закрытия диалога:
*Смотрите сл. слайд
36

37. Домашнее задание

Задача 1 Создать обработку для загрузки цен из файла:
Процесс выполнения
*Смотрите сл. слайд
37

38. Домашнее задание

Задача 1 Создать обработку для загрузки цен из файла:
Процесс выполнения
38
English     Русский Rules