|
![]() |
#1 |
Участник
|
К чему пришёл.
На тех записях recId в InventTableModule неправильный(две параллельных сессии запускал). Т.е. при join-e система взяла к примеру 20 записей в InventTable, 3 по 20 InventTableModule и 20 InventItemLocation. Один recId из этих таблиц не правильный (взят не со своей записи). Такой состав из 100 вагонов только последний вагон не наш. Как можно исправить 1) в методах validateWrite() этих датасорсов убрать //inventItemLocation.ItemId = inventTable.ItemId; Всё ok становиться. Только update сработает не для своей записи. Следовательно не подходит. У нас как раз и выходит та 20 запись recId не тот, ItemId не тот, но так как в validateWrite идёт подмена ItemId. То на момент update получается в системе две записи с одной и тойже номенклатурой, но с разными recId. Вот она на уровне индекса и ругается. 2) В методе active InventTable добавить X++: purch_ds.reread(); invent_ds.reread(); sales_ds.reread(); InventItemLocation_ds.reread(); Конечно не правильно каждую раз перечитывать эти датасорсы, но лучше не нашёл.
__________________
Энергия молодых и неравнодушных способна изменить мир к лучшему. |
|
|
За это сообщение автора поблагодарили: George Nordic (1). |
|
|