Расширение функционала библиотек генерации отчётов с помощью МоиОтчеты Облако

12.08.2025

Расширение функционала библиотек генерации отчётов с помощью МоиОтчеты Облако

Эта статья о том, какие ограничения есть сейчас у библиотек формирования документов на примере FastReport .NET. Расскажем какие возможности дает SaaS МоиОтчеты Облако. И конечно наглядно посмотрим как пользователи бизнеса могут работать с отчетами и документами удобнее и эффективнее с помощью этих двух решений.

 


 

Когда FastReport .NET уже может не хватать

Безусловно FastReport .NET — мощный и гибкий генератор отчётов, который активно используется разработчиками десктопных приложений на платформе .NET. Он позволяет формировать, отображать, экспортировать и печатать документы любой сложности прямо из настольного приложения.

Но, как и у любого локального инструмента, у FastReport .NET есть ограничения:

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

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

 

Наиболее простым способом эти проблемы решаются с помощью облачного решения — МоиОтчеты Облако

Интеграция МоиОтчеты Облако в ваше .NET-приложение позволяет сохранить привычный рабочий процесс, но при этом добавить:

✔️ удалённое хранилище документов;

✔️ API для рассылки, совместного доступа и хранения;

✔️ поддержку работы с отчётами вне офисной сети;

✔️ простой обмен с заказчиком, юристом, бухгалтером — без лишнего кода и файлов;

✔️ построение отчётов по расписанию и прочий функционал облачной системы.

 

Рассмотрим пример доработки приложения генерации договоров купли-продажи недвижимости, написанного на WPF

Допустим, у нас есть небольшое риэлторское агентство. Сотрудники, находясь непосредственно на объектах, составляют на ноутбуке договоры купли-продажи недвижимости. Для этого используется WPF-приложение с библиотекой FastReport .NET. В нём реализована форма, в которую пользователь вводит следующие данные:

  • паспортные данные продавца;
  • паспортные данные покупателя;
  • адрес, площадь, кадастровый номер и другие параметры объекта недвижимости.

На основе введённых данных с помощью FastReport .NET генерируется договор и отображается в окне предпросмотра. Далее его можно скачать в формате PDF, Word или просто напечатать.

Всё удобно, пока пользователь работает на одном компьютере.

Рассмотрим пример доработки приложения генерации договоров купли-продажи недвижимости, написанного на WPF

 

Что не так?

  1. Приходится вручную пересылать по почте, когда надо передать готовый договор другому сотруднику.
  2. Нельзя дать ссылку на документ клиенту или в точку печати чтобы получить договор в бумажном виде.
  3. Нужно создавать папки на компьютере чтобы сохранять договоры и синхронизировать между сотрудниками, так как нет единого хранилища.
  4. Нужно всегда носить с собой ноутбук. Нельзя посмотреть договор в смартфоне.

С этими проблемами как раз может помочь МоиОтчеты Облако!

МоиОтчеты Облако – это SaaS сервис, предназначенный для создания, хранения и отправки отчётов для вашего бизнеса, доступ к которым организован из любой точки мира без необходимости создания собственного приложения. С Облаком можно работать как через графический интерфейс в браузере (на компьютере или смартфоне), так и с помощью REST API. 

Добавим в наше риэлторское приложение несколько новых облачных функций.

 

1. Сохранение отчётов в облако — без флешек и пересылок в мессенджерах

FastReport .NET по-умолчанию поддерживает сохранение и открытие документов из МоиОтчеты Облако. У нас есть подробная статья про этот сценарий, но если кратко и в текущем контексте, то при экспорте отчёта в меню есть пункт «Сохранить в Облако». При первом использовании пользователь проходит авторизацию: вводит логин и пароль от своей учётной записи (если у вас еще нет нашего Облака, то его можно получить на этой странице).

Далее выбирается папка в облачном хранилище — например: /Договоры/2025/Июль

Затем файл загружается на сервер и становится доступен онлайн — с возможностью просмотра и скачивания.

Сохранить готовый отчет в Облако

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

 

Раздел "Отчеты" в МоиОтчеты Облако

Также, кроме сохранения из десктопного приложения в облако доступно и открытие отчёта из МоиОтчеты Облако. Для этого в нашем приложении нужно нажать кнопку «Открыть из Облака».

Открыть готовый отчет из Облака

 

Что получает пользователь:

  • Централизованное хранилище договоров;
  • Безопасный и быстрый доступ с любого компьютера или смартфона;
  • Никакой работы с синхронизацией файлов между сотрудниками.


