Вызов InternetExplorer.Aplications не прельщало. По этому использовался метод GetCOMObject("", "Microsoft.XMLHTTP") с обработкой ответа.
Для реализации одного из проектов необходимо было вызывать PHP-скрипт, к которому обращался HTTP-ссылкой.
Вызов InternetExplorer.Aplications не прельщало. По этому использовался метод GetCOMObject(«», «Microsoft.XMLHTTP») с обработкой ответа.
В обработке есть так же пример как парсить XML ответ.
Лично мной использовалось в:
— общение с ГеоКодером и Картами(Гугл, Яндекс)
— обмен с сайтом (команда выгрузки/загрузки)
Интерфейса как такового нет… Рисунков нет — т.к. нечего показывать, кроме кода =)
Коменты присутствуют, но все же отладка вам в помощь.
Юзать можно на любой конфигурации. Ограничение в платформе (8.2), хотя код будет работать и на 8.1.
А вот «- общение с ГеоКодером и Картами(Гугл, Яндекс)» Это уже интересно. Поделитесь обработкой и ALL?!
Любопытная штучка. Однажды нужна была такая задачка. Надо посмотреть.
(1) Angeros,
Допилю, сдам проект, получу за него денюжку и только тогда расшарю. До этого момента — сам понимаешь, не имею права 😉
Но если интересует что-то конкретное — пиши, советом помогу 😉
А в чем глубокий смысл использования COM-объекта?
В платформе есть родные методы для работы с HTTP/HTTPS, которые отлично работают в большинстве ситуаций.
Разве что если нужно отправлять большие файлы — десятки мегабайт — тогда у меня работало нестабильно. А небольшие — уже больше 2-х лет в продакшене, запросы каждые несколько минут. Никаких проблем.
(4) Magister, Согласен, получай XML и параси его средствами 1С.
(4) Magister,
Вы сами и ответили на свой вопрос. В стабильности и универсальности.
Надо что-то просто отправить (дать пинок скрипту) — без проблем…
Необходимо в ответе получить объект — получаем бинарный код, который засовываемым в XML.
без ПОСТ и ФТП.
Как по мне — так почти на все случаи жизни… Тем более работает быстро.
(5) markers,
Если нужно одновременно общаться с несколькими ресурсами (отправить, получить результат, потом полученный результат отправить дальше и т.д.) — предложенный метод поможет избежать «считалок» и «держалок» в коде.
получай XML и параси его средствами 1С,
собственно это, можно сказать, я и делаю 😉
(6) Причем тут FTP? Платформенный метод глючил у меня только при попытке отправить файл размером около 70 Мб. Больше с ним проблем абсолютно никаких не наблюдалось.
А про «считалки» и «держалки» не понял.
(4) Magister,
Поправьте, если я ошибаюсь, но «родными» 1с-ными методами нельзя получить ответ в виде строки. Только файл.
(7) Magister,
А про «считалки» и «держалки» не понял.
Если интересуют основы XMLHTTP — почитайтетут . (внешний источник)
«считалки» и «держалки» — это аналог асинхронного запроса в 1С, мы возвращаем управление 1С-ой когда получаем обратный ответ.
(8) Да, только в файл. Но я в этом не вижу проблемы — файл можно прочитать и удалить 🙂
(9) Спасибо, что это такое я знаю. А вот про асинхронность — т.е. вы хотите сказать, что используете XMLHTTP из 1С асинхронно? Как тогда ловите событие? Я способов, кроме использование ВК, не вижу.
(10) Magister, хорошо если сервер отвечает файлом. А если строкой? Во всяком случае у меня не получилось HTTPСоединение заставить работать в таком режиме. Хотя не исключаю что возможно я что-то не так делал.
(10) Magister,
Так же использовал внешние. Досконально вопрос не изучал, но что то подсказывает, что реализовать можно и без компонент.
Но это, как мне нажиться — немного офтоп. Но все же спасибо за дискутивную тезу =)) Есть над чем поразмыслить.
Если припадет нужда асинхронно юзать XMLHTTP еще раз — попытаюсь реализовать в одном объекте. Если результат будет позитивный — обязательно поделюсь.
(11) У меня отвечает именно строкой. И всё отлично работает. Наверное, вы таки что-то не так делали.
(12) Асинхронность — это да, только средствами 1С реализовать проблематично. Но, справедливости ради, ни разу не встречал задачи, в которой она была бы нужна. Что впрочем не означает абсолютной ненужности 🙂
И да, если уж использовать ВК — я бы взял что-то своё, например, использующее libcurl. И реализовал на NativeAPI. Чтобы и на сервере под Linux всё тоже работало.
Плюсанул, сам так делал…
у этого COM-объекта, который заюзал автор, есть одно хорошее преимущество — можно назначить тайм-аут.
я сначала пробовал 1с-овский HTTPRequest, но из-за отсутствия тайм-аута порой тупо повисала 1с.