Показать сообщение отдельно
Старый 26.02.2016, 14:10   #5  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,713 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
По вашим же словам проблема возникает из-за того что leaveRecord первой записи вызывается позже чем Сreate для второй.
Да. Именно так.

Цитата:
Сообщение от S.Kuskov Посмотреть сообщение
В любом случае, ситуация при которой мы можем получить несколько не сохранённых строк не будет вписываться в логику работы номерных серий, которые вообще говоря могут быть непрерывными.
А вот это не так

Внутри метода Create() сначала будут выполнены все методы обработки первой записи и только потом выполняются методы по созданию второй записи. Здесь все корректно и никаких проблем нет.

Проблема в том, что обработчик номерной серии - это некая внешняя "приблуда" не имеющая вообще никакого отношения к стандартным методам ядра. По факту, метод formMethodDataSourceCreatePre() выполняется слишком рано. Он должен был бы быть выполнен после DataSource.write(). Но влезть внутрь super() невозможно. Из-за чего и получаем проблему.

Как другой "костыль" - это "взведение" дополнительного флага внутри Create и его обработка в write
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...