Показать сообщение отдельно
Старый 14.09.2020, 11:24   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,275 / 3476 (122) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Проверил. Условная точка останова нормально работает.
Проверял на PU36 и Visual Studio 2017
Имеем форму SalesTable, метод run().
Вот такой код:
X++:
    void  run()
    {
        int designatedTabNo = 1;
        SalesTable salesTableLocal;

        if (TradeFormHelper::isCalledFromListPage(element.args()))
        {
            designatedTabNo = 3;
        }

        // Set proper TAB explicitly.
        lineViewTab.tab(designatedTabNo);

        super();
// Остальной код я не стал копировать сюда
    }
Форма SalesTable вызывается из формы SalesTableListPage, когда происходит переход из списка заказов на продажу в карточку заказа на продажу (для сравнения - в закупках нет формы ListPage - там единая форма PurchTable для отображения списка и отображения карточки и переход от списка к карточке с технической т.з. осуществляется путем скрытия лишней вкладки TabPage)

В методе run() переменная designatedTabNo принимает значение 1 изначально, но если форма SalesTable была вызвана из формы SalesTableListPage, то ее значение меняется на 3.
Форма SalesTable также может быть вызвана не из формы списка, а при переходе к заказу на продажу из, допустим формы накладной при выборе пункта меню "Показать подробности". В этом случае переменная designatedTabNo не меняет своего значения на 3.

Тестируем. Ставим точку останова на строку lineViewTab.tab(designatedTabNo);
Можно до присоединения к процессу (Attach to process), можно после этого.
Наводим мышкой на красную точку, всплывает менюшка
Название: SNAG_Program-0056.png
Просмотров: 653

Размер: 8.0 Кб
Выбираем шестеренку и вводим условие designatedTabNo == 3.

Нажмите на изображение для увеличения
Название: SNAG_Program-0058.png
Просмотров: 51
Размер:	27.6 Кб
ID:	12935
Жмем Close и тестируем. Система сваливается в отладку, если мы пытаемся открыть карточку заказа на продажу из списка заказов на продажу (формы SalesTableListPage) и не сваливается в отладку, если мы пытаемся перейти к заказу на продажу из формы накладной клиента. Само собой, если мы отсоединимся от процесса - то в отладку мы не свалимся
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 14.09.2020 в 13:01.
За это сообщение автора поблагодарили: trud (2), raz (5).