[ELMA3] Генерация файла с помощью сценария
В примере рассмотрен сценарий, с помощью которого можно сгенерировать файл по шаблону. Шаблон хранится в версии документа.
Пример сценария с использованием PublicAPI
Примечание
Актуальная документация по PublicAPI доступна по ссылке.
Внимание!
Сценарий, указанный ниже, актуален для версий системы ELMA до 3.12.2 включительно.
Пространства имен:
1 2 3 | using EleWise.ELMA.Documents.Managers; using EleWise.ELMA.Runtime.Managers; using EleWise.ELMA.Services; |
Текст сценария:
1 2 3 4 5 6 7 8 9 | int id_doc = 26; //идентификатор документа, в котором содержится шаблон var versionFile = Locator.GetServiceNotNull<IDocumentFileManager>().GetFileByDocumentId(id_doc); var file = Locator.GetServiceNotNull<ITemplateFileManager>().CreateFromTemplate(versionFile.Id); // Создаем генератор PublicAPI.Services.DocumentGenerator.Generate(file, context); // Сохраняем файл сгенерированного документа PublicAPI.Services.File.SaveFile(file); // Записываем результат в переменную context.ResultFile = file; |
Пример сценария без использования PublicAPI
Для работы сценария нужно подключить сборки:
1 2 | Elewise.ELMA.Documents Elewise.TemplateGenerator.Merged |
1 2 3 4 | using EleWise.ELMA.Documents.Managers; using EleWise.ELMA.Runtime.Managers; using EleWise.ELMA.Services; using EleWise.ELMA.Templates; |
1 2 3 4 5 6 7 8 9 10 11 | int id_doc=26; //идентификатор документа, в котором содержится шаблон var versionFile = Locator.GetServiceNotNull<IDocumentFileManager>().GetFileByDocumentId(id_doc); var file = Locator.GetServiceNotNull<ITemplateFileManager>().CreateFromTemplate(versionFile.Id); // Создаем генератор var generator = Locator.GetServiceNotNull<DocumentGeneratorManager>().Create(file.ContentFilePath); // Генерируем документ generator.Generate(context); // Сохраняем файл сгенерированного документа Locator.GetServiceNotNull<IFileManager>().SaveFile(file); // Записываем результат в переменную context.ResultFile = file; |