Цитата:
Сообщение от
kia
Да, случай мой, но нигде я пока не встретил вариант решения этой "извествой" проблемы.
Насколько я понял, значение номера строки формируется в классe JournalTransData.
Но почему и как возникают дубли (и дробные значения) я так и не понял.
Можно попробовать сделать уникальность по Журналу и Номеру строки. Так хоть получим ошибку сразу при вставке, а не потом.
Но хочется исключить в принципе подобный случай.
Счас Аксапты под рукой нет, но, насколько я помню, эта "известная" проблема очень легко воспроизводится: отфильтруйте часть строк журнала (с меньшими номерами), а потом добавьте новую запись в конец списка.
Суть в том, что этот движок автонумерации на форме работает не с таблицей, а с датасорсом, и, соответсвенно, при попытках дать новой строке номер он отталкивается от того, что есть в данный момент в этом датасорсе. А если он отфильтрован, то часть строк при этом не учитывается - вот и появляются дубликаты...
Как-то вот так...
Ну и как уже сказали, "исключить в принципе подобный случай" проще всего уникальным индексом...
Есть, конечно, и более сложный и гораздо менее эффективный способ - "докодировать" нужные проверки и/или движок автонумерации.