Creatio development guide
PDF
Это документация Creatio версии 7.16.0. Мы рекомендуем использовать новую версию документации.

Базовая схема, методы, сообщения

Glossary Item Box

Общие сведения

Детали предназначены для отображения дополнительных данных для основного объекта раздела. Детали раздела отображаются на вкладках страницы раздела в контейнере вкладок.

В зависимости от метода ввода и отображения данных различают следующие типы деталей:

  • деталь с полями редактирования;
  • деталь со страницей добавления;
  • деталь с редактируемым реестром;
  • деталь с выбором из справочника.

Подробное описание деталей в зависимости от их типа представлено в статье "Деталь".

Создание детали

Для того чтобы мастер деталей мог корректно работать с созданной разработчиком деталью, ее необходимо зарегистрировать. Для регистрации детали необходимо в таблицу SysDetail добавить запись с указанием заголовка детали, идентификатора схемы детали DetailSchemaUid (колонка UId таблицы SysSchema) и идентификатора схемы объекта детали EntitySchemaUId (колонка UId таблицы SysSchema).

Подробно процесс создания деталей разных типов изложен в статье "Работа с деталями".

Базовая схема детали BaseDetailV2

Все схемы деталей должны быть наследниками базовой схемы детали BaseDetailV2. В схеме реализована базовая логика инициализации данных и общения со страницей редактирования.

Класс базовой схемы детали содержит такие свойства:

Сообщения BaseDetailV2

Сообщения предназначены для общения детали со страницей редактирования. Полный перечень сообщений, их режим вещания и направление приведены в таблице 1.

Табл. 1. — Сообщения базовой детали

Название Режим Направление Описание
GetCardState Адресное Публикация Возвращает состояние страницы редактирования.
SaveRecord Адресное Публикация Сообщает странице редактирования о необходимости сохранить данные.
DetailChanged Адресное Публикация Сообщает странице редактирования об изменении данных детали.
UpdateDetail Адресное Подписка Подписка на обновление страницы редактирования.
OpenCard Адресное Публикация Открывает страницу редактирования.

Виды режимов сообщений определены в перечислении Terrasoft.core.enums.MessageMode, а направление сообщений — в перечислении Terrasoft.core.enums.MessageDirectionType. Подробнее о них можно узнать из "Библиотеки классов клиентской части ядра платформы".

Атрибуты BaseDetailV2

Свойство attributes содержит атрибуты модели представления детали. Атрибуты, определенные в классе базовой детали, представлены в таблице 2.

Табл. 2. — Атрибуты базовой детали

CanAdd
BOOLEAN

Признак возможности добавления данных.


CanEdit
BOOLEAN

Признак возможности редактирования данных.


CanDelete
BOOLEAN

Признак возможности удаления данных.


Collection
COLLECTION

Коллекция данных детали.


Filter
CUSTOM_OBJECT

Фильтр детали. Используется для фильтрации данных в детали.


DetailColumnName
STRING

Имя колонки, по которой выполняется фильтрация.


MasterRecordId
GUID

Значение ключа родительской записи.


IsDetailCollapsed
BOOLEAN

Признак свернутости детали.


DefaultValues
CUSTOM_OBJECT

Значения колонок модели по умолчанию.


Caption
STRING

Заголовок детали.


Возможные типы данных атрибутов представлены перечислением Terrasoft.DataValueType. Подробнее о типах данных можно узнать из "Библиотеки классов клиентской части ядра платформы".

Методы BaseDetailV2

Методы, определенные в классе базовой детали, представлены в таблице 3.

Табл. 3. — Методы базовой детали

init

Инициализирует страницу детали.

Параметры:

  • {Function} callback — функция обратного вызова;
  • {Object} scope — контекст выполнения метода.

initProfile

Инициализирует профиль схемы. По умолчанию содержит значение Terrasoft.emptyFn.


initDefaultCaption

Устанавливает заголовок детали по умолчанию.


initDetailOptions

Инициализирует коллекцию данных представления реестра.


subscribeSandboxEvents

