Имя: Пароль:
1C
1С v8
Отправка запроса на сайт
0 bUbA
 
16.06.15
13:28
При записи документа в 1с необходимо сымитировать переход по ссылке на сайте. Для этого надо отправить запрос.

Соединение = Новый HTTPСоединение(АдресСайта);
Соединение.Получить(Ресурс, ФайлОтвета);

Ресурс имеет значение "orders/1AB-00001/account_done", т.е. ссылка, по которой необходимо перейти. Но возвращается ошибка - Ошибка работы с Интернет:  запрос не допустим для заданного ресурса (406).
Подскажите как решить проблему, может другой метод использовать надо?
1 pavelul73
 
16.06.15
13:33
может слеш добавить? /orders/1AB-00001/account_done
2 bUbA
 
16.06.15
13:37
(1) та же ошибка возвращается
3 anatoly
 
16.06.15
13:42
https://ru.wikipedia.org/wiki/Список_кодов_состояния_HTTP#406

скорее всего параметры какие то в хедере не передаете...
4 Мимохожий Однако
 
16.06.15
13:43
Может быть, в начале значения ресурса добавить полный адрес сайта?
5 bUbA
 
16.06.15
13:47
(4) не вариант, тогда вообще ошибка 404 идет
6 Asmody
 
16.06.15
14:05
(0) АдресСайта как выглядит?
7 and2
 
16.06.15
14:06
(0) При записи - совсем неудачная идея
8 bUbA
 
16.06.15
14:07
(7) почему?
9 bUbA
 
16.06.15
14:07
(6) new.xxx.ru
10 and2
 
16.06.15
14:10
(8) ну так транзакция.
и в ней какой то запрос во внешний источник.
непонятный по длительности
11 bUbA
 
16.06.15
14:13
(10) дело в том, что все должно быть синхронно, и если документ появляется или изменяется в 1с, то информация о нем сразу же должна измениться на сайте
12 Мимохожий Однако
 
16.06.15
14:15
(11)Когда файл большой, то зачастую мешает вебсервис сайта и возникает ошибка.
И я всё-таки посмотрел бы в СП метод
Синтаксис:

Новый HTTPСоединение(<Сервер>, <Порт>, <Пользователь>, <Пароль>, <Прокси>, <Таймаут>, <ЗащищенноеСоединение>)
13 beaver1971
 
16.06.15
14:25
(0) Ну так почитай, что тебе сайт то сообщает
    АдресСайта = "google.ru";
    Ресурс = "/";
    ФайлОтвета = "C:\1.txt";
    Соединение = Новый HTTPСоединение(АдресСайта);
    Результат = Соединение.Получить(Ресурс, ФайлОтвета);
    Сообщить(Результат.КодСостояния);
    Для Каждого Заг Из Результат.Заголовки Цикл
        Сообщить(Заг.Ключ + ":" + Заг.Значение);
    КонецЦикла;
14 bUbA
 
16.06.15
14:40
(13) Ещё до возвращения какого либо ответа вылазит ошибка
Ошибка при вызове метода контекста (Получить)
    Соединение.Получить(Ресурс, ФайлОтвета);
по причине:
Ошибка при выполнении файловой операции  'orders/1AB-00001/account_done'
по причине:
Ошибка работы с Интернет:  запрос не допустим для заданного ресурса (406).  
по причине:
Ошибка работы с Интернет:  запрос не допустим для заданного ресурса (406)
15 bUbA
 
16.06.15
14:40
а вот с гуглом все норм возвращает
16 and2
 
16.06.15
14:48
(11) вы есть безобразники

а если документ по какой то причине в 1с не сможет записаться в БД, а на сайт инфу уже передали?
17 and2
 
16.06.15
14:49
(14) банально фильтр по адресам включил умный системный админ на той стороне.
18 beaver1971
 
16.06.15
14:49
(14) а что возвращает при Ресурс = "/" но для твоего сайта?
19 and2
 
16.06.15
14:50
(11) кстати.
вдруг пропал интернет внезапно. на часик.
как потом вам данные синхронизировать и какие?
20 Asmody
 
16.06.15
14:53
Заведи план обмена, регистрируй в нем свой документ и регламентным заданием выгружай на сайт
21 Asmody
 
16.06.15
14:58
(0) Может там get недопустим? Попробуй post
22 Jokero
 
16.06.15
15:01
Можно ПослеЗаписи использовать. Я например часто в этом обработчике сообщения на почту юзверям отправляю.
23 bUbA
 
16.06.15
15:04
(18) Ресурс = "/" возвращает код страницы.
Что интересно, так это при первом переходе по ссылке переход срабатывает (но возвращается пустой ответ " "), а вот потом всегда вылазит ошибка 406. Если данные на сайте вернуть к изначальному состоянию, то опять первый раз хорошо отрабатывает, потом опять ошибка.
24 bUbA
 
16.06.15
15:09
(22) тогда ошибки как в (19) все равно не избежать, но документ в базу 1с запишется.
(20) регламентные задания людей не устраивают, им надо сразу же высылать заказ на сайт
25 and2
 
16.06.15
15:13
HTTPСоединение.Получить (HTTPConnection.Get)
HTTPСоединение (HTTPConnection)
Получить (Get)
Синтаксис:

Получить(<HTTPЗапрос>, <ИмяВыходногоФайла>)
Параметры:

<HTTPЗапрос> (обязательный)

Тип: HTTPЗапрос.
HTTP-запрос.
26 and2
 
16.06.15
15:20
+(25)  первый параметр в Соединение.Получить(Ресурс... какой то не такой
27 beaver1971
 
16.06.15
15:20
(23)
/*Что интересно, так это при первом переходе по ссылке переход срабатывает (но возвращается пустой ответ " "*/
я так понимаю, что пустой ответ в файле? А что вот так возвращает?
    Для Каждого Заг Из Результат.Заголовки Цикл
        Сообщить(Заг.Ключ + ":" + Заг.Значение);
    КонецЦикла;
28 bUbA
 
16.06.15
15:30
(27) а так ругается на то, что происходит обращение к процедуре Получить как к функции