Установить значение по умолчанию для поля на странице записи

Средний

Пример. Установить значение по умолчанию для поля Крайний срок (Deadline) на странице добавления проекта. Значение поля Крайний срок (Deadline) должно быть на 10 дней больше значения поля Начало (Start).

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

  1. Перейдите в раздел Конфигурация (Configuration) и выберите пользовательский пакет, в который будет добавлена схема.
  2. На панели инструментов реестра раздела нажмите Добавить —> Замещающая модель представления (Add —> Replacing view model).

  3. Заполните свойства схемы.

    • Код (Code) — "ProjectPageV2".
    • Заголовок (Title) — "Страница редактирования проекта" ("Project edit page").
    • Родительский объект (Parent object) — выберите "ProjectPageV2".
  4. Настройте логику заполнения поля.

    Для этого в свойстве methods реализуйте методы:

    • onEntityInitialized() — переопределенный базовый виртуальный метод. Срабатывает после окончания инициализации схемы объекта. В метод onEntityInitialized() добавьте вызов метода-обработчика setDeadline(), который обеспечит установку значения поля Крайний срок (Deadline) в момент открытия страницы записи.
    • setDeadline() — метод-обработчик, который рассчитывает значение поля Крайний срок (Deadline).

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

    ProjectPageV2
    define("ProjectPageV2", [], function() {
        return {
            /* Название схемы объекта страницы записи. */
            entitySchemaName: "Project",
            /* Методы модели представления страницы записи. */
            methods: {
                /* Переопределение базового метода Terrasoft.BasePageV2.onEntityInitialized, который срабатывает после окончания инициализации схемы объекта страницы записи. */
                onEntityInitialized: function() {
                    /* Вызывается родительская реализация метода. */
                    this.callParent(arguments);
                    /* Вызов метода-обработчика, который рассчитывает значение колонки [Deadline]. */
                    this.setDeadline();
                },
                /* Метод-обработчик, который рассчитывает значение колонки [Deadline]. */
                setDeadline: function() {
                    /* Значение колонки [Deadline]. */
                    var deadline = this.get("Deadline");
                    /* Проверяет установку режима новой записи. */
                    var newmode = this.isNewMode();
                    /* Если значение не установлено и режим новой записи установлен. */
                    if (!deadline && newmode) {
                        /* Получает значение колонки [StartDate]. */
                        var newDate = new Date(this.get("StartDate"));
                        newDate.setDate(newDate.getDate() + 10);
                        /* Установка значения колонки [Deadline]. */
                        this.set("Deadline", newDate);
                    }
                }
            }
        };
    });
    
  5. На панели инструментов дизайнера нажмите Сохранить (Save).

Результат выполнения примера 

Чтобы посмотреть результат выполнения примера, обновите страницу раздела Проекты (Projects).

В результате выполнения примера на странице добавления проекта значение поля Крайний срок (Deadline) устанавливается на 10 дней больше значения поля Начало (Start).