Показать сообщение отдельно
Старый 26.01.2024, 20:24   #2  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,656 / 1158 (42) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
В dax2012 форма для раскрывающегося списка - это просто базовый класс формы. А "TemporaryFormName" - это имя этой новой формы, чтобы не создавать макрос

X++:
protected FormRun formRun()
{
    Form                            form = new Form();

    form.name(identifierstr(TemporaryFormName));
(...)

Т.е. TemporaryFormName - не есть объект-форма. Здесь это используется просто как имя. Текст. Никаких реквизитов формы TemporaryFormName (да и самой формы) здесь не используют

Поэтому блокировка закрытия lookup-формы - это именно что запрет вызова super() в методе closeSelect()

Например, если посмотреть форму Lookup для множественного выбора SysLookupMultiSelectGrid, то у нее именно что метод closeSelect() закомментирован

Здесь же в ссылках ниже есть статья Максима Горбунова Создание Lookup формы, где он также пишет, что надо просто перекрыть closeSelect() если нужен контроль закрытия формы


PS: Чтобы создать форму именно на основе формы из AOT нужен другой синтаксис

X++:
form  = new Form(formstr(Dialog))

SysTableLookup - создает форму "с нуля". Без какого-либо шаблона формы в AOT. Поэтому и перехват методов невозможен. Не известен объект у которого эти методы надо перехватывать
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...

Последний раз редактировалось Владимир Максимов; 26.01.2024 в 20:35.