я решал
ща поищуВ общем - проблема была точно так же с авторизацией.
Причем, проблема, если мне память не изменяет, была в том, что конкретно в объекте ХТТП из в7плюс.длл криворукие программисты криворуко нах#рачили и оно тупо не работает (поддержка авторизации).
В результате, брался сниффер в руки, курилось взаимодействие через веб-морду...
Итоговое решение такое: через объект WinHttp.WinHttpRequest.5.1 делается ПОСТ-запрос с данными аутентификации, после чего у этого объекта появляется хидер с каким-то хэшем, идентифицирующим эту авторизованную сессию. Т.е. пока объект ВинХТТП жив - авторизация есть.
Функция УстановитьСоединение(ПХПСкрипт = "1c_exchange.php")
Если ПустаяСтрока(Адрес) + ПустаяСтрока(Пользователь) + ПустаяСтрока(Пароль) > 0 Тогда
Сообщить("Не заданы параметры соединения с сайтом!");
Возврат 0;
КонецЕсли;
Если Прав(Адрес, 1) <> "/" Тогда
Адрес = Адрес + "/";
КонецЕсли;
ЗапросАвторизации = "?login=yes&type=catalog&mode=checkauth";
ДанныеАвторизации = "AUTH_FORM=Y&TYPE=AUTH&USER_LOGIN=" + Пользователь + "&USER_PASSWORD=" + Пароль;
ХТТП = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
ХТТП.Open("POST", Адрес + ПХПСкрипт + ЗапросАвторизации, 0);
ХТТП.SetRequestHeader("Content-type", "application/x-www-form-urlencoded");
ХТТП.SetRequestHeader("Content-length", "" + СтрДлина(ДанныеАвторизации));
ХТТП.Send(ДанныеАвторизации);
Ответ = ХТТП.ResponseText;
Если РезультатПодключения(Ответ) <> 1 Тогда
Сообщение("Ошибка авторизации:", "!");
Сообщение(Ответ, " ");
Возврат 0;
КонецЕсли;
Возврат ХТТП;
КонецФункции // УстановитьСоединение
используется примерно так:
ХТТП = УстановитьСоединение();
Если ХТТП = 0 Тогда
Возврат 0;
КонецЕсли;
ЗапросИнит = "?type=catalog&mode=init";
ЗапросОтправкаФайла = "?type=catalog&mode=file&filename=";
ЗапросИмпортФайла = "?type=catalog&mode=import&filename=";
ХТТП.Open("GET", Адрес + ПХПСкрипт + ЗапросИнит, 0);
ХТТП.Send();
Ответ = ХТТП.ResponseText;
Если РезультатПодключения(Ответ) = -1 Тогда
Сообщение("Ошибка инициализации:", "!");
Сообщение(Ответ, " ");
Возврат 0;
КонецЕсли;
//Если Нрег(СтрПолучитьСтроку(Ответ, 1)) = "zip=yes" Тогда
oADOStream = СоздатьОбъект("ADODB.Stream");
oADOStream.Type = 1; //тип данных - Binary
oADOStream.Open();
oADOStream.LoadFromFile(ПолноеИмяФайла);
ХТТП.Open("POST", Адрес + ПХПСкрипт + ЗапросОтправкаФайла + ИмяФайлаОтправки, 0);
ХТТП.SetRequestHeader("Content-type", "application/octet-stream");
ХТТП.SetRequestHeader("Content-length", "" + oADOStream.Size);
ХТТП.Send(oADOStream);
Ответ = ХТТП.ResponseText;
Если РезультатПодключения(Ответ) = -1 Тогда
Сообщение("Ошибка отправки файла:");
Сообщение(Ответ, " ");
КонецЕсли;
Ответ = "progress";
Пока Ответ = "progress" Цикл
Для тик = 1 По 3 Цикл
ТекВремя = ТекущееВремя();
Пока ТекВремя = ТекущееВремя() Цикл
КонецЦикла;
КонецЦикла;
Попытка
ХТТП.OPEN("GET", Адрес + ПХПСкрипт + ЗапросИмпортФайла + ИмяФайлаНаСервере, 0);
ХТТП.Send();
Исключение
Продолжить;
КонецПопытки;
Ответ = ХТТП.ResponseText;
Если РезультатПодключения(Ответ) <> -1 Тогда
Сообщение(СтрПолучитьСтроку(Ответ, 2));
Ответ = Нрег(СтрПолучитьСтроку(Ответ, 1));
КонецЕсли;
КонецЦикла;
Если Ответ <> "success" Тогда
Сообщение("Файлы отправлены на сервер, но не обработаны");
Возврат 0;
КонецЕсли;
Там, где выделено - можно проверить ответ сервера на разрешенность загрузки файлов в зип-архивах.
В моем случае, сайт упорно возвращал запрет зипов, но при это прекрасно их сжирал.