Есть некий URL на который мне нужно передать POST запрос. Пробую реализовать с HTTPСоединение используя ОтправитьДляОбработки.
Соединение = Новый HTTPСоединение(Сервер);
//никаких ошибок не возникает
Соединение.Получить(УРЛПолучить,ФайлОтветаПолучить,);
//где ФайлОтветаПолучить = «c:filePOL.txt» — корректно записывает в файл хтмл код страницы
//А ВОТ
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки,УРЛ,ФайлОтветаСервера,Заголовки);
//Дает ошибку:
//Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка доступа к файлу
//после «к файлу» идет имя УРЛ в одинарных ковычках
Где собака зарыта?
Сижу не за проксёй, пробовал и использовать проксю:
ПроксиСервер = Новый ИнтернетПрокси();
ПроксиСервер.Сервер(«10.1.1.254»);
ПроксиСервер.Пользователь=»User»;
ПроксиСервер.Пароль=»User»;
Всё равно ошибка есть.
357273277{«time» : «», «endtime» : «», «source» : «test source», «name» : «test name», «device» : 0, «data» : «test data»}
357273277 — вот это левый мусор.
357273277 — вот это левый мусор — «BOM»
«Текстовый файл сохраняемый как UTF-8 с сигнатурой BOM в начале имеет 3 байта с значениями: EF, BB, BF(Скрин варшарка во вложении). Сигнатура BOM — метка порядка байтов (Byte Order Mark, BOM). Часто, BOM называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). Признак BOM определяет, является ли файл закодированным в UTF-8. Не все программы могут корректно работать с файлами с сигнатурой BOM.»
При создании события из 1С, ваша обработка работает, если версия платформы 8.1 (Создается UTF-8 без BOM). У меня версия платформы 8.3 , в ней создается текстовый файл сохраняемый как UTF-8 с BOM, что в итоге вело к моей ошибке(лишний символ при формировании пост запроса).
Проблему решил используя код, приведенный ниже:
// Как записать файл в кодировке UTF-8 без BOM
функция ЗаписатьФайлВформате_UTF8_без_BOM(текст,полноеИмяФайла)
// записываем в файл с символами BOM в начале файле
ТекстовыйФайлUTF8_Bom = Новый ТекстовыйДокумент();
ТекстовыйФайлUTF8_Bom.ДобавитьСтроку(текст);
ТекстовыйФайлUTF8_Bom.Записать(полноеИмяФайла,»UTF-8″);
// открываем файл и считываем символы после символов BOM
Данные = Новый ДвоичныеДанные(полноеИмяФайла);
Строка64=Base64Строка(Данные);
Строка64=Прав(Строка64,СтрДлина(Строка64)-4);
ДанныеНаЗапись=Base64Значение(Строка64);
ДанныеНаЗапись.Записать(полноеИмяФайла); // записываем
КонецФункции
Всем спасибо за помощь.
Добрый день!
Возникают проблемы при попытке обмена данными 1C и Битрикс:
1с выдает такое сообщение:
Выгружено товаров: 1108
Выгружено предложений: 4616
{Обработка.ОбменССайтом(320)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции ‘bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=offers.xml’
Произошла ошибка: . По причине:
Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:Documents and SettingsUSERLocal SettingsTemp1cbitrixoffers.xml.031).
Обмен не выполнен
Ответ сервера:
<ht ml xmlns=»http://www.w3.org/1999/xhtml» xml:lang=»en» lang=»en»>
<head>
<ST YLE type=»text/css»><!—
*
{
margin: 0px;
}
body
{
font-family: verdana, helvetica, sans-serif;
font-size: 13px;
padding: 0px;
background-color: #ffffff;
color: #111111;
}
a
{
background-color: inherit;
color: #0000EE;
}
a:hover
{
text-decoration: none;
}
p
{
text-align: justify;
margin-bottom: 15px;
line-height: 22px;
}
ul
{
list-style: disc;
padding-left: 15px;
margin-bottom: 15px;
}
h3
{
font-size: 20px;
margin-bottom: 30px;
}
h4
{
font-size: 13px;
margin-bottom: 5px;
}
#container
{
margin: 0px 0px 0px 0px;
}
#header
{
background-color: #660000;
color: #fff;
padding: 10px 40px 10px 40px;
}
#headerok
{
background-color: #006600;
color: #fff;
padding: 10px 40px 10px 40px;
}
#header h1
{
font-size: 30px;
}
#header h2
{
font-size: 14px;
}
#headerok h1
{
font-size: 30px;
}
#headerok h2
{
font-size: 14px;
}
#body
{
margin: 10px 40px 10px 40px;
border-bottom: solid 1px #DADADA;
}
#footer
{
margin: 0px 40px 0px 40px;
}
#signature
{
margin: 0px 40px 0px 40px;
}
#body p
{
}
#errorwhat
{
padding: 10px 0px;
font-size: 20px;
border-bottom: solid 1px #DADADA;
}
.clearit
{
clear: both;
height: 1px;
}
—></STYLE>
<met a http-equiv=»Content-Type» content=»text/html;charset=iso-8859-1″ />
<title>ERROR: The requested URL could not be retrieved</title>
</head>
<body>
<div id=»container»>
<div id=»header»>
<h1>ERROR</H1>
<h2>The requested URL could not be retrieved</h2>
</div>
<div id=»body»>
<div id=»what»>
While trying to retrieve the URL: <a href=»»></a>
</div>
<div id=»errortitle»>
The following error was encountered:
</div>
<div id=»errorwhat»>
Zero Sized Reply
</div>
<div id=»errordescription»>
Squid did not receive any data for this request.
</div>
</div>
</div>
</body>
</html>
Выгрузка товаров завершена с ошибками!!!
artyom_astt
17.05.13 — 17:17
Пытаюсь передать параметры для обработки их на сайте и вернуть результат обработки, не могу понять почему в Результате обработки ничего не записывется во временный файл
artyom_astt
1 — 17.05.13 — 17:18
Вот Код:
имяФайлаОтправки = «d:request.txt»;
имяФайлОтправки = ПолучитьимяВременногоФайла(«txt»);
ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтправки);
ЗаписьТекста.Записать(«code=»+КодФормы+»&series=»+СерияБСО+»&number=»+НомерБСО);
ЗаписьТекста.Закрыть();
имяВыходногоФайла = ПолучитьимяВременногоФайла(«xml»); // наш сервер возвращает ответы в виде XML
//имяВыходногоФайла = «d:answer.xml»;
ФайлОтправки = Новый Файл(имяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
Соединение = Новый HTTPСоединение(«www.m.blank.bisc.by/Query»);
Заголовки = Новый Соответствие();
//Заголовки.Вставить(«host», «http://m.blank.bisc.by/Query:8080»);
/////
Запрос = Новый HTTPЗапрос();
Запрос.УстановитьТелоИзСтроки();
Соединение.Записать(Запрос);
Соединение.ОтправитьДляОбработки(Запрос,»GetAnswer», имяВыходногоФайла, Заголовки);
Попытка
УдалитьФайлы(имяФайлаОтправки);
Исключение
КонецПопытки;
// обработаем ответ сервера
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(имяВыходногоФайла);
Пока ЧтениеXML.Прочитать() Цикл
// чтение ответа в виде XML файла
КонецЦикла;
ЧтениеXML.Закрыть();
Krendel
2 — 17.05.13 — 17:18
Продолжайте пытатся, на следующий раз получится
artyom_astt
3 — 17.05.13 — 17:19
не обращайте внимание на пустой запрос, результатом обратоки явлется возвращаемый xml файл
oleg_km
4 — 17.05.13 — 17:26
(3) Ошибку-то какую выдает?
artyom_astt
5 — 17.05.13 — 17:28
{Форма.Форма.Форма(53)}: Ошибка при вызове метода контекста (ОткрытьФайл)
ЧтениеXML.ОткрытьФайл(имяВыходногоФайла);
по причине:
Файл не обнаружен ‘C:UsersAppDataLocalTempv8_92D9_75.xml’
drcrasher
6 — 17.05.13 — 17:29
(0) всё, что связано с сайтами, внятно разжовано в (ОбщийМодуль||Обработка).ОбменССайтом
Infsams654
7 — 17.05.13 — 17:34
(3) Запрос = Новый HTTPЗапрос();
Запрос.УстановитьТелоИзСтроки();
Соединение.Записать(Запрос);
Соединение.ОтправитьДляОбработки(Запрос…
а так разве можно Put и Post с одинаковым запросом, тем более что он пустой ?
artyom_astt
8 — 17.05.13 — 17:40
(7)
результатом обработки пустого запроса будет xmlфайл с соообщением, пытаюсь понять почему не отрабатывает создание временного файла
sttt
9 — 17.05.13 — 17:42
вот так пробуй:
ИмяФайлаОтправки = ПолучитьИмяВременногоФайла(«txt»);
POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8,, Истина, Символы.ПС); //ТекстБезБОМ
POSTПараметры.Записать(«code=» + КодФормы + «&series=» + СерияБСО + «&number=» + НомерБСО);
POSTПараметры.Закрыть();
ИмяВыходногоФайла = ПолучитьИмяВременногоФайла(«xml»);
ФайлОтправки = Новый Файл(ИмяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
Данные = «code=» + КодФормы + «&series=» + СерияБСО + «&number=» + НомерБСО;
Заголовки = Новый Соответствие();
Заголовки.Вставить(«POST /Query HTTP/1.1»);
Заголовки.Вставить(«Host», «www.m.blank.bisc.by»);
Заголовки.Вставить(«Referer», «www.m.blank.bisc.by»);
Заголовки.Вставить(«Content-Type», «application/x-www-form-urlencoded»);
Заголовки.Вставить(Данные);
Соединение = Новый HTTPСоединение(«www.m.blank.bisc.by»);
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, «v8», ИмяВыходногоФайла, Заголовки);
Попытка
УдалитьФайлы(ИмяФайлаОтправки);
Исключение
КонецПопытки;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяВыходногоФайла);
Пока ЧтениеXML.Прочитать() Цикл
…
КонецЦикла;
ЧтениеXML.Закрыть();
Попытка
УдалитьФайлы(ИмяВыходногоФайла);
Исключение
КонецПопытки;
sttt
10 — 17.05.13 — 17:43
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, «v8», ИмяВыходногоФайла, Заголовки);
замени на это
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, «Query», ИмяВыходногоФайла, Заголовки);
sttt
11 — 17.05.13 — 17:44
и это лишнее:
Данные = «code=» + КодФормы + «&series=» + СерияБСО + «&number=» + НомерБСО;
и это:
Заголовки.Вставить(Данные);
artyom_astt
12 — 17.05.13 — 17:49
Вот ругается:
{Форма.Форма.Форма(82)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки)
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, ИмяВыходногоФайла, Заголовки);
по причине:
Ошибка при выполнении файловой операции ‘C:UsersastapenkoAppDataLocalTempv8_92D9_81.xml’
по причине:
Ошибка работы с Интернет: неверный формат ответа шлюзу (502). <!DOCTYPE HTML PUBLIC «-//W3C//DTD HTML 4.0 Transitional//EN»>
<HTML><HEAD><TITLE>Сообщение об ошибке</TITLE>
artyom_astt
13 — 17.05.13 — 17:50
(10) Убрал параметр Query на него тогда ругался
sttt
14 — 17.05.13 — 17:53
(13) заработало?
artyom_astt
15 — 17.05.13 — 17:54
нет.. убрал парамет query до того как получил ошибку в сообщении 12
sttt
16 — 17.05.13 — 17:57
ты во втором параметре убрал или в заголовке?
должно быть так:
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, «Query», ИмяВыходногоФайла, Заголовки);
у тебя же адрес:
www.m.blank.bisc.by/Query
sttt
17 — 17.05.13 — 17:58
и ты через шлюз работаешь?
sttt
18 — 17.05.13 — 18:00
Прокси = Новый ИнтернетПрокси;
Прокси.Установить(«http», «IP твоего шлюза», 3919);
HTTPСоединение = Новый HTTPСоединение(«www.m.blank.bisc.by»,,, Прокси);
artyom_astt
19 — 17.05.13 — 18:00
(16)Да, я убрал во втором парметре! Если оставить его на месте то вот какую ошибку ловлю:
{Форма.Форма.Форма(82)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки)
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки,»Query», ИмяВыходногоФайла, Заголовки);
по причине:
Ошибка при выполнении файловой операции ‘Query’
по причине:
(17) Да работаю через шлюз, по-другому никак
sttt
20 — 17.05.13 — 18:04
(18) ну как, с этим (18) работает?
artyom_astt
21 — 17.05.13 — 18:06
(20) к сожелению ошибка всё таже
sttt
22 — 17.05.13 — 18:09
уточни у админов параметры прокси.
пример скинул рабочий, правда локально проверенный.
может еще кодировку UTF8 поменять в
POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8,, Истина, Символы.ПС); //ТекстБезБОМ
artyom_astt
23 — 17.05.13 — 18:11
(22) сейчас попробую
artyom_astt
24 — 17.05.13 — 18:13
(22) а на какую кодировку то менять?? я так понимаю Вы уже реализовали нечто подобное и оно у Вас нормально работает?
sttt
25 — 17.05.13 — 18:17
да, у меня работает. только я не с этим www.m.blank.bisc.by
этот адрес в браузере не открывается, а через 1с не пытался
artyom_astt
26 — 17.05.13 — 18:22
хммм, интересно. на адрес в (25) не заходит, но через http://m.blank.bisc.by/ без проблем
sttt
27 — 17.05.13 — 18:25
(26) так может поменять www.m.blank.bisc.by везде на m.blank.bisc.by
artyom_astt
28 — 17.05.13 — 18:27
Вариант синтаксиса: По HTTP-запросу
Синтаксис:
ОтправитьДляОбработки(<HTTPЗапрос>, <ИмяВыходногоФайла>)
Параметры:
<HTTPЗапрос> (обязательный)
Тип: HTTPЗапрос.
HTTP-запрос.
<ИмяВыходногоФайла> (необязательный)
sttt это нормально что в синт.помощнике метод описан по другому??
sttt
29 — 17.05.13 — 18:33
поменяй адрес http://m.blank.bisc.by/Query и жизнь наладиться и похоже прокси тебе не нужен, проблема была в неверном адресе
у меня так:
ОтправитьДляОбработки(<Источник>, <АдресРесурса>, <ИмяВыходногоФайла>, <Заголовки>)
Параметры:
<Источник> (обязательный)
Тип: Строка.
Имя файла-источника.
<АдресРесурса> (обязательный)
Тип: Строка.
Адрес ресурса на сервере, в который посылаются данные из источника.
<ИмяВыходногоФайла> (обязательный)
Тип: Строка.
Имя выходного файла, в который записываются полученные с сервера данные.
<Заголовки> (необязательный)
Тип: Строка.
Указываются заголовки, добавляемые к запросу на сервер. Текстовые пары вида <Заголовок>:<Значение>, разделяемые комбинацией ВК+ ПС.
Описание:
Отправить ресурс на указанный адрес для обработки.
Доступность:
Тонкий клиент, сервер, толстый клиент, внешнее соединение.
artyom_astt
30 — 17.05.13 — 18:48
Cпасибо за проявляемый интерес, изменил адрес и вот что пишет:
{Форма.Форма.Форма(86)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки)
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки,»Query», ИмяВыходногоФайла, Заголовки);
по причине:
Ошибка работы с Интернет: Couldn’t resolve host name
sttt
31 — 17.05.13 — 18:50
(30) у тебя где то адрес старый прописан, ищи
sttt
32 — 17.05.13 — 18:50
+(31) у меня работает
artyom_astt
33 — 17.05.13 — 18:57
ИмяФайлаОтправки = ПолучитьИмяВременногоФайла(«txt»);
POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8,, Истина, Символы.ПС); //ТекстБезБОМ
POSTПараметры.Записать(«code=» + КодФормы + «&series=» + СерияБСО + «&number=» + НомерБСО);
POSTПараметры.Закрыть();
ИмяВыходногоФайла = ПолучитьИмяВременногоФайла(«xml»);
ФайлОтправки = Новый Файл(ИмяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
// Данные = «code=» + КодФормы + «&series=» + СерияБСО + «&number=» + НомерБСО;
Заголовки = Новый Соответствие();
Заголовки.Вставить(«POST /Query HTTP/1.1»);
Заголовки.Вставить(«Host», «http://m.blank.bisc.by»);
Заголовки.Вставить(«Referer», «http://m.blank.bisc.by»);
Заголовки.Вставить(«Content-Type», «application/x-www-form-urlencoded»);
// Заголовки.Вставить(Данные);
//Прокси = Новый ИнтернетПрокси;
//Прокси.Установить(«http», «192.168.0.206», 8080);
//Соединение = Новый HTTPСоединение(«http://m.blank.bisc.by»);
Соединение = Новый HTTPСоединение(«http://m.blank.bisc.by»);
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки,»Query», ИмяВыходногоФайла, Заголовки);
Попытка
УдалитьФайлы(ИмяФайлаОтправки);
Исключение
КонецПопытки;
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.ОткрытьФайл(ИмяВыходногоФайла);
Пока ЧтениеXML.Прочитать() Цикл
КонецЦикла;
ЧтениеXML.Закрыть();
Попытка
УдалитьФайлы(ИмяВыходногоФайла);
Исключение
КонецПопытки;
artyom_astt
34 — 17.05.13 — 18:58
(33) не срабатывает, ошибка из (30)
sttt
35 — 17.05.13 — 19:00
замени везде «http://m.blank.bisc.by» на
Заголовки.Вставить(«Host», «m.blank.bisc.by»);
Заголовки.Вставить(«Referer», «m.blank.bisc.by»);
и т.д.
sttt
36 — 17.05.13 — 19:00
и вот это лишнее:
ФайлОтправки = Новый Файл(ИмяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());
artyom_astt
37 — 18.05.13 — 11:04
Всё поправил как Вы сказали, но увы получаю ошибку из (30)
sttt
38 — 18.05.13 — 13:05
(37) невероятно))
ладно не буду мучить, вот рабочий вариант, единственное сделано на управляемых формах, соответственно необходимо поменять реквизиты:
ИмяФайлаОтправки = ПолучитьИмяВременногоФайла(«txt»);
POSTПараметры = Новый ЗаписьТекста(ИмяФайлаОтправки, КодировкаТекста.UTF8,, Истина, Символы.ПС); //ТекстБезБОМ
POSTПараметры.Записать(«code=» + Объект.КодФормы + «&series=» + Объект.СерияБСО + «&number=» + Объект.НомерБСО);
POSTПараметры.Закрыть();
ИмяВыходногоФайла = ПолучитьИмяВременногоФайла(«txt»);
Заголовки = Новый Соответствие();
Заголовки.Вставить(«POST /GetAnswer HTTP/1.1»);
Заголовки.Вставить(«Host», «m.blank.bisc.by»);
Заголовки.Вставить(«Referer», «http://m.blank.bisc.by/Query»);
Заголовки.Вставить(«Cookie», «ASP.NET_SessionId=orlnnpbz2vrxrbuobsh4fmom»); // без этих кукисов работать не будет и в ЗаголовокGET такой же должен быть. посмотри по форуму, недавно пробегал пример как куки подставлять
Заголовки.Вставить(«Connection», «keep-alive»);
Заголовки.Вставить(«Content-Type», «application/x-www-form-urlencoded»);
Соединение = Новый HTTPСоединение(«m.blank.bisc.by»);
Соединение.ОтправитьДляОбработки(ИмяФайлаОтправки, «GetAnswer», ИмяВыходногоФайла, Заголовки);
ЗаголовокGET = Новый Соответствие();
ЗаголовокGET.Вставить(«GET /BlankInfo HTTP/1.1»);
ЗаголовокGET.Вставить(«Host», «m.blank.bisc.by»);
ЗаголовокGET.Вставить(«Referer», «http://m.blank.bisc.by/Query»);
ЗаголовокGET.Вставить(«Cookie», «ASP.NET_SessionId=orlnnpbz2vrxrbuobsh4fmom»);
ЗаголовокGET.Вставить(«DNT», «1»);
ЗаголовокGET.Вставить(«Connection», «keep-alive»);
Соединение.Получить(«/BlankInfo», ИмяВыходногоФайла, ЗаголовокGET);
Попытка
УдалитьФайлы(ИмяФайлаОтправки);
Исключение
КонецПопытки;
ТекстовыйДокумент = Новый ТекстовыйДокумент;
ТекстовыйДокумент.Прочитать(ИмяВыходногоФайла);
Объект.Ответ = ТекстовыйДокумент.ПолучитьТекст();
ЭтаФорма.ОтветHTML = ТекстовыйДокумент.ПолучитьТекст();
Попытка
УдалитьФайлы(ИмяВыходногоФайла);
Исключение
КонецПопытки;
artyom_astt
39 — 18.05.13 — 13:25
Спасибо Вам большое, буду разбираться…!
artyom_astt
40 — 18.05.13 — 22:22
ошибки о которых писал выше отсутствуют, спасибо за это!!!
с куки пока не разобрался увы!
sttt
41 — 19.05.13 — 22:53
придется переделать под:
WinHttp = Новый COMОбъект(«WinHttp.WinHttpRequest.5.1»);
WinHttp.Option(2,»Windows-1251″);
WinHttp.Open(«POST», «https://site.ru»,0);
WinHttp.Send(НовыйЗапрос);
Кукиз= WinHttp.getResponseHeader(«Set-cookie»);
это нетрудно
artyom_astt
42 — 20.05.13 — 10:06
С таким методом пока не приходилось сталкиваться, буду пытаться! Спасиб
acsent
43 — 20.05.13 — 10:15
(41) 1с тоже с куками умеет
artyom_astt
44 — 20.05.13 — 10:16
(43) может подкинете где почитать, хотелось бы обойтись без ком объектов
acsent
45 — 20.05.13 — 10:17
HTTPОтвет = Соединение.ОтправитьДляОбработки(Запрос…
далее смотрим HTTPОтвет
oleg_km
46 — 20.05.13 — 10:42
(45) Это вроде только с 8.1.18?
acsent
47 — 20.05.13 — 10:43
(46) а че у когото не что ли?
artyom_astt
48 — 20.05.13 — 11:01
всё норм у меня 8.2
artyom_astt
49 — 20.05.13 — 11:28
Sttt, есть к Вам вопрос, как к человеку проявившему наибольшее внимание… Для чего мне нужны cookie в моем случае? может из-за непонимания вопроса у меня ничего и не выходит…..
в принципе если кто сможет пояснить,буду очень признателен
artyom_astt
50 — 20.05.13 — 11:29
Ниже содержание, вернувшегося в результате обработки запроса, сообщения
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href=»/Query»>here</a>.</h2>
</body></html>
artyom_astt
51 — 20.05.13 — 12:55
до того момента как всё заработает осталось немного, только с куки разобраться…
artyom_astt
52 — 21.05.13 — 11:39
поднимаю
Infsams654
53 — 21.05.13 — 11:52
(51) в чем проблемы ? ЗаголовкиЗапроса.Вставить(«Cookie», Cookie.Имя + «=» + Cookie.Текст);
artyom_astt
54 — 21.05.13 — 12:51
(51) c кодом нет проблемы. Не понимаю что есть Cookie.Имя и Cookie.Текст, и откуда их брать.
P.S. сорри за жесткий тупняк, с моей стороны
artyom_astt
55 — 21.05.13 — 15:17
Вот исходный код страницы с обработанным запросом (параметры забивал вручную)…
<?xml version=»1.0″ encoding=»UTF-8″?>
<!DOCTYPE html PUBLIC «-//WAPFORUM//DTD XHTML Mobile 1.0//EN»
«http://www.wapforum.org/DTD/xhtml-mobile10.dtd»>
<html>
<head>
<title>Мобильная версия — АС БДБ</title>
<link href=»/Resources/Content/core.css» rel=»stylesheet» type=»text/css» />
</head>
<body>
<div id=»header» class=»header»>
<a href=»/»>АС БДБ</a>
</div>
<div id=»subtitle» class=»subtitle»>
Запрос обработан
</div>
<div id=»body» class=»body»>
<div id=»RequestInfoDiv»>
<span>
<label for=»Blank_Code»>Код</label>: <strong>401851</strong><br />
<label for=»Blank_Name»>Наименование</label>: <strong>ТН-2 (ПЭВМ) а4 1х2 </strong><br />
<label for=»Blank_Series»>Серия</label>: <strong>ФК</strong><br />
<label for=»Blank_Number»>Номер</label>: <strong>1083246</strong>
</span>
</div>
<hr />
<u>Приобретен</u>
<div id=»PurchaseInfoTable»>
<label for=»Blank_PurchaseInfo_RegistrationNumber»>УНП</label>: <strong>290473870</strong><br />
<label for=»Blank_PurchaseInfo_EconomicEntityName»>Наименование</label>: <strong>Общество с ограниченной ответственностью "Успех про"</strong><br />
<label for=»Blank_PurchaseInfo_Date»>Дата</label>: <strong>4.3.2013</strong><br />
</div>
</div>
<div id=»footer» class=»footer»>
<a href=»/Soi»>Полная версия сайта</a>
<br />
<span>© Расчетный центр НБ РБ</span>
</div>
</body>
</html>
artyom_astt
56 — 21.05.13 — 16:47
Кто сталкивался, обратите внимание, не проходите мимо
(38) код отправки запроса
(55) обработанный запрос (параметры рууками заполнял)
(50) файл полученный с сайта
Как в 1с вместо (50) получить нормальный ответ, который содержится в (55) ??
acsent
57 — 21.05.13 — 16:49
fiddler поставь и посмотри что передаешь ты, а что браузер
artyom_astt
58 — 21.05.13 — 17:12
(57) попробую позже, но сейчас нет возможности (нет прав)!!!
вопрос еще актуален
Infsams654
59 — 21.05.13 — 17:15
(54) на то они и куки, что понимаются клиентом и сервером. Если не знаешь протокола общения, то и не лезь
blopp
60 — 21.05.13 — 17:33
(56)
Ну типа подумать головой и отработать редирект, не?
artyom_astt
61 — 21.05.13 — 18:31
Спасибо всем кто попытался помочь, в особенности Sttt !!!!
Всё заработало благодаря тулзе fiddler
oleg_km
62 — 21.05.13 — 22:10
(61) В следующий раз прямо с нее и начинай
Статья основана на запросе клиента:
выгрузка из 1С на сайт после сбоя происходит с ошибкой — ранее работала корректно. Выдает вот такую штуковину
Лог:
Выгружено товаров: 200
Выгружено картинок: 254
Выгружено предложений: 186
Выгружено документов Ремонт: 355
Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции ‘admin/exchange/auto/?type=catalog&mode=file&filename=import_files/44/446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg’: Ошибка работы с Интернет: неверный формат ответа шлюзу (502). <html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx-reuseport/1.11.10</center>
</body>
</html>
: Ошибка работы с Интернет: неверный формат ответа шлюзу (502)
Произошла ошибка: . По причине:
Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersUSR1CV82AppDataLocalTemp1cbitriximport_files44446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg.2).
Обмен не выполнен
Ответ сервера:
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx-reuseport/1.11.10</center>
</body>
</html>
Выгрузка товаров завершена с ошибками!!!
Техническая информация:
Выгружено товаров: 200
Выгружено картинок: 254
Выгружено предложений: 186
Выгружено документов Ремонт: 355
{Обработка.ОбменССайтом.МодульОбъекта(326)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции ‘admin/exchange/auto/?type=catalog&mode=file&filename=import_files/44/446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg’: Ошибка работы с Интернет: неверный формат ответа шлюзу (502). <html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx-reuseport/1.11.10</center>
</body>
</html>
: Ошибка работы с Интернет: неверный формат ответа шлюзу (502)
Произошла ошибка: . По причине:
Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersUSR1CV82AppDataLocalTemp1cbitriximport_files44446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg.2).
Обмен не выполнен
Ответ сервера:
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx-reuseport/1.11.10</center>
</body>
</html>
Просьба подсказать, что тут может быть?
Комментарий разработчиков на UMI.CMS А25 по настройке корректной выгрузки из 1С и исправлению ошибок:
502 ошибка возникает в момент, когда сервер не справляется с нагрузкой.
В вашем случае очень похоже, что картинка 446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg является причиной данной проблемы. Возможно, что её размер превышает допустимые сервером нормы. Или же из-за её размера время загрузки увеличивается настолько, что сервер обрубает процесс.
Первая рекомендация — проверить саму картинку и уменьшить её.
Вторая рекомендация (если это не получится) — получить информацию о причинах сбоя у хостера. У него должны быть логи относительно этой ошибки и, возможно, там будет ответ.
357273277{«time» : «», «endtime» : «», «source» : «test source», «name» : «test name», «device» : 0, «data» : «test data»}
357273277 — вот это левый мусор.
357273277 — вот это левый мусор — «BOM»
«Текстовый файл сохраняемый как UTF-8 с сигнатурой BOM в начале имеет 3 байта с значениями: EF, BB, BF(Скрин варшарка во вложении). Сигнатура BOM — метка порядка байтов (Byte Order Mark, BOM). Часто, BOM называют сигнатурой (соответственно, UTF-8 и UTF-8 with Signature). Признак BOM определяет, является ли файл закодированным в UTF-8. Не все программы могут корректно работать с файлами с сигнатурой BOM.»
При создании события из 1С, ваша обработка работает, если версия платформы 8.1 (Создается UTF-8 без BOM). У меня версия платформы 8.3 , в ней создается текстовый файл сохраняемый как UTF-8 с BOM, что в итоге вело к моей ошибке(лишний символ при формировании пост запроса).
Проблему решил используя код, приведенный ниже:
// Как записать файл в кодировке UTF-8 без BOM
функция ЗаписатьФайлВформате_UTF8_без_BOM(текст,полноеИмяФайла)
// записываем в файл с символами BOM в начале файле
ТекстовыйФайлUTF8_Bom = Новый ТекстовыйДокумент();
ТекстовыйФайлUTF8_Bom.ДобавитьСтроку(текст);
ТекстовыйФайлUTF8_Bom.Записать(полноеИмяФайла,»UTF-8″);
// открываем файл и считываем символы после символов BOM
Данные = Новый ДвоичныеДанные(полноеИмяФайла);
Строка64=Base64Строка(Данные);
Строка64=Прав(Строка64,СтрДлина(Строка64)-4);
ДанныеНаЗапись=Base64Значение(Строка64);
ДанныеНаЗапись.Записать(полноеИмяФайла); // записываем
КонецФункции
Всем спасибо за помощь.
Я попробовал разбить обмен на более мелкие группы, менее 5000 товаров уходит. 10000 не уходит, а тем более наши 50000
текст ошибки:
Выгружено товаров: 50 723
Выгружено картинок: 23 071
Выгружено предложений: 50 723
Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции ‘cml1c/3d6f967a-36e5-4d92-847b-d5f8acb952a9/?type=catalog&mode=file&filename=v8_5DB1_24c8.zip’: Ошибка работы с Интернет: неверный формат ответа шлюзу (502). <html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.10.1</center>
</body>
</html>
: Ошибка работы с Интернет: неверный формат ответа шлюзу (502)
Произошла ошибка: . По причине:
Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersШкляева ЕвгенияAppDataLocalTemp22v8_5DB1_24c8.zip.1).
Обмен не выполнен
Ответ сервера:
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.10.1</center>
</body>
</html>
Выгрузка товаров завершена с ошибками!!!
Выгружено заказов: 1 188
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Заказы из 1С на сайте игнорируются
Orders from 1C are ignored
Обмен заказами успешно завершен
Техническая информация:
Выгружено товаров: 50 723
Выгружено картинок: 23 071
Выгружено предложений: 50 723
{Обработка.ОбменССайтом.МодульОбъекта(322)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции ‘cml1c/3d6f967a-36e5-4d92-847b-d5f8acb952a9/?type=catalog&mode=file&filename=v8_5DB1_24c8.zip’: Ошибка работы с Интернет: неверный формат ответа шлюзу (502). <html>
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.10.1</center>
</body>
</html>
: Ошибка работы с Интернет: неверный формат ответа шлюзу (502)
Произошла ошибка: . По причине:
Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersШкляева ЕвгенияAppDataLocalTemp22v8_5DB1_24c8.zip.1).
Обмен не выполнен
Ответ сервера:
<head><title>502 Bad Gateway</title></head>
<body bgcolor=»white»>
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.10.1</center>
</body>
</html>
Выгрузка товаров завершена с ошибками!!!
Выгружено заказов: 1 188
Получен расширенный статус успешного завершения сеанса
Ответ сервера:
Заказы из 1С на сайте игнорируются
Orders from 1C are ignored
Обмен заказами успешно завершен
Содержание:
1. Об ошибке при выполнении файловой операции
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
1. Об ошибке при выполнении файловой операции
Приветствую, коллеги! В данной статье будет описана ошибка «Ошибка при выполнении файловой операции», и подробно рассмотрены способы ее устранения.
Когда происходит обновление конфигураций в 1С 8, по завершении обновления, часто появляется ошибка, которая гласит «Ошибка при выполнении файловой операции – файл не содержит доступных обновлений».
2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3
Рассмотрим методы, при помощи которых, можно устранить ошибку при выполнении файловой операции в 1С.
Итак, первый способ – это попробовать сделать обновление при помощи файлов по обновлению вида «релиз 1с*.cfu». Если это не помогло, то можно попробовать обновить систему при помощи общего файла вида «полный релиз 1С*.cf».
Вторым способом будет проверка на соответствие общей версии системы 1С с минимальными требованиями версии конфигурации 1С, которую обновляем.
Третий способ устранения ошибки при выполнении файловой операции в 1С – более сложный, но действенный. Необходимо открыть в конфигурацию от поставщика в режиме Конфигуратора. Если ошибка всё так же появляется, то необходимо удалить конфигурацию поставщика, а затем опять установить. По сути, в данном варианте «вытягивается» последняя, рабочая версия данной конфигурации и обновление будет завершено без ошибок.
Рассмотрим подробнее третий способ. Пусть у нас уже есть некоторая конфигурация 1С KORG 1-ой версии, которая работает, но нужно поставить 2-ю версию, то есть обновить версию конфигурации 1С 8.3. Когда происходит обновление, всплывает ошибка «Ошибка при выполнении файловой конфигурации». Порядок действий в этом случае:
1. скачать релиз 1С KORG с версией 1*.cf;
2. копируем нашу базу данных;
3. в конфигураторе, который соответствует обновляемой базе, переходим по пути: «Конфигурация → Поддержка → Настройки поддержки → Снять с поддержки». В случае, если кнопка для снятия с поддержки недоступна, необходимо сперва включить возможные изменения. После этого нужно дать согласие, если система 1С будет уточнять что-либо или подтверждать действия;
4. Далее переходим по следующему пути: «Конфигурация → Сравнить и объединить с конфигурацией из файла…». Здесь необходимо выбрать файл «полный релиз 1С KORG версии 1*.cf»;
5. Далее перед нами появится окно, в котором система 1С будет запрашивать постановление на учёт для поддержки, на это уведомление обязательно отвечаем согласием;
6. В случае, если наша конфигурация является типовой, откроется окно по сравнению конфигураций. В нем обязательно убираем все «галочки». Далее последует объединение конфигураций;
7. В новом окне кликаем на «Сохранить изменения»;
8. Ещё раз сохраняем базу данных;
9. Обновляем конфигурацию 1С стандартным способом.
Если всё сделать, согласно инструкции выше, то в вашей конфигурации 1С 8.3 «Ошибка при выполнении файловой операции» больше не возникнет. Спасибо за внимание!
Специалист компании «Кодерлайн»
Айдар Фархутдинов
Здравствуйте. Продолжаю свои изыскания. В Помощнике — есть действительно 2 варианта —
HTTPСоединение (HTTPConnection)
ОтправитьДляОбработки (Post)
Вариант синтаксиса: По HTTP-запросуСинтаксис:
ОтправитьДляОбработки(<HTTPЗ апрос>, <ИмяВыходногоФайла>)
Параметры:<HTTPЗапрос> (обязательный)
Тип: HTTPЗапрос.
HTTP-запрос.
<ИмяВыходногоФайла> (необязательный)Тип: Строка.
Имя файла, в который следует записать тело ответа.
Если не задан, то тело ответа может быть получено из объекта HTTPОтвет.
Описание варианта метода:Отправляет ресурс по HTTP-запросу.
Вариант синтаксиса: По файлу-источнику и адресу ресурсаСинтаксис:
ОтправитьДляОбработки(<Ист очник>, <АдресРесурса>, <ИмяВыходногоФайла>, <Заголовки>)
Параметры:<Источник> (обязательный)
Тип: Строка.
Адрес файла-источника.
<АдресРесурса> (обязательный)Тип: Строка.
Адрес ресурса на сервере, в который посылаются данные из источника.
<ИмяВыходногоФайла> (обязательный)Тип: Строка.
Имя выходного файла, в который записываются полученные с сервера данные.
<Заголовки> (необязательный)Тип: Соответствие; Строка.
Позволяет добавлять к запросу на сервер заголовки в виде строки, содержащей текстовые пары «Заголовок» — «Значение», разделяемые комбинацией символов ВК + ПС, или в виде cоответствия «Заголовок» — «Значение заголовка».Я взяла пример с рассматриваемой статьи —
Загрузка файлов (изображений, документов и т.п.) на веб-сервер методом POST.
Зачастую возникает необходимость загрузки файлов на веб-сервер. Это может быть, например, изображение к статье на сайте, или фотография для альбома, или архив для файлообменника. Ранее мы рассматривали передачу методом POST параметров или просто файлов. Таким же образом можно и передавать двоичные файлы. Но как быть, если файлы необходимо отправлять вместе с параметрами? Для возможности отправки файлов в этом случае используется HTTP заголовок ContentType:multipart/form-data. Следует заметить, что обычно таким способом передаются файлы через веб-браузеры. Т.е. когда на сайте вы выбираете файл и нажимаете кнопку «Загрузить», то файл передается способом описанным ниже. При таком способе сам файл также задается как переменная, т.е., например, файл передается через параметр file или image. Однако, мы не можем просто передать file=<Двоичные_Данные>. А вот как все таки передать файл мы и рассмотрим ниже.Для возможности вместе с параметрами передавать и двоичные данные (файлы) необходимо сформировать HTTP заголовок Content-Type следующим образом:
Content-Type: multipart/form-data, boundary=<уникальные_данные>
где <уникальные_данные> — это любой набор цифр и/или символов, который будет служить для отделения значений друг от друга. Значение boundary должно быть уникальным в пределах пересылаемой информации, т.е. таких символов не должно встречаться в пересылаемых файлах и переменных.Bounday можно сформировать, например, таким образом
Код 1C v 8.х
boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), «-«, «»);Все данные отделяются друг от друга разделителем boundary. Начинать разделитель нужно с «—«:
Код
—<boundary>
Content-Disposition: form-data; name=»<имя_переменной>»
<пустая_строка>
<значение_переменной>
Для отправки файла необходимо еще добавить тип и имя файла:—<boundary>
Content-Disposition: form-data; name=»<имя_переменной>»; filename=»<имя_файла>»
Content-Type: <тип_файла> (например image/jpeg или text/plain)
<пустая_строка>
<данные_файла>В конце данных нужно закрыть разделитель, добавили в конце разделителя «—«, т.е. вид будет «—<boundary>—«.
Итак, например, нам нужно передать на веб-сервер текстовый файл через параметр «text», его описание через параметр «desc» и id пользователя через параметр «uid», для которого будет загружен наш файл.
Предположим, что файл содержит следующий текст:
Мороз и солнце; день чудесный!
Еще ты дремлешь, друг прелестный —
Пора, красавица, проснись:
Открой сомкнуты негой взоры
Навстречу северной Авроры,
Звездою севера явись!
Описание должно содержать «Стих А.С. Пушкина», а id пользователя равно «0123456». Тогда файл должен быть сформирован следующим образом (для упрощения предположим, что bounday мы уже сформировали и он равен «ccf8111910»)
Код
—ccf8111910
Content-Disposition: form-data; name=»uid»0123456
—ccf8111910
Content-Disposition: form-data; name=»desc»Стих А.С. Пушкина
—ccf8111910
Content-Disposition: form-data; name=»text»; filename=»stih.txt»
Content-Type: text/plainМороз и солнце; день чудесный!
Еще ты дремлешь, друг прелестный —
Пора, красавица, проснись:
Открой сомкнуты негой взоры
Навстречу северной Авроры,
Звездою севера явись!
—ccf8111910—А теперь перейдем непосредственно к 1С. Пусть у нас будет форма с реквизитами «Пользователь», «Описание» и «ИмяФайла». Реализуем отправку данных, описанным выше способом
Код 1C v 8.х
// подготовим файл с данными для отправки
имяФайлаОтправки = ПолучитьимяВременногоФайл а(«txt»);
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), «-«, «»);ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтпр� �вки);
// параметр «uid»
ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Disposition: form-data; name=»»uid»»»);
ЗаписьТекста.ЗаписатьСтро� �у(«»);
ЗаписьТекста.ЗаписатьСтро� �у(Пользователь);// параметр «desc»
ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Disposition: form-data; name=»»desc»»»);
ЗаписьТекста.ЗаписатьСтро� �у(«»);
ЗаписьТекста.ЗаписатьСтро� �у(Описание);// параметр «text»
ФайлДляПередачи = Новый ТекстовыйДокумент;
ФайлДляПередачи.Прочитать( имяФайла);ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Disposition: form-data; name=»»text»»; filename=»»stih.txt»»»);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Type: text/plain»);
ЗаписьТекста.ЗаписатьСтро� �у(«»);
ЗаписьТекста.Записать(Файл ДляПередачи.ПолучитьТекст( ));
ЗаписьТекста.ЗаписатьСтро� �у(«»);// закроем разделитель
ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary+»—«);ЗаписьТекста.Закрыть();
ФайлОтправки = Новый Файл(имяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Разм� �р());// передадим данные на сервер
Заголовки = Новый Соответствие();
Заголовки.Вставить(«Content-Type», «multipart/form-data, boundary=»+boundary);
Заголовки.Вставить(«Content-Lenght», РазмерФайлаОтправки);Соединение = Новый HTTPСоединение(«www.mysite.com»);
Соединение.ОтправитьДляОб� �аботки(имяФайлОтправки, «postFile.php», имяВыходногоФайла, Заголовки);Естественно — немного переделав. Вот что получилось.
HTTPСервер = «сайт_куда_отправляю.ru»;
ИМяФайла = «C:Каталогфайл.csv»;
ФайлРезультат = «C:result.xml»;Попытка
Соединение = Новый HTTPСоединение(HTTPСервер,80,»По льзователь»,»Пароль»,,Истина );Исключение
Сообщить(ОписаниеОшибки());
Соединение = Неопределено;
КонецПопытки;Если Соединение = Неопределено Тогда
Сообщить(«Не удалось подключиться к серверу, указанному в настройке обмена! Обработка прервана!»);КонецЕсли;
имяФайлаОтправки = ПолучитьимяВременногоФайл а(«txt»);
Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), «-«, «»);ЗаписьТекста = Новый ЗаписьТекста(имяФайлаОтпр� �вки);
// параметр «uid»
ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Disposition: form-data; name=»»uid»»»);
ЗаписьТекста.ЗаписатьСтро� �у(«»);
ЗаписьТекста.ЗаписатьСтро� �у(«Пользователь»);// параметр «desc»
ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Disposition: form-data; name=»»desc»»»);
ЗаписьТекста.ЗаписатьСтро� �у(«»);
ЗаписьТекста.ЗаписатьСтро� �у(«Описание»);// параметр «text»
ФайлДляПередачи = Новый ТекстовыйДокумент;
ФайлДляПередачи.Прочитать( имяФайла);ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Disposition: form-data; name=»»csv»»; filename=»»файл.csv»»»);
ЗаписьТекста.ЗаписатьСтро� �у(«Content-Type: text/plain»);
ЗаписьТекста.ЗаписатьСтро� �у(«»);
ЗаписьТекста.Записать(Файл ДляПередачи.ПолучитьТекст( ));
ЗаписьТекста.ЗаписатьСтро� �у(«»);// закроем разделитель
ЗаписьТекста.ЗаписатьСтро� �у(«—«+boundary+»—«);ЗаписьТекста.Закрыть();
ФайлОтправки = Новый Файл(имяФайлаОтправки);
РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Разм� �р());// передадим данные на сервер
Заголовки = Новый Соответствие();
Заголовки.Вставить(«Content-Type», «multipart/form-data, boundary=»+boundary);
Заголовки.Вставить(«Content-Lenght», РазмерФайлаОтправки);Попытка
Соединение.ОтправитьДляОб� �аботки(ИмяФайлаОтправки,Ф� �йлРезультат);
Исключение
Сообщить(ОписаниеОшибки());
КонецПопыткиДает ошибку
{Форма.Форма.Форма(96)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Неправильный путь к файлу. В чем подвох?
|
Пользователь 369469 Заглянувший Сообщений: 1 |
#1 11.08.2015 15:34:39 Через СОАП создаю Счет и вызываю его процедуры, в процедуре ВиртуальныйРаскрой() есть http-запрос для проверки сформированного xml-файла на сервере. Когда процедура вызывается с клиента 1с — все работает, а вот когда из СОАП — выдает исключение: Документ.Счет.МодульОбъекта(22411)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка доступа к файлу ‘192.168.4.196:8082’: Ошибка работы с Интернет: доступ запрещен (403). При чем никаках ограничений на сервер не наложено, скрипт по адресу в свободном доступе. В чем может быть причина? |