Подписывается на сообщения, необходимые для работы детали.


getUpdateDetailSandboxTags

Генерирует массив тегов для сообщения UpdateDetail.


updateDetail

Обновляет деталь согласно переданным параметрам. По умолчанию содержит значение Terrasoft.emptyFn.

Параметры:

  • {Object} config — конфигурационный объект, содержащий свойства детали.

initData

Инициализирует коллекцию данных представления реестра.

Параметры:

  • {Function} callback — функция обратного вызова;
  • {Object} scope — контекст выполнения метода.

getEditPageName

Возвращает имя страницы редактирования в зависимости от типа выбранной записи (при редактировании) или от выбранного типа записи для добавления (при добавлении).


onDetailCollapsedChanged

Обработчик сворачивания или разворачивания детали.

Параметры:

  • {Boolean} isCollapsed — признак свернутой/развернутой детали.

getToolsVisible

Возвращает значение свернутости детали.


getDetailInfo

Публикует сообщение для получения информации о детали.


Массив модификаций BaseDetailV2

В массиве модификаций diff базовой детали определен только базовый контейнер для представления детали:

diff: /**SCHEMA_DIFF*/[
  // Базовый контейнер для представления детали.
  {
     "operation": "insert",
     "name": "Detail",
     "values": {...}
  }
]/**SCHEMA_DIFF*/

Базовый класс детали с реестром BaseGridDetailV2

Является наследником BaseDetailV2. Все детали с реестром должны быть наследниками BaseGridDetailV2. В схеме BaseGridDetailV2 реализована базовая логика работы с реестром (загрузка, фильтрация), удаление, добавление и редактирование записей на детали.

Процесс создания пользовательской детали с реестром подробно изложен в статье "Создание детали с редактируемым реестром".

Сообщения BaseGridDetailV2

Основные сообщения схемы BaseGridDetailV2 приведены в таблице 4.

Табл. 4. — Сообщения базовой детали с реестром

Название Режим Направление Описание
getCardInfo Адресное Подписка Возвращает информацию о странице редактирования — значения по умолчанию, название колонки типизации, значение колонки типизации.
CardSaved Широковещательное Подписка Обрабатывает сообщение сохранения страницы редактирования.
UpdateFilter Широковещательное Подписка Обновляет фильтры в детали.
GetColumnsValues Адресное Публикация

Получает значения колонок модели страницы редактирования.

Виды режимов сообщений определены в перечислении Terrasoft.core.enums.MessageMode, а направление сообщений — в перечислении Terrasoft.core.enums.MessageDirectionType. Подробнее о них можно узнать из "Библиотеки классов клиентской части ядра платформы".

Атрибуты BaseGridDetailV2

Основные атрибуты класса BaseGridDetailV2 приведены в таблице 5.

Табл. 5. — Атрибуты базовой детали с реестром

ActiveRow
GUID

Значение первичной колонки активной записи реестра.


IsGridEmpty
BOOLEAN

Признак того, что реестр пуст.


MultiSelect
BOOLEAN

Признак, разрешен ли множественный выбор.


SelectedRows
COLLECTION

Массив выбранных записей.


RowCount
INTEGER

Количество строк в реестре.


IsPageable
BOOLEAN

Признак активности постраничной загрузки.


SortColumnIndex
INTEGER

Индекс колонки сортировки.


CardState
TEXT

Режим открытия страницы редактирования записи.


EditPageUId
GUID

Уникальный идентификатор страницы редактирования.


ToolsButtonMenu
COLLECTION

Коллекция выпадающего списка функциональной кнопки.


DetailFilters
COLLECTION

Коллекция фильтров детали.


IsDetailWizardAvailable
BOOLEAN

Признак, что мастер детали доступен.


Возможные типы данных атрибутов представлены перечислением Terrasoft.DataValueType. Подробнее о типах данных детали можно узнать из "Библиотеки классов клиентской части ядра платформы".

Миксины BaseGridDetailV2

Основные миксины, используемые классом BaseGridDetailV2, приведены в таблице 6.

