- API
- Типы данных
- Введение [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
- Работа с типами
- Глобальный контекст и изоляция
- Работа с приложениями
- Массовые действия с элементами приложения
- Работа с внешними сервисами
- Скрипты в виджетах
- Веб компоненты
- Права доступа
- Начало работы с процессами
- Начало работы с подписями
- Начало работы с предпросмотром файлов
- Начало работы с организационной структурой
- Начало работы с пользователями и группами
- Начало работы с типом данных Таблица
- Начало работы с типом данных Категория
- Динамическое вычисление типа события
- Решение типовых задач
-
API
- Типы объектов
-
Типы данных
- AccountType
- DynamicFieldType
- EmailType
- NotificationType
- OrganisationStructureItemType
- PhoneType
- ReplacementType
- ServiceStatus
- UserStatus
- WatermarkPages
- WatermarkPosition
- AccountFieldTyped
- AccountFieldVoid
- ActiveNotification
- ApplicationField
- ApplicationTypeField
- ApplicationTypeFieldData
- Cell
- ClientEventField
- CookieOptions
- DatetimeFieldData
- DynamicBindingField
- DynamicBindingFields
- EnumField
- ErrorArgs
- ErrorObject
- FileField
- FloatFieldData
- GroupStatusField
- HttpResponse
- ImageField
- Language
- MailMessageAddress
- MailMessageAttachment
- MoneyFieldData
- Navigator
- NotificationOptions
- Page
- ParseSpreadsheetOptions
- ParseSpreadsheetResponse
- RefItem
- RefItemField
- RefItemFieldData
- RefItemFilterClosure
- ReportField
- ReportRef
- Role
- RoleField
- Row
- ServiceStatusInfo
- StaticApplicationFieldData
- StatusField
- TAccount
- TApplicationType
- TClientEvent
- TDate
- TDatetime
- TDuration
- TEmail
- TEnum
- TFullName
- TMoney
- TPhone
- TReport
- TStatus
- TTable
- TTime
- TTimezone
- TTimezones
- TableField
- UserField
- UserFieldData
- ValidationResult
- Watermark
- WidgetRefWithValues
- ReplacementTypeEnumBase
- RoleType
- TApplication
- TBoolean
- TCategory
- TDirectory
- TFile
- TFloat
- TImage
- TJSON
- TLink
- TOAuth2
- TRole
- TString
- TUser
- TableCellChangeDoneEvent
- TableCellChangeDoneEvents
- TableCellChangeEvent
- TableCellChangeEvents
- TableRowDeleteEvent
- TableRowDeleteEvents
- TableRowMoveEvent
- TableRowMoveEvents
- Глобальные константы
- Работа с приложениями
- Веб-запросы
- Права доступа
- Документооборот
- Линии
- Виджет «Код»
- Подписи
- Рабочие календари
- Интеграция с IP-телефонией
- Интеграция с сервисами рассылок
- Метаданные конфигурации компании
- Метаданные ленты
Типы данных
Подробное описание читайте в статье про типы данных.
Type aliases
ReplacementTypeEnumBase
Типы замещений
Information — информирование;
Reassign — переназначение задач;
Full — полная передача прав.
RoleType
Типы объектов в поле типа «Роль»
TApplication
Ссылка на элемент приложения
TBoolean
Выбор «да/нет»
Подробнее читайте на MDN.
TCategory
Категория (папка)
Ссылка на категорию элементов приложения. В структуре файлов и в иерархическом справочнике категория — это папка.
TDirectory
Папка
TFile
Ссылка на файл
TFloat
Число
Подробнее читайте на MDN.
TImage
Изображение
TJSON
Произвольный тип (JSON)
Тип предназначен для передачи или хранения произвольных данных в контексте:
Context.data.json = { 'my-string': 'string data', 'my-num': 1234, 'my-bool': true, 'my-array': [ 'string', 999, false ], 'my-object': { // Вложенный объект также возможен } };Обратите внимание, что при использовании этого типа в сериализуемом контексте (например, в серверном контексте виджета) в этом значении могут храниться только примитивные типы данных JSON.
Однако вполне возможно, в частности, использовать этот тип для передачи произвольных значений между виджетами на клиенте с использованием привязки входящих переменных.
// Виджет 1 - внешний async function onInit() { Context.data.json = { onSaveCallback: async () => await saveFunction() // Записываем ссылку на функцию }; } async function saveFunction() { // Логика обработки события } // Виджет 2 - внутренний async function onSaveClick() { await Context.data.in_json?.onSaveCallback?.(); }TLink
Ссылка (URL)
Используется как обычная строка. Не проходит валидацию.
Context.data.site_url = 'https://elma365.com';TOAuth2
Ссылка на OAuth2
TRole
Ссылка на роль
TString
Строка
Подробнее читайте на MDN.
TUser
Пользователь
TableCellChangeDoneEvent
Событие окончания изменения ячейки в таблице
TableCellChangeDoneEvents
Событие окончания изменения ячеек в таблице
Представляет собой массив объектов со следующими полями:
currentValue— текущее значение ячейки;rootRowIndex— индекс строки корневой таблицы;rootColumnCode— код колонки корневой таблицы;subTableRowIndex— индекс строки вложенной таблицы;subTableColumnCode— код колонки вложенной таблицы.Пример использования:
const table = Context.data.clients_table; for (const event of events) { // Проверка, что изменения произошли во вложенной таблице if (event.subTableColumnCode) { // Проверка, что изменения были в колонке с кодом `client` if (event.subTableColumnCode === 'client') { const clientRef = event.currentValue; // тип `UserItemRef` const clientApp = await clientRef.fetch(); // тип `UserItem` // Изменение значения ячейки в колонке `client_phone` в той же строке вложенной таблицы // на основе нового значения ячейки `client` const rootRow = table[event.rootRowIndex]; const subTable = rootRow[event.rootColumnCode]; const subTableRow = subTable[event.subTableRowIndex]; subTableRow.client_phone = clientApp.data.mobilePhone; return; } } else { // Изменения произошли в корневой таблице // ... } } Context.data.clients_table = table;TableCellChangeEvent
Событие изменения ячейки в таблице
TableCellChangeEvents
Событие изменения ячеек в таблице
Представляет собой массив объектов со следующими полями:
previousValue— предыдущее значение ячейки;currentValue— текущее значение ячейки;rootRowIndex— индекс строки корневой таблицы;rootColumnCode— код колонки корневой таблицы;subTableRowIndex— индекс строки вложенной таблицы;subTableColumnCode— код колонки вложенной таблицы.Пример использования:
const table = Context.data.clients_table; for (const event of events) { // Проверка, что изменения произошли во вложенной таблице if (event.subTableColumnCode) { // Проверка, что изменения были в колонке с кодом `client` if (event.subTableColumnCode === 'client') { const clientRef = event.currentValue; // тип `UserItemRef` const clientApp = await clientRef.fetch(); // тип `UserItem` // Изменение значения ячейки в колонке `client_phone` в той же строке вложенной таблицы // на основе нового значения ячейки `client` const rootRow = table[event.rootRowIndex]; const subTable = rootRow[event.rootColumnCode]; const subTableRow = subTable[event.subTableRowIndex]; subTableRow.client_phone = clientApp.data.mobilePhone; continue; } } else { // Изменения произошли в корневой таблице // ... } } Context.data.clients_table = table;TableRowDeleteEvent
Событие удаления строки в таблице
TableRowDeleteEvents
Событие удаления строк в таблице
Представляет собой массив объектов со следующими полями:
row— удалённая строка;currentValue— текущее значение ячейки;rootRowIndex— индекс строки корневой таблицы;rootColumnCode— код колонки корневой таблицы;subTableRowIndex— индекс строки вложенной таблицы.Пример использования:
for (const event of events) { // Проверка, что изменения произошли во вложенной таблице if (event.rootColumnCode) { // Проверка, что изменения были в колонке с кодом `products_table` if (event.rootColumnCode === 'products_table') { const deletedRow = event.row; const productRef = deletedRow.product; const productApp = await productRef.fetch(); // Далее выполняем стороннюю логику на основе данных удалённой строки console.log(`Строка с продуктом ${productApp.data.__name} была удалена!`); continue; } } else { // Изменения произошли в корневой таблице // ... } }TableRowMoveEvent
Событие перемещения строки в таблице
TableRowMoveEvents
Событие перемещения строк в таблице
Представляет собой массив объектов со следующими полями:
row— перемещённая строка;oldRootRowIndex— предыдущий индекс строки корневой таблицы;newRootRowIndex— новый индекс строки корневой таблицы;rootColumnCode— код колонки корневой таблицы;oldSubTableRowIndex— предыдущий индекс строки вложенной таблицы;newSubTableRowIndex— новый индекс строки вложенной таблицы.Пример использования:
const table = Context.data.clients_table; for (const event of events) { // Проверка, что изменения произошли во вложенной таблице if (event.rootColumnCode) { // Проверка, что изменения были в колонке с кодом `products_table` if (event.rootColumnCode === 'products_table') { const movedRow = event.row; const productRef = movedRow.product; const productApp = await productRef.fetch(); // Далее выполняем стороннюю логику на основе данных перемещённой строки console.log(`Строка с продуктом ${productApp.data.__name} была перемещена!`); continue; } } else { // Изменения произошли в корневой таблице // ... } } Context.data.clients_table = table;Enumerations
Interfaces
Type aliases
Ваш отзыв успешно отправлен!
Спасибо за обратную связь.