Проверил. Условная точка останова нормально работает.
Проверял на 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), можно после этого.
Наводим мышкой на красную точку, всплывает менюшка

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

Жмем Close и тестируем. Система сваливается в отладку, если мы пытаемся открыть карточку заказа на продажу из списка заказов на продажу (формы SalesTableListPage) и не сваливается в отладку, если мы пытаемся перейти к заказу на продажу из формы накладной клиента. Само собой, если мы отсоединимся от процесса - то в отладку мы не свалимся