Использование сценария инициализации виртуального файла
Использование сценария инициализации виртуального файла¶
Данный сценарий позволяет дополнить, изменить, или удалить информацию о виртуальном файле в пакете загружаемой карточки.
Сценарий выполняется при загрузке карточки в ситуации, когда виртуальный файл добавляется в карточку (т.е. все условия данного виртуального файла выполнены).
Important
Данный сценарий выполняется только при загрузке карточки и никак не может влиять на содержимое самого файла. Содержимое файла определяется выбранным в в настройках виртуального файла шаблоном файла.
В данном сценарии доступен объект context
, который имеет тип IKrVirtualFileScriptContext
. Данный объект контекста имеет следующие свойства:
-
Card - карточка, для которой идет генерация виртуального файла.
-
DbScope - объект для взаимодействия с базой данных.
-
Session - сессия пользователя.
-
Container - контейнер зависимостей Unity.
-
CardFile - общая информация о файла, прикреплённом к карточке.
-
File - объект файла.
Пример сценария удаления виртуального файла в скрипте инициализации по условию:
// Проверяем в секции DocumentCommonInfo значение поля Amount, и если оно больше 100000, то удаляем виртуальный файл из карточки
if (context.Card.Sections["DocumentCommonInfo"].RawFields.TryGet<decimal>("Amount") > 100000m)
{
context.Card.Files.Remove(context.CardFile);
}
Пример изменения категории файла с использованием данных карточки:
// К имени категории добавляем валюту, указанную в карточке.
context.CardFile.CategoryCaption += " " + context.Card.Sections.GetOrAdd("DocumentCommonInfo").RawFields["CurrencyName"];
// Генерируем Guid по строке, чтобы в ситуации, когда несколько файлов имели такую категорию, идентификатор был одинаковым.
context.CardFile.CategoryID = context.CardFile.CategoryCaption.ToGuid();