Элементы объекта

Поля

Любой объект состоит из полей имеющих различные типы.

Типы полей:

  • numeric ([базовый] целое число)
    • double — [ui] для чисел с плавующей точкой
    • price — [ui] для денежной еденицы
    • quantity — [ui] для количества
    • percent — [ui] для процентов
    • rating — [ui] для рейтинга
  • varchar ([базовый] текстовое поле)
    • color — [ui] для цвета
    • url — [ui] для url
    • email — [ui] для email
    • phone — [ui] для телефона
    • skype — [ui] для скайпа
    • icq — [ui] для icq
    • geopoints — [ui] для геокоординат
    • textarea — [ui] для текста большого
    • html — [ui] для текста большого с редактором html
  • boolean ([базовый] булево)
  • pointer ([базовый] указатель на другую структуру, на другой «Объект»)
  • delayed ([базовый] слепой указатель на другую структуру, на другой «Объект»)
  • multipointer ([базовый] множественный указатель на другую структуру, на другой «Объект», где выбрать можно несколько)
  • blind ([базовый] указатель с разными струткурами и id. (Например docuemnts.task:2), таким образом в одной таблице может храниться несколько разных объектов)
  • date ([базовый] базовй Дата — время и дата)
    • date — [ui] только дата
    • time — [ui] только время
    • datetime — [ui] время и дата

12

Базовые типы изменить потом уже нельзя
UI типы можно поменять всегда в диапазоне от базового. Они влияют только на отображение

Кроме того, каждое «Поле» может иметь «Флаги». Флаги двух типов: системные и UI. Системные флаги позволяют управлять поведением полей в ходе работы orm и системы, а UI флаги описывают поведение компонентов. Слева на картинке системные флаги, а справа UI.

Виды системных флагов:

  • Обязательное – обязательное поле, т.е. оно никогда не должно быть пустым
  • Владелец – указатель на родительскую структуру, например у структуры «Счет» владелец «Контрагент».
  • Системное – это поле вы не сможете изменить в классе «потомке», т. к. оно системное, и его может изменить только сама Система, если вы примените соответствующие методы. Примером такого поля служит поле «id»
  • Имя – у каждой сущности (объекта) есть имя (или как это лучше сказать номер). Идентификация всех объектов в системе производится по уникальным «id». «Id» может быть именем объекта, но вы можете назначить другое поле именем объекта. «Имена» объектов используются в навигационных ссылках и путях (см. рисунок ниже)

Виды UI флагов:

  • Фильтр – Отображать или скрывать в форме списков и select

    Фильтр по умолчанию — выставляется в единственном экземпляре. Поле которое по умолчанию отображается в фильтре

  • Обязательное – Если флаг установлен, то форма не сохранится пока не будет заполнено
  • Только чтение – Выставляет ui компонент в режиме readonly и disabled
  • Не учитывать часовой пояс – Работает с полями date. При сохранении и чтении, не учитывает timezone пользователя
  • Режим списка – Работает с полем multipointer
    Вид, когда флаг не установлен:
    Вид, когда флаг установлен:
  • Форма выбора – Показывается когда выбран pointer, delayed. Если выставить флаг и выбрать форму выбора, то поле превращается в lookup, при нажатии которого открывается выбранная форма выбора. Форма редактирования — открывается в случае клика на выбранный элемент lookup (не обязательно заполнять).
    Вот так выглядет обычный pointer:
    Вот так выглядет lookup:
  • Тип UI – Выбор типа ui в зависимости от базового

Табличные части

У каждого элемента может быть неограниченное количество «Табличных частей». «Табличная часть» представляет собой массив полей. Например, у документа «Счет» существует табличная часть «Номенклатура», в которой перечислены товары и услуги, которые относятся к документу «Счет».

Например, Табличная часть «Номенклатура» в документе «Счет» может содержать поля:

  • Номенклатура (Ссылка на объект «Номенклатура»)
  • Количество (число)
  • Цена (число)
  • Сумма (число)

Формы редактирования

В Системе возможны несколько типов отображения структуры. Как правило, либо это форма редактирования структуры или форма списка. Отличаются они лишь абстрактным классами родителями.

Если объект имеет владельца, как например документ «Счет», то форма редактирования может быть 2 видов: может быть вложена во владельца, а может быть и без владельца. Понятие «Вложена во владельца» в данном контексте обозначает, что поле владельца (owner) обязательное для заполнения, и при редактировании структуры нужно обязательно его указывать, наилучшим способом для этого является создание структуры из владельца. Таким образом, правильной формой редактирования может быть только форма, которая вложена во владельца. Обычно, owner = Контрагенту.

Форма списка

Форма списка необходима для вывода списка «Объектов» (Документов, Справочников, Регистров). Например, форма вывода списка «Контрагентов».

В системе принято 2 вида форм списков: «Общий список» (Главное меню) и «Список в контрагенте» (Меню контрагента).

Например, документ «Счет» имеет 2 формы списков: «Общий список счетов по всем контрагентам» и «Список счетов определенного контрагента».

a1
Для вывода таблицы в Формах списка, обязательно в php прописывайте printDataTable, а в шаблоне tpl вывод ее!

Табличные формы

Для «табличных частей» Объекта можно также создавать свои формы. Например, существуют формы для редактирования позиции товаров в «Счете». У табличной формы обязательно всегда есть «Владелец». Важно: перед созданием формы «Табличной части», в программе должна быть создана форма редактирования самого «Объекта» (владелец).

Печатная форма

Печатная форма еще один элемент отображения «Объектов» Системы. Отличается от формы редактирования и списка абстрактным типом, и отключением стандартного бокового и верхнего меню при выводе шаблона.

print-form

print-form
 

Примеры печатной формы: «Форма счета».

21

 

Тех. форма (Техническая форма)

Форма редактирования или списка для «Справочников», которые находятся в настройках. Эти формы редактирования Вы можете использовать только в разделе «Настройки». Раздел настройки доступен только администраторам системы

Последние правки: 17.09.2018 15:12:30