Показать сообщение отдельно
Старый 03.06.2005, 10:47   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,709 / 1201 (44) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Мне кажется, что простейшее решение, это перекрыть modified на DS для InventDim, но не на поле InventDimId, а на том поле, которое и содержит твою нестандартную аналитику.

Дело в том, что, например, в формах SalesTable и PurchTable просто не происходит модификация InventDim_ds.InventDimId. Посмотри код метода

\Forms\SalesTable\Data Sources\SalesLine\Methods\write

Там не модификация, а просто замена всей записи InventDim происходит

PHP код:
...
        
// Нашли или создали складскую аналитику по заданным значениям
        
salesLine.inventDimId InventDim::findOrCreate(inventDim).inventDimId;
...
        if (
salesLine.inventDimId != inventDim.inventdimId)
        {
            
// Обновили источник данных
            
inventDim.data(InventDim::find(salesLine.inventDimId));
            
inventDim.write();
        }
.... 
А насчет универсальности, не думаю что получится. Ведь в каждом конкретном случае невозможно сказать в какой именно таблице ты собираешся менять финансовую аналитику при изменении складской.