|
Проблема с множественным наследованием | ☑ | ||
---|---|---|---|---|
0
jsmith
25.04.12
✎
10:51
|
Так вышло, что в документе есть такая ситуация..
y = f(P1, P2) P1 = f(A) P2 = f(А) в итоге при измении А происходит двойной пересчет y = f(P1, P2) что делать? (P1, P2) = f(A)? |
|||
1
orefkov
25.04.12
✎
10:58
|
P1 = f(A)
P2 = f(А) y = f(P1, P2) |
|||
2
jsmith
25.04.12
✎
11:00
|
если быть точнее, то
P1 - курс договора P2 - курс цены товара y - цена товара в валюте договора A - дата документа При изменении даты происходит пересчет курсов Сейчас такая ситуация, что при пересчете каждого курса P1 и P2 вызывается y = f(P1, P2) |
|||
3
jsmith
25.04.12
✎
11:02
|
думаю, если данные класса модифицируются (то бишь меняется дата A), он должен взять управление модификацией своих потомков
то бишь изменить сам курсы P1 и P2 и вызвать функцию y а в обработчик ПриИзмененииP1 и ПриИзмененииP2 передать параметр.. типа, который показыввал бы, что надо изменять, а что родитель сам уже сделал то бишь родитель сам управляет множественным наследовванием |
|||
4
jsmith
25.04.12
✎
11:04
|
сейчас ситуация такая
Процедура ПриИзменении_Дата() Записать_КурсДоговора(); Записать_КурсТовара(); КонецПроцедуры Процедура Записать_КурсДоговора() // рутина ПриИзменении_КурсДоговора(); КонецПроцедуры Процедура Записать_КурсТовара() // рутина ПриИзменении_КурсТовара(); КонецПроцедуры Процедура ПриИзменении_КурсДоговора() Записать_Цена(); КонецПроцедуры Процедура ПриИзменении_КурсТовара() Записать_Цена(); КонецПроцедуры |
|||
5
jsmith
25.04.12
✎
11:07
|
а сделат вот так вот
Процедура ПриИзменении_Дата() Записать_КурсДоговора(параметр="сделать только вот это"); Записать_КурсТовара(параметр="сделать только вот это"); Записать_Цена(); КонецПроцедуры Процедура Записать_КурсДоговора(параметр) // рутина ПриИзменении_КурсДоговора(параметр); КонецПроцедуры Процедура Записать_КурсТовара(параметр) // рутина ПриИзменении_КурсТовара(параметр); КонецПроцедуры Процедура ПриИзменении_КурсДоговора(параметр) если параметр содержит записать цена, то Записать_Цена(); конецесли КонецПроцедуры Процедура ПриИзменении_КурсТовара() если параметр содержит записать цена, то Записать_Цена(); конецесли КонецПроцедуры |
|||
6
jsmith
25.04.12
✎
11:08
|
просто матан по этой теме плохо знаю
|
|||
7
jsmith
25.04.12
✎
11:17
|
покурил матан, почти везде всё сводится к квалификации метода (в с++ через две точки)
значит надо квалифицировать вызов, что в принципе я и сделал |
|||
8
jsmith
25.04.12
✎
11:17
|
жуткая вещь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |