|  01.11.2007, 07:32 | #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 Почему может не ловиться исключение но это мне не помогло. Подскажите, как можно поймать и обработать эту ошибку? | 
|  | 
|  01.11.2007, 09:53 | #2 | 
| Moderator | 
			
			А это что за хакерство у вас? Что вы хотите сделать-то?
		 
				__________________ Андрей. | 
|  | 
|  01.11.2007, 10:00 | #3 | 
| Участник | 
			
			Хочу получить TabPage формы. Исходный код этого хакерства можно посмотреть здесь. У меня строка "Control::Tab", почему то не работала, поэтому пришлось написать так. | 
|  | 
|  01.11.2007, 10:11 | #4 | 
| Moderator | 
			
			Ну по ссылке _такого_ не написано. ИДшники контролов формы - дело переменчивое, на них не стоит завязываться. А Control::Tab не работает потому, что у вас сам FormTabControl имеет название отличное от "Tab". Напишите "Control::<ваше_название>". 
				__________________ Андрей. | 
|  | 
|  01.11.2007, 10:21 | #5 | 
| Участник | Цитата: 
		
			ИДшники контролов формы - дело переменчивое, на них не стоит завязываться
		
	 В том то и дело, что название "своего" контрола не знаю. Цикл должен быть универсален, чтоб работало для любой формы, у каждой свой Tab, а там имён тьма тьмущая. | 
|  | 
|  01.11.2007, 10:32 | #6 | 
| Moderator | 
			
			Цикл по всем контролам формы, с проверкой на FormTabControl, можно написать так: X++: FormControl formControl; ... for (i = 1; i <= formRun.design().controlCount(); i++) { formControl = formRun.design().controlNum(i); if (classIdGet(formControl) == classnum(FormTabControl)) { ... } } 
				__________________ Андрей. | 
|  | 
|  01.11.2007, 10:57 | #7 | 
| Участник | 
			
			Интерсно  X++: for (i = 1; i <= formRun.design().controlCount(); i++)Цитата: 
		
			А если на форме не 1 таб, а два, три?
		
	  Не пойму, а в чем проблема если их больше однго. По выше приведенной ссылке, показано как активировать n-ю вкладку. Зада в том чтоб перебрать все вкладки формы и сделать для них скрин шот, ВСЕ те которые ВИДНЫ пользователю. Например для таблицы "PurchTable" у меня не видно не одной вкладки (хотя они есть), и в стороке "tab.tabs(); " происходила ошибка. Поэтому и захотелось проигнарировать эту ошибку, и сделать скрин шот формы как есть. | 
|  | 
|  01.11.2007, 11:14 | #8 | 
| Moderator | 
			
			Да, там еще надо рекурсивно залазить внутрь контейнерных контролов на форме. Посмотрите форму tutorial_Form_EnumerateControls, там это все есть. Я имел в виду не закладки (TabPages), а сами Табы (FormTabControl). Ну это ладно, проехали. 
				__________________ Андрей. | 
|  | 
|  02.11.2007, 09:45 | #9 | 
| Участник | 
			
			Спасибо большое за пример!!!! Моё решение X++: formRun.control(12294) Последовал вашему совету Цитата: 
		
			Посмотрите форму tutorial_Form_EnumerateControls
		
	  Спасибо! | 
|  | 
|  | 
|  Похожие темы | ||||
| Тема | Ответов | |||
| Обработка входящего НДС | 12 | |||
| Ошибки при разноске в ГК | 16 | |||
| Ошибки (?) в акте списания | 0 | |||
| Висит обработка фактуры | 12 | |||
| Суммарная обработка накладной | 1 | |||
| 
 |