Перейти к основному содержимому
Версия: 7.0

Brief: модули

Модули и порядок

Модуль — функционально законченная часть проекта: объявления классов, свойств, действий, форм, событий, ограничений (модули). Один модуль — один файл .lsf, начинающийся с заголовка модуля: MODULE, REQUIRE, PRIORITY, NAMESPACE.

REQUIRE перечисляет модули, от которых текущий зависит. Зависимость транзитивна, циклы не допускаются, и по ней строится порядок инициализации: модуль инициализируется после всех своих зависимостей. От модуля System зависит любой модуль. Зависимость определяет и видимость: элемент можно найти по имени только в модуле-зависимости, поэтому расширять чужой функционал позволяет техника расширений, см. Brief: расширения.

Проект — совокупность модулей и сопутствующих файлов; по умолчанию модулями считаются все файлы .lsf в classpath сервера приложений, а параметры запуска logics.includePaths, logics.topModule, logics.orderDependencies сужают этот набор и переопределяют порядок.

Аналогия: пакет или сборка.

MODULE Sale;
REQUIRE System, Utils, Item;
NAMESPACE Sale;

Системные модули

Системные модули поставляются вместе с платформой — это стандартная библиотека, которую проект подключает через REQUIRE и не переопределяет (системные модули). Двенадцать из них платформа загружает сама — System, Service, Reflection, Authentication, Security, SystemEvents, Email, Icon, Scheduler, Time, Utils, UserEvents, — но загруженность не означает зависимость: неявной зависимостью каждого модуля является только System, а объявление из любого другого требует REQUIRE.

МодульДля чего
Systemкорневые типы, базовые классы, инфраструктура
Utilsвспомогательные свойства и действия общего назначения
Timeсвойства и операции над датой и временем
Authenticationпользователи, контакты, вход в систему
Securityроли и политики доступа
Serviceсервисные действия и настройки сервера
SystemEventsсобытия жизненного цикла сервера
UserEventsпрограммный доступ к фильтрам и сортировкам формы
Reflectionметаданные о навигаторе, формах, свойствах, таблицах
Schedulerзапуск действий по расписанию
Emailотправка и приём почты
Iconкаталог иконок интерфейса

Прикладные дополнения: Backup, Chat, Eval, Excel, Document / Word, Image / OpenCV, I18n, Integration, MasterData, Numerator, Hierarchy, Historizable, Geo, Printer / QZTray / Sound / Com, ProcessMonitor / Profiler, RabbitMQ / WebSocket, Messenger со своими Telegram / Slack / Viber / Whatsapp / Skype, SQLUtils, DefaultData, Schedule.

Всё это — обычные объявления в .lsf, а не примитивы языка: lpad, currentDate, currentUser — свойства, искать их следует в ветке paradigm.