Показать сообщение отдельно
Старый 21.05.2009, 22:16   #6  
ZVV is offline
ZVV
MCITP
MCP
Oracle
MCBMSS
 
1,006 / 246 (11) ++++++
Регистрация: 13.02.2004
Адрес: Минск
->
Цитата:
Сообщение от kia Посмотреть сообщение
Да, случай мой, но нигде я пока не встретил вариант решения этой "извествой" проблемы.
Насколько я понял, значение номера строки формируется в классe JournalTransData.
Но почему и как возникают дубли (и дробные значения) я так и не понял.
Можно попробовать сделать уникальность по Журналу и Номеру строки. Так хоть получим ошибку сразу при вставке, а не потом.
Но хочется исключить в принципе подобный случай.
Счас Аксапты под рукой нет, но, насколько я помню, эта "известная" проблема очень легко воспроизводится: отфильтруйте часть строк журнала (с меньшими номерами), а потом добавьте новую запись в конец списка.
Суть в том, что этот движок автонумерации на форме работает не с таблицей, а с датасорсом, и, соответсвенно, при попытках дать новой строке номер он отталкивается от того, что есть в данный момент в этом датасорсе. А если он отфильтрован, то часть строк при этом не учитывается - вот и появляются дубликаты...
Как-то вот так...

Ну и как уже сказали, "исключить в принципе подобный случай" проще всего уникальным индексом...
Есть, конечно, и более сложный и гораздо менее эффективный способ - "докодировать" нужные проверки и/или движок автонумерации.
__________________
Zhirenkov Vitaly