Модули
Для удобства разработки и
поддержки кода, весь код приложения обычно разбивается на логические модули. Модуль
- это папка, содержащая набор программных файлов (описание форм и программный
код). Имя модуля совпадает с именем папки. Доступ к файлам возможно через
специальную url-схему "x-app":
x-app://rcr/rcr_candidate.xmd
Старые приложения для этого использует схему "x-local", но в новой объектной модели так делать не рекомендуется.
Каждый модуль должен содержать файл описания модуля, который должен иметь имя "xxx_module.xml", где xxx - название модуля. Обычно он идет в паре с файлом "xxx_module.js", содержащем методы инициализации модуля.
Обычно приложение использует стандартный модуль "base1", содержащий объекты и библиотеки, используемые в большинстве приложений: менеджер справочников, списки объектов, генератор отчетов, библиотеки для работы с почтой, обработки HTML и др.
Также часто используется модуль "base2" содержащий базовые объекты - физическое лицо, организация, событие, а также модуль "cn", реализующий календарь.
В дополнительных модулях "outlook", "lotus", "thunderbird", "firefox" и "google" реализована встроенная поддержка интеграции с внешними календарями и почтовыми программами.
Основная логика приложения реализуется в так называемом главном модуле приложения, обычно содержащем основной объем кода. Для E-Staff, например, это модуль "rcr", при этом всего в E-Staff используется 14 модулей.
Также возможно добавление к приложению модулей, созданных под заказ для конкретного заказчика. Наименование таких модулей должно начинаться на "module_", например "module_alfa", "module_lukoil" и др. Такие модули просто помещаются в установочную директорию сервера приложения, и прописываются в INI-файл. Модули могут быть полностью "самодостаточными" - регистрировать новые типы объектов и справочники, добавлять собственные разделы программы, команды в меню, переименовывать наименования стандартных полей и др.