Показать сообщение отдельно
Старый 26.07.2011, 09:47   #14  
jopagames2 is offline
jopagames2
Участник
 
151 / 11 (1) +
Регистрация: 11.02.2010
Цитата:
Сообщение от apanko Посмотреть сообщение
Как сказали умные люди - если фильтр поставить по ключевым полям, то система сразу же пытается их валидейтить.
...
А их похоже нету, вот и валится.
Блин, точно!
Вызывается валидейт прямо из таблицы при наложении фильтра. Век живи - век учись.

Вопрос, как это ПРАВИЛЬНО обходится, к примеру, в форме 53 (список заказов покупок)
Там ставь любые ключи и любую фигню - не вылетает.
А вот уже в строках заказа покупки (форма 54) - опять "вылетает" как и в нашем случае с 5407.

В некоторых местах у Nav шаманят с кодом на триггере OnFindRecord и пишут что-то типа:

IF FIND (Which) THEN
EXIT(TRUE)
ELSE BEGIN
SETRANGE("No.");
EXIT(FIND(Which));
END;

Тогда тоже форма не вылетает при наложении неправильных фильтров.

Но общий "рецепт" - что-то написать в триггере OnValidate ключевого поля таблицы.

Вопрос, что именно?

ЗЫ: А. Нет. Нифига!
Удалил из таблицы 38 весь код с триггера OnValidate, а оно всё равно работает и не вылетает, хотя на форме 53 нет вообще никакого кода на триггерах, или всяких там св-в типа DelayedInsert.

Значит, дело в чём-то другом.
Разбираюсь...