Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к заданию: Написать внешнюю компоненту.

    • #1
    • 27.12.2012 15:13
    0
    одна функция - выполняет post-запрос к вэб-серверу, параметры передаются из 1С (несколько файлов). Возвращает ответ сервера.  Подробнее>>
    • #2
    • 27.12.2012 15:14
    0
    Так можно же POST-запрос из 1с выполнить напрямую...или там специфичный?
    • #3
    • 27.12.2012 17:37
    0
    запрос в теле содержит файлы, в 1с файл в теле запроса можно передать только в Base64 виде. а для текущей задачи надо передавать без кодирования... такая проблема
    • #4
    • 27.12.2012 19:46
    • Отредактировано: 27.12.2012 19:58:04
    0
    1.Можно попробовать скриптом vbs или java. В 1С создать com-объект с кодом, сгенерированым в 1С, и использовать методы com-объекта выполнения запроса и получения ответа от сервера. У меня работает. Правда не POST-запрос, а SOAP.
    2.Гарантировано можно передать файл в любой кодировке и получить ответ сервера при помощи curl. Командную строку можно сформировать в 1С и выполнить. 100% работает. Работы на полчаса. Правда для этого нужно установить curl. Но ведь внешняя компонента тоже должна находиться в папке bin, да и в конфигурации её нужно подключить.
    3.Если очень хочется, можно написать внешнюю компоненту, но работы там не на час, а на неделю. Час писать POST-запрос и еще неделю отлаживать взаимодействие этого горя с 1С. Соответственно и стоимость...
    • #5
    • 27.12.2012 20:36
    • Отредактировано: 27.12.2012 20:37:51
    0
    seperblunt
    1с файл в теле запроса можно передать только в Base64 виде


    На самом деле это не совсем так. Вернее совсем не так. Тут важно правильно сформировать HTTP-запрос из 1с. В оригинале, например при постинге произвольного бинарного файла браузером, вначале идет текстовый заголовок, потом данные файла в исходном незакодированном виде, потом окончание заголовка, так называемое boundary в виде текста. Т.е нам надо сфомировать запрос аналогичного формата из 1с. Проблема в том, что нам надо смешать текстовые данные, с которыми 1с прекрасно работает, с бинарными. А вот тут загвоздка. Но как говорится, если нельзя, но очень хочется - то можно. Один из выходов - функция ОбъединитьФайлы. Объединяем файлы в следующем порядке: вначале текстовый файл заголовка, потом наш бинарный файл, который надо запостить, потом текстовый файл -окончание заголовка.
    Полученный бутерброд прекрасно постится на сервер.
    • #6
    • 28.12.2012 04:57
    0
    чем типовое не по нраву?
Яндекс-директ
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться