Стандартные web-сервисы
В данном разделе рассмотрены основы работы с сервисами, а также основные web-сервисы, доступные для использования в web-расширениях.
Сервисы представляют основной API взаимодействия с системой в части функциональности, не связанной с конкретными элементами управления. Они позволяют получить информацию о текущем контексте выполнения, выполнять запросы к серверу, показывать модальные окна, взаимодействовать с разметкой и использовать множество других функций системы.
Сервисы информации о текущей карточке/строке/разметке
Информацию о текущей разметке можно получить с помощью следующих сервисов:
-
$CardId— идентификатор текущей карточки текущей разметки. -
$RowId— идентификатор текущей строки текущей разметки (если открыта разметка строки, а не карточки) -
$CardTimestamp—timestampтекущей карточки текущей разметки. -
$CardInfo— дополнительная информация о текущей карточке, текущей разметки. Например, там можно найти тип и вид карточки, ее состояние и другие данные. -
$RowInfo— дополнительная информация о текущей строке, текущей разметки (если открыта разметка строки). -
$LayoutInfo— дополнительная информация о текущей разметке. -
$Layout— экземпляр текущей разметки. Содержит множество различных методов, среди которых сохранение (save), перезагрузка (reloadFromServer), смены состояния карточки (changeState) и другие. -
$ControlStore— предоставляет доступ к элементам управления на разметке по имени через методыgetиtryGet. Первый метод генерирует ошибку, в случае отсутствия элемента управления с таким именем, второй просто возвращаетnull. -
$EditOperationStore— позволяет получить информацию о доступности операции редактирования.
Сервисы информации об окружении
Информацию в целом о текущем контексте работы приложения можно с помощью следующих сервисов:
-
$CurrentEmployeeId— идентификатор текущего пользователя. -
$CurrentEmployeeAccountName— имя учетной записи текущего пользователя. -
$CurrentEmployee— расширенная информация о текущем пользователе. Состав полей можно найти в описании типаCurrentEmployeeInfo. -
$ApplicationTimestamp— строка, изменяющаяся при перезапуске веб-сервиса. -
$ApplicationSettings— системные настройки (см.GenModels.ApplicationSettings). -
$Locale— двухбуквенное обозначение текущей выбранной локализации веб-клиента (например:ru,en). -
$CurrentFolder— информация о текущей открытой папке (см.ICurrentFolderService). -
$DeviceType— обозначение текущего выбранного типа устройства (компьютер/телефон/планшет). См.GenModels.DeviceType.
Сервисы для выполнения запросов
Выполнение запросов к серверу осуществляется через сервис $RequestManager. Сформировать URL запроса поможет сервис $UrlResolver.
Подробнее см. "Сервисы для выполнения запросов".
Сервисы для отображения сообщений
Показать на экране простое информационное сообщение можно с помощью сервиса $MessageWindow. Основные методы этого сервиса: showInfo, showWarning, showError. Они различаются только цветом оформления и отображают диалоговое окно.
Подробнее см. "Сервисы для выполнения запросов".
Сервис навигации
Для перехода между страницами существует сервис $RouterNavigation. Он предоставляет следующие методы:
export interface IRouterNavigation {
refresh(): Promise<void>;
goTo(route: string, refresh?: boolean): Promise<void>;
openUrl(url: string, mode: GenModels.OpenMode): Promise<void>;
back(): Promise<void>;
}
-
refresh— перезагружает содержимое текущей страницы. Например, если открыта карточка, то перезагружается разметка карточки. -
goTo— открывает страницу по указанному хеш-адресу. Для получения корректного адреса можно использовать следующие функции:-
getCardViewRoute,getCardEditRoute,getCardCreateRoute- для отображения разметки карточки. -
makeFolderUrl- для открытия папки -
getViewDirectoryRoute- для открытия справочника -
getRowEditRoute,getRowViewRoute,getRowCreateRoute— для отображения разметок строки. Опциональный параметр refresh определяет поведение, в случае если переданный ардес совпадает с текущим. Еслиrefresh = true, то в такой ситуацию будет произведено обновление страницы.
-
-
openUrl— расширение методаgoTo, добавляющее возможность открывать адрес в новой вкладке или новом окне (параметрmode). При открытии в текущей вкладке работает также, какgoTo. -
back— возврат на предыдущую страницу.
Настройка роутинга осуществляется с помощью сервиса $Router. В нем присутствуют методы для регистрации своих обработчиков. Подробнее об этом сервисе будет рассказано в другой статье, посвященной реализации собственных страниц.