Формы. Как использовать в форме поле Выбор файлов

Вы можете добавить к форме поле Выбор файла. 

Для этого необходимо сделать следующее: 

  1. Добавить колонку Выбор файла. И реализовать хранимую процедуру dict - в ней необходимо указать код Менеджера ресурсов, который будет подгружаться (as-resourceManager).   
  2. В GetItem указать данное поле (некий Guid, который будет идентифицировать связь с файлами - именно он будет идти в data-itemID в ResourceManager). Если поле не указано, то будет генерироваться Guid автоматически. 
  3. В CheckItem и SaveItem необходимо передать поле, как и другие поля (тип nvarchar(64)) и сохранить это поле для сущности (добавьте столбец в sql-таблицу сущности, если необходимо)
  4. Создать менеджер ресурсов с кодом, указанным в dict процедуре для поля. 
  5. При выводе ресурса на форму уже созданной сущности в data-ItemID необходимо использовать сохраненный guid

Пример dict процедуры: 

select '' Text, 'testFormAttach' Value, 0 Selected

Примечание: 

  • Если у вас нет такого типа поля (Выбор файла), то вы можете самостоятельно добавить его в as_dataTypes (с кодом files)
  • Если менеджер файлов не выводится, проверьте, что вы задали процедуру dict.
  • Не используйте это поле на модальных формах. Дело в том, что выбор файла использует также модальное окно и новое окно для выбора файлов закроет окно вашей формы.

Загрузка файла с внешнего ресурса 

Если нам необходимо получить в SQL для обработки файл по какому-то URL, то используем тип Файл на внешнем ресурсе (remoteFile).

Это будет поле ввода, в котором указывается URL. в итоге в процедуру передается содержимое, скачанное по этому адресу.

Передача содержимого загруженного файла в процедуру SaveItem 

Это актуально, когда вам надо обработать некий XML файл, который загружает пользователь, прямо в sql

Для этого используем тип колонки формы Содержимое файла (fileContent). 

Настраиваем его также как тип files (в dict передаем тип ресурса, itemID задается как некий Guid или itemID сущности и настраиваем переданный тип ресурса). Основное отличие в том, что SaveItem в итоге передаем содержимое файла, а не itemID. 

Примечание