Предыдущая статья курса: Задание 7. Создание служебного сценария
Общая информация
Любое приложение на платформе эра состоит из набора пакетов. При переходе от No-Code разработки к разработке с помощью кода этот подход не меняется.
Все объекты пакета, созданные с помощью No-Code редакторов, преобразуются механизмами платформы в набор классов. Большинство классов не доступно для редактирования внешними средствами. Исключение составляют сервисы пакета, для них доступно полное изменение исходного кода и его замена.
Разработка приложений на платформе эра выполняется с помощью языка TypeScript. В большинстве случаев, можно выбрать контекст исполнения кода - он может быть клиентский (в браузере) или серверный (на сервере приложений продуктового слоя). В случае использования серверного контекста, код будет исполняться при помощи NodeJS версии 14.Х.
В рамках платформы, при разработке, применяется принцип разделения интерфейсов (см. SOLID).
Более полную архитектуру платформы и её модулей можно найти в соответствующей статье.
Применение TS-кода в No-Code редакторах

Платформа предлагает широкие возможности по модификации логики объектов с помощью переопределения некоторых TypeScript-методов в редакторах объектов. Переопределен может быть как серверный, так и клиентский код.
В случае использования данного инструмента, в соответствующие поля необходимо вносить тело метода, платформа при применении изменений в пакете автоматически создаст всю необходимую обвязку данного метода и задаст указанный код в качестве его тела.
Переопределенные клиентские методы будут автоматически применены в сгенерированном системой контроле.
Методы, доступные для переопределения в редакторах:
Имя объекта | Имя метода | Контекст исполнения | Комментарий |
---|---|---|---|
Класс | afterApplyUpdatesCode | Серверный | Метод вызывается после применения изменений в данных объекта класса |
beforeInsertCode | Серверный | Метод вызывается перед добавлением нового объекта класса | |
beforeModifyCode | Серверный | Метод вызывается перед изменением данных объекта класса | |
beforeDeleteCode | Серверный | Метод вызывается перед удалением объекта класса | |
autoCalcCondition | Серверный | ||
doubleClickCode | Клиентский | ||
autoFocusConditionCode | Клиентский | ||
beforeInitCode | Клиентский | Метод вызывается перед инициализацией контрола в браузере | |
afterInitCode | Клиентский | Метод вызывается после инициализации контрола в браузере | |
Класс/DataProperty | beforeSetCode | Серверный | Метод вызывается перед установкой нового значения в свойство объекта класса |
afterSetCode | Серверный | Метод вызывается после установки нового значения в свойство объекта класса | |
dynamicEditorCode | Клиентский | ||
visibilityConditionCode | Клиентский | Метод, определяющий видимость свойства класса. Должен возвращать true или false | |
readOnlyConditionCode | Клиентский | Метод, определяющий доступность свойства класса для редактирования. Должен возвращать true или false | |
dynamicFilterCode | Клиентский | ||
afterValueChangedCode | Клиентский | Метод вызывается после измнеения значения свойства класса (на клиенте) | |
validationCode | Клиентский | Метод вызывается после изменения значения свойства, для его валидации. Должен возвращать true или false |
Разработка в файловой системе
Запуск TS-модулей и отладка
Следующая статья курса: Обработчики данных
Предыдущая статья курса: Задание 7. Создание служебного сценария