Загрузка данных для виджета дашборда
Для настройки загрузки данных настройте поля виджета runtimeConfig.sourceConfigGetter и designtimeConfig.sourceConfigGetter. Настройка sourceConfigGetter
подробно описана в статье "Загрузка данных для плеера/конструктора фреймов".
Организация загрузки для виджетов дашборда:
runtimeConfig.sourceConfigGetter
- загружает настоящие данные с использованием бизнес-логики.designtimeConfig.sourceConfigGetter
- возвращает демо-данные без использования бизнес-логики.
Для методов загрузки данных для виджета есть ограничения по времени выполения: на сервере - 4с, на клиенте - 30с.
Обработка ошибки загрузки данных
В случае возникновения ошибки, при загрузке данных, инстанс ошибки придет в виджет вместо данных. Разработчик виджета должен обработать эту ошибку.
Размеры виджета
В sourceConfigGetter вторым парметром приходят свойства виджета. Для виджетов дашборда в свойства добавляются размеры виджета:
- widgetWidth:
number
- ширина виджета - widgetHeight:
number
- высота виджета
Фильтрация данных
В sourceConfigGetter третьим параметром приходит фильтр. Для виджетов дашбордов есть параметры фильтрации, которые декларируется платформой и должны поддерживаться всеми виджетами, которые могут обработать эти фильтры.
Платформенные фильтры описаны в интерфейсе IDashboardWidgetFilter:
- organization:
string
- Id выбранной организации - date:
Date
- Дата начала периода - dateTo:
Date
- Дата окончания периода - employees:
number
- Id выбранного сотрудника/отдела
Интерфейс IDashboardWidgetFilter находится в библиотеке Dashboard/interface.
Если вам необходимо получить текущее значение фильтра, например в обработчике titleClickCallback, вы можете воспользоваться классом filterController из библиотеки Dashboard/Loader.
Пример получения текущего значения фильтра:
// TypeScript
import {filterController} from 'Dashboard/Loader';
export default function titleClickCallback(): void {
const filter = filterController.getFilter();
...
}
Локальные фильтры и сортировка
У виджетов могут присутствовать собственные фильтры или сортировки. Например, фильтр по дате в виджете с графиком или сортировка в шапке таблицы.


Локальные фильтры и сортировки виджет сохраняет и читает самостоятельно. Чтение данных должно находиться в предзагрузке данных. Хранить данные нужно в пользовательских параметрах по ключу <my-parameter-name>_<widgetId>.
widgetId - идентификатор инстанса виджета. Приходит первым параметром в sourceConfigGetter
и передается в опциях в шаблон виджета.
Пример идентификатора: sorting_73e8d99a-86b3-467c-8087-844350e82a96
, где:
- sorting - название параметра;
- 73e8d99a-86b3-467c-8087-844350e82a96 - идентификатор инстанса виджета.
// TypeScript
import {USER} from 'ParametersWebAPI/Scope';
function sourceConfigGetter(widgetId: string): object {
const config = {
type: 'custom',
loadDataMethod(): Promise<number> {
const sortingParam = 'sorting_' + widgetId;
return USER.load([sortingParam]).then((result) => {
const sorting = result.get('sortingParam');
...
});
}
};
return {
value: config
};
}
export default sourceConfigGetter;