Табл. 6. — Миксины базовой детали с реестром

GridUtilities
Terrasoft.GridUtilities

Миксин для работы с реестром.


WizardUtilities
Terrasoft.WizardUtilities

Миксин для работы с мастером деталей.


Подробнее миксин GridUtilities описан ниже.

Методы BaseGridDetailV2

Методы, используемые классом BaseGridDetailV2, приведены в таблице 7.

Табл. 7. — Методы базовой детали с реестром

init

Замещает метод класса BaseDetailV2. Вызывает логику метода init родителя, регистрирует сообщения, инициализирует фильтры.

Параметры:

  • {Function} callback — функция обратного вызова;
  • {Object} scope — контекст выполнения метода.

initData

Замещение метода класса BaseDetailV2. Вызывает логику метода initData родительского класса, инициализирует коллекцию данных представления рееестра.

Параметры:

  • {Function} callback — функция обратного вызова;
  • {Object} scope — контекст выполнения метода.

loadGridData

Выполняет загрузку данных реестра.


initGridData

Выполняет инициализацию значений по умолчанию для работы со списком.


getGridData

Возвращает коллекцию реестра.


getFilters

Возвращает коллекцию фильтров детали.


getActiveRow

Возвращает идентификатор выбранной записи в реестре.


addRecord

Добавляет новую запись в реестр. Сохраняет страницу редактирования в случае необходимости.

Параметры:

  • {String} editPageUId — идентификатор типизированной страницы редактирования.

copyRecord

Копирует запись и открывает страницу редактирования.

Параметры:

  • {String} editPageUId — идентификатор типизированной страницы редактирования.

editRecord

Открывает страницу редактирования выбранной записи.

Параметры:

  • {Object} record — модель записи для редактирования.

subscribeSandboxEvents

Подписывается на сообщения, необходимые для работы детали.


updateDetail

Замещение метода класса BaseDetailV2. Вызывает логику метода updateDetail родителя, обновляет деталь.

Параметры:

  • {Object} config — конфигурационный объект, содержащий свойства детали.

openCard

Открывает страницу редактирования.

Параметры:

  • {String} operation — тип операции (добавление/редактирование);
  • {String} typeColumnValue — значение колонки типизации записи;
  • {String} recordId — идентификатор записи.

onCardSaved

Обрабатывает событие сохранения страницы редактирования, в которой находится деталь.


addToolsButtonMenuItems

Добавляет элементы в коллекцию выпадающего списка функциональной кнопки.

Параметры:

  • {Terrasoft.BaseViewModelCollection} toolsButtonMenu — коллекция выпадающего списка функциональной кнопки.

initDetailFilterCollection

Инициализирует фильтр детали.


setFilter

Устанавливает значение фильтров детали.

Параметры:

  • {String} key — тип фильтров;
  • {Object} value — значение фильтров.

loadQuickFilter

Загружает быстрый фильтр.

Параметры:

  • {Object} config — параметры загрузки модуля фильтров.

destroy

Очищает данные, выгружает деталь.


Массив модификаций BaseGridDetailV2

В массиве модификаций diff базовой детали определен только базовый контейнер для представления детали:

diff: /**SCHEMA_DIFF*/ [
  {
    // Элемент для отображения реестра.
    "operation": "insert",
    "name": "DataGrid",
    "parentName": "Detail",
    "propertyName": "items",
    "values": {
      "itemType": Terrasoft.ViewItemType.GRID,
      …
    }
  },
  {
    // Кнопка дозагрузки реестра.
    "operation": "insert",
    "parentName": "Detail",
    "propertyName": "items",
    "name": "loadMore",
    "values": {
      "itemType": Terrasoft.ViewItemType.BUTTON,
      …
    }
  },
  {
    // Кнопка добавления записи.
    "operation": "insert",
    "name": "AddRecordButton",
    "parentName": "Detail",
    "propertyName": "tools",
    "values": {
      "itemType": Terrasoft.ViewItemType.BUTTON,
      …
    }
  },
  {
    // Кнопка добавления типизированной записи.
    "operation": "insert",
    "name": "AddTypedRecordButton",
    "parentName": "Detail",
    "propertyName": "tools",
    "values": {
      "itemType": Terrasoft.ViewItemType.BUTTON,
      …
    }
  },
  {
    // Меню детали.
    "operation": "insert",
    "name": "ToolsButton",
    "parentName": "Detail",
    "propertyName": "tools",
    "values": {
      "itemType": Terrasoft.ViewItemType.BUTTON,
      …
    }
  }
] /**SCHEMA_DIFF*/

