Оригинал на GitHub
Вопрос
Начал делать небольшой блок складского учета и расчета потребностей производства для снабжения. Все завязано на том, что в одной заявке не могут быть две одинаковые позиции. Потому что при добавлении или изменении создается одна связанная запись в общей таблице потребностей (код ищет запись в ней, удаляет и вставляет новую).
Поскольку наименование позиций в таблице Заказ, это тип Селект, то уникальность ввода данных не отслеживается автоматически.
Возможно, есть какой то код или код-действия, который заблокирует введение дубля?
Ответ
Можно разместить код действия при добавлении/изменении, который будет искать в текущей таблице значение текущего поля и выдавать ошибку при совпадениях.
Код действия в таблице в которой запрещаем дубли в поле, значения которого не могут дублироваться c активными триггерами при добавлении и изменении:
=: if(condition: $find != ""; then: $err)
find:select(table: $#ntn; field: 'id'; where: 'item' = $#nfv; where: 'id' != #id)
err: errorException(text: "Already have in this order")