Стандартные 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. В нем присутствуют методы для регистрации своих обработчиков. Подробнее об этом сервисе будет рассказано в другой статье, посвященной реализации собственных страниц.