Переменные окружения

Для работы с аккаунтом на клиенте доступен глобальный объект APP, через который можно получить некоторые данные в зависимости от интерфейса, в котором находится пользователь.

У объекта APP есть побратим AMOCRM, он признан устаревшим.

Оглавление

Название сущности, в которой находимся

Метод

APP.getBaseEntity()

Описание

Метод вернет строку с указанием сущности, в которой мы сейчас находимся (например, leads для сделок или customers для покупателей и тд).

Проверить факт нахождения в карточке

Метод

APP.isCard()

Описание

Метод вернет булевое значение (true/false), находимся ли мы в данный момент в карточке.

Получить код текущей страницы

Метод

APP.getWidgetsArea()

Описание

Метод вернет код текущей страницы.

Возвращаемые значения

Area Описание
dashboard Рабочий стол
leads Список сделок
leads-trash Список удаленных сделок
leads-pipeline Воронка сделок
customers Список покупателей
contacts Список контактов
customers-pipeline Воронка покупателей
customers-trash Список удаленных покупателей
contacts-trash Список удаленных контактов
companies Список компаний
mail Страницы раздела "Почта"
todo Список задач
todo-trash Список удаленных задач
todo-line Задачи в формате канбана
todo-calendar Задачи в формате календаря
events Страница "Список событий" раздела "Аналитика"
authlog Страница "Лог авторизаций" раздела "Настройки"
stats Страницы "Анализ продаж", "Сводный отчет", "Отчет по покупателям" и "Цели" раздела "Аналитика"
stats-human Страница "Отчет по сотрудникам" раздела "Аналитика"
statsCalls Страница "Звонки" раздела "Аналитика"
widget-page:{{code}} Страница виджета, добавляемая в левое меню
settings Страницы "Профиль", "Счет и оплата" и "Общие настройки" раздела "Настройки"
advanced-settings:{{code}} Расширенные настройки виджета
widgetsSettings Страница "Интеграции" раздела "Настройки"
settings-users Страница "Пользователи" раздела "Настройки"
settings-communications Страница "Коммуникации" раздела "Настройки"
catalogs Страница каталога
leads_card Карточка сделки
contacts_card Карточка контакта
companies_card Карточка компании
customers_card Карточка покупателя

У метода есть побратим APP.getV3WidgetsArea(), он признан устаревшим.

Определить язык, установленный в профиле пользователя

Свойство

APP.lang_id

Описание

В свойстве хранится буквенный код языка, установленного в профиле пользователя.

Возможные значения

Код Описание
ru Русский язык
en Английский язык
es Испанский язык
pt Португальский язык

Получить/установить значение константы

Метод

APP.constant(key, [value])

Описание

Метод вернет значение константы, переданной в key (если значение value не было передано) или установит в значение константы value. Обратите внимание, требования к публичным интеграциям запрещают переназначать системные константы.

Доступные константы

Key Описание
user информация по текущему пользователю
user_rights данные о правах текущего пользователя
account информация по аккаунту
managers пользователи аккаунта
groups группы аккаунта
task_types собственные типы задач

Системные константы, не входящие в список выше могут измениться или вообще исчезнуть.

Обращение к данным на странице

Основная часть системы реализована на фреймворке Backbone.js, поэтому для работы с переменными окружения можно почитать документацию данного фреймворка.

В любом интерфейсе системы (кроме карточек) есть объект APP.data.current_view, который хранит корневой DOM-элемент текущего интерфейса, в котором находится пользователь (APP.data.current_view.$el).

Если пользователь находится в любом интерфейсе списков (сделки, контакты/компании, покупатели, задачи) в объекте APP есть свойство APP.data.current_list это коллекция текущих элементов списка с данными из выведенных колонок. Среди этих данных всегда есть id и name (название сущности), также свойство checked (отвечает за то выделен элемент в списке или нет).

Если пользователь находится в любой карточке, то можно обращаться к свойству APP.data.current_card, через него можно получить данные по текущей карточке, в которой находится пользователь. При доступе к этому свойствунужно обязательно проверять его наличие, так как если пользователь находится не в карточке, то в свойсте будет false и при прямом доступе к какому-то дочернему значению вы получите ошибку.

Через APP.data.current_card можно получить следующие данные:

  • APP.data.current_card.id
    id текущей карточки, для новой карточки там будет 0
  • APP.data.current_card.model
    backbone-модель для доступа к заполненным данным в карточке, хранит актуальные данные на момент ввода, то есть если пользователь изменил значение поля, но еще не сохранил его, то там будет значение, которое ввел пользователь

При выкатке обновлений в amoCRM есть механизм обновления страницы, если у вашего виджета есть потребность временно остановить данное поведение, например, для телефонии такое нужно, когда пользователь находится в звонке, чтобы не прервать таким обновлением звонок пользователю, то можно воспользоваться следующим методом:

APP.sdk.setCallingStatus(true/false);

Если виджету необходимо проверить находится ли пользователь аккаунта онлайн, то можно воспользоваться методом showUserStatus:

APP.sdk.showUserStatus();

В ответ метод возвращает объект вида:

{
  "281868": {
    "id": "281868",
    "online": true
  },
  "3732339": {
    "id": "3732339",
    "online": false
  },
  "5789550": {
    "id": "5789550",
    "online": false
  }
}