правда проблема в том, что при большом количестве закупок (например 50) запрос зависает...полагаю, что происходит это из-за каких-то ошибок... нет ли в PQ какого-нибудь аналога On error resume next, чтобы ошибки просто пропускались?
Предлагаю ознакомиться с параметрами функции Web.Contents. Попробуйте побаловаться с параметром Timeout. Если проблема в долгой отдаче со стороны сервера, то уменьшая это время вы уменьшаете время ожидания запроса к сайту. По умолчанию стоит параметр 100 сек. А еще рекомендую пообщаться с тех.поддержкой сайта на тему не блочит ли вас ихний файрвол при попытке такого количества обращений в малый промежуток времени. Вас могут воспринимать как попытку DDOS.
теперь при вызове функции в конструкторе запросов работает быстро, но если возникает какая-то ошибка, то на стадии развёртывания столбцов таблица заканчивается на первой ошибке...например если всего закупок 50, а на 35 произошла какая-то ошибка загрузки данных, то итоговая таблица заканчивается на 35 закупке...
можно ли как-то сделать так, чтобы возникающая ошибка игнорировалась, и выгрузка происходила без неё?
сейчас в редакторе всё нормально выводится, а вот если нажать "Закрыть и загрузить", то на листе экселя получаются либо неполные данные, либо вообще ничего не выводится...
StoTisteg, ну понятное дело, что они могут нестабильно работать ) просто я понять не могу в чём косяк...может в самом запросе нужно какой-нибудь ещё параметр указать? в PQ я вообще ламер )
Чтобы понять нужно тестировать как минимум 2 разных варианта получения данных по одному и тому же списку, например, через PQи через VBA, если глючат оба варианта - общайтесь с админами сайта (хотя нулевой результат такого общения в принципе предсказуемый).
PooHkrd, мне кажется, что нужно в запросе что-то добавить. Пытался в инете что-нибудь найти, но предлагаемые возможные решения как-то не заработали... к сожалению, в PQ нет возможности пошагово посмотреть как он работает и что делает...
Когда вы создаете столбец то по факту вы практически одновременно закидываете на сайт запросов равное количеству строк в таблице, возможно было бы правильнее вызвать эту функцию через Table.TransformColumns, тогда, я так подозреваю, PQ их должен будет посылать по очереди, а не скопом. Чуть позже попробую - сейчас нет возможности.
PooHkrd, тогда уж через List.Accumulate или List.Generate с использованием Funtcion.InvokeAfter с установкой задержки вызова. Но и там надо тестировать
Максим Зеленский написал: тогда уж через List.Accumulate или List.Generate
Table.TransformColumns как я понимаю по сути, аналогична List.Transform, почему вы считаете что ваше предложение должно сработать? Я просто с этими функциями пока не очень дружу, прям щас на коленке вариант запроса не на строчу.
PooHkrd написал: >>Максим Зеленский: тогда уж через List.Accumulate или List.Generate<< Table.TransformColumns как я понимаю по сути, аналогична List.Transform, почему вы считаете что ваше предложение должно сработать?
Но List.Generate или List.Accumulate может спокойно ждать ответ, например, перед каждым следующим циклом. А TransformColumns и List.Transform не будут этого делать, так как там порядок обработки элементов вообще неизвестен заранее Что-то вроде такого:
Судя по всему, там срабатывает таймаут при загрузке некоторых страниц. Что с ними делать при этом? Например, пропускать, если страница не загрузилась за N секунд. Или упороно продолжать пытаться ее загрузить?