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

Добавление нового поля

Glossary Item Box

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

Добавление поля на страницу редактирования может быть реализовано двумя способами:

1. С помощью мастера разделов (см. статьи "Мастер разделов", "Как настроить поля страницы").

В результате работы мастера разделов в пользовательском пакете будут созданы замещающая схема базового объекта (например, объекта [Активность])  и замещающая схема базовой страницы редактирования (например,  ActivityPageV2).

К СВЕДЕНИЮ

Если с помощью мастера создается новый раздел, то в текущем пользовательском пакете будут созданы не замещающие, а новые схемы.

В замещающей схеме объекта будет добавлена новая колонка. В замещающей схеме страницы редактирования в массив diff будет добавлен конфигурационный объект с настройками расположения на странице нового поля.

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

2. Путем создания замещающего базового объекта и замещающей базовой страницы вручную.

Описание кейса

Добавить вручную на страницу редактирования активности новое поле [Место встречи].

Алгоритм реализации кейса

1. Создать замещающий объект [Активность] и добавить в него новую колонку [Место встречи]

Для этого необходимо перейти в раздел [Конфигурация], выбрать пользовательский пакет и на вкладке [Схемы] выполнить команду меню [Добавить] — [Замещающий объект] (рис. 1).

Рис. 1. — Создание замещающей схемы объекта

Затем нужно заполнить свойства нового объекта, указав в качестве родительского объекта [Активность] (рис. 2).

Рис. 2. — Свойства замещающего объекта [Активность]

После этого добавить в замещающий объект новую колонку [Место встречи] строкового типа (рис. 3.).

Рис. 3. — Добавление пользовательской колонки в замещающий объект

Затем нужно сохранить и опубликовать объект.

2. Создать замещающий клиентский модуль страницы редактирования активности

Для этого необходимо создать замещающий клиентский модуль, в котором в качестве родительского объекта указать схему ActivityPageV2 (рис. 4). Процесс создания замещающей страницы описан в статье "Создание клиентской схемы".

Рис. 4. — Свойства замещающей страницы редактирования

3. Добавить локализируемую строку с заголовком поля

В коллекцию локализируемых строк замещающей схемы страницы необходимо добавить строку, содержащую заголовок добавляемого поля. Для этого, кликнув правой кнопкой по узлу структуры [LocalizableStrings], нужно выбрать команду контекстного меню [Добавить] (рис. 5).

Рис. 5 — Добавление в схему локализуемой строки

 

Для созданной строки заполнить следующие свойства (рис. 6):

Рис. 6. — Свойства пользовательской локализируемой строки

  • [Название] — "InfoActionCaption";
  • [Заголовок] — "InfoActionCaption";
  • [Значение] — "Показать дату выполнения".

4. Добавить поле [Место встречи] на страницу редактирования активности.

Для этого в массив diff нужно добавить конфигурационный объект с настройками расположения поля [Место встречи] на странице.

// В список зависимостей модуля добавить модуль BusinessRuleModule.
define("ActivityPageV2", [], function() {
    return {
        // Название схемы объекта страницы редактирования.
        entitySchemaName: "Activity",
        // Настройка визуализации дополнительного поля на странице редактирования.
        diff: /**SCHEMA_DIFF*/[
            // Метаданные для добавления поля [Место встречи].
            {
                // Тип операции — добавить.
                "operation": "insert",
                // Имя родительского элемента схемы, в котором размещается элемент.
                "parentName": "Header",
                // Имя параметра родительского элемента.
                "propertyName": "items",
                // Имя элемента схемы, над которым производится действие (название колонки).
                "name": "UsrMeetingPlace",
                // Объект, свойства которого будут установлены либо объединены со свойствами элемента схемы.
                "values": {
                    // Заголовок поля.
                    "caption": {"bindTo": "Resources.Strings.MeetingPlaceCaption"},
                    // Расположение поля.
                    "layout": {
                        // Номер столбца.
                        "column": 0,
                        // Номер строки.
                        "row": 5,
                        // Диапазон занимаемых столбцов.
                        "colSpan": 12,
                        // Диапазон занимаемых строк.
                        "rowSpan": 1
                    }
                }
            }
        ]/**SCHEMA_DIFF*/
    };
});

Свойства массива diff подробно описаны в статье "Массив diff".

После сохранения схемы и обновления веб-страницы с очиской кэша системы на странице редактирования активности появится новое поле (рис. 7).

Рис. 7. — Демонстрация результата выполнения кейса

Описание кейса

Добавить вручную в профиль контакта на странице редактирования контакта поле [Страна]. Отличие данного кейса в том, что колонка [Страна] уже присутствует в схеме объекта.

Алгоритм реализации кейса

1. Создать замещающую страницу редактирования контакта

Необходимо создать замещающий клиентский модуль, в котором в качестве родительского объекта указать схему ContactPageV2 (Схема отображения карточки контакта).

2. Добавить поле [Страна] в профиль контакта.

Для этого необходимо в массив diff добавить конфигурационный объект с настройками свойств соответствующих полей. При этом в качестве родительского элемента схемы, в котором будет размещено поле, необходимо выбрать элемент ProfileContainer.

Поностью исходный код замещающей схемы:

// В список зависимостей модуля добавить модуль BusinessRuleModule.
define("ContactPageV2", [], function() {
    return {
        // Название схемы объекта страницы редактирования.
        entitySchemaName: "Contact",
        diff: [
            // Метаданные для добавления поля [Страна].
            {
                // Тип операции — добавить.
                "operation": "insert",
                // Имя родительского элемента схемы, в котором размещается элемент.
                "parentName": "ProfileContainer",
                // Имя параметра родительского элемента.
                "propertyName": "items",
                // Имя элемента схемы, над которым производится действие (название колонки).
                "name": "Country",
                // Объект, свойства которого будут установлены либо объединены со свойствами элемента схемы.
                "values": {
                    // Тип поля — справочник.
                    "contentType": Terrasoft.ContentType.LOOKUP,
                    // Расположение поля.
                    "layout": {
                        // Номер столбца.
                        "column": 0,
                        // Номер строки.
                        "row": 6,
                        // Диапазон занимаемых столбцов.
                        "colSpan": 24
                    }
                }
            }
        ]
    };
});

После сохранения схемы и обновления веб-страницы с очиской кэша системы в профиле контакта на странице редактирования контакта появится новое поле (рис. 8).

Рис. 8. — Демонстрация результата выполнения кейса

© Terrasoft 2002-2017.

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

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