2. Отправка документа по электронной почте

Да, FastReport .NET также поддерживает почтовые рассылки, но есть несколько нюансов. Во-первых нужно вводить настройки почтового сервера на каждый ноутбук, что может быть небезопасно. А при смене настроек сервера придётся также менять настройки у каждого сотрудника.

Помимо этого, нет единого хранилища e-mail адресов. Нужно поддерживать актуальность списка на каждом устройстве. Это может быть неудобно, когда требуется делать рассылки всем сотрудникам, или отправлять документы в сервис печати.

Используя C# SDK МоиОтчеты Облако, можно добавить в приложение возможность отправлять договоры на электронную почту. Рассмотрим такой сценарий:

  • Пользователь вводит email получателя.
  • Нажимает «Отправить по почте».
  • C# SDK подготавливает запрос и передаёт в Облако, откуда далее происходит отправка на почту. 

Настроить почтовый сервер и шаблон письма можно как с помощью SDK в нашем приложении, так и предварительно в Облаке (Для этого на вкладке «Задачи» жмём кнопку «Добавить задачу» -> «Рассылка по электронной почте»). Чтобы более подробно погрузиться в SDK, добавим все настройки тут. 

Но сначала нужно подключить C# SDK. Для этого нужно добавить NuGet пакет FastReport.Cloud.SDK:

dotnet add package FastReport.Cloud.SDK


Затем определим нужные клиенты в классе MainWindow.xaml.cs для взаимодействия с МоиОтчеты Облако:

private readonly IExportsClient exportsClient;
private readonly TasksClient tasksClient;


И инициализируем переменные в конструкторе:

var httpClient = new HttpClient();
httpClient.BaseAddress = new Uri(HOST);
httpClient.DefaultRequestHeaders.Authorization = new FastReportCloudApiKeyHeader(ApiKey);
var subscriptionsClient = new SubscriptionsClient(httpClient);
 
exportsClient = new ExportsClient(httpClient);
tasksClient = new TasksClient(httpClient);


HOST указываем как "https://облако.моиотчеты.рф", ApiKey – это наш ключ, который можно получить в панели пользователя по адресу облако.моиотчеты.рф в разделе API ключи.

После подключения SDK можно приступать к работе с облаком. Добавим метод ShareEmail, который будет вызываться при нажатии кнопки отправки в окне нашего приложения:

private void ShareEmail(object sender, RoutedEventArgs e)
 {
 UpdateParameters();
 using (var s = new MemoryStream())
 {
 report.SavePrepared(s);
 byte[] byteReport = s.ToArray();
 
 tasksClient.RunTask(new RunExportReportTaskVM
 {
 SubscriptionId = SUBSCRIPTION_ID,
 InputFile = new RunInputFileVM
 {
 Type = FileKind.Report,
 Content = byteReport
 },
 Format = ExportFormat.Pdf,
 Transports = new List<RunTransportTaskBaseVM>
 {
 new RunEmailTaskVM
 {
 From = EMAIL_FROM,
 To = new List<string>{ Email.Text },
 Subject = SUBJECT + " " + SellerName.Text + " - " + BuyerName.Text,
 Server = MAIL_SERVER,
 Port = MAIL_PORT,
 Username = EMAIL_FROM,
 Password = EMAIL_PASSWORD,
 EnableSsl = true,
 SubscriptionId = SUBSCRIPTION_ID,
 InputFile = new RunInputFileVM()
 {
 Type = FileKind.Export
 }
 }
 },
 ExportParameters = new Dictionary<string, string>
 {
 { "ColorSpace", "CMYK" },
 { "JpegQuality", "100" },
 { "PrintOptimized", "true" }
 }
 });
 }
 }


UpdateParameters
 
считывает все значения текстовых полей приложения и устанавливает параметры отчёта. Далее отчёт преобразуется в массив байт и отправляется в облако для пересылки на почту. Для лучшего качества документа добавляются параметры экспорта ColorSpace и JpegQuality.

 

3. Доступ по ссылке и совместное использование

Ещё один полезный сценарий — публичная или защищённая ссылка на договор:

  • После заполнения полей договора пользователь получает URL.
  • Этот адрес можно отправить клиенту, юристу или коллеге.
  • Можно передать документ по его идентификатору или добавить дополнительный ключ доступа для безопасности.

Это особенно удобно, когда стороны договора находятся в разных городах или работают удалённо.

