Добрый день!
Добавил конфигуратором поле в стандартный интерфейс галактики (сведения об образовании). Сделал поле Protect и PickButton. Выбирает из нужного каталога отлично, а вот отцепляет запись только со второго раза! Т.е. если поле заполнено (есть привязка), то первое нажатие клавиши DEL приводит к визуальному очищению поля, и только повторное очищает поле непосредственно в таблице. Почему так работает? Пытался перехватить cmDelOnProtect и обнулить поле вручную – не реарирует.
Интерфейс предварительно немножко докомпилировал:
ну а где cmDelOnProtect?
в нем обработку поля нужно также отдельно прописывать - как в Pick.
и updatetable и rescanpanel(#таблица окна) тоже нужно бы сделать
сейчас добавил все, что можно (на мой взгляд) - ничего не изменилось. По-прежнему DEL работает только со второго раза, ни одного сообщени ене выдается:
message вам в помощь
а вы туда вообще попадаете?
попробуйте перенести из handleevent в
TableEvent table LevelEducation или в какой там у вас панели поле - посмотреть можно например добавляя конфигуратором поле - главная таблица будет красная в списке. Событие табличное.
#component 'Z_STAFF'
alter interface RECWIN02
create view
as select PlanEducation.name
from synonym Catalogs PlanEducation
where ((EDUCATION.CREF1 == PlanEducation.NREC));
HandleEvent
cmPick:
{
case CurField of
#PLANEDUCATION.NAME :
{
if not isnew()
{
RunInterface(GetPlanEdu, PERSONS.NREC, EDUCATION.CREF1);
update current EDUCATION;
}
else
{
RunInterface(GetPlanEdu, PERSONS.NREC, EDUCATION.CREF1);
}
}
end;
inherited::HandleEvent(cmPick);
}
end;
TableEvent table LEVELEDUCATION
cmDelOnProtect:
{
case CurField of
#PLANEDUCATION.NAME :
{
Message('cmDelOnProtect1');
}
end;
Message('cmDelOnProtect2');
inherited::HandleEvent(cmDelOnProtect);
}
end;
end.
По-прежнему никаких сообщений не выводится. В то же время cmPick отрабатывает правильно. Может, кто-нибудь знает, почему единичное DEL правильно не работает, а двойное - работает? При этом никаких сообщений не выдается (видимо, cmDelOnProtect не отрабатывает)
а да - главная то таблица другая - там времянка заполняется.
попробуйте сразу в delonprotect сообщение вызвать . Еще может быть фишка с перепутанными константами в компиляторе.
С delonprotect перепробовал все - никак не реагирует. Константы перепутаны в моем компиляторе? Если да, то подскажите, какой должен было у delonprotect код?