﻿# Настройки отображения данных СПАРК на форме приложения

> [HTML Version](display-spark-data.html)

Используя бизнес-решение Интеграция СПАРК, вы можете получать данные о компании или физическом лице, например: расширенную справку, её статус, отчёт о рисках, информацию об изменениях и т. д. 

Решение включает раздел **СПАРК**, который позволяет пользователям запрашивать информацию через преднастроенные бизнес-процессы. Полученная информация отображается в карточках запросов в ELMA365.

Интеграция с СПАРК легко внедряется в другие разделы системы, чтобы сотрудники запрашивали нужную информацию из любого приложения. Для этого выполняются дополнительные настройки: моделируются пользовательские бизнес-процессы, изменяется форма приложения, с которым будут работать сотрудники.  

Например, пользователи создают запись в приложении **Компании** и запускают процесс проверки контрагента в СПАРК. В результате загрузятся подробные данные о её реквизитах, структуре, актуальных совладельцах, отчёт о рисках, а также включится мониторинг изменений. Для получения списка изменений по компании и отключения мониторинга сотрудники запускают процессы с её карточки.

Данные из СПАРК отображаются в компании и сгруппированы на отдельных вкладках.

**(spark-9.png)**

Рассмотрим необходимые настройки для использования решения таким образом.

## Настройки пользовательских процессов с запросами в СПАРК 

Чтобы пользователи могли запрашивать данные из СПАРК в приложении **Компании**, необходимо выполнить предварительные настройки:

1. Создайте пользовательские бизнес-процессы на уровне приложения **Компании** и добавьте  в них специальные блоки решения Интеграция СПАРК, например: **Проверка компании в СПАРК**, **Получение событий мониторинга**, **Выключение мониторинга изменений**. 

2. Чтобы в процессе запрашивать данные по определённой компании и загружать полученную информацию в приложение, необходимо настроить входные и выходные атрибуты используемого блока. Для этого добавьте в контекст приложения **Компании** переменные, совпадающие по типу данных и названию с этими атрибутами. Список переменных для настройки каждого блока описаны в статье [«Входные и Выходные атрибуты блоков решения „Интеграция СПАРК“»](spark-blocks-input-output-parameters.md).

