Вероятно данная информация найдет человека, которому будет полезна. При настройке решения стояла задача автоматически генерировать регистрационный номер для карточки (в контроле Нумератор), при смене состояния. В контроле «Нумератор», существует настройка «Генерировать номер после сохранения», которая определяет необходимость автоматической генерации номера при сохранении карточки:
- Когда флаг установлен и номер не присвоен, после выполнения сохранения карточки номер будет сформирован автоматически.
- Когда флаг не установлен, автоматическое получение номера не производится
Но если мы переводим карточку из одного состояния в другое (например, Подготовка — Зарегистрирован) с помощью контрола «Автомат состояния» , то регистрационный номер сформирован не будет, связано это с тем, что в этот момент не вызывается метод сохранения карточки.
Мне удалось решить это, если повесить скрипт на событие «Перед сменой состояния» (cardStateChanging) контрола «Автомат состояния» (StateButtons):
export async function customSaveCard(sender: StateButtons, event: CancelableEventArgs<GenModels.OperationDataModel>) {
event.wait();
if (event.data.displayName === "Зарегистрировать") {
await sender.layout.save();
}
event.accept();
}
Благодаря этому, мы будем вызывать функцию сохранения в том случае, если вызывается операция «Зарегистрировать». Далее срабатывает штатная логика генерирования номера в контроле и мы получаем ожидаемый результат 🙂 .
Добавить комментарий