Вычислимые поля
Вычислимое поле не заполняется вручную — его значение считает сервер OkTable по формуле из других полей записи. Пример: «Окончание» = «Дата и время» + «Длительность».
Включение
В дизайнере таблицы создайте обычное поле (например, «Дата и время»), включите переключатель Вычислимое и введите формулу. Тип поля — тип результата: форматирование, валидация и отображение работают как у обычного поля этого типа.
Значение пересчитывается при каждом сохранении записи (включая офлайн-правки и API). Изменить его напрямую нельзя — поле доступно только для чтения. Кнопка «Обновить» рядом с полем пересчитывает его на текущий момент.
Формулы
Ссылки на поля:
- по имени:
Цена * Кол(имена без пробелов); - по псевдониму
field_N— номер поля из дизайнера, не меняется при сортировке; - имена с пробелами:
$env["Дата и время"].
Арифметика учитывает типы:
| Выражение | Результат |
|---|---|
| «Дата и время» + Длительность | дата-время, сдвинутое на минуты |
| Дата − Дата | длительность в минутах |
| Длительность + Длительность | длительность |
| число + число, строки + строки | обычная арифметика и склейка |
Длительность хранится в минутах: 90 — это «1 ч 30 мин». Вводить можно «90», «1:30», «1ч30».
Операторы: + − * / %, сравнения, и/или/не (&& || !), тернарник условие ? а : б, let:
let база = Цена * Кол; база > 10000 ? база * 0.9 : база
Функции: num, str, round(x, знаков), floor, ceil, abs, min, max, len, upper, lower, contains, days, hours, minutes, date(дата-время), time(дата-время), now(), today().
Даты и время хранятся как строки вида 2026-09-06, 14:30, 2026-09-06T14:30 — сравнения < и > работают напрямую. now() и today() фиксируются в момент сохранения записи.
Связанные записи
Через точку можно обращаться к полям связанных записей и агрегировать их:
sum(Детали.Сумма)
avg(Детали.Часы)
count(Детали)
Значение агрегата запоминается при сохранении записи. Если связанные записи изменились — пересохраните запись или нажмите «Обновить» у поля.
Ошибки
Если формула не может посчитаться (пустой источник, несовместимые типы), поле подсвечивается красным, а под ним выводится причина — исправьте исходные данные или формулу. Остальные поля записи не затрагиваются.
Ограничения
- вычислимое поле не может быть обязательным и не бывает множественным;
- тип результата — любой скалярный (число, текст, дата, время, длительность, флажок, выбор);
- доступ к связанным записям — на один уровень вложенности для агрегатов.