Быстрый старт прикладника
Документация ниже ориентирована на разработку бизнес-логики через уже собранные XML/SQL/Pascal-модули платформы.
Что нужно понимать перед стартом
В платформе всё приложение хранится как набор модулей:
Table— структуры данных и бизнес-правила на уровне БД.Reference— карточка-список со своим видом поля и формой.Form— карточка для ручного ввода/редактирования данных.MainMenu— иерархия пунктов меню.PrintForm,View,AutoView,Stored,Module— дополнительные служебные/отчётные модули.
Прикладник обычно работает в одном из сценариев:
- Открытие/изменение формы/справочника.
- Обработка событий (
On...Click,On...Change,On...Select, ...). - Интеграционные HTTP-вызовы и SQL.
- Выгрузка/загрузка изменений через архив приложения.
Типичный поток изменений
- Выгрузить приложение в архив:
python3 docs/downloads/tma_app_archive.py export-db \
--database my1 \
--output my1.tma-source.zip
- Распаковать и открыть нужный модуль:
python3 docs/downloads/tma_app_archive.py unpack \
--input my1.tma-source.zip \
--output my1-source
-
Отредактировать нужный
module.xml,form.xml,program.pas, триггеры и т.д. -
Проверить:
python3 docs/downloads/tma_app_archive.py verify \
--input my1-source
- Собрать и загрузить обратно:
python3 docs/downloads/tma_app_archive.py pack \
--input my1-source \
--output my1-update.xml
-
Загрузить
my1-update.xmlчерез клиент: -
Меню -> Загрузить обновление из файла.
Как ориентироваться в module.xml формы
Формы и справочники хранятся в:
modules/form/<ИмяМодуля>--<hash>/module.xmlmodules/reference/<ИмяМодуля>--<hash>/module.xml
Типичный минимальный фрагмент:
<Module Type="Form" Name="TaskForm" Parent="Task" Description="Задачи">
<Form Width="780" Height="560" Icon="-1">
...
</Form>
<Programm Language="Similar Pascal"/>
</Module>
Для справочника дополнительно есть:
Table-связанные атрибуты поля (TopHeight,Fieldsи др.),Permissions.
Что важно сразу при разработке
- Название обработчика события должно совпадать с моделью имени контрола:
- кнопка
Name="SaveBtn"→OnSaveBtnClick; - пункт меню с
Command="OnFoo"→OnFooилиOnFooClick(в зависимости от типа/источника). - Не смешивать CP1251/UTF-8 руками в коде — для текста используйте
ConvertToUTF8/ConvertFromUTF8там, где нужно (см. Скриптовый API). - В
Referenceи сложныхTableпроверяйтеpermissionsиfk-связи у полей, иначе формы могут открываться пустыми. - Для проверки корректности после правок выполняйте минимальный smoke-путь:
- открыть меню,
- открыть модифицированную форму/справочник,
- создать/изменить запись,
- посмотреть, что срабатывает нужный обработчик и запись реально записана.
Где смотреть дальше
- Модель приложения и модули
- Модуль SideMenu и его API
- Формы и справочники
- Скриптовый API
- Транзакции
- Выгрузка и загрузка приложений
Рабочий порядок до деплоя правок
- Всегда запускай
verifyпосле редактирования — это снижает риск поломок приpack. - Перед сборкой обновления проверь:
- соответствие
Nameобработчиков (On<Name>Click,On<Name>Change), - корректность
ParentдляReference/Form, - уникальность имён контролов,
- разрешения
Permissionsна уровне таблицы. - После
packделай сначала тестовый импорт в отдельную копию БД, потом только затем прод.