Миксин GridUtilitiesV2

GridUtilitiesV2 — миксин, реализующий логику работы с элементом управления "реестр". В классе Terrasoft.configuration.mixins.GridUtilities реализованы:

  1. Подписка на сообщения.
  2. Загрузка данных.
  3. Работа с реестром:
    • выбор записей (поиск активных);
    • добавление, удаление, редактирование записей;
    • установка фильтров;
    • сортировка;
    • экспорт в файл;
    • проверка прав доступа к записям реестра.

Методы GridUtilitiesV2

Основные методы класса GridUtilitiesV2 представлены в таблице 8.

Табл. 8. — Методы базовой детали с реестром

init

Осуществляет подписку на события.


destroy

Очищает подписки на события.


loadGridData

Выполняет загрузку данных реестра.


beforeLoadGridData

Подготавливает модель представления перед загрузкой данных.


afterLoadGridData

Подготавливает модель представления после загрузки данных.


onGridDataLoaded

Обработчик события загрузки данных. Выполняется, когда сервер возвращает данные.

Параметры:

  • {Object} response — результат выборки данных из БД.

addItemsToGridData

Добавляет коллекцию новых элементов в коллекцию реестра.

Параметры:

  • {Object} dataCollection — коллекция новых элементов;
  • {Object} options — параметры добавления.

reloadGridData

Выполняет перезагрузку реестра.


initQueryOptions

Инициализирует настройки (постраничность, иерархичность) экземпляра запроса.

Параметры:

  • {Terrasoft.EntitySchemaQuery} esq — запрос, в котором будут инициализированы необходимые настройки.

initQuerySorting

Инициализирует колонки сортировки.

Параметры:

  • {Terrasoft.EntitySchemaQuery} esq — запрос, в котором будут инициализированы необходимые настройки.

prepareResponseCollection

Модифицирует коллекцию данных перед загрузкой в реестр.

Параметры:

  • {Object} collection — коллекция элементов реестра.

getFilters

Возвращает примененные в данной схеме фильтры. Переопределяется в наследниках.


exportToFile

Экспортирует содержимое реестра в файл.


sortGrid

Выполняет сортировку в реестре.

Параметры:

  • {String} tag — ключ, указывающий, каким образом пересортировать реестр.

deleteRecords

Инициирует удаление выбранных записей.


checkCanDelete

Проверяет возможность удаления записи.

Параметры:

  • {Array} items — идентификаторы выбранных записей;
  • {Function} callback — функция обратного вызова;
  • {Object} scope — контекст выполнения метода.

onDeleteAccept

Выполняет удаление после подтверждения пользователем.


getSelectedItems

Возвращает выбранные записи в реестре.


removeGridRecords

Убирает из реестра удаленные записи.

Параметры:

  • {Array} records — удаленные записи.

Деталь с редактируемым реестром

Деталь с редактируемым реестром позволяет пользователю вносить изменения непосредственно в реестре без перехода на страницу редактирования записи. Для того чтобы сделать реестр детали редактируемым, в ее схеме необходимо:

  1. Добавить зависимости от модулей ConfigurationGrid, ConfigurationGridGenerator, ConfigurationGridUtilities.
  2. Подключить миксины ConfigurationGridUtilites и OrderUtilities.
  3. Установить атрибут IsEditable в значение true.
  4. В массив модификаций добавить конфигурационный объект, в котором устанавливаются свойства и выполняется привязка методов-обработчиков событий реестра детали.

Кейс создания детали с редактируемым реестром подробно рассмотрен в статье "Создание детали с редактируемым реестром".

Модуль ConfigurationGrid

Модуль ConfigurationGrid содержит реализацию элемента управления "Конфигурационный реестр". Класс Terrasoft.ConfigurationGrid является наследником класса Terrasoft.Grid. Основные методы класса Terrasoft.ConfigurationGrid представлены в таблице 9.

Табл. 9. — Методы конфигурационного реестра

init

Инициализирует компонент. Осуществляет подписку на события.


activateRow

Выделяет строку и добавляет элементы редактирования.

Параметры:

  • {String|Number} id — идентификатор строки реестра.

deactivateRow

Снимает выделение строки и удаляет элементы редактирования.

Параметры:

  • {String|Number} id — идентификатор строки реестра.

formatCellContent

Форматирует данные ячейки строки.

Параметры:

  • {Object} cell — ячейка;
  • {Object} data — данные;
  • {Object} column — конфигурация ячейки.

onUpdateItem

Обработчик события обновления записи.

Параметры:

  • {Terrasoft.BaseViewModel} item — элемент коллекции.

onDestroy

Уничтожает реестр и его компоненты.


Модуль ConfigurationGridGenerator

Класс Terrasoft.ConfigurationGridGenerator генерирует конфигурацию реестра и является наследником класса Terrasoft.ViewGenerator. Методы, реализованные в классе Terrasoft.ConfigurationGridGenerator, представлены в таблице 10.

Табл. 10. — Методы генератора конфигурационного реестра

addLinks

Переопределенный метод класса Terrasoft.ViewGenerator. В редактируемый реестр не будут добавлены ссылки.


generateGridCellValue

Переопределенный метод класса Terrasoft.ViewGenerator. Генерирует конфигурацию значения в ячейке.

Параметры:

  • {Object} config — конфигурация колонки.

Модуль ConfigurationGridUtilities

Класс Terrasoft.ConfigurationGridUtilities содержит методы инициализации модели представления строки реестра, обработки действий активной записи и обработки горячих клавиш.

Основные свойства класса Terrasoft.ConfigurationGridUtilities представлены в таблице 11, а его методы — в таблице 12.

Табл. 11. — Свойства класса Terrasoft.ConfigurationGridUtilities

currentActiveColumnName
String

Имя текущей выделенной колонки.


columnsConfig
Object

Конфигурация колонок.


systemColumns
Array

Коллекция названий системных колонок.


Табл. 12. — Методы класса Terrasoft.ConfigurationGridUtilities

onActiveRowAction

Обрабатывает нажатие действия активной записи.

Параметры:

  • {String} buttonTag — тег выбранного действия;
  • {String} primaryColumnValue — идентификатор активной записи.

saveRowChanges

Сохраняет запись.

Параметры:

  • {Object} row — строка реестра;
  • {Function} [callback] — функция обратного вызова;
  • {Object} scope — контекст вызова функции обратного вызова.

activeRowSaved

Обрабатывает результат сохранения записи.

Параметры:

  • {Object} row — строка реестра;
  • {Function} [callback] — функция обратного вызова;
  • {Object} scope — контекст вызова функции обратного вызова.

initActiveRowKeyMap

Инициализирует подписку на события нажатия кнопок в активной строке.

Параметры:

  • {Array} keyMap — описание событий.

getCellControlsConfig

Возвращает конфигурацию элементов редактирования ячейки реестра.

Параметры:

  • {Terrasoft.EntitySchemaColumn} entitySchemaColumn — колонка ячейки реестра.

copyRow

Копирует и добавляет запись в реестр.

Параметры:

  • {String} recordId — идентификатор копируемой записи.

initEditableGridRowViewModel

Инициализирует классы элементов коллекции редактируемого реестра.

Параметры:

  • {Function} [callback] — функция обратного вызова;
  • {Object} scope — контекст вызова функции обратного вызова.

© Terrasoft 2002-2020.

Был ли данный материал полезен?

Как можно улучшить эту статью?