Цитата:
Сообщение от
Aliaksei_Berkau
При открытии этой формы в поле "Стоимость" стоит неверное число. Как только начинаешь передвигаться по строкам число пересчитывается верным.
Вычисляемое поле вычисляется по подчиненной таблице, которая связана с главной при помощи Delayed join.
Delayed join выполняет связь не сразу, а через некоторое время.
Это сделано для того, чтобы снизить нагрузку на сервер при перемещении курсора стрелками (попробуйте встать на заказ и нажать стрелку вверх или вниз. курсор по заказам перемещается, а строки обновляются не сразу. это как раз работает Delayed join)
Но при Delayed join происходит неприятная вещь с вычисляемыми полями.
Вычисляемые поля вычисляются при отрисовке окна, ДО того, как установлена связь.
Есть несколько решений.
1. сменить связь с Delayed join на Inner join
2. убрать вычислимое поле (или перенести в отдельное окно)
3. перенести display-метод с таблицы на datasource формы
4. изменить ТЗ
все перечисленные способы обладают своими недостатками.