Начать работу

Формулы и условия

В NextDoc одни и те же выражения из полей, функций и операторов используются в нескольких местах: для автоматического заполнения полей по формуле, в условиях уведомлений и проверок, в проверке значения поля, в условии видимости поля и в условиях доступа.

В этом разделе описаны правила написания таких выражений, функции, которые можно в них использовать, и типичные ошибки. Примеры в разделе построены на тестовом типе записи* — его поля перечислены в разделе «Примеры».

Информация!!!
* В вашем проекте записи могут называться документами. Это зависит от готового решения, а порядок действий не меняется.

Где используются формулы и условия

Где Что задаётся Результат выражения Подробнее
Поле → Дополнительные параметры → Автоматическое заполнение поля → Вычислить по формуле Формула Значение поля: текст, число, дата или да/нет Автоматическое заполнение полей
Поле → Дополнительные параметры → Проверка значения Выражение для проверки Да/нет: можно ли сохранить введённое значение Настройка параметров поля, Настройка проверки значений полей
Поле → Дополнительные параметры → Настройка видимости Условие видимости Да/нет: показывать ли поле в карточке Настройка параметров поля
Поле → Уведомления → Условие срабатывания Условие Да/нет: отправлять ли уведомление Обработка событий типа поля
Тип записи → обработчики событий: Проверить условие или Условие срабатывания Условие Да/нет: разрешить операцию или отправить уведомление Обработка событий типа записи
Настройки доступа к типу записи или полю Условие Да/нет: действует ли разрешение для документа (записи) Настройка доступа к отдельным типам записей, Настройка доступа к отдельным полям

Синтаксис везде одинаковый, но набор доступных полей и функций зависит от места (см. «Что доступно в разных местах»).

Как ввести формулу

  1. Откройте карточку документа нужного типа записи.
  2. Наведите курсор на поле, значение которого нужно вычислять, и нажмите на кнопку настройки поля справа.
  3. В окне настройки поля разверните группу Дополнительные параметры.
  4. В пункте Значение поля выберите Вычислить по формуле.
  5. Введите выражение в поле Формула. Чтобы вставить поле или функцию, нажмите на них в списке под полем ввода. Чтобы открыть список подсказок прямо в поле ввода, нажмите Ctrl+Пробел:
    Формулы и условия — окно настройки поля: формула
  6. При необходимости отметьте Обновлять автоматически и Значение можно редактировать (см. таблицу параметров ниже).
  7. Нажмите кнопку Сохранить.

Если в выражении есть ошибка, окно не закроется и появится сообщение об ошибке (см. «Типичные ошибки»). Если в поле уже есть значения в документах (записях), 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+Пробел в поле ввода, чтобы открыть список полей и функций.