Язык узлов
Шесть правил, по которым пишется экран на ките: по коду видно, что встанет на экран, а структур-моделей и склейки строк в нём нет. Разметка на выходе та же, что у сборки по одному узлу.
Как читается экран#
Позицией — то, без чего узел бессмыслен: текст заголовка и кнопки, адрес ссылки, имя и метка поля, вид ряда. Дальше — дети узла. Всё остальное — слова: методы узла, которые возвращают тот же узел и ставятся цепочкой.
Список проектов: заголовок, таблица из данных, форма
Проекты = Новый ТаблицаЗначений;
Проекты.Колонки.Добавить("Имя");
Проекты.Колонки.Добавить("Участников");
Проекты.Колонки.Добавить("Действие");
Проект = Проекты.Добавить();
Проект.Имя = Кит.Ссылка("/проекты/альфа", "альфа");
Проект.Участников = 3;
Проект.Действие = Кит.Кнопка("Открыть").Вторичная().Малая().Адрес("/проекты/альфа");
HTML = Кит.Холст(
Кит.Заголовок(2, "Проекты"),
Кит.Таблица(Проекты).Пусто("Проектов пока нет."),
Кит.ФормаБезТокена("/проекты/новый",
Кит.Поле("имя", "Имя проекта").Пример("например альфа").Обязательное(),
Кит.Кнопка("Создать").Основная()).Вид("столбик")).Рендер();1. Строка на месте узла — текст#
Любая строка там, где ждут ребёнка, — позиционно или в Добавить, — становится узлом Кит.Текст и экранируется. Сырая разметка — по-прежнему только узлом Кит.Готовое(), он на виду у ревью.
Строка экранируется, как Кит.Текст
<p class="muted">Имя <code><main></code> уже занято.</p>HTML = Кит.Примечание("Имя ", Кит.Код("<main>"), " уже занято.").Рендер();Два исключения. В форму строка не кладётся вовсе: прежде вторым аргументом формы шёл CSRF-токен, и строкой-ребёнком он напечатался бы на экране. Токен задаётся словом .Токен(…), текст в форме — узлом Кит.Текст(). В строгих родах — таблице, записи, списке, свойствах, документе, голове — строка отвергается проверкой вложения: текст в записи не печатается, его кладут в ячейку.
Строка в форме — исключение с подсказкой
Элемент экрана: строка «т0кен-сессии» внутри формы — токен задаётся словом .Токен(…), текст в форму кладите узлом Кит.Текст().
Попытка
Кит.Форма("/выход", "т0кен-сессии");
Исключение
HTML = Кит.Примечание(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())).Рендер();
КонецПопытки;2. Позицией обязательное, словом остальное#
Первый аргумент узла — то, без чего он бессмыслен. Всё прочее задают слова с именами полей модели. У кнопки единственный сахар: .Основная() .Вторичная() .Опасная() .Ссылкой() .Малая() .Большая().
Кнопки словами
HTML = Кит.Ряд("действия",
Кит.Кнопка("Сохранить").Основная().Иконка("сохранить"),
Кит.Кнопка("Отмена").Вторичная().Адрес("/проекты"),
Кит.Кнопка("Удалить").Опасная().Малая().Имя("операция", "удалить")).Рендер();Слово, которого компонент не знает, останавливает сборку и перечисляет его слова: опечатка не даст молча кнопку не того вида.
Неизвестное слово — исключение с перечнем слов
Элемент экрана: у компонента «плашка» нет слова «Основная». Его слова: «Вид», «Адрес», «Иконка», «Подсказка», «Снять»; общие — Признак, Роль, Когда.
Попытка
Кит.Плашка("готов").Основная();
Исключение
HTML = Кит.Примечание(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())).Рендер();
КонецПопытки;Прежний вход компонента структурой-моделью — Кит.Кнопка(Новый Структура("Подпись, Вариант", …)) — работает как раньше и печатает то же самое; слова дописывают и такую модель. На страницах компонентов модель описана как «прежний вид модели».
3. Дети аргументами#
Каждая фабрика контейнера принимает до восьми детей позиционно; Неопределено пропускается, поэтому условный ребёнок пишется прямо в списке. Девятый и дальше кладутся Добавить, который по-прежнему возвращает ребёнка. Добавить(Неопределено) тоже пропускается и возвращает Неопределено: необязательная часть экрана кладётся без обёртки в Кит.Холст (0.13, дев-сборка 7).
Дети по порядку аргументов
<div class="row-end"><span class="tag">черновик</span>3 участника</div>HTML = Кит.Ряд("справа", Кит.Плашка("черновик"), Неопределено, "3 участника").Рендер();Второй холст с аргументами наполняется и возвращает владельца — цепочка продолжается: Раскрывашка.Шапка(…), Запись.Разворот(…), Таблица.Пусто(…), Карточка.Действия(…), Секция.Действия(…). Без аргументов второй холст отдаётся сам, как прежде.
Шапка раскрывашки аргументами
Подробности
Ключ создан вчера.
HTML = Кит.Раскрывашка(Кит.Примечание("Ключ создан вчера."))
.Шапка("Подробности").Вид("врезка").Рендер();4. Условие словом#
.Когда(Условие) есть у любого узла: ложь печатает пустую строку. Узел остаётся в дереве, и Дерево() показывает его пометкой [скрыт]. У колонки таблицы ложь снимает и заголовок, и ячейки под ним.
Когда: узел есть в дереве, на экране его нет
Новый ключ показан один раз.
холст
примечание
текст
примечание [скрыт]
текст
Холст = Кит.Холст(
Кит.Примечание("Новый ключ показан один раз.").Когда(Истина),
Кит.Примечание("Ключей пока нет.").Когда(Ложь));
HTML = Холст.Рендер() + Кит.Код(Холст.Дерево()).Вид("блочный").Рендер();Условие вычисляется всегда. Там, где вычислять дорого, остаётся Если и Кит.Ничего().
5. Таблица из данных, как в 1С#
Кит.Таблица(Данные) собирает таблицу из таблицы значений или массива структур. Подробно — на странице Таблица деревом.
- Таблица значений даёт колонки (заголовок колонки, по умолчанию имя) и записи — её строки; ячейка — свойство строки по имени колонки.
- Массив структур или соответствий даёт записи, а колонки объявляются словом
.Колонка(Ключ, Заголовок)в порядке вызовов. - Значение ячейки: строка — текст, узел — узел (несколько узлов кладут
Кит.Холст(…)), число — без разделителя групп,Неопределенои""— пустая ячейка. Дату и Булево форматирует экран: кит остановит печать и назовёт колонку.
Таблица из массива структур
| Участник | Роль |
|---|---|
| анна | владелец |
| борис | участник |
Участники = Новый Массив();
Участники.Добавить(Новый Структура("Имя, Роль", "анна", Кит.Плашка("владелец").Вид("accent")));
Участники.Добавить(Новый Структура("Имя, Роль", "борис", "участник"));
Таблица = Кит.Таблица(Участники);
Таблица.Колонка("Имя", "Участник");
Таблица.Колонка("Роль", "Роль");
HTML = Таблица.Рендер();6. Секция и дом — тоже узлы#
Дом настроек и его секции — узлы Кит.ДомНастроек и Кит.Секция. Адрес раздела и CSRF-токен задаются один раз у дома; форма внутри берёт их у ближайшего предка: Кит.Форма("", …) уходит на адрес текущего раздела, Кит.Форма("revoke", …) — на раздел/revoke, Кит.Форма("/x", …) — на свой адрес. Форма без токена ни у себя, ни у предков не печатается. Подробно — на странице Дом настроек.
Форма берёт адрес и токен у дома
Настройки
Ключи
Ключи доступа
Дом = Кит.ДомНастроек("Настройки", "/проекты/альфа/настройки", "т0кен",
Кит.Секция("Ключи доступа",
Кит.Форма("", Кит.Кнопка("Выпустить ключ").Основная()),
Кит.Форма("7/revoke", Кит.Кнопка("Отозвать").Опасная().Малая())));
Дом.Раздел("Общее", "");
Дом.Раздел("Ключи", "ключи").Текущий();
HTML = Дом.Рендер();Тип поля — системой типов#
Тип поля задаётся словом .ТипЗначения(…) значением системы типов OneScript: Тип("Число") печатается полем type=number, Тип("Булево") — флажком, Тип("Дата") — полем даты. ОписаниеТипов с квалификаторами даёт пределы ввода. Строка — прежний тип модели: «email», «url», «пароль», «файл», «многострочное», «выбор». Без явного типа он выводится из значения. Слово называется ТипЗначения, а не Тип: имя «Тип» в OneScript занято самой системой типов. Подробно — на странице Формы деревом.
Тип из описания типов и из значения
<label class="field"><span class="field__label">Сумма</span><input class="field__control" type="number" name="сумма" max="99999.99" step="0.01"></label><label class="field"><span class="field__label">Начало</span><input class="field__control" type="date" name="с" value="2024-03-05"></label><label class="field field--check"><input type="checkbox" class="field__check" name="уведомлять" value="1" checked><span class="field__label">Присылать письма</span></label>HTML = Кит.Холст(
Кит.Поле("сумма", "Сумма").ТипЗначения(
Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(7, 2))),
Кит.Поле("с", "Начало").Значение(Дата(2024, 3, 5)),
Кит.Поле("уведомлять", "Присылать письма").Значение(Истина)).Рендер();Словарь#
Общие слова любого узла: Вид, Подпись, Подсказка (атрибут title), Якорь (атрибут id), Признак, Роль, Отключить, Скрыть, Когда, Токен; у своих родов — Открыть (раскрывашка), Высота и Ширина (картинка), СФайлами и БезПерезагрузки (форма), БезПодписиВЗаписи и Заглавная (колонка), Копируемое, Секрет и Примечание (свойство). У компонента общие слова с именем поля его модели пишут это поле.
Раскладка и текст#
| Узел | Рождение | Слова |
|---|---|---|
| Холст, Ничего | Кит.Холст(д…), Кит.Ничего() |
|
| Область, Статья, Раскрывашка, Список, Пункт, Свойства | (д…) |
Вид; у раскрывашки Открыть, Шапка(д…) |
| Ряд | Кит.Ряд(Вид, д…) |
|
| Группа | Кит.Группа(Подпись, д…) |
Вид |
| Свойство | Кит.Свойство(Имя, д…) |
Копируемое(Текст), Секрет, Примечание(Текст) |
| Заголовок | Кит.Заголовок(Уровень, д…) |
Вид |
| Надпись, Примечание | (д…) |
Вид |
| Текст | Кит.Текст(Строка) |
|
| Код | Кит.Код(Строка) |
Вид |
| Ссылка | Кит.Ссылка(Адрес, д…) |
Вид |
| Картинка | Кит.Картинка(Адрес) |
Подпись, Вид, Высота, Ширина |
| Шаблон | Кит.Шаблон(Образец, д…) |
|
| Документ, Голова, Тело, Шапка, Основное, Подвал, Навигация | Кит.Документ(Язык, Тема, д…), остальные (д…) |
Вид |
Таблица и формы#
| Узел | Рождение | Слова |
|---|---|---|
| Таблица | Кит.Таблица(Данные | д…) |
Вид, Колонка(Ключ, Заголовок), Пусто(д…), Пустое(Текст) (прочерк пустой ячейки), Разворот(Колонка), БезПерезагрузки (тихая сортировка) |
| Колонка | Кит.Колонка(Подпись) или Таблица.Колонка(…) |
Вид ("узкая", "число" — по правому краю, цифры одной ширины), БезПодписиВЗаписи, Заглавная, Когда, Сортировка(Адрес, "возр" | "убыв" | ""), Пустое(Текст) (прочерк колонки поверх прочерка таблицы; "" — без него) |
| Запись, Ячейка | (д…) |
Вид; у записи Разворот(д…) |
| Форма | Кит.Форма(Адрес, д…) |
Вид, Токен, СФайлами, БезПерезагрузки, Якорь, СПодтверждением(узел | Ид) |
| ФормаБезСессии, ФормаОтбора, ФормаБезТокена | (Адрес, д…) |
Вид; у формы отбора БезПерезагрузки (тихо и по изменению поля) |
| Поле | Кит.Поле(Имя, Метка) |
ТипЗначения, Значение, Подсказка, Источник, Пример, Автозаполнение, Ошибка, Обязательное, ТолькоЧтение, Заблокировано, Отмечено, Вариант(Значение, Подпись), Ид, Многострочное, Секрет, Файл, Список, Цвет, Образец(Цвет, Имя), ОбразцыТемы (палитра акцента кита), СкрытаяМетка; проверка до отправки — Пределы(Мин, Макс), Длина(Мин, Макс), Шаблон(Образец), ПроверкаНаСервере(Адрес), ПроверкаДоОтправки |
| СкрытоеПоле | Кит.СкрытоеПоле(Имя, Значение) |
|
| Тумблер | Кит.Тумблер(Имя, Метка) |
Включено, Подсказка, СохранятьСразу, Заблокировано, Значения(Вкл, Выкл), Подписи(Вкл, Выкл), Источник, Справка |
| Шаги | Кит.Шаги(д…) из Кит.Шаг(Подпись, д…) |
у шагов Вид("вкладки"), Кнопка(Подпись | узел), Подпись; у шага Текущий, Когда |
| Сегменты | Кит.Сегменты(Имя, д…) из Кит.Сегмент(Значение, Подпись, д…набор) |
у сегментов Выбрано(Значение), Подпись, Малые, СохранятьСразу, Источник(Текст) (откуда значение — справа на строке подписи группы), Якорь, Панель(Номер, д…) (новый узел — панель вне набора); у сегмента Выбран, Когда |
| ПанельСегмента | Кит.ПанельСегмента(ИмяСегментов, Номер, д…) |
область той же формы, видная по сегменту номер Номер (с 1) или со значением Номер (строка); дети — содержимое (0.13, дев-сборка 7) |
| Справка поля | Кит.Поле(Имя, Метка).Справка(Текст) |
длинное пояснение значком «?» с поповером рядом с подписью; Подсказка остаётся строкой под полем |
| Подсказка | Кит.Подсказка(Текст) |
Подпись (имя значка), Якорь (идентификатор поповера) |
| ПанельСохранения | Кит.ПанельСохранения(Подпись) |
Пояснение, АдресОтмены, Опасное, Иконка, Заблокирована, Имя(Имя, Значение) |
Компоненты#
| Узел | Рождение | Слова |
|---|---|---|
| Кнопка | Кит.Кнопка(Подпись) |
Основная, Вторичная, Опасная, Ссылкой, Малая, Большая, БезОтправки (в форме не отправляет её: type="button"; прежнее имя — Обычная), Иконка, ТолькоИконка, Адрес, Имя(Имя, Значение), БезВалидации, АдресОтправки, ВНовойВкладке, ВФорме(Якорь), Заблокирована, Занята, Подсказка, ВоВсюШирину, Текущая, Команда(Команда, Цель), Открывает(Окно | Ид), Счётчик(Число, Подпись), ЗнакРаскрытия, Картинка |
| Плашка | Кит.Плашка(Текст) или Кит.Плашка(д…) |
Вид, Адрес, Иконка, Подсказка |
| Карточка | Кит.Карточка(Заголовок, д…) |
Адрес, Описание, Иконка, Уровень, Якорь, Действия(д…) |
| ОпаснаяЗона | Кит.ОпаснаяЗона(Заголовок, д…) |
Пояснение, Подтверждение(Имя, Образец, Метка, Подсказка), Кнопка(Подпись) |
| ШапкаОбъекта | Кит.ШапкаОбъекта(Имя, д…действия) |
Иконка, Описание, Подпись, Вид, Знак(Иконка, Подпись), Мета(Подпись, Значение, Значок, Адрес), Плашка(узел | текст), Команда(Текст) |
| ЗаголовокСтраницы | Кит.ЗаголовокСтраницы(Заголовок) |
Пояснение, Уровень |
| БлокКоманды | Кит.БлокКоманды(Команда) |
Подпись, Пояснение, БезКопирования |
| Пагинация | Кит.Пагинация(Основа, Страница, ВсегоСтраниц) |
ЕстьСледующая, Параметр, Параметры(Имя, Значение), ПодписьНазад, ПодписьВперёд, Заголовок, Всего(Число), НаСтранице(Число), БезПерезагрузки |
| СтрокаПоиска | Кит.СтрокаПоиска(Действие) |
Имя, Метка, Значение, Пример, Кнопка(Подпись, Иконка) (без неё — значок поиска внутри поля), СкрытоеПоле(Имя, Значение), Поле(узел поля), БезПерезагрузки, СкрытаяМетка |
| Табы | Кит.Табы(д…) из Кит.Вкладка(Подпись, Адрес) |
у вкладки Активна, Иконка, Счётчик; у табов Заголовок |
| Крошки | Кит.Крошки(д…) из Кит.Крошка(Подпись, Адрес = "") |
у крошек Подпись (имя навигации) |
| Меню | Кит.Меню(Подпись, д…) из Кит.ПунктМеню(Подпись, Адрес) и форм |
Иконка, Аккаунт, Счётчик(Число, Подпись); у пункта Иконка |
| Реестр | Кит.Реестр(д…) из Кит.ЗаписьРеестра(Имя, д…тело) |
у реестра Нумерованный, Пусто(текст | д…), Подпись; у записи Значок, Картинка, Плашка(узел | текст), Подпись, Факт(Подпись, Значение, Вид), Номер, Открыть, Действия(д…), Кнопки(д…) |
| Сводка | Кит.Сводка(Название) |
Подпись (повторная — ещё часть через « · »), Знак(узел | текст), Сведение(Подпись, Значение, Вид) |
| Сетка | Кит.Сетка(д…) |
Колонки, Плотная, ПолныеРяды (у 3 и 4 колонок — только полные ряды на каждой ширине), Заголовок |
| ПустоеСостояние | Кит.ПустоеСостояние(Пояснение) |
Заголовок, Иконка, Действие(узел кнопки), Компактное |
| Плитка | Кит.Плитка(Значение, Подпись) |
Пояснение, Адрес, Иконка, Вид |
| Иконка | Кит.Иконка(Имя) |
Подпись |
| Уведомление | Кит.Уведомление(Текст) |
Вид, Заголовок, Закрываемый, Тревога |
| ПолосаЗаполнения | Кит.ПолосаЗаполнения(Процент, Метка) |
Метка, Подпись, Вид, Компактная |
| ДеревоГалок | Кит.ДеревоГалок(Узлы) или прежний вид модели |
Подпись, Узел; дерево на тысячу пунктов (0.13): Адрес, Поиск, Режимы, ТолькоПравки; ответы сервера: Найдено, Ветка |
| ПолеИзКонфига, Проводник, ДеревоРазделов, СтраницаОшибки | прежний вид модели | Метка, Значение, Подсказка, Секрет у поля из конфига; Заголовок у дерева разделов |
| РядПлашек, РядМеты | прежний вход списком |
Окна#
| Узел | Рождение | Слова |
|---|---|---|
| Окно | Кит.Окно(Заголовок, д…тело) |
Лид, Действия(д…) — второй холст, Вид (обычное | опасное | широкое), Широкое, ВоВесьЭкран, Открыто, Якорь, Форма(Адрес), БезПерезагрузки, Токен, СФайлами |
| Подтверждение | Кит.Подтверждение(Заголовок, Последствия, д…) |
Эхо(Имя, Образец, Метка, Подсказка), Кнопка(Подпись), Ошибка(Текст), Форма(Адрес), Открыто, Якорь, БезПерезагрузки |
| ОкноПоАдресу | Кит.ОкноПоАдресу(Адрес, Подпись) |
Основная, Вторичная, Опасная, Ссылкой, Малая, Большая, Иконка, ТолькоИконка, Подсказка |
| ОболочкаОкна | Кит.ОболочкаОкна(Всегда) |
— (печатает каркас страницы) |
Любой узел: Фокус() — признак data-focus, на него скрипт ставит фокус, когда форма окна ушла удачно.
Картинка и образец (0.12)#
| Узел | Рождение | Слова |
|---|---|---|
| СлотКартинки | Кит.СлотКартинки(Имя, Подпись) |
Адрес(ТекущаяКартинка), Состояние(Текст), Принимает(Типы), КнопкаЗагрузки(Подпись), Сброс(Адрес), Открыто, Ошибка(Текст) (отказ сервера под строкой состояния), Форма(Хвост), Якорь, Токен |
| Образец | Кит.Образец(Подпись, д…) |
Тема("светлая" | "тёмная"), Якорь, Зеркало |
Узел со своим тегом: Зеркало(ИмяПоля, Цвет) — признак data-mirror, скрипт пишет в узел текущее значение поля при вводе, цвет — в свойство CSS --mirror-<имя>. Имя поля — без точки (буквы, цифры, «-», «_»). Зеркало поля accent в образце перекрашивает узлы кита внутри узла сам.
Узел со своим тегом и компонент: ЗеркалоПризнаком(ИмяПоля, Значение) — значение поля (сегмент, радиокнопка, список, текст) в признаке data-mirror-<имя> узла (у компонента — на его первом теге), список имён — data-mirrors; сервер печатает текущее значение, скрипт переписывает при выборе. Текст и --mirror-* не трогает; вид по признаку задаёт лист приложения (0.13, дев-сборка 7).
Каркас настроек#
| Узел | Рождение | Слова |
|---|---|---|
| Дом | Кит.ДомНастроек(Заголовок, Адрес, Токен, д…секции) |
Ключ, Объект, Пояснение, Крошка(Подпись, Адрес), Уведомление(узел | текст), Рубрика(Подпись) (разделы после неё — под ней), Раздел(Подпись, Ключ, Иконка) |
| Раздел | Дом.Раздел(…) |
Текущий, Опасный, Счётчик(Число, Подпись) (число у пункта единого меню) |
| Секция | Кит.Секция(Заголовок, д…) |
Лид, Иконка, Форма(Хвост), Кнопка(Подпись), ИконкаКнопки, ИмяКнопки(Имя, Значение), ПояснениеПанели, АдресОтмены, Опасная, Заблокирована, БезПанели, СФайлами, Свёрнута(ПодписьРаскрытия), Раскрыта, Якорь, Действия(д…) — второй холст |
Прежний вид — подсказкой#
Где второй аргумент прежде был видом, а теперь там ребёнок-текст, строка-вид стала бы видимым словом на экране. Поэтому строка, совпавшая с видом рода, при рождении узла останавливает сборку подсказкой: «вид теперь задаётся словом .Вид(…)».
Кит.Область("полоса") — прежний вызов, исключение с подсказкой
Кит: «полоса» на месте ребёнка Кит.Область — это вид узла, а вид теперь задаётся словом .Вид(…): строка на месте ребёнка печатается текстом. Было Кит.Область(…, "полоса"), стало Кит.Область(…).Вид("полоса").
Попытка
Кит.Область("полоса");
Исключение
HTML = Кит.Примечание(КраткоеПредставлениеОшибки(ИнформацияОбОшибке())).Рендер();
КонецПопытки;Гайдлайны#
Код
HTML = Кит.Группа("Срок действия",
Кит.Поле("срок", "Дней").ТипЗначения("число").Значение(30).Обязательное(),
Кит.Примечание("От 1 до 90 дней.")).Рендер();Код
Группа = Кит.Группа("Срок действия");
Группа.Добавить(Кит.Поле(Новый Структура("Имя, Метка, Тип, Значение, Обязательное",
"срок", "Дней", "число", "30", Истина)));
Группа.Добавить(Кит.Примечание()).Добавить(Кит.Текст("От 1 до 90 дней."));
HTML = Группа.Рендер();Ключи
Ключей пока нет.
Код
ЕстьКлючи = Ложь;
HTML = Кит.Холст(
Кит.Заголовок(2, "Ключи"),
Кит.Примечание("Ключей пока нет.").Вид("пусто").Когда(НЕ ЕстьКлючи)).Рендер();Код
ПоказатьОтчёт = Ложь;
Строки = Новый Массив();
Для Номер = 1 По 100 Цикл
Строки.Добавить(Новый Структура("Номер", Номер));
КонецЦикла;
Отчёт = Кит.Таблица(Строки);
Отчёт.Колонка("Номер", "№");
HTML = Кит.Холст(Отчёт.Когда(ПоказатьОтчёт)).Рендер();Справка#
ЭлементЭкрана.Наполнить()src/Классы/холст/ЭлементЭкрана.os
Кладёт внутрь до восьми элементов разом, по порядку. Неопределено пропускается: так условный ребёнок пишется прямо в списке, а девятый и дальше кладутся Добавить(). Параметры: Р1 - ЭлементЭкрана, Строка, Неопределено - (необязательный) первый ребёнок; строка — текст. Р2 - ЭлементЭкрана, Строка, Неопределено - (необязательный) второй, и так до Р8. Р3 - ЭлементЭкрана, Строка, Неопределено - (необязательный) Р4 - ЭлементЭкрана, Строка, Неопределено - (необязательный) Р5 - ЭлементЭкрана, Строка, Неопределено - (необязательный) Р6 - ЭлементЭкрана, Строка, Неопределено - (необязательный) Р7 - ЭлементЭкрана, Строка, Неопределено - (необязательный) Р8 - ЭлементЭкрана, Строка, Неопределено - (необязательный) Возвращаемое значение: ЭлементЭкрана - этот же элемент.
ЭлементЭкрана.Когда()src/Классы/холст/ЭлементЭкрана.os
Печатает узел только при условии. Ложь печатает пустую строку, но узел остаётся в дереве (Дерево() показывает его пометкой [скрыт]); у колонки таблицы ложь снимает и заголовок, и ячейки под ним. Условие вычисляется всегда: там, где вычислять дорого, пишите Если и Кит.Ничего(). Параметры: Условие - Булево - печатать ли узел. Возвращаемое значение: ЭлементЭкрана - этот же элемент.
ЭлементЭкрана.Вид()src/Классы/холст/ЭлементЭкрана.os
Вид узла — значение из закрытого набора его рода; проверяется так же, как при рождении. У компонента пишет поле Вид его модели. Параметры: Значение - Строка - вид. Возвращаемое значение: ЭлементЭкрана - этот же элемент.
ЭлементЭкрана.Токен()src/Классы/холст/ЭлементЭкрана.os
CSRF-токен сессии для форм внутри узла: форма ищет его у себя и дальше вверх по предкам, поэтому на экране он задаётся один раз — у дома настроек или у корня экрана. Параметры: Значение - Строка - токен. Возвращаемое значение: ЭлементЭкрана - этот же элемент.
ЭлементЭкрана.ТипЗначения()src/Классы/холст/ЭлементЭкрана.os
Тип значения поля — системой типов OneScript: Тип("Число") печатается полем type=number,
Тип("Булево") — флажком, Тип("Дата") — type=date, Тип("Строка") — текстом. ОписаниеТипов
с квалификаторами даёт пределы: КвалификаторыЧисла — step и max, КвалификаторыСтроки —
maxlength, КвалификаторыДаты — date, datetime-local или time. Строка («email», «url»,
«пароль», «файл», «многострочное», «выбор», «флажок», «число», «текст») — прежний Тип
модели. Явный тип старше выведенного из Значения. Слово называется ТипЗначения, потому
что имя «Тип» в OneScript занято самой системой типов.
Параметры:
Значение_ - Тип, ОписаниеТипов, Строка - тип значения.
Возвращаемое значение:
ЭлементЭкрана - этот же элемент.