Формулы и условия
В NextDoc одни и те же выражения из полей, функций и операторов используются в нескольких местах: для автоматического заполнения полей по формуле, в условиях уведомлений и проверок, в проверке значения поля, в условии видимости поля и в условиях доступа.
В этом разделе описаны правила написания таких выражений, функции, которые можно в них использовать, и типичные ошибки. Примеры в разделе построены на тестовом типе записи* — его поля перечислены в разделе «Примеры».
* В вашем проекте записи могут называться документами. Это зависит от готового решения, а порядок действий не меняется.
Где используются формулы и условия
| Где | Что задаётся | Результат выражения | Подробнее |
| Поле → Дополнительные параметры → Автоматическое заполнение поля → Вычислить по формуле | Формула | Значение поля: текст, число, дата или да/нет | Автоматическое заполнение полей |
| Поле → Дополнительные параметры → Проверка значения | Выражение для проверки | Да/нет: можно ли сохранить введённое значение | Настройка параметров поля, Настройка проверки значений полей |
| Поле → Дополнительные параметры → Настройка видимости | Условие видимости | Да/нет: показывать ли поле в карточке | Настройка параметров поля |
| Поле → Уведомления → Условие срабатывания | Условие | Да/нет: отправлять ли уведомление | Обработка событий типа поля |
| Тип записи → обработчики событий: Проверить условие или Условие срабатывания | Условие | Да/нет: разрешить операцию или отправить уведомление | Обработка событий типа записи |
| Настройки доступа к типу записи или полю | Условие | Да/нет: действует ли разрешение для документа (записи) | Настройка доступа к отдельным типам записей, Настройка доступа к отдельным полям |
Синтаксис везде одинаковый, но набор доступных полей и функций зависит от места (см. «Что доступно в разных местах»).
Как ввести формулу
- Откройте карточку документа нужного типа записи.
- Наведите курсор на поле, значение которого нужно вычислять, и нажмите на кнопку настройки поля справа.
- В окне настройки поля разверните группу Дополнительные параметры.
- В пункте Значение поля выберите Вычислить по формуле.
- Введите выражение в поле Формула. Чтобы вставить поле или функцию, нажмите на них в списке под полем ввода. Чтобы открыть список подсказок прямо в поле ввода, нажмите Ctrl+Пробел:

- При необходимости отметьте Обновлять автоматически и Значение можно редактировать (см. таблицу параметров ниже).
- Нажмите кнопку Сохранить.
Если в выражении есть ошибка, окно не закроется и появится сообщение об ошибке (см. «Типичные ошибки»). Если в поле уже есть значения в документах (записях), NextDoc предупредит, что при переходе на формулу они будут безвозвратно удалены.
В карточке поля, которые заполняются по формуле, отмечены значком ƒx:

Условия для уведомлений, проверки значения, видимости и доступа вводятся так же: в окне есть поле ввода, список Примеры условий (или Примеры выражений) и список полей и функций, которые можно вставить нажатием.
Условие срабатывания уведомления поля:

Проверка значения поля и сообщение об ошибке:

Условие видимости поля:

