Цитата:
Сообщение от
S.Kuskov
По вашим же словам проблема возникает из-за того что leaveRecord первой записи вызывается позже чем Сreate для второй.
Да. Именно так.
Цитата:
Сообщение от
S.Kuskov
В любом случае, ситуация при которой мы можем получить несколько не сохранённых строк не будет вписываться в логику работы номерных серий, которые вообще говоря могут быть непрерывными.
А вот это не так
Внутри метода Create() сначала будут выполнены все методы обработки первой записи и только потом выполняются методы по созданию второй записи. Здесь все корректно и никаких проблем нет.
Проблема в том, что обработчик номерной серии - это некая внешняя "приблуда" не имеющая вообще никакого отношения к стандартным методам ядра. По факту, метод formMethodDataSourceCreatePre() выполняется слишком рано. Он должен был бы быть выполнен после DataSource.write(). Но влезть внутрь super() невозможно. Из-за чего и получаем проблему.
Как другой "костыль" - это "взведение" дополнительного флага внутри Create и его обработка в write