Типы полей
Поля в объект добавляются в режиме редактирования объекта (подробнее о настройке структуры объекта — в разделе Структура данных). Почти все поля имеют общие свойства:
- префикс и имя – в заголовке поля префикс не отображается, во всех остальных случаях наименование состоит из обоих полей;
- условие отображения поля – либо в списке и на вкладке детализации, либо только на вкладке (для ссылки на объект дополнительное условие – скрыть);
- вкладка детализации, на которой будет отображаться поле;
- условие размещения поля на новой строке, или следом на этой же строке (игнорируется в Android-версии);
- подсказка, появляющаяся при наведении и удержании мышки над полем (для строки дополнительно отображается в поле серым цветом до ввода данных).
Поля имеют дополнительные свойства, определяющие их отображение, изменение и фильтрацию.
Типы полей объекта, определяющие состав физически хранимых данных в таблицах БД:
- строка – строка различных подтипов;
- текст – многострочный текст;
- число – целое или дробное число;
- дата – в виде строки или календарика;
- время – в четырёх вариантах ввода формата ЧЧ:ММ;
- период – результат расчёта между двух дат (включая сегодня);
- переключатель – обязательный одиночный выбор из предопределённых значений;
- комбинация – множественный выбор из предопределённых значений;
- объект – ссылка на другой объект;
- составное – строка, составляемая из значений других полей по формуле;
- расчётное – значение, рассчитываемое из числовых и других расчётных полей;
Типы полей объекта, которые служат для оформления внешнего вида конструктора и выполнения дополнительных функций:
- ссылка на поле – ссылка на поле из ссылки на другой объект;
- надпись – служит для оформления детализации;
- краска – определяет цвет фона записи в списке;
- SMS сообщение – отправка одиночного SMS сообщения через шлюз;
- исполняемое – выполнение команд (с возможностью открытия в консольном окне);
- группа – группировка полей для блокировки и подкраски;
- условие – задание значения поля в зависимости от значения другого поля;
- подсказка – служит для показа дополнительной информации по записи из списка во всплывающем окне.
Тип поля файл — определяет ссылку на файл в хранилище и используется для его открытия.
- Подтип, определяющий различия в поведении и отображении данных:
- Строка – однострочное поле;
- Текст – многострочное поле с переносом по словам (в версии 6 вынесен в отдельный тип поля текст);
- Email – открытие системной почтовой программы и создание письма с подстановкой содержимого в адресную строку;
- Веб-ссылка – открытие интернет-проводника по умолчанию с указанной ссылкой;
- Ссылка на папку – открытие папки на локальном или сетевом компьютере;
- Ссылка на файл – открытие файла на локальном или сетевом компьютере;
- Пароль – отображается только в режиме редактирования, содержимое поля становится видимым при установке в него курсора;
- Карта – выбор картографического сервиса (из списка, определённого в настройках) для открытия указанного адреса в системном интернет-проводнике;
- Метки – при использовании в фильтре, производится выборка фраз, разделённых запятой и открытие их списком для отметки и фильтрации записей;
- Телефон – задает тип поля для Android-версии в кликабельном виде для набора номера.
- Исходное – значение, принимаемое полем при создании новой записи;
- Маска – определение маски ввода данных (подробнее см. в подразделе Маска и рег. выражение);
- Рег. выражение – регулярное выражение для установки правил ввода и проверки различных критериев;
- Уникальное – проверка на существующее значение в других записях;
- Автоподбор – отображение выпадающего списка значений, начинающихся с введённого контекста;
- Ширина колонки – для списка записей в пикселях (при значении 0 устанавливается по максимальному значению из всех видимых);
- Копия из – указывается поле (в квадратных скобках), при изменении которого копируется его значение. Если указано поле ссылочного объекта, то копируется значение при выборе ссылки на объект;
- В фильтре – условие применения фильтра для поля. Фильтр по полю может отображаться под списком записей (внизу) или на дополнительной вкладке (на вкладке). Фильтрация осуществляется по контекстному вхождению поисковой строки без учёта регистра.
Для отбора записей по начальным символам — строка фильтра должна заканчиваться символом звёздочки (*). |
Дополнительные свойства в форме:
- отображение в списке;
- исходное значение, перекрывающее исходное значение в объекте;
- применение в фильтре (по правилам применения в объекте).
Для подтипов ссылки на папку и ссылки на файл допускается задание относительного пути при помощи «..\» установленного в начале адресной строки. При открытии папки/файла, вместо «..\» подставляется путь к каталогу с конструктором Руна. |
- Исходное – значение, принимаемое полем при создании новой записи:
- значение – берётся исходное из свойства Значение;
- макс. + 1 – максимальное значение из всех записей + 1;
- последнее – повторение значения из последней введённой записи.
- Значение исходное значение при выбранном условии Исходного.
- Копия из – указывается поле (в квадратных скобках), при изменении которого копируется его значение. Если указано поле ссылочного объекта, то копируется значение при выборе ссылки.
- Знаков после запятой.
- Суффикс – строка, добавляемая в детализации следом за полем и в заголовке списка.
Примеры заполнения свойства Копия из:
[Поле объекта]
[Ссылка на объект.Поле объекта]
Значение суффикса отображается на второй строке заголовка списка записей. |
Дополнительные свойства в форме:
- отображение в списке;
- суммирование по полю дочернего списка;
- расчёт итога для записей, попадающих в заданный фильтр с отображением в нижней части списка;
- применение в фильтре (с возможностью скрытия исходного фильтра);
- исходное значение фильтра с двумя условиями.
Суммирование итога по дочернему объекту выполняется как для подчинённой, так и для равнозначной связи, с использованием их числовых и вычисляемых полей. В список дочерних объектов, при наличии равнозначной связи, также добавляется системный объект равнозначной связи, для которого можно указать дополнительные пользовательские поля для суммирования.
Возможные варианты условия для исходного фильтра в форме: больше (>), больше или равно (>=), меньше (<), меньше или равно (<=), равно (=), не равно (!=).
- Вид – определяет вид редактирования данных:
- календарь – стандартный системный календарь с обязательным значением;
- строка – строковое поле, допускающее пустое значение (отсутствие даты) с анализом вводимых данных и отображением справа предполагаемого результата.
- В фильтре – условие применения фильтра для поля. Фильтр состоит из двух строковых полей, определяющих нижнюю и верхнюю границу поиска: первое поле накладывает условие фильтрации больше или равно указанному значению, а второе поле — условие меньше или равно. При определении обоих полей фильтрация осуществляется за указанный период.
В строковой дате в качестве разделителя можно использовать символы: пробел, точка, тире, слэш:
- 1 10 — 01.10.2017 (текущий год)
- 8.1 — 08.01.2017 (текущий год)
- 5-12-1980 — 05.12.1980
- 10/3/3 — 10.03.2003
Если ввод производится без разделителей, то желательно указывать 6 или 8 чисел (две или четыре цифры года). Примеры: 05041987 (05.04.1987) или 011117 (01.11.2017).
Дополнительные свойства в форме:
- отображение в списке;
- применение в фильтре (с возможностью задания исходных границ и скрытия фильтра);
- применение в фильтре по дню/месяцу (с возможностью задания исходных значений).
Нижнюю и верхнюю исходные границы в форме можно задать с отличием в +/- дней от текущей даты, а исходные значения для фильтра по дню/месяцу установить в текущие.
- вид — способ ввода данных:
- обязательное значение с выбором часа и минуты;
- ручной ввод строки c возможностью оставить пустое значение;
- определение шага интервала в минутах;
- список предопределённых значений;
- допустимые границы для вводимого значения;
- шаг интервала при установленном виде Интервал;
- список значений при установленном виде Список.
- две даты, между которыми вычисляется период;
- формат представления результата (лет месяцев дней; лет; дней);
- значение, принимаемое при отрицательном результате вычисления (первая дата раньше второй).
Если в одной из дат используется системное поле ~today (сегодня), то, при смене текущей даты на компьютере, при открытии проекта производится перерасчёт поля для всех записей объекта. |
Для ручного перерасчёта всех интервалов и расчётных полей в объекте служит кнопка Перерасчёт в меню управления объектом.
- Значения – список значений для выбора, разделённые запятой.
- Вид – отображение значений в виде кнопок одной строкой или в виде выпадающего списка.
- Стиль – использование в списке записей текстовых значений или рисунков из ресурсов.
- В фильтре – условие применения фильтра для поля. Фильтр представляет собой выпадающий список. Фильтрация осуществляется по совпадению значения.
- Исходное – значение фильтра при первом открытии формы;
- Передаваемый параметр – имя параметра, в котором передаётся текущее значение поля при открытии окна выбора записи ссылочного объекта;
- Принимаемый параметр – имя параметра, значение которого устанавливается в фильтре поля при открытии окна выбора записи ссылочного объекта.
Если задан стиль отображения рисунков вместо текста, то при отсутствии в ресурсе одноименного рисунка в список записей ничего не выводится. |
Дополнительные свойства в форме:
- отображение в списке;
- применение в фильтре (с возможностью скрытия исходного фильтра);
- исходное значение фильтра (перекрывающее исходное значение фильтра в объекте).
- Значения – список значений для выбора, разделённые запятой.
- В фильтре – условие применения фильтра для поля.
- Условие фильтра, определяющее его поведение:
- логическое И – отбор записей, у которых обязательно есть все указанные условия;
- логическое ИЛИ – отбор записей, у которых есть хотя-бы одно из указанных условий.
Для выбора значений комбинации служит кнопка в правой части поля, открывающая список для включения/исключения нужных значений, которые отображаются в поле через запятую. Для окончания выбора — кликнуть за пределами списка значений.
Дополнительные свойства в форме:
- отображение в списке;
- применение в фильтре (с возможностью скрытия исходного фильтра);
- исходное значение фильтра (перекрывающее исходное значение фильтра в объекте).
- Источник – объект, записи которого служат источником данных.
- Исходное – значение, принимаемое полем при создании новой записи.
- Обратная связь – поле выбранного объекта, ссылающееся на текущий объект (для установки связи один-к-одному);
- В фильтре – условие применения фильтра для поля. Фильтрация осуществляется по совпадению значения.
- Исходное – значение фильтра при первом открытии формы;
- Передаваемый параметр – имя параметра в котором передаётся текущее значение поля при открытии окна выбора записи ссылочного объекта;
- Принимаемый параметр – имя параметра, значение которого устанавливается в фильтре поля при открытии окна выбора записи ссылочного объекта.
При выборе ссылки на объект открывается окно со списком записей указанного объекта вместе с определёнными для него фильтрами, но без детализации. При выборе записи окно списка записей источника закрывается, а в поле ссылки устанавливается значение первого поля записи. Для удаления ранее выбранного значения служит кнопка в правой части поля.
Для фильтрации записей с не заданным (пустым) значением, в фильтре служит кнопка (-). Данная комбинация символов также служит для установки в фильтре значения по умолчанию.
При установленной обратной связи с другим объектом, при выборе/удалении ссылки на запись, в записи этого объекта будет изменяться ссылка на текущий. Для аналогичного поведения со стороны другого объекта, в нём также надо задать обратную ссылку.
Дополнительные свойства в форме:
- отображение в списке;
- разрешение перехода к ссылочному объекту или форме, созданной на базе этого объекта, из детализации или списка записей;
- исходное значение, перекрывающее исходное значение в объекте;
- значение, получаемое из поля объекта пользователей, перекрывающее исходные значения в объекте и в форме;
- применение в фильтре (с возможностью скрытия исходного фильтра);
- исходное значение фильтра, перекрывающее исходное значение фильтра в объекте;
- значение, получаемое из поля объекта пользователей, перекрывающее исходные значения фильтра в объекте и в форме;
При задании перехода к одному или более объекту, в контекстном меню для списка записей добавляется перечень объектов/форм, к которым настроен переход. А в детализации для каждого поля добавляется кнопка перехода. |
Подробнее о значениях, получаемых из поля объекта пользователей, см. в настройке прав доступа.
- Формула, на основании которой составляется значение поля;
- кнопка Применить формулу для обновления значения во всех записях.
Составное поле работает по принципу формирования документа на базе шаблона, за исключением функций Image, Barcode и Del (см. Функции шаблонов). На основании формулы строится строка, недоступная для редактирования. Изменение поля производится при изменении тех полей, которые указаны в формуле.
Кнопка применения формулы может понадобится в тех случаях, когда изменяются значения полей, на основании которых формируется составное поле или для применения новой формулы ко всем записям объекта.
Составное поле может быть использовано для получения полей объекта (кроме ключевого) любой глубины вложенности, для промежуточного результата перед экспортом в шаблон и др., а при размещении первым в списке — для большей информативности ключевого поля. |
Составные поля не обрабатываются другими составными полями, т.е. не допускается их вложенность в пределах одного объекта. |
- Знаков после запятой;
- Суффикс – строка, добавляемая в детализации следом за полем и в заголовке списка;
- Формула – поле, в котором определяется формула для расчёта значения;
- Расчёт – условие отображения формулы с подставленными значениями.
Операнды и функции расчётного поля | |
---|---|
+ |
сложение |
* |
умножение |
- |
вычитание |
/ |
деление |
SQRT(аргумент) |
квадратный корень |
POW(аргумент;степень) |
возведение в степень (степень может быть дробной) |
INT(аргумент) |
целая часть числа (без округления) |
FRAC(аргумент;точность) |
дробная часть числа с указанным количеством цифр после запятой (результат – целое число) |
ABS(аргумент) |
модуль (абсолютная величина) |
LN(аргумент) |
натуральный логарифм |
AddDay(поле;аргумент) |
изменение даты на указанное в аргументе число дней (если для нового значения даты нет корректного значения, то возвращается ближайшая дата) |
AddMonth(поле;аргумент) |
изменение даты на указанное в аргументе число месяцев |
AddYear(поле;аргумент) |
изменение даты на указанное в аргументе число лет |
Аргументы для функций, степень или точность, могут быть как полем, так и числовым значением или расчётным выражением. Поля заключаются в квадратные скобки. Допускается использование полей ссылочных объектов любой глубины вложенности.
Синтаксис функций для числовых и составных полей отличается:
|
Примеры формул:
[Кол-во]*[Цена]
([Товар.Цена]+[Наценка])*[Кол-во]
[Дата заказа]+15
[Время ухода]-[Время прихода]
SQRT([Число1])*10+[Число2]
FRAC(POW([Число1];2,5)-0,999;INT(Число2))
Операции вычисления с датами выполняются по следующим правилам:
- дата+число, результат: дата;
- дата-число, результат: дата;
- дата-дата, результат: число (дней).
Поле времени обрабатывается как числовое поле, которое пересчитывается по формуле (с версии 5.1.9):
часы * 60 + минуты
При использовании системного поля ~today (сегодня) — оно заменяется на текущую дату. При смене даты на компьютере производится перерасчёт поля для всех записей объекта. |
Для ручного перерасчёта всех интервалов и расчётных полей в объекте служит кнопка Перерасчёт в меню управления объектом.
Дополнительные свойства в форме:
- отображение в списке;
- расчёт итога для записей, попадающих в заданный фильтр с отображением в нижней части списка;
- применение в фильтре (с возможностью скрытия исходного фильтра);
- исходное значение фильтра с двумя условиями, перекрывающее исходное значение фильтра в объекте.
- Объект – поле ссылки на объект;
- Поле – поле выбранного ссылочного объекта.
- Передаваемый параметр – имя параметра в котором передаётся текущее значение поля при открытии окна выбора записи ссылочного объекта.
Данное поле не доступно для редактирования и меняет своё значение при изменении поля ссылки на объект, из которого оно получает своё значение.
При добавлении поля в форму, для него можно определить условия фильтра, соответствующие типу указанного поля. При указании ссылки на поле ссылки, будет использован тип конечного поля.
Поля ссылок не обрабатываются в шаблонах и составных полях, а также не обрабатываются в расчётных полях. Для получения необходимых данных требуется использовать полную ссылку на поле объекта. |
- Цвет – цвет строки. Выбирается из предопределённой матрицы или вводится вручную по шестнадцатеричной цветовой маске #RrGgBb.
Надпись отображается только в детализации.
Если имя надписи равно "---" (без учёта префикса), то она заменяется разделительной линией.
- Цвет – цвет фона строки записи в списке. Выбирается из предопределённой матрицы или вводится вручную по шестнадцатеричной цветовой маске #RrGgBb;
- Условие – сравнительные условия для полей объекта, разделённые запятой. Поля объекта заключаются в квадратные скобки.
Число полей краски в одном объекте не ограничено.
В условии цвета разрешено использование типов полей: переключатель, ссылка на объект, число, расчёт и составное.
Возможные варианты условий: больше (>), больше или равно (>=), меньше (<), меньше или равно (<=), равно (=), не равно (!=). Все условия действуют для числовых и расчётных полей. Для переключателя и ссылки на объект выполняется только условие равенства (проверка на совпадение).
Пример условия:
[Статус]=В обработке, [Стоимость]>=10000, [Стоимость]<20000
Условия в поле цвета, перечисленные через запятую, выполняются по принципу И. Если необходимо выполнение по принципу ИЛИ, то для этого создаётся несколько полей цвета со своими условиями.
При необходимости окраски строк в форме итогов, в которой создаются дополнительные расчётные и итоговые поля, можно указывать имена этих полей форм, которых нет в объекте.
- Телефон – поле, в котором содержится телефон получателя SMS;
- SMS шлюз – поле SMS-шлюза получателя;
- Текст – поле содержащее текст для отправки (строковое или составное);
- Дата – поле даты, в которое помещается дата отправленного сообщение (не обязательно);
- Время – поле времени, в которое помещается время отправленного сообщение (не обязательно);
- Результат – строковое поле, в которое помещается результат отправки (не обязательно).
Для отправки сообщения служит кнопка в правой части поля, по которой открывается окно с данными получателя (телефон и шлюз) и текстом сообщения. По кнопке "Отправить" производится попытка отправки сообщения, результат которой записывается в указанные поля даты, времени и результата. При повторной отправке SMS сообщения данные результатов переписываются.
В случае, если не задано поле результата, после попытки отправки сообщения открывается окно с данной информацией.
Настройку SMS-шлюзов см. на странице формы SMS рассылки.
исполняемое (с версии 5.1.1)
- Окно консоли – условие выполнения команд: в системном консольном окне или в фоновом режиме;
- Число строк – число строк, отображаемых в окне (0 - занять всё свободное пространство);
- Выполнение – условие процесса выполнения нескольких команд:
- все – выполнение всех команд, независимо от результата завершения;
- предыдущая была успешной – выполнение первой команды, а затем каждой последующей, если предыдущая была выполнена успешно (код завершения равен 0);
- предыдущая не успешная – выполнение первой команды, а затем каждой последующей, только если предыдущая не была выполнена (код завершения не равен 0).
Каждая отдельная команда в поле должна начинаться с новой строки.
Для запуска выполнения списка команд, при работе с данными, служит кнопка в правой части поля.
Выполнение команд в консольном окне и в фоновом режиме может отличаться. |
Для закрытия консольного окна вручную рекомендуется ставить последней команду pause. |
Для Linux и macOS — в разработке.
группа (с версии 6.0)
См. статью на форуме: "Поле группы на примерах".
условие (с версии 6.0)
См. сообщение на форуме: "Принцип работы с полем условия".
подсказка (с версии 6.0)
См. статью на форуме: "Поле подсказки".
При наличии в структуре объекта поля типа файл, при работе с данными в правой части вкладки детализации, на которой размещено поле, отображается панель с прикреплёнными к записи файлами. Если файл является изображением, то для него создаётся уменьшенная копия предосмотра.
При добавлении файла к записи он копируется в хранилище (локальное — папка _files, удалённое — указанная папка настроенного облака). Добавление возможно с любого подключённого по сети компьютера. Информация о добавленном файле помещается в базу данных (для минимизации файловых или сетевых операций), поэтому при физическом удалении файла из хранилища, вместо иконки файла будет отображена иконка, обозначающая отсутствие файла под указанным именем.
Добавление файла под существующим названием открывает подтверждение замены ранее существующего. При указании в поле файла имени уже существующего, он будет отображен в правой панели. Изменение имени в поле на несуществующее приведёт к отображению иконки отсутствующего файла.
Открытие файла производится двойным кликом по иконке или через контекстное меню, в котором можно выбрать системную программу, которой будет открыт файл. При открытии файла он копируется на пользовательский компьютер в папку _cache, из которой и производится его открытие. Повторное открытие файла не будет вызывать загрузку его с сервера.
При обновлении файла на сервере, удалённым пользователям, у которых уже есть старая версия файла, при его открытии будет загружаться новая.
При удалении имени прикреплённого файла из поля — файл из хранилища физически не удаляется. Его удаление из хранилища осуществляется вручную.
В папке _cache, кроме загруженных файлов, во вложенной папке _thumbs хранятся иконки предосмотра. Удаление папки _cache допустимо для минимизации объёма хранимых файлов на диске, но будет вызывать дополнительную нагрузку на сеть при удалённом подключении и задержки в работе.
При включении проекта серверным, файлы из каталога _files необходимо перенести в каталог облачного хранилища, настроить к нему доступ в настройках программы и указать использование данного хранилища в свойствах проекта. |