Как дождаться в цикле завершения загрузки страницы?
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
Для каждого ТекГруппы Из ТаблицаГруппСайта Цикл
ОбработкаПрерыванияПользователя();
Состояние(Строка(Итератор)+"/"+строка(ОбКол)+" Обработка группы :"+ТекГруппы.Представление);
ЭлементыФормы.ПолеHTMLДокумента.Перейти(ТекГруппы.Ссылка);
СтраницаЗагружена = Ложь;
Пока не СтраницаЗагружена Цикл
Если СтраницаЗагружена Тогда
прервать;
КонецЕсли;
КонецЦикла;
ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента);
Прервать;
КонецЦикла;
Процедура ПолеHTMLДокументаДокументСформирован(Элемент)
СтраницаЗагружена = Истина;
КонецПроцедуры
в коде вообщем то понятно что я делаю, но не выходит этот каменный цветок,
что интересно на форуме есть пара обработок подобного характера
Например
В общем то я делаю тоже самое, только на 8.1, но не работает...
если кто может помочь большое спасибо
ОбработкаПрерыванияПользователя();
Состояние(Строка(Итератор)+"/"+строка(ОбКол)+" Обработка группы :"+ТекГруппы.Представление);
ЭлементыФормы.ПолеHTMLДокумента.Перейти(ТекГруппы.Ссылка);
СтраницаЗагружена = Ложь;
Пока не СтраницаЗагружена Цикл
Если СтраницаЗагружена Тогда
прервать;
КонецЕсли;
КонецЦикла;
ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента);
Прервать;
КонецЦикла;
Процедура ПолеHTMLДокументаДокументСформирован(Элемент)
СтраницаЗагружена = Истина;
КонецПроцедуры
в коде вообщем то понятно что я делаю, но не выходит этот каменный цветок,
что интересно на форуме есть пара обработок подобного характера
Например
В общем то я делаю тоже самое, только на 8.1, но не работает...
если кто может помочь большое спасибо
По теме из базы знаний
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Я думаю там интерпретатор некорректно отработает код в конструкции "Пока Цикл". Почему
ты не хочеш сразу запихнуть
в обработчик события ПолеHTMLДокументаДокументСформирован ?
ты не хочеш сразу запихнуть
ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента); в обработчик события ПолеHTMLДокументаДокументСформирован ?
ПодключитьОбработчикОжидания("ПроверитьЗагрузку", 2, Ложь);
Процедура ПроверитьЗагрузку()
ПолеHTML = ЭлементыФормы.ПолеHTMLДокумента;
Попытка
опМаршрут = ПолеHTML.Документ.getElementByID("ВОТ ТУТ ТВОЙ ЭЛЕМЕНТ НА СТАНЦЕ, САМЫЙ ПОСЛЕДНИЙ ПО ЗАГРУЗКЕ");
Если опМаршрут.innerHTML <> "" Тогда
ОтключитьОбработчикОжидания("ПроверитьЗагрузку");
Исключение
КонецПопытки;
КонецПроцедуры
Процедура ПроверитьЗагрузку()
ПолеHTML = ЭлементыФормы.ПолеHTMLДокумента;
Попытка
опМаршрут = ПолеHTML.Документ.getElementByID("ВОТ ТУТ ТВОЙ ЭЛЕМЕНТ НА СТАНЦЕ, САМЫЙ ПОСЛЕДНИЙ ПО ЗАГРУЗКЕ");
Если опМаршрут.innerHTML <> "" Тогда
ОтключитьОбработчикОжидания("ПроверитьЗагрузку");
Исключение
КонецПопытки;
КонецПроцедуры
Итого:
Переходим на страницу, подключаем обработчик ожидания, проверяем появился ли определенный элемент на странице - однозначно определяющий, что страница была загружена полностью, отключаем обработчик, анализируем страницу, переходим дальше , запускаем обработчик ожидания и т.д.
Переходим на страницу, подключаем обработчик ожидания, проверяем появился ли определенный элемент на странице - однозначно определяющий, что страница была загружена полностью, отключаем обработчик, анализируем страницу, переходим дальше , запускаем обработчик ожидания и т.д.
Всем добрый день, и спасибо за ответы, ответ бесика подтолкнул меня к переосмысливанию задачи.
Итак задачу решил следующим образом:
и конечно не обошлось без:
Вся соль этого обьекта, что он живет своей жизнью и в 1с без особых ухищрений можно работать штатными методом "ПолеHTMLДокументаДокументСформирован"
позже выложу в публикации то что получилось. всем спасибо.
Итак задачу решил следующим образом:
Процедура КнопкаВыполнитьНажатие(Кнопка)
ТекНомерСтраницыНоменклатуры = 0;
ТаблицаГруппСайта = ПолучитьСсылкиНаГруппыТовараСайта(ЭлементыФормы.ПолеHTMLДокумента);
Итератор = 1;
ОбКол = ТаблицаГруппСайта.Количество();
ТаблицаГруппСайта.Колонки.добавить("ПП");
Для каждого ТекСтрока Из ТаблицаГруппСайта Цикл
ТекСтрока.ПП = Итератор;
Итератор = Итератор+1;
КонецЦикла;
ТекНомерСтраницы = 1;
НС = ТаблицаГруппСайта.найти(ТекНомерСтраницы,"ПП");
Если НС<>Неопределено Тогда
Заголовок = Строка(ТекНомерСтраницы)+"/"+строка(ОбКол)+" Обработка группы :"+НС.Представление;
ЭлементыФормы.ПолеHTMLДокумента.Перейти(НС.Ссылка);
КонецЕсли;
КонецПроцедуры Показатьи конечно не обошлось без:
Процедура ПолеHTMLДокументаДокументСформирован(Элемент)
//ограничение
Если тест Тогда
Если ТекНомерСтраницы > 10 или
ТекНомерСтраницыНоменклатуры > 20 Тогда
ТекНомерСтраницы = 0;
ТекНомерСтраницыНоменклатуры = 0;
Сообщить("Остановка тестового режима");
КонецЕсли;
КонецЕсли;
//обработчики по группам
Если ТекНомерСтраницы>0 Тогда
ОбработатьДанныеПоГруппеТовара(ЭлементыФормы.ПолеHTMLДокумента);
ТекНомерСтраницы = ТекНомерСтраницы+1;
НС = ТаблицаГруппСайта.найти(ТекНомерСтраницы,"ПП");
Если НС<>Неопределено Тогда
Заголовок = Строка(ТекНомерСтраницы)+"/"+строка(ОбКол)+" Обработка группы :"+НС.Представление;
ЭлементыФормы.ПолеHTMLДокумента.Перейти(НС.Ссылка);
Иначе
ТекНомерСтраницы = 0;
КонецЕсли;
КонецЕсли;
КонецПроцедуры ПоказатьВся соль этого обьекта, что он живет своей жизнью и в 1с без особых ухищрений можно работать штатными методом "ПолеHTMLДокументаДокументСформирован"
позже выложу в публикации то что получилось. всем спасибо.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот
