Как дождаться в цикле завершения загрузки страницы?

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. Legavaz 709 27.09.12 18:20 Сейчас в теме
Для каждого ТекГруппы Из ТаблицаГруппСайта Цикл


ОбработкаПрерыванияПользователя();
Состояние(Строка(Итератор)+"/"+строка(ОбКол)+" Обработка группы :"+ТекГруппы.Представление);

ЭлементыФормы.ПолеHTMLДокумента.Перейти(ТекГруппы.Ссылка);
СтраницаЗагружена = Ложь;
Пока не СтраницаЗагружена Цикл
Если СтраницаЗагружена Тогда
прервать;
КонецЕсли;
КонецЦикла;

ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента);

Прервать;
КонецЦикла;

Процедура ПолеHTMLДокументаДокументСформирован(Элемент)
СтраницаЗагружена = Истина;
КонецПроцедуры

в коде вообщем то понятно что я делаю, но не выходит этот каменный цветок,
что интересно на форуме есть пара обработок подобного характера
Например http://infostart.ru/public/104630/
В общем то я делаю тоже самое, только на 8.1, но не работает...
если кто может помочь большое спасибо
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
2. 6есик 53 27.09.12 18:59 Сейчас в теме
Я думаю там интерпретатор некорректно отработает код в конструкции "Пока Цикл". Почему
ты не хочеш сразу запихнуть
ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента); 

в обработчик события ПолеHTMLДокументаДокументСформирован ?
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. 6есик 53 27.09.12 18:59 Сейчас в теме
Я думаю там интерпретатор некорректно отработает код в конструкции "Пока Цикл". Почему
ты не хочеш сразу запихнуть
ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента); 

в обработчик события ПолеHTMLДокументаДокументСформирован ?
4. pumbaE 27.09.12 19:12 Сейчас в теме
(2) 6есик, если там асинхронные скрипты еще отрабатывают, то 1С вернет, что документ сформирован, а по факту данных еще не будет.
3. pumbaE 27.09.12 19:11 Сейчас в теме
ПодключитьОбработчикОжидания("ПроверитьЗагрузку", 2, Ложь);

Процедура ПроверитьЗагрузку()
ПолеHTML = ЭлементыФормы.ПолеHTMLДокумента;
Попытка
опМаршрут = ПолеHTML.Документ.getElementByID("ВОТ ТУТ ТВОЙ ЭЛЕМЕНТ НА СТАНЦЕ, САМЫЙ ПОСЛЕДНИЙ ПО ЗАГРУЗКЕ");
Если опМаршрут.innerHTML <> "" Тогда
ОтключитьОбработчикОжидания("ПроверитьЗагрузку");
Исключение

КонецПопытки;
КонецПроцедуры
5. pumbaE 27.09.12 19:17 Сейчас в теме
Итого:
Переходим на страницу, подключаем обработчик ожидания, проверяем появился ли определенный элемент на странице - однозначно определяющий, что страница была загружена полностью, отключаем обработчик, анализируем страницу, переходим дальше , запускаем обработчик ожидания и т.д.
6. Legavaz 709 29.09.12 09:28 Сейчас в теме
Всем добрый день, и спасибо за ответы, ответ бесика подтолкнул меня к переосмысливанию задачи.
Итак задачу решил следующим образом:

Процедура КнопкаВыполнитьНажатие(Кнопка)
	
	
	ТекНомерСтраницыНоменклатуры	=	0;
	
	ТаблицаГруппСайта	=	ПолучитьСсылкиНаГруппыТовараСайта(ЭлементыФормы.ПолеHTMLДокумента);	
	Итератор			=	1;
	ОбКол				=	ТаблицаГруппСайта.Количество();	
	
	ТаблицаГруппСайта.Колонки.добавить("ПП");	
	
	Для каждого ТекСтрока  Из ТаблицаГруппСайта Цикл
		
		ТекСтрока.ПП	=	Итератор;
		Итератор		=	Итератор+1;		
	
	КонецЦикла; 
	
	ТекНомерСтраницы	=	1;
	
	НС					=	ТаблицаГруппСайта.найти(ТекНомерСтраницы,"ПП");
	Если НС<>Неопределено Тогда		
		Заголовок	=	Строка(ТекНомерСтраницы)+"/"+строка(ОбКол)+"  Обработка группы :"+НС.Представление;
		ЭлементыФормы.ПолеHTMLДокумента.Перейти(НС.Ссылка);
	КонецЕсли; 		
	
КонецПроцедуры
Показать



и конечно не обошлось без:


Процедура ПолеHTMLДокументаДокументСформирован(Элемент)	
	//ограничение
	Если тест Тогда		
		Если ТекНомерСтраницы	>	10 или 
			ТекНомерСтраницыНоменклатуры	>	20  Тогда
			
			ТекНомерСтраницы				=	0;
			ТекНомерСтраницыНоменклатуры	=	0;
			Сообщить("Остановка тестового режима");
		КонецЕсли; 		
	КонецЕсли; 
	
	
	//обработчики по группам
	Если ТекНомерСтраницы>0 Тогда
		ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента);
		ТекНомерСтраницы	=	ТекНомерСтраницы+1;		
		НС					=	ТаблицаГруппСайта.найти(ТекНомерСтраницы,"ПП");
		Если НС<>Неопределено Тогда		
			Заголовок	=	Строка(ТекНомерСтраницы)+"/"+строка(ОбКол)+"  Обработка группы :"+НС.Представление;
			ЭлементыФормы.ПолеHTMLДокумента.Перейти(НС.Ссылка);
		Иначе
			ТекНомерСтраницы	=	0;
		КонецЕсли; 		
	КонецЕсли;
КонецПроцедуры
Показать


Вся соль этого обьекта, что он живет своей жизнью и в 1с без особых ухищрений можно работать штатными методом "ПолеHTMLДокументаДокументСформирован"

позже выложу в публикации то что получилось. всем спасибо.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот