Показать сообщение отдельно
Старый 04.09.2014, 17:20   #10  
kitty is offline
kitty
Участник
 
354 / 26 (1) +++
Регистрация: 24.05.2005
Я поняла, как вы сделали и почему работает . Вы сделали как на форме В наличии. Там, вначала открывается Запрос, потом сама форма, как мне и надо. Но там, если пользователь жмет кнопку Отмена на форме запроса, то открывается форма "В наличии" без фильтров.
( +там действительно фильтры накладываются после super(), тк по сути форма - InventOnHandListPage уже открыта.)

В моем случае я бы хотела просто отменить выполнение задачи т.е не открывать следующую Форму.
Попробовала сделать как порекомендовал S.Kuskov, нашла интересные примеры в стандарте,когда вызывается в RunBase форма запроса вместо диалога
(см, например, NumberSeqCleanUp, SalesJournalChangeType etc).
Делается так:
X++:
public Object dialog()
{
    FormRun formRun = classfactory.createQueryForm(this);
    formRun.init();
    return formRun;
}
при этом, нужно сам queryRun инициализировать уже в New()!

Далее, если диалог закрылся по Ок, то я вызываю свою форму( как указано выше) и передаю в нее сформированный запрос и заменяю им родительский ds формы. Имхо, хоть вариант тоже рабочий, но подмены запросов ds и двойные диалоги в runBase делают код менее яснным.