Показать сообщение отдельно
Старый 20.07.2011, 12:46   #4  
jopagames2 is offline
jopagames2
Участник
 
151 / 12 (1) ++
Регистрация: 11.02.2010
Цитата:
Сообщение от Milk Посмотреть сообщение
Думаю, проблема в галочке на св-ве "Value as filter"
Блин! То работало-работало "без галочки", а то вдруг - ХЛОП! И перестало.

Короче, там оказалось всё ЕЩЁ немного хитрее

Поскольку оба поля являются CalcField'ами, а результат второго зависит от вычисленного значения первого, то Nav путается.
И тут главный вопрос: какое поле при выводе этих полей на форму Nav для себя считат "первым", а какое "вторым"?

Поля во всём этом Nav-зоопарке могут вычисляться в 3-х местах.

1) В свойствах формы CalcFields, когда перечисляем там поля через запятую.
(кстати, не факт, что вычисляется именно в том порядке, что вы написали, а не по ID этого поля в объекте)

2) При выводе колонки в таблице на экран. Тоже там Nav сам себе запускает calcfields.

3) В триггерах формы типа OnAfterGetRecord (или прочих) втупую вызовом Товар.calcfields(xxx) в нужном НАМ(!), а не Nav порядке.

И вот если предположить, что программист написал одновременно несколько вычисляемых полей в свойствах формы, потом в колонки таблицы их вывел (а юзер у себя на компе эти колонки ещё и местами поменял)

То ХРЕН ЗНАЕТ, как там вызывается CalcField и в каком порядке.

Короче, не надо делать зависящие друг от друга вычисляемые поля - вот я всё это к чему. Извращение это.
Это так... совет. Мало ли... пригодится.

Всем удачи.

ЗЫ: Сам же решил вопрос "втупую" по способу 3. Вроде работает