Рассмотрим создание ссылки на PDF-файл, защищённый ключом доступа. Для этого добавим на главный экран кнопку «Поделиться PDF по ссылке».

Добавление на главный экран кнопки «Поделиться PDF по ссылке»

И обработчик этой кнопки:

private void SharePdf(object sender, RoutedEventArgs e)
{
 UpdateParameters();
 using (var s = new MemoryStream())
 {
 report.SavePrepared(s);
 byte[] byteReport = s.ToArray();
 
 TaskMessageIdVM exportResult = tasksClient.RunTask(new RunExportReportTaskVM
 {
 SubscriptionId = SUBSCRIPTION_ID,
 InputFile = new RunInputFileVM
 {
 Type = FileKind.Report,
 Content = byteReport
 },
 Format = ExportFormat.Pdf,
 ExportParameters = new Dictionary<string, string>
 {
 { "ColorSpace", "CMYK" },
 { "JpegQuality", "100" },
 { "PrintOptimized", "true" }
 },
 OutputFile = new OutputFileVM
 {
 FileName = SUBJECT
 }
 });
 
 var pdfExport = exportsClient.GetByTaskMessageId(exportResult.MessageId);
 FileSharingKeysVM sharingKeys = exportsClient.CreateSharingKey(pdfExport.Id, new CreateFileShareVM
 {
 Permission = new FilePermissionCRUDVM
 {
 Get = FileGet.Download
 }
 });
 FileShareVM sharingKey = sharingKeys.Keys.First();
 
 string downloadUrl = HOST + DOWNLOAD_ROUTE + pdfExport.Id + "?accessKey=" + sharingKey.Key + "&preview=true";
 
 Clipboard.SetText(downloadUrl);
 MessageBox.Show("Ссылка скопирована в буфер обмена. Теперь ей можно поделиться. \n" + downloadUrl, "Ссылка на договор", MessageBoxButton.OK);
 }
}


Также, как и в предыдущем случае, сначала устанавливаются параметры отчёта, затем происходит экспорт в PDF и сохранение в МоиОтчеты Облако. Затем получаем сохранённый файл в методе GetByTaskMessageId и создаём для него ключ. При создании ключа метод CreateSharingKey принимает права, которые у него будут. Для скачивания и просмотра достаточно права FileGet.Download.

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

Копирование ссылки в буфер обмена

Открываем ссылку в браузере и видим наш договор.

Готовый договор

Теперь его с лёгкостью можно распечатать или передать коллеге или клиенту.

 


 

Заключение

Если вы уже используете FastReport .NET в своих десктопных приложениях — значит, вы заботитесь о качестве документов и удобстве пользователей. Подключив МоиОтчеты Облако, вы превращаете локальный генератор отчётов в инструмент для совместной работы, хранения и доставки документов, без необходимости разворачивать серверную инфраструктуру, проводить масштабные изменения своих приложений и организовывать безопасность.

Ускорьте свои процессы. Упростите жизнь своим пользователям. Более подробно про Облако можно почитать на странице продукта.

Приложение из этой статьи доступно по этой ссылке.

В случае, когда необходимо развернуть сервер отчётности в контуре компании, подойдут наши self-hosted решения:

  • МоиОтчеты Публикатор – легковесный сервер отчётности для малого и среднего бизнеса, не требующий поддержки серьёзных вычислительных мощностей;
  • МоиОтчеты Корпоративный Сервер – комплексное решение для крупного бизнеса с возможностью запуска в кластере Kubernetes и гибкой настройки.

Остались вопросы — свяжитесь с нами по телефону или почте sales@fastreport.ru, и мы подскажем с чего начать!

Облако Отчет Веб хранилище Корпоративный Сервер Публикатор МоиОтчеты
2 июля 2025

Как перейти из МоиОтчеты Публикатор на Корпоративный Сервер

В этом материале рассмотрим предпосылки замены Публикатора на Корпоративный сервер с пошаговым планом миграции.
27 июня 2025

Публикатор - идеальное решение для малого и среднего бизнеса

В этой статье мы подробно рассмотрим, как эти сервисы помогают решить различные запросы пользователей, чтобы вы могли выбрать подходящее решение под ваши нужды.
30 мая 2025

Открываем файлы с расширением FP3 с помощью МоиОтчеты Вьювер

МоиОтчеты Вьювер — идеальное решение для работы с файлами FP3. Он позволяет легко открывать, просматривать, печатать и экспортировать отчёты.

Не является публичной офертой
© 1998-2025 ООО «Быстрые отчеты»