Файл

Файл - это компонента, которая сочетает в себе функциональность сохранения файлов-вложений в базу данных в кодировке base64, функциональность отображения preview уже сохраненных файлов и функциональность скачивания сохраненных в базу данных файлов-вложений на компьютер пользователя. Указание файлов, подлежащих сохранению в базу данных, осуществляется через перетягивание файлов мышью из других приложений (drag-and-drop), либо явным указанием набора файлов через системный диалог операционной системы. Режим предпросмотра включен всегда - если файлы существуют, и для них операционная система может отобразить содержимое - то компонента отображает контент в уменьшенном масштабе. Для скачивания ранее сохраненных файлов достаточно кликнуть мышью по наименованию файла, являющемуся гиперссылкой на скачивание:

Компонента Файл находится в разделе Компоненты - Поля - Файл.

Свойства

Компонента имеет набор общих свойств. Ниже отображены свойства, специфичные только для данной компоненты.

Наименование свойства Назначение свойства Принимаемые значения
Подсказка позволяет создать подсказку, расположенную внутри элемента пример возможного значения: Выберите файл для загрузки
Надпись позволяет задать наименование поля, которое будет отображаться на странице пример возможного значения: Файл
Максимальный размер каждого файла позволяет задать максимально разрешенный размер для каждого из загружаемых файлов, измеряется мегабайтами пример возможного значения: 10
Допустимо удаление файла позволяет настроить разрешение на удаление файла
Список доступных типов файлов позволяет сформировать список разрешенных для загрузки расширений файлов, при пустом списке можно добавлять файлы любых расширений пример возможного значения: doc
File names

Свойство Загрузки файлов: Настройка

Наименование свойства Назначение свойства Принимаемые значения
Ссылка на главную сущность графа основной формы осуществляется настройка таблиц и связей между ними для сохранения файлов-вложений.
граф сущностей настраивается в соответствии с п. Настройка Графа сущностей. Указывается только та таблица, в которую будут сохраняться вложения.
допустимое максимальное количество файлов в компоненте позволяет задать количество файлов, которые допустимо загрузить.
колонка главной сущности графа основной формы(а не графа сущности текущей компоненты) - позволяет задать наименование таблицы и колонки, указанной как главная в графе сущностей родительской компоненты Форма.
колонка с именем файла позволяет задать наименование таблицы и колонки с именем файла.
колонка с содержимым файла позволяет задать наименование таблицы и колонки для сохранения содержимого файла в base64 кодировке.

В показанной конфигурации в основную таблицу базы данных (Проекты) сохраняется информация об основным признаках проекта, т.е в новой создаваемой строке о проекте присваивается новый идентификатор, а в зависимую таблицу (Вложенные документы) со ссылкой на этот идентификатор создается 10 записей, в каждой из которых сохраняется по 1 файл вложений.

Таким образом, между 2 таблицами создается связь один-ко-многим с внешним ключом из зависимой таблицы вложений в основную таблицу проектов.

Для случая, когда количество вложений строго ограничено 1 (одним) файлом, параметр:

допустимое максимальное количество файлов в компоненте - принимает значение “1”,

а параметр:

колонка главной сущности графа основной формы - исключается из интерфейса настройки компоненты.

В показанной конфигурации в основную таблицу базы данных (Проекты) сохраняется информация как об основных признаках проекта, так и сам файл вложений.

Таким образом, сохранение 1 файла-вложения происходит в ту же таблицу, что и другие основные параметры сущности “проект”, без использования зависимой таблицы и без внешних ключей между сущностью “проект” и файлом-вложением .

Заполнить значением по умолчанию

Заполнить значением по умолчанию

Дополнительные функции

В ходе настройки свойств компоненты (заданных по умолчанию) может оказаться недостаточно для выполнения поставленной задачи и получения необходимого результата.

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

Вследствие технических особенностей реализации скриптов (скрипты выполняются удаленно на сервере приложений, скрипты выполняются в браузере пользователя), они имеют разные иконки, но это никак не влияет на их функциональность или предпочтительность использования.

Определить права текущего пользователя

Определить права текущего пользователя

Определить роли текущего пользователя

Определить роли текущего пользователя

Методические рекомендации по применению

Пошаговые инструкции по применению компонента в типовых задачах Вы можете найти в разделах:

Часто задаваемые вопросы

Вопрос Ответ
Все настроено верно, но компонента по-прежнему не сохраняет вложения в базу данных ? Проверьте свойство компоненты
Нужно ли включать (дублировать) в граф сущности компоненты таблицу, являющуюся главной сущностью всей компоненты Form ? Ответ зависит от ситуации ,в которой используется компонента Файл. Когда для одной основной сущности всей страницы требуется сохранить несколько файлов вложений (это большинство случаев использования компоненты) в графе сущностей компоненты Файл указывается только таблица, в которую происходит непосредственное сохранение файлов. Взаимосвязь с таблицей, представляющей главную сущность родительской компоненты Форма, осуществляется не стрелками в графе сущностей компоненты Файл, а при настройке параметров колонка главной сущности графа основной формы,колонка с именем файла,колонка с содержимым файла в интерфейсе Диспетчера компоненты Файл. Когда для одной основной сущности всей страницы требуется сохранить единственный файл вложений (редкий вариант) в графе сущностей компоненты Файлуказывается та же самая таблица, которая указана в качестве главной сущности родительской компоненты Форма.
Где в иерархии страницы следует располагать компоненту? Поскольку она уже имеет свою структуру сущности - должна ли она обязательно находиться внутри родительской компоненты Form всей страницы? Да, При любом кейсе использования компоненты Файл, эта она должна быть дочерней по отношению к компоненте Форма всей страницы и располагаться внутри ее (компоненты Форма) контейнера.