Перейти к основному содержанию
`Ctrl`+`K`

# Хранение и обработка файлов

Документ описывает механизмы работы с прикреплёнными файлами в системе: настройку хранилищ, простое и версионное хранение, а также вставку изображений в документы форматов Word и PDF. Все функции управляются через метаданные и поддерживают конфигурацию без кода.

## Сервис прикреплённых файлов

Сервис прикреплённых файлов позволяет прикреплять к объектам класса произвольные файлы, которые сохраняются в специальном хранилище на сервере и сопоставляются с конечным объектом-владельцем.

### Файловое хранилище

Global3-Framework позволяет классифицировать места хранения файлов по функциональной принадлежности. Для этого используется справочник файловых хранилищ системы.

Файловое хранилище может быть:

- Локальным — расположено в директории сервера приложений.

- Сетевым — использует протокол SMB.

Перед работой с файлами необходимо настроить файловые хранилища:

1. Откройте приложение «Настройка системы».

2. Выполните пункт меню «Сущности > Файловые хранилища».

В системе должно быть настроено минимум два хранилища:

- `Default` — хранилище по умолчанию.

- `btkAttach` — хранилище прикреплённых файлов.

Для минимизации объёма хранилища используется алгоритм, позволяющий нескольким объектам ссылаться на один физический файл:

- Файл загружается в хранилище только один раз.

- При копировании объектов создаётся символическая ссылка (через `btk_attachitem`), а не физическая копия.

Существует два режима работы:

- Простой.

- Версионный.

### Простое хранение файлов

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

Доступные операции:

- Прикрепить файл — в хранилище добавляется новый файл, в закладке отображается запись с флагом «Основной».

- Удаление — удаляется запись из закладки. Если запись отмечена как основная, файл удаляется из хранилища.

  Внимание

  Операция удаления записи из хранилища необратима.

- Скачать файл — из хранилища скачивается файл с именем и расширением, указанными в записи.

- Сделать файл основным — устанавливается флаг «Основной». У предыдущей основной записи флаг снимается.

При копировании родительской записи копируются и записи прикреплённых файлов, но без флага «Основной».

### Версионное хранение файлов

Версионирование сохраняет историю изменений. Любое изменение файла создаёт новую версию.

Доступны все операции простого хранения, а также:

- Добавить новую версию — к записи добавляется версия; предыдущие сохраняются.

- Удалить последнюю версию — удаляется последняя версия. Если версия одна, предлагается удалить всю запись.

  Внимание

  Операция удаления записи из хранилища необратима.

- Отобразить историю изменений — открывается список версий. Для каждой доступны операции скачивания и удаления.

При копировании родительской записи копируются записи прикреплённых файлов со всеми версиями, но без флага «Основной».

### Настройка

По умолчанию сервис прикреплённых файлов для класса отключён. Для подключения укажите тип хранения в ODM-файле класса:

    <class xmlns="http://www.global-system.ru/xsd/global3-class-1.0"
           name="Gds_ControlDoc"
           caption="Документ контроля"
           cardEditor.representation="Card"
           listEditor.representation="List"
           viewOptions.openCardType="mdi"
           supertype="document"
           attachType="versioned"/>

После генерации AVM-файла во все отображения (`Card`, `List`, `Tree`) автоматически добавляется закладка «Прикреплённые файлы».

## Вставка изображений в прикреплённые файлы типов Word и PDF

Для вставки изображений в прикрепляемые файлы документа настройте нужные изображения в коллекции-расширении «Настройки вставки изображений» для типа объекта этого документа.

В коллекции доступны следующие настройки:

- Активность — определяет, будет ли изображение вставлено в прикреплённый файл.

- Печатная форма — указывается форма типа Jasper с форматом PNG. Передаётся один аргумент: `IDDOC` (ID документа).

- Изображение — файл в формате PNG.

  Примечание

  Если указана печатная форма, файл изображения удаляется. При загрузке изображения ссылка на печатную форму удаляется.

- Положение изображения по осям X, Y — определяет координаты (точка отсчёта — нижний левый угол документа).

- Ширина и высота изображения — задают размер вставляемого изображения.

Как только в коллекции появится активное изображение, в отображении прикреплённых файлов для документов данного типа становятся доступны операции:

- Вставка изображения в один документ.

- Вставка изображения во все документы сразу.