Для форм с таблицами скрипты позволяют:
В отличие от формул в таблицах, скрипты позволяют описывать условия и поддерживают не только числовые поля.
Есть форма с таблицей товаров, в которой для каждого товара содержится «Название», «Цена», «Количество», «Сумма» и «Ставка НДС» (поле мультивыбор со значениями «0%», «10%» и «18%»):
Поле «Сумма» можно заполнять автоматически с помощью следующего кода:
form.onChange(['Цена', 'Количество', 'Ставка НДС']) .setValue('Сумма', state => { const [price, quantity, ndsRate] = state.changes; if (!price.value || !quantity.value) return 0; let cost = price.value * quantity.value; const nds = ndsRate.choice_name ? parseInt(ndsRate.choice_name) : 0; if (ndsRate.choice_name) cost += cost * (nds / 100); return cost; });
Добавим в форму с таблицей товаров два поля после таблицы: «Процент скидки» и «Итого».
Следующий код позволит заполнить поле «Итого» по товарам из таблицы с учетом скидки:
form.onChange(['Сумма', 'Процент скидки']) .setValue('Итого', state => { const [cost, discount] = state.changes; const total = cost.sum * (1 - discount.value / 100); return total; });Оба блока кода могут работать совместно, образуя цепочку зависимых полей.