![]() |
#1 |
Участник
|
Обработка ошибки!
Добрый день!
Есть код. В определенный момент появляется ошибка, нужно обработать эту ошибку. X++: args = new Args(PurchTable); formRun = new FormRun(args); formRun.init(); formRun.run(); tab = formRun.control(12294); //12290; 12292 if(tab) { for(i=1; i<=tab.tabs(); i++) { ................... } } X++: for(i=1; i<=tab.tabs(); i++) Как поймать эту ошибку, и как в качестве обработки выполнить какую либо другую операцию. Ошибка появляется не для всех форм. Пробовал использовать try и catch, просмотрел темы, Вопрос про throw error Почему может не ловиться исключение но это мне не помогло. Подскажите, как можно поймать и обработать эту ошибку? |
|
![]() |
#2 |
Moderator
|
А это что за хакерство у вас? Что вы хотите сделать-то?
__________________
Андрей. |
|
![]() |
#3 |
Участник
|
Хочу получить TabPage формы. Исходный код этого хакерства можно посмотреть здесь.
У меня строка "Control::Tab", почему то не работала, поэтому пришлось написать так. |
|
![]() |
#4 |
Moderator
|
Ну по ссылке _такого_ не написано.
ИДшники контролов формы - дело переменчивое, на них не стоит завязываться. А Control::Tab не работает потому, что у вас сам FormTabControl имеет название отличное от "Tab". Напишите "Control::<ваше_название>".
__________________
Андрей. |
|
![]() |
#5 |
Участник
|
Цитата:
ИДшники контролов формы - дело переменчивое, на них не стоит завязываться
В том то и дело, что название "своего" контрола не знаю. Цикл должен быть универсален, чтоб работало для любой формы, у каждой свой Tab, а там имён тьма тьмущая. |
|
![]() |
#6 |
Moderator
|
Цикл по всем контролам формы, с проверкой на FormTabControl, можно написать так:
X++: FormControl formControl; ... for (i = 1; i <= formRun.design().controlCount(); i++) { formControl = formRun.design().controlNum(i); if (classIdGet(formControl) == classnum(FormTabControl)) { ... } }
__________________
Андрей. |
|
![]() |
#7 |
Участник
|
Интерсно
X++: for (i = 1; i <= formRun.design().controlCount(); i++) Цитата:
А если на форме не 1 таб, а два, три?
![]() Зада в том чтоб перебрать все вкладки формы и сделать для них скрин шот, ВСЕ те которые ВИДНЫ пользователю. Например для таблицы "PurchTable" у меня не видно не одной вкладки (хотя они есть), и в стороке "tab.tabs(); " происходила ошибка. Поэтому и захотелось проигнарировать эту ошибку, и сделать скрин шот формы как есть. |
|
![]() |
#8 |
Moderator
|
Да, там еще надо рекурсивно залазить внутрь контейнерных контролов на форме.
Посмотрите форму tutorial_Form_EnumerateControls, там это все есть. Я имел в виду не закладки (TabPages), а сами Табы (FormTabControl). Ну это ладно, проехали.
__________________
Андрей. |
|
![]() |
#9 |
Участник
|
Спасибо большое за пример!!!!
Моё решение X++: formRun.control(12294) Последовал вашему совету Цитата:
Посмотрите форму tutorial_Form_EnumerateControls
![]() Спасибо! |
|
|
![]() |
||||
Тема | Ответов | |||
Обработка входящего НДС | 12 | |||
Ошибки при разноске в ГК | 16 | |||
Ошибки (?) в акте списания | 0 | |||
Висит обработка фактуры | 12 | |||
Суммарная обработка накладной | 1 |
|