3. Чтобы пользователи запускали настроенные процессы из элемента приложения **Компании**, [добавьте кнопки в его карточки](button-types-settings.md#start-proccess-button). 

## Настройка формы приложения

После моделирования процессов настройте форму приложения **Компании**, чтобы пользователи просматривали на ней результат выполнения запросов в СПАРК. Для удобства данные по каждому запросу группируются в карточке на отдельных вкладках. Для этого выполните следующие действия:

1. Откройте форму просмотра приложения **Компании** в [дизайнере интерфейсов](interface_designer.md).

2. На вкладке **Компания** можно разместить основную информация о названии, адресах и контактных данных, полученную при запросе расширенной справки по контрагенту. Также можно добавить ссылку на созданный в ходе процесса элемент приложения **Расширенная справка по российской компании**. Для этого на правой панели дизайнера перейдите на вкладку **Свойства**. Перетащите необходимые переменные из контекста приложения на поле для моделирования.  

3. Создайте вкладки для отображения данных по другим запросам в сервис, например: **Регистрационные данные**, **Данные по мониторингу**, **Отчет СПАРК-Риски**, **Структура компании**, **Совладельцы**, **События мониторинга по компании**. Для этого на верхней панели поля для моделирования нажмите значок плюса и добавьте виджет [Вкладки](tabs.md).

**(spark-10.png)**

4. На вкладке **Регистрационные данные** отобразите полный перечень реквизитов компании. Для этого с панели **Свойства** перетащите на вкладку переменные из контекста приложения, в которые записываются: ИНН, ОГРН, КПП и т. д. Информацию можно расположить компактно, например, добавив на форму виджет [Колонки](columns.md) и разместив свойства в нём.

5. На вкладку **Данные по мониторингу** добавлены ссылки на элементы приложений из раздела **СПАРК**, где хранятся запросы на включение и выключение отслеживания изменений по компании. Для этого в дизайнере интерфейсов с панели **Свойства** перетащите переменные типа [Приложение](360009707032.md#app), в которых указаны приложения **Включение/Выключение мониторинга по компании**. 

6. Файл отчёта СПАРК-Риски в формате **.pdf** запрашивается из сервиса. В карточке компании на вкладке **Отчет СПАРК-Риски** отобразим файл и добавим возможность просматривать его, не загружая на компьютер:

**(spark-11.png)**

Перейдите на вкладку **Отчет СПАРК-Риски**.** **С панели **Свойства** перетащите на поле для моделирования переменную типа [Файлы](360009707032.md#file_type), в которую записывается файл отчёта. Разместите на форме виджет [Просмотр файла](view_file_widget.md). В его настройках укажите добавленную переменную с файлом отчёта. 

7. Запрос о филиалах и дочерних компаниях возвращает из СПАРК данные в виде сериализованного ответа, т. е. строкой. В карточке на вкладке **Структура компании** можно настроить табличное отображение информации о дочерних компаниях и филиалах: 

**(spark-12.png)**Для этого:

1. в дизайнере интерфейсов перейдите на вкладку **Контекст **и создайте свойства типа **Таблица**: для отображения дочерних компаний и филиалов по данным из родительской компании, Росстата и ЕГРЮЛ.

**(spark-13.png)**

2. В добавленных свойствах добавьте колонки таблицы для отображения: ID дочерней компании в СПАРК, её краткого и полного наименования, реквизитов и даты обновления данных в сервисе. 

3. Откройте вкладку **Скрипт**. Составьте скрипты для разбора строки с ответом из СПАРК, извлечения из неё данных и добавления их в настроенные таблицы. В нашем примере скрипт будет запускаться при открытии элемента приложения с помощью функции `onInit()`.

Пример скрипта для заполнения таблицы дочерних компаний по данным Росстата: 

````
async function onInit(): Promise<void> \{  
   await initTables(Context.data.dochernie\_kompanii\_po\_dannym\_rosstata\_s\_o);  
\}  
  
interface company \{  
    shortName: string,  
    fullName?: string,  
    inn?: string | undefined,  
    ogrn?: string | undefined,  
    sparkId?: string | undefined,  
    actualDate: string,  
\}  
  
function parse(jsonString: string): company\[\] \{  
    let json = JSON.parse(jsonString);  
    let companies: company\[\] = \[\];  
    for (let company of json.companies) \{  
        companies.push(\{  
            shortName: company.name,  
            fullName: company.fullName,  
            inn: company.inn,  
            ogrn: company.ogrn,  
            sparkId: company.sparkId,  
            actualDate: company.actualDate,  
        \})  
    \}  
    return companies  
\}  
  
async function initTables(): Promise<void> \{  
    // Дочерние компании по данным Росстата (с.о.)  
    if (Context.data.dochernie\_kompanii\_po\_dannym\_rosstata\_s\_o) \{  
        let companies = parse(Context.data.dochernie\_kompanii\_po\_dannym\_rosstata\_s\_o)  
        for (let company of companies) \{  
            let row = ViewContext.data.rosstatChildTable\!.insert();  
            row.actual\_date = company.actualDate;  
            row.fullName = company.fullName\!;  
            row.inn = company.inn\!;  
            row.name = company.shortName;  
            row.ogrn = company.ogrn\!;  
            row.spark\_id = company.sparkId\!;  
        \}  
        ViewContext.data.rosstatChildTable = ViewContext.data.rosstatChildTable;  
    \}
````

8. ````
Информация об актуальных совладельцах компании поступает в ELMA365 как данные о структуре — в виде строчного сериализованного ответа. В нашем примере на вкладке **Совладельцы** показывается таблица с их именами. Для настройки выполняются такие же действия, как для вкладки** Структура компании**.

9. На вкладке **События мониторинга компании** добавлена ссылка на элементы приложения **Получение списка событий мониторинга по компании** из раздела **СПАРК**. Для этого в дизайнере интерфейсов с панели **Свойства** перетащите на вкладку переменную типа **Приложение**, которая ссылается на соответствующее приложение.  

В карточку компании можно добавить виджеты для наглядного отображения индексов риска и статуса контрагента. Показатели будут отображаться с цветовыми индикаторами, по которым легко понять благонадёжность компании. 

Кроме того, на форме создания компании можно разместить виджет поиска контрагента в базе сервиса по одному из его реквизитов. Пользователи смогут заполнить одно значение, а остальные данные загрузятся из СПАРК. 

Подробнее о виджетах читайте в статье [«Виджеты решения „Интеграция СПАРК“ и их настройка»](spark-widgets-settings.md).