Для встроенного механизма авто-нумерации описанного в этой статье академии
Предлагается 2 варианта использования, собственно на стороне сервера через БП и в UI через вызов специализированного метода getIncrementCode()
Остановимся на втором варианте.
Так вот; есть тут небольшая проблема: если мы хотим показывать собственно сгенерированный номер в поле открывшейся карточки то мы вызываем его при инициализации (собственно аналогично примеру из статьи помещая вызов в onEntityInitialized.
Проблема: Итератор сдвигается при каждом вызове, т.е. открывая карточку в режиме добавления новой записи или копирования номер сдвинется, но это не гарантирует нам того что эта запись в конечном итоге вообще произойдет, т.е. пользователь может просто нажать "Отмена" или уйти с карточки - а номерок уже прирос на один.
Мы конечно можем привязаться к методу save и осуществлять вызов getIncrementCode() там, но номерок-то хочется получить на этапе открытия карточки.
Можно ли как-то вызвать его без сдвига итератора ?
PS: я безусловно понимаю что очевидный ответ - не мороч голову делай сервер-сайд, а для показа сделай ESQ запрос в системную настройку напрямую и добавь еденичку :)
Или получай номерок при открытии, ESQ Update запросом в сист.настройку делай роллбек ее на 1 назад, и повторно вызывай метод уже при сохранении.
Но может есть какие-то более лаконичные способы ?