Из чего состоит выражение
Поля
Поле документа (записи) записывается как ${идентификатор}, например ${text_1}, ${date_1}, ${val_1}. Идентификатор поля виден в списке Поля документа под полем ввода — рядом с названием поля. Нажмите на строку списка, чтобы вставить поле в выражение.
Системные поля:
| Поле | Что означает |
${createdon} |
Дата создания документа (записи) |
${createdby} |
Пользователь, создавший документ (запись) |
${owner} |
Владелец документа (записи) |
${ownerGroup} |
Группа владельца |
${id_tree} |
Раздел, в котором находится документ (запись) |
У полей-ссылок (пользователь, связанный документ) можно взять значение вложенного поля через точку: ${createdby.name} — имя создателя документа (записи).
В проверке значения и в условиях уведомлений поля используются ещё две переменные:
| Переменная | Что означает |
value |
Новое (текущее) значение поля |
old_value |
Прежнее значение поля, до изменения. Только в условиях уведомлений поля |
У поля-файла можно проверить размер и тип: value.size, value.type (пример из подсказки: value.size<100000 && value.type=='jpg').
Значения
| Что | Как записать | Пример |
| Текст | В одинарных или двойных кавычках | 'Срочно', "Срочно" |
| Число | Цифрами, дробная часть через точку | 1000, 12.5 |
| Дата | Функцией DATE() со строкой вида ‘гггг-мм-дд’ или ‘гггг-мм-дд чч:мм’ |
DATE('2026-12-31'), DATE('2026-12-31 18:00') |
| Да/нет | true, false |
${flag_1}==true |
| Пустое значение | null |
${text_3}==null |
| Значение справочника | Как текст, в кавычках | ${list_1}=='В работе' |
Операторы
| Оператор | Что означает | Пример |
+ |
Сложение чисел; для текста — объединение | ${val_1}+${val_2}, 'Сумма: '+${val_1} |
- * / |
Вычитание, умножение, деление | ${val_2}*${int_1} |
% |
Остаток от деления | ${int_1} % 2 == 0 — чётное количество |
== |
Равно | ${list_1}=='Закрыта' |
!= |
Не равно | ${list_1}!='Закрыта' |
> < >= <= |
Больше, меньше, больше или равно, меньше или равно | ${val_1}>=1000 |
&& |
И — оба условия выполнены | ${flag_1} && ${val_1}>1000 |
|| |
ИЛИ — выполнено хотя бы одно условие | ${flag_1} || ${val_1}>1000 |
! |
НЕ — отрицание | !${flag_1} |
условие ? A : B |
Если условие выполнено — A, иначе B | ${flag_1} ? 'Срочно' : 'Обычный' |
( ) |
Порядок вычисления | (${val_1}+${val_2})*0.87 |
Функции
Функции записываются заглавными буквами, аргументы перечисляются в скобках через запятую. Необязательные аргументы в таблицах указаны в квадратных скобках.
Числовые функции
| Функция | Что делает | Пример |
MAX(число1, число2, …) |
Наибольшее из чисел | MAX(1, 2, 3.1) = 3.1 |
MIN(число1, число2, …) |
Наименьшее из чисел | MIN(1, 2, 3.1) = 1 |
AVG(число1, число2, …) |
Среднее | AVG(1.5, 2, 5.5) = 3 |
ABS(число) |
Абсолютное значение (без знака) | ABS(-123) = 123 |
ROUND(число) |
Округление до ближайшего целого | ROUND(12.5) = 13 |
FLOOR(число) |
Округление вниз | FLOOR(12.5) = 12 |
CEIL(число) |
Округление вверх | CEIL(12.5) = 13 |
SQRT(число), CBRT(число) |
Квадратный и кубический корень | SQRT(25) = 5 |
POW(число, степень) |
Возведение в степень | POW(2, 10) = 1024 |
E(), EXP(число), LOG(число), LOG10(число) |
Число e, экспонента, натуральный и десятичный логарифм | LOG10(1000) = 3 |
PI(), SIN, COS, TAN, ASIN, ACOS, ATAN, TO_DEGREES, TO_RADIANS |
Число π и тригонометрические функции | SIN(TO_RADIANS(30)) = 0.5 |
RANDOM() |
Случайное число от 0 до 1 | ROUND(RANDOM()*100) — целое от 0 до 100 |
FORMAT(число [, знаков после запятой]) |
Число в виде текста с разделителями разрядов | FORMAT(12345678) = «12 345 678» |
NO_FORMAT(число) |
Число в виде текста без форматирования | NO_FORMAT(12345.6789) = «12345.6789» |
STR(число [, знаков после запятой]) |
То же, что FORMAT |
STR(4)+STR(10) = «410» |
NUM(строка) |
Преобразует текст в число | NUM('23 руб.')*2 = 46 |
FORMAT_BYTES(число) |
Размер в байтах в виде КБ, МБ и т. п. | FORMAT_BYTES(1024) = «1 КБ» |
Функции дат и времени
| Функция | Что делает | Пример |
DATE(строка) |
Преобразует строку ‘гггг-мм-дд[ чч:мм[:сс]]’ в дату | DATE('2026-12-31') |
TIME(строка, дата или число) |
Время из строки ‘чч:мм[:сс]’, из даты или из количества секунд | TIME(NOW()) — текущее время |
NOW() |
Текущие дата и время | NOW()>${date_2} |
MAX(дата1, дата2, …), MIN(…) |
Самая поздняя или самая ранняя из дат | MAX(${date_1}, ${date_2}) |
DATE_DIFF(дата1, дата2, единица) |
Разница «дата2 минус дата1» в единицах: ‘years’, ‘months’, ‘days’, ‘hours’, ‘minutes’, ‘seconds’, ‘millis’ | DATE_DIFF(${date_1}, ${date_2}, 'days') = 21 |
DATE_ADD(дата, количество, единица) |
Прибавляет к дате указанное количество единиц (отрицательное — вычитает) | DATE_ADD(${date_1}, 10, 'days') |
DATE_PART(дата, часть) |
Часть даты: ‘year’, ‘month’, ‘day’, ‘hour’, ‘minute’, ‘second’, ‘day_of_year’ | DATE_PART(${date_1}, 'month') = 9 |
YEAR(дата) |
Год | YEAR(${date_1}) = 2026 |
ROUND(дата) |
Отбрасывает время, оставляет дату | ROUND(NOW()) |
FORMAT(дата, формат) |
Дата в виде текста по шаблону (см. ниже) | FORMAT(${date_1}, 'dd.MM.yyyy') = «24.09.2026» |
Шаблон для FORMAT(дата, формат):
| Символы | Что означает | Пример для 24.09.2026 |
d, dd |
День месяца | 24 |
M, MM |
Месяц числом | 9, 09 |
MMM, MMMM |
Месяц словом (сокращённо, полностью) | сент., сентября |
y, yyyy |
Год | 2026 |
H, HH |
Час, 24-часовой формат | 14 |
h |
Час, 12-часовой формат | 2 |
m, mm |
Минуты | 05 |
s, ss |
Секунды | 00 |
D |
День года | 267 |
E, EEEE |
День недели (сокращённо, полностью) | чт, четверг |
Остальные символы шаблона выводятся как есть, например FORMAT(${date_1}, 'd MMMM yyyy') = «24 сентября 2026».
Строковые функции
Позиции символов в строке считаются с 0.
| Функция | Что делает | Пример |
LENGTH(строка) |
Длина строки | LENGTH('это строка') = 10 |
SUBSTRING(строка, от [, до]) |
Часть строки с позиции «от» до позиции «до» (не включая) | SUBSTRING('это строка', 2, 7) = «о стр» |
INDEX_OF(строка, подстрока [, с позиции]) |
Позиция подстроки в строке | INDEX_OF('это строка', 'стр') = 4 |
CONTAINS(строка, подстрока) |
Содержит ли строка подстроку | CONTAINS(${text_2}, 'Вектор') |
STARTS_WITH(строка, подстрока) |
Начинается ли строка с подстроки | STARTS_WITH(${text_2}, 'ООО') |
ENDS_WITH(строка, подстрока) |
Заканчивается ли строка подстрокой | ENDS_WITH(${text_1}, '/2026') |
REPLACE(строка, подстрока, замена) |
Заменяет подстроку | REPLACE(${text_1}, '/', '-') = «17-2026» |
REGEXP_MATCHES(строка, рег. выражение) |
Соответствует ли строка регулярному выражению | REGEXP_MATCHES(${text_1}, '^\\d+/\\d{4}$') |
REGEXP_REPLACE(строка, рег. выражение, замена) |
Заменяет все найденные фрагменты | REGEXP_REPLACE(${text_2}, '[«»"]', '') = «ООО Вектор» |
LOWER_CASE(строка), UPPER_CASE(строка) |
Строчные или заглавные буквы | UPPER_CASE('ооо вектор') = «ООО ВЕКТОР» |
CAPITALIZE(строка) |
Первая буква заглавная | CAPITALIZE(LOWER_CASE('ООО ВЕКТОР')) = «Ооо вектор» |
TRIM(строка) |
Убирает пробелы в начале и в конце | TRIM(' текст ') = «текст» |
PAD_LEFT(строка, длина, заполнитель), PAD_RIGHT(…) |
Дополняет строку слева или справа до нужной длины | PAD_LEFT(STR(${int_1}), 5, '0') = «00004» |
CONCAT(значение, …) |
Объединяет значения любого типа в строку | CONCAT('Договор № ', ${text_1}, ' от ', ${date_1}) |
Функции для наборов данных
Используются в формулах с полями-наборами: связанными документами, таблицами файлов, списками пользователей и множественными справочниками. Примеры взяты из подсказки в окне формулы.
| Функция | Что делает | Пример |
SUM(поле) |
Сумма числового поля в таблице связанных записей | SUM(${multilink_1.val_2}) |
COUNT(набор или поле) |
Количество элементов набора или непустых значений поля | COUNT(${multifile_1}) |
PCT(поле) |
Процент заполнения поля в таблице связанных записей | PCT(${multilink_1.val_2}) |
MAX(поле), MIN(поле), AVG(поле) |
Наибольшее, наименьшее, среднее значение поля в таблице связанных записей | MAX(${multilink_1.val_2}) |
CONTAINS(набор, значение) |
Есть ли значение в наборе | CONTAINS(${ulist_1}, 'Иван Иванов') |
CONTAINS_ONLY(набор, значение1, …) |
Содержит ли набор только указанные значения | CONTAINS_ONLY(${multilink_1.list_1}, 'Значение 1', 'Значение 2') |
CONTAINS_EMAIL(список пользователей, email) |
Есть ли в списке пользователь с таким адресом | CONTAINS_EMAIL(${ulist_1}, 'addr@domain.com') |
Прочие функции
| Функция | Что делает | Пример |
IF_NULL(значение, замена) |
Значение, а если оно пустое — замена | IF_NULL(${text_3}, 'нет примечания') |
ME() |
Текущий пользователь | ${createdby}==ME(), ME().name |
MY_GROUP() |
Группа текущего пользователя | ${ownerGroup}==MY_GROUP() |
PATH() |
Путь к разделу документа (записи): список разделов | — |
NO_CHANGE() |
Оставить значение поля без изменения. Только в формулах | ${flag_1} ? NOW() : NO_CHANGE() |
Что доступно в разных местах
| Где | Поля `${…}` | `value`, `old_value` | Функции |
| Формула поля | Да | value — текущее значение поля |
Все, включая функции для наборов данных и NO_CHANGE() |
| Условие уведомления или проверки типа записи | Да | Нет | Все, кроме NO_CHANGE() |
| Условие уведомления поля | Да | Да | Все, кроме NO_CHANGE() |
| Проверка значения поля | Нет — только value |
Только value |
Все, кроме NO_CHANGE() |
| Условие видимости | Да | Нет | DATE, TIME, NOW, YEAR, SUBSTRING, LENGTH, INDEX_OF, CONTAINS, STARTS_WITH, ENDS_WITH, LOWER_CASE, UPPER_CASE, TRIM, CONTAINS_ONLY, IF_NULL, ME, MY_GROUP |
| Условие доступа | Да | Нет | Только DATE, TIME, NOW, CONTAINS, IF_NULL, ME, MY_GROUP и операторы |
Если использовать недоступную функцию, при сохранении появится ошибка, например «Ошибка в условии: STARTS_WITH».
Примеры
В примерах используются поля тестового типа записи. В ваших типах записей идентификаторы полей будут другими — подставьте их из списка Поля документа.
| Поле | Идентификатор | Значение в примерах |
| Номер | ${text_1} |
17/2026 |
| Контрагент | ${text_2} |
ООО «Вектор» |
| Дата документа | ${date_1} |
24.09.2026 |
| Срок исполнения | ${date_2} |
15.10.2026 |
| Сумма | ${val_1} |
1500 |
| Цена | ${val_2} |
12,5 |
| Количество | ${int_1} |
4 |
| Статус (справочник) | ${list_1} |
В работе |
| Примечание | ${text_3} |
проверено |
| Срочно (флаг) | ${flag_1} |
да |
Формулы для текстового поля
| Задача | Формула | Результат |
| Название договора из номера и даты | 'Договор № '+${text_1}+' от '+FORMAT(${date_1}, 'dd.MM.yyyy') |
Договор № 17/2026 от 24.09.2026 |
| То же через CONCAT | CONCAT('Договор № ', ${text_1}, ' от ', ${date_1}) |
Договор № 17/2026 от 24.09.2026 |
| Контрагент и номер | ${text_2}+' — '+${text_1} |
ООО «Вектор» — 17/2026 |
| Дата с названием месяца | FORMAT(${date_1}, 'd MMMM yyyy') |
24 сентября 2026 |
| День недели | FORMAT(${date_1}, 'EEEE') |
четверг |
| Сумма с текстом | 'Итого: '+FORMAT(${val_1}, 2)+' руб.' |
Итого: 1500 руб. |
| Текст по флагу | ${flag_1} ? 'Срочно' : 'Обычный' |
Срочно |
| Заполнено ли поле | ${text_3}!=null ? 'Есть примечание' : 'Без примечания' |
Есть примечание |
| Значение по умолчанию для пустого поля | IF_NULL(${text_3}, 'нет примечания') |
проверено |
| Часть номера до «/» | SUBSTRING(${text_1}, 0, INDEX_OF(${text_1}, '/')) |
17 |
| Замена символа | REPLACE(${text_1}, '/', '-') |
17-2026 |
| Номер с ведущими нулями | PAD_LEFT(STR(${int_1}), 5, '0') |
00004 |
| Название без кавычек | REGEXP_REPLACE(${text_2}, '[«»"]', '') |
ООО Вектор |
| Заглавными буквами | UPPER_CASE(${text_2}) |
ООО «ВЕКТОР» |
| Кто и когда создал документ (запись) | 'Создал: '+${createdby.name}+', '+FORMAT(${createdon}, 'dd.MM.yyyy HH:mm') |
Создал: <имя пользователя>, <дата и время создания> |
| Моя или чужая запись | ${createdby}==ME() ? 'Моя запись' : 'Чужая запись' |
Моя запись |
| Сколько дней до срока | 'Осталось дней: '+DATE_DIFF(NOW(), ${date_2}, 'days') |
Осталось дней: 12 (если сегодня 02.10.2026) |
Формулы для числового поля
| Задача | Формула | Результат |
| Стоимость = цена × количество | ${val_2}*${int_1} |
50 |
| Сумма с НДС 20 % | ${val_1}*1.2 |
1800 |
| Скидка 10 % для крупных сумм | ${val_1}>1000 ? ${val_1}*0.9 : ${val_1} |
1350 |
| Сумма двух полей, если одно может быть пустым | IF_NULL(${val_2}, 0)+${val_1} |
1512,5 |
| Наибольшее из значений | MAX(${val_1}, ${val_2}) |
1500 |
| Округление | ROUND(${val_2}) |
13 |
| Число из текста | NUM(${text_1}) |
17 |
| Срок исполнения в днях | DATE_DIFF(${date_1}, ${date_2}, 'days') |
21 |
| Месяц документа (записи) | DATE_PART(${date_1}, 'month') |
9 |
| Год документа (записи) | YEAR(${date_1}) |
2026 |
Формулы для поля-даты
| Задача | Формула | Результат |
| Контрольный срок: дата документа + 10 дней | DATE_ADD(${date_1}, 10, 'days') |
04.10.2026 |
| На месяц раньше | DATE_ADD(${date_1}, -1, 'months') |
24.08.2026 |
| Более поздняя из двух дат | MAX(${date_1}, ${date_2}) |
15.10.2026 |
| Срок в зависимости от срочности | ${flag_1} ? DATE_ADD(${date_1}, 3, 'days') : DATE_ADD(${date_1}, 10, 'days') |
27.09.2026 |
| Фиксированная дата | DATE('2026-12-31') |
31.12.2026 |
| Дата отметки флага | ${flag_1} ? NOW() : NO_CHANGE() |
Дата и время, когда отметили Срочно |
Формулы для поля-флага
| Задача | Формула |
| Крупная сумма | ${val_1}>1000 |
| Дата в заданном периоде | ${date_1}>=DATE('2026-01-01') && ${date_1}<=DATE('2026-12-31') |
| Обратное значение другого флага | !${flag_1} |
| Срочно или крупная сумма | ${flag_1} || ${val_1}>1000 |
| Просрочен (срок прошёл, статус не «Закрыта») | ${date_2}<NOW() && ${list_1}!='Закрыта' |
Формула, которую можно исправить вручную
Если отмечено Значение можно редактировать, ручное исправление будет перезаписано при следующем пересчёте формулы. Чтобы сохранить исправление, используйте value (текущее значение поля) и NO_CHANGE():
ENDS_WITH(value, '(исправлено)') ? NO_CHANGE() : CONCAT('Договор № ', ${text_1}, ' от ', ${date_1})
Если пользователь допишет в конце значения «(исправлено)», формула перестанет менять поле.
Условия уведомлений и проверок типа записи
| Задача | Условие |
| Срок исполнения не раньше даты документа (записи) (для Проверить условие) | ${date_2}==null || ${date_2}>=${date_1} |
| Сумма не больше 500 000 (для Проверить условие) | ${val_1}<=500000 |
| Уведомить, если сумма больше 500 000 | ${val_1}>500000 |
| Уведомить только о срочных | ${flag_1} |
| Уведомить о незакрытых задачах | ${list_1}!='Закрыта' |
| Уведомить, если документ (запись) создал текущий пользователь | ${createdby}==ME() |
| Уведомить, если контрагент — ООО | STARTS_WITH(${text_2}, 'ООО') |
| Уведомить, если до срока меньше 3 дней | DATE_DIFF(NOW(), ${date_2}, 'days')<3 |
Если условие для Проверить условие не выполнено, операция не выполняется и пользователь видит сообщение «Не выполнено условие для продолжения операции».
Условия уведомлений поля
| Задача | Условие |
| Значение действительно изменилось, а не заполнено впервые | value!=old_value && old_value!=null |
| Сумма превысила 1000 | value>1000 |
| Срок перенесён больше чем на неделю | DATE_DIFF(old_value, value, 'days')>7 |
| Статус сменился на «Закрыта» | value=='Закрыта' |
| Год даты изменился | DATE_PART(value, 'year')!=DATE_PART(old_value, 'year') |
Проверка значения поля
В выражении используется только value — значение, которое вводит пользователь. Если выражение не выполняется, документ (запись) не сохраняется и появляется сообщение «Поле <название поля>: <сообщение в случае ошибки>».
| Задача | Выражение для проверки |
| Число от 1 до 100 | value>0 && value<=100 |
| Дата не раньше 01.01.2024 и не позже сегодняшнего дня | value>=DATE('2024-01-01') && value<=NOW() |
| Текст не длиннее 10 символов | LENGTH(value)<=10 |
| Номер в формате «число/год» | REGEXP_MATCHES(value, '^\\d+/\\d{4}$') |
| Номер в формате «число/год» (только регулярное выражение) | ^\d+/\d{4}$ |
| Недопустимое значение | value!='Недопустимое значение' |
Для текстовых полей вместо выражения можно указать только регулярное выражение (последняя строка таблицы). Обратите внимание: внутри кавычек в функции REGEXP_MATCHES обратная косая черта удваивается.
Условия видимости поля
Условие проверяется сразу при изменении полей в карточке: поле появляется или скрывается без сохранения документа (записи).
| Задача | Условие видимости |
| Показывать Примечание, только если отмечено Срочно | ${flag_1} |
| Показывать, если заполнены номер и дата | ${text_1}!=null && ${date_1}!=null |
| Скрыть при определённом статусе | ${list_1}!='Закрыта' |
| Показывать только создателю документа (записи) | ${createdby}==ME() |
| Показывать для документов (записей) текущего года | YEAR(${date_1})==YEAR(NOW()) |
Условия доступа
| Задача | Условие |
| Документы (записи), созданные пользователем | ${createdby}==ME() |
| Документы (записи), где пользователь — владелец | ${owner}==ME() |
| Документы (записи) группы пользователя | ${ownerGroup}==MY_GROUP() |
| Незакрытые документы (записи) | ${list_1}!='Закрыта' |
| Документы (записи) с суммой до 100 000 | ${val_1}<100000 |
| Документы (записи) с датой с 01.01.2026 | ${date_1}>=DATE('2026-01-01') |
| Срочные документы (записи) | ${flag_1} |
Типичные ошибки
| Ошибка | Как правильно |
${list_1}='Закрыта' — одинарный знак равенства. При сохранении: «Ошибка в выражении» |
${list_1}=='Закрыта' |
${val_1}=>1000 |
${val_1}>=1000 |
${date_1}>'2026-01-01' — дата записана как текст. Для поля-даты формула вида '2026-01-01' не сохраняется |
${date_1}>DATE('2026-01-01') |
${date_2}>=${date_1} в проверке — если Срок исполнения не заполнен, условие не выполнено и документ (запись) не создаётся |
${date_2}==null || ${date_2}>=${date_1} |
${val_1}+${val_2}, когда одно из полей пустое — результат пустой |
IF_NULL(${val_2}, 0)+${val_1} |
${text_1}+${val_1} — число «приклеивается» к тексту без пробела: «17/20261500» |
${text_1}+' — '+${val_1} |
${text_9} — поля нет в типе записи. При сохранении: «В выражении указано несуществующее или неподходящее по типу поле text_9» |
Вставьте поле из списка Поля документа |
FOO(${val_1}) — нет такой функции. При сохранении: «Ошибка в выражении: FOO» |
Проверьте название функции в списке под полем ввода |
${val_1}>1000 в Проверке значения |
В проверке значения используйте value>1000: другие поля в ней недоступны |
value в условии обработчика типа записи |
Используйте поля ${…}: value есть только в условиях поля |
Формула числового поля возвращает текст ('много') |
Значение поля будет пустым, ошибки не будет. Проверяйте тип результата |
${createdby}==ME() в формуле нового документа (записи) |
До сохранения поле Создал пустое, результат будет «нет». После сохранения формула пересчитается |
Параметры автоматического заполнения
| Параметр | Что означает |
| Значение поля | Способ заполнения. Для формулы выберите Вычислить по формуле. |
| Формула | Выражение, по которому вычисляется значение поля. |
| Примеры формул | Примеры выражений. Ниже — список полей и функций: нажмите на строку, чтобы вставить её в формулу. |
| Обновлять автоматически | Для формул с NOW() — пересчитывать формулу во всех документах (записях) каждые 5 минут. Для формул с полями-ссылками — пересчитывать при изменении связанного документа. |
| Значение можно редактировать | Пользователь может изменить вычисленное значение вручную. При изменении полей, входящих в формулу, значение будет пересчитано (см. «Формула, которую можно исправить вручную»). |
| Выражение для проверки | Условие, которое должно выполняться для значения поля (value), чтобы документ (запись) можно было сохранить. |
| Сообщение в случае ошибки | Текст, который увидит пользователь, если значение не прошло проверку. |
| Условие видимости | Условие, при котором поле показывается в карточке. |
| Условие (уведомления, доступ) | Условие, при котором срабатывает уведомление или действует разрешение. |
- Формула пересчитывается при изменении полей, которые в неё входят. Если Обновлять автоматически не отмечено, формулу можно пересчитать вручную кнопкой в поле или из контекстного меню поля.
- Результат формулы должен соответствовать типу поля: для поля-даты — дата (
DATE(),NOW(),DATE_ADD()), для числового поля — число, для флага — условие. - При переходе поля на формулу все уже введённые в нём значения будут безвозвратно удалены.
- Текст в формуле можно брать в одинарные или двойные кавычки.
- Числа в формулах записываются через точку (
12.5), а в карточке отображаются через запятую (12,5). DATE_DIFF(дата1, дата2, …)вычитает первую дату из второй. Если поменять даты местами, результат будет отрицательным. СNOW()учитывается текущее время, поэтому считаются полные дни: 02.10.2026 днём до 15.10.2026 — 12 дней, а не 13.- Условие видимости только скрывает поле в карточке и не заменяет настройку доступа. Скрытые поля можно показать пунктом Показать скрытые поля в меню карточки.
- В условиях доступа поля-ссылки на документы (записи), разделы, пользователей и группы можно сравнивать только с другими полями или функциями, а не с текстом:
${owner}=='Иванов Иван'— нельзя,${owner}==ME()— можно. - Нажмите Ctrl+Пробел в поле ввода, чтобы открыть список полей и функций.

