scripts:register

Реестр формы

Скрипты позволяют использовать в вычислениях реестр задач текущей формы.

Есть форма «Публикация приказа» с полями «Год», «Номер» и «Документ» (файл с приказом). С помощью запроса реестра из скрипта можно убедиться, что приказ за тот же год и с тем же номером еще не был опубликован:

form.onChange(['Год', 'Номер'])
    .validateAsync('Номер', async state => {
        const [year, num] = state.changes;

        if (year.text && num.text) {
            const duplicates = await form.fetchSelfRegister(f => f.fieldEquals('Год', year).fieldEquals('Номер', num), []);
            const firstDuplicate = duplicates.tasks[0];
            if (firstDuplicate)
                return {errorMessage: `Приказ <a href="#id${firstDuplicate.task_id}">уже опубликован</a>`};
        }

        return null;
    });

Теперь при попытке повторно заполнить форму теми же данными пользователь увидит ошибку со ссылкой на уже существующий приказ:

Была ли эта статья полезной?

Да, спасибо! Нет, остался вопрос