пример с изменением остатка на складе
set, setList и setListExtended могут установить не конечное значение в поле, а изменить относительно имеющегося.
Для этого вместо =
используется +
или -
.
Например при добавлении операции по складу мы можем в таблице Склад
менять остаток позиции:
=: set(table: 'warenhouse'; field: 'count' + $#nfv)
пример с добавлением значений в список
Аналогично set, setList и setListExtended могут добавить или удалить значение если их целевое поле является селектом.
Для этого также вместо =
используется +
или -
.
Например, добавим основания 45
, 56
и 17
в list
:
=: set(table: 'table'; field: 'list' + json`["45","56","17"]`)
Что бы это работало у целевого поля должен быть включен параметр множественные значения!
Как понять, какие значения были добавлены или удалены при изменении списка?
Например список меняется вручную и вам нужно совершить какое-то действие над добавленными значениями. Для этого есть способ через listMinus с old
и текущим
значением:
=: linkToDataText(title: "Показать добавленные значения"; text: $join)
join: listJoin(list: $list; str: $#nl)
list: listMinus(list: $#nfv; list: $#onfv)
Те мы из нового списка в поле вычитаем старый список и остаются только новые добавленные значения. join
мы используем для ппоказа в linkToDataText
.
Если вам нужно получить удаленные из списка значения, то $#nfv
и $#onfv
надо поменять местами — тогда останутся только те значения, которые были до изменения, а после их уже нет.
Как автоматически добавить запись в поле с типом Комментарий?
В поле комментарии можно добавить отдельное сообщение кодом.
Добавить запись от текущего пользователя:
example1: set(table: 'test'; field: 'comment' = "Тестовый комментарий"; where: 'id' = 3)
Исторически получилось, что в комментарии добавление сообщения использует оператор =
.