Чтобы использовать деталь с полями в CRM продуктах Creatio:
- Cкачайте пакет sdkFieldsDetailPackage.
- Импортируйте пакет в пользовательское приложение. Для этого воспользуйтесь инструкцией, которая приведена в статье Перенести пакеты.
- Добавьте пакет sdkFieldsDetailPackage в зависимости пользовательского пакета.
1. Создать пользовательскую деталь
- Создайте пользовательский пакет и установите его в качестве текущего. Подробнее читайте в статье Общие принципы работы с пакетами.
- Перейдите в дизайнер системы по кнопке
. - В блоке Настройка системы (System setup) перейдите по ссылке Мастер деталей (Detail wizard).
-
Заполните свойства детали:
- Заголовок (Title) — "Медицинские документы" ("Medical documents").
-
По какому объекту создать деталь? (How to create detail?) — выберите "Новому объекту" ("Create new object").
Заполните свойства объекта:
- Заголовок (Title) — "Медицинский документ" ("Medical document").
- Код (Code) — "UsrMedDocument".

После сохранения в конфигурации будут созданы:
- Схема UsrMedDocument объекта детали.
- Схема UsrSchemac6fd3fd0Detail модели представления реестра детали Медицинские документы (Medical documents).
- Схема UsrUsrMedDocument4988cee4Page модели представления страницы записи детали Медицинские документы (Medical documents).
- Перейдите на вкладку Страница (Page) для настройки страницы записи детали.
-
Настройте поля детали.
-
Заполните свойства поля Contact типа Справочник (Lookup).
- Заголовок (Title) — "Физ. лицо" ("Contact").
- Код (Code) — "UsrContact".
- Установите признак Обязательное (Required).
- Справочник (Lookup) — выберите "Контакт" ("Contact").

-
Заполните свойства поля Series типа Строка (String).
- Заголовок (Title) — "Серия" ("Series").
- Код (Code) — "UsrSeries".
- Длина строки (Text length) — выберите "Строка (50 символов)" ("Text (50 characters)").
- Установите признак Обязательное (Required).

-
Заполните свойства поля Number типа Целое число (Integer).
- Заголовок (Title) — "Номер" ("Number").
- Код (Code) — "UsrNumber".
- Установите признак Обязательное (Required).

-
- При необходимости, измените расположение полей детали.
- На панели инструментов мастера деталей нажмите Сохранить (Save).
После сохранения в конфигурации будет модифицирована схема UsrUsrMedDocument4988cee4Page модели представления страницы записи детали Медицинские документы (Medical documents).
2. Настроить пользовательскую деталь
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, который был установлен в качестве текущего.
- Откройте схему UsrMedDocument объекта детали.
-
В контекстном меню узла Колонки (Columns) структуры объекта удалите обязательную колонку [UsrName].

- На панели инструментов дизайнера объектов нажмите Опубликовать (Publish).
- Откройте схему UsrSchemac6fd3fd0Detail модели представления реестра детали Медицинские документы (Medical documents).
-
На панели свойств нажмите кнопку
и измените значение поля Родительский объект (Parent object) на BaseFieldsDetail. Схема BaseFieldsDetail реализует деталь с полями. По умолчанию в мастере деталей в качестве родительского объекта устанавливается базовая схема детали с реестром.
-
В свойство methods схемы модели представления детали добавьте метод getDisplayColumns, который возвращает массив с названиями колонок, отображающихся как поля в детали.
Исходный код схемы UsrSchemac6fd3fd0Detail представлен ниже.
- На панели инструментов дизайнера модуля нажмите Сохранить (Save).
3. Добавить деталь на страницу записи раздела
- Перейдите в раздел Физ. лица (Contacts) и откройте страницу физического лица.
- На панели инструментов кликните Вид —> Открыть мастер раздела (View —> Open section wizard).
- В рабочей области мастера разделов перейдите на вкладку История (History) и нажмите кнопку Добавить деталь (New detail).
-
Заполните настройки детали.
- Деталь (Detail) — выберите "Медицинские документы" ("Medical documents"). Поля Заголовок (Title) и Код (на английском) (Code) заполнятся автоматически.
-
У которых колонка детали (Where detail column) — выберите "Физ. лицо" ("Contact").
Значения остальных колонок оставьте без изменений.

- Нажмите Сохранить —> Мастер раздела —> Сохранить (Save —> Section wizard —> Save).
В результате деталь Медицинские документы (Medical documents) будет добавлена на вкладку История (History) страницы физического лица.

4. Добавить пользовательские стили детали
Поскольку в схеме модели представления страницы детали невозможно задать стили для отображения, необходимо:
- Создать схему модуля, в которой определить стили.
- Добавить модуль со стилями в зависимости модуля детали.
1. Создать схему модуля
- Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, который был установлен в качестве текущего.
-
На панели инструментов реестра раздела нажмите Добавить —> Модуль (Add —> Module).
/scr_add_module.png)
-
Заполните свойства схемы:
- Код (Code) — "UsrMedDocumentRowViewModel".
- Заголовок (Title) — "MedDocumentRowViewModel".

Для применения заданных свойств нажмите Применить (Apply).
-
В дизайнере схем добавьте исходный код. В исходном коде схемы создайте описание модуля и определите в нем класс Terrasoft.configuration.UsrMedDocumentRowViewModel, унаследованный от класса Terrasoft.BaseFieldRowViewModel.
-
Перейдите в узел LESS структуры объекта и задайте необходимые стили отображения детали.
- На панели инструментов дизайнера нажмите Сохранить (Save).
2. Модифицировать схему модели представления детали
Чтобы использовать созданный модуль и его стили в схеме детали:
- Откройте схему UsrSchemac6fd3fd0Detail модели представления реестра детали Медицинские документы (Medical documents).
- В зависимости схемы UsrSchemac6fd3fd0Detail добавьте модуль UsrMedDocumentRowViewModel.
-
В определение модуля схемы детали добавьте методы переопределения базовых CSS-классов стилей:
- getRowViewModelClassName() — метод, который возвращает имя класса модели представления записи на детали.
- getLeftRowContainerWrapClass() — метод, который возвращает массив строк с названиями CSS-классов, используемых для генерации представления контейнеров, содержащих подписи полей записей.
Исходный код модифицированной схемы представлен ниже.
- На панели инструментов дизайнера нажмите Сохранить (Save).
В результате названия полей детали Медицинские документы (Medical documents), которая была добавлена на вкладку История (History) страницы физического лица, отображаются синим цветом.

5. Добавить валидацию к полю детали
- Откройте схему UsrMedDocumentRowViewModel модуля.
-
Добавьте локализуемую строку с сообщением о неверном значении поля Номер (Number).
- В контекстном меню узла Локализуемые строки (Localizable strings) нажмите кнопку
. -
Заполните свойства локализуемой строки:
- Код (Code) — "NumberMustBeGreaterThenZeroMessage".
- Значение (Value) — "Number must be greater thаn zero" ("Введите номер больше нуля").

- Для добавления локализуемой строки нажмите Добавить (Add).
- В зависимости модуля UsrMedDocumentRowViewModel добавьте модуль ресурсов UsrMedDocumentRowViewModelResources. Это необходимо, чтобы значение локализуемой строки отобразилось во front-end части приложения.
- В контекстном меню узла Локализуемые строки (Localizable strings) нажмите кнопку
-
Добавьте логику работы валидации значения поля Номер (Number). Для этого реализуйте методы:
- validateNumberMoreThenZero() — метод, который содержит логику валидации значения поля.
- setValidationConfig() — метод, который связывает колонку [Number] и метод-валидатор validateNumberMoreThenZero().
- init() — переопределенный базовый метод, в котором выполняется вызов базовой логики и метода setValidationConfig().
Исходный код модифицированной схемы представлен ниже.
- На панели инструментов дизайнера нажмите Сохранить (Save).
В результате при вводе отрицательного значения в поле Номер (Number) отображается соответствующее предупреждение.

6. Сделать виртуальными поля детали
- Откройте схему UsrSchemac6fd3fd0Detail модели представления реестра детали Медицинские документы (Medical documents).
-
Добавьте реализацию метода useVirtualRecord().
Исходный код модифицированной схемы представлен ниже.
- На панели инструментов дизайнера нажмите Сохранить (Save).
В результате при открытии вкладки История (History), которая содержит деталь Медицинские документы (Medical documents), отображается виртуальная запись.
