Закажите бесплатную презентацию продуктов РосБизнесСофт прямо сейчас!
«Формы» используются для визуального отображения и редактирования «Объектов». Например: «Форма редактирования», «Форма списка», «Форма выбора» и т.д.

Форма имеет обязательное название (companies), а также адрес (URL), по которой форма будет доступна пользователю (/companies/{id1}/). Вместо {id1} Система автоматически подставит ID элемента. После создания формы изменить ее имя уже нельзя (нужно пересоздать).
Так как у объекта может быть несколько десятков форм, то рекомендуем обязательно заполнять поле «Комментарий», чтобы всегда было понятно, что за форма.

У каждой базовой формы есть 4 закладки:
«Печатные формы» имеют только 2 закладки:
PHP-код управляет отображением «Объектов». Основные операции по отображению, «подгрузке» и преобразованию шаблоны выполняет класс родитель. Классы объектов, которые создаются непосредственно в «Конфигураторе», наследуются от него, и мы можем переопределить методы, для изменения стандартной работы класса.

// конструкция используется для записи значений таб. частей $this->structure->owner = $this->parents[0][0]->getKey();
//url: ...../object/id/?ajax=save
protected function checkAjax() {
$ajax = $this->Http->Request->get("ajax", "Varchar", "");
switch($ajax){
case("save"):{
try {
$this->structure->date_update(time())->sync(true);
$this->resultSuccess(["message" => "success actions"]);
} catch (\Exception $ex) {
$this->resultError($ex->getMessage());
}
} break;
}
}Предположим надо установить поле date текущее время, в случае когда открыли форму добавления (создается документ Счет):
if ($this->isAddForm()) {
if (!$this->isActionSave()) {
$this->structure->date(time())->getField("date")->markAsSaved();
}
}




protected $delayedNameCustom = [
'boss'=> "name",
];protected $lookupFieldsOptions =
[
'order' =>
[
'valRef' => 'name',
'modalSize' => 'small'
],
'relationship'=>
[
'key'=>'id',
'field'=>'subject',
'valRef'=>'name',
"modalSize" => "small"
],
];Где: valRef — получение поля у pointer объекта, modalSize ( fullscreen|mini|tiny|small|large) — размер модального окна.
Шаблон представляет собой обычную HTML разметку, в которую включены шаблоны заменяемые на HTML разметку.

Подключение дополнительных шаблонов представления происходит в шапке документа:
Подключение шаблона закладок #include <tabs> Подключение Flow-панели #include <flow> Подключение History-панели #include <history>
Подключение CSS-стилей:
{CSS append}
<link href="$ROOT/plugins/fullcalendar/fullcalendar.min.css" rel="stylesheet" media="all" />
{/CSS}Подключение JS-скрипта (из закладки) в начале страницы:
{JS append}
[[js | name: /task/edit]]
{/JS}Подключение JS-скрипта (из закладки) в конце страницы:
{FOOT_JS append}
<script type="text/javascript" type="text/javascript" src="$ROOT/plugins/fullcalendar/fullcalendar.min.js"></script>
{/FOOT_JS}Вывод в шаблоне значение из языкового массива:
#L:TechnicalSupport
Где:

Для использования ключа из любого языкового пакета, есть следующая конструкция:
##L:task.edit.Start
Где:
Подробнее про вывод полей, контейнеров, блоков и т.д. в шаблоне можно узнать в соответствующих разделах документации.
Для каждой формы создается отдельный JS-код.

JS-код подключается в шапке документа:
{JS append}
[[js | name: path/to/scenario/edit]]
{/JS}При разработке можно использовать готовые методы для выполнения задач (отображения модального окна, загрузки AJAX-формы и т.п.)
Также можно использовать все возможности библиотеки jQuery, а также методы из подключаемого файла jsApplication.js
В языковом файле хранятся ассоциации языковых переменных.

В «Шаблоне» чтобы вывести переменную из «языкового файла» нужно прописать:
#L:Copy
В «Javascript» чтобы вывести переменную из «языкового файла» нужно прописать:
translate.obj.Copy
Получение комбинированной строки на PHP из языкового массива:
// подключение языкового класса use Kernel\Http\Language; echo Language::getVariableFormat($this->form, "simpleText", ["Пример строки", 12345]);
Содержание языкового файла:
$_ = [ "simpleText" = "Форматированный текст с параметрам: строка - %s и число %d"];
Результат вывода:
Форматированный текст с параметрам: строка - Пример строки и число 12345
Если ролики на YouTube не открываются, можно посмотреть их на площадке Rutube.