Скрипты позволяют использовать в вычислениях реестр задач текущей формы.
Есть форма «Публикация приказа» с полями «Год», «Номер» и «Документ» (файл с приказом). С помощью запроса реестра из скрипта можно убедиться, что приказ за тот же год и с тем же номером еще не был опубликован:
form.onChange(['Год', 'Номер']) .validateAsync('Номер', async state => { const [year, num] = state.changes; if (!year || !num) return null; if (year.text && num.text) { const duplicates = await form.fetchSelfRegister(f => f .fieldEquals('Год', year) .fieldEquals('Номер', num), [] ); if (!duplicates || !duplicates.tasks) return null; const firstDuplicate = duplicates.tasks[0]; if (firstDuplicate) return { errorMessage: `Приказ <a href="#id${firstDuplicate.task_id}">уже опубликован</a>` }; } return null; });
Теперь при попытке повторно заполнить форму теми же данными пользователь увидит ошибку со ссылкой на уже существующий приказ: