Добрый день!
Необходимо получить данные с веб-сервера с помощью POST-запроса.
Сначала запрос был выполнен следующим образом:

```1c
    Процедура ПолучитьДанныеССервера()
    Сервер = "АдресСервера";
    Пользователь = СтруктураПараметров.Логин;
    Пароль = СтруктураПараметров.Пароль;

    Попытка
    HTTPСоединение = Новый HTTPСоединение(Сервер,, Пользователь, Пароль);
    Исключение
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нет подключения к серверу" + Сервер);
    Отказ = Истина;
    КонецПопытки;
    Если Не Отказ тогда

    ИмяВыходногоФайла = ПолучитьимяВременногоФайла("xml");

    api = "api/apicrm/";
    method = "phonenumber/";
    phone = СтруктураПараметров.НомерТелефона;

    ПараметрыЗапроса = api + method + phone;

    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("Content-Type", "application/x-www-form-urlencoded");

    HTTPЗапрос = Новый HTTPЗапрос(ПараметрыЗапроса, ЗаголовокHTTP);
    HTTPЗапрос.УстановитьТелоИзСтроки("&login=" + Пользователь + "&password=" + Пароль, КодировкаТекста.UTF8);
    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(HTTPЗапрос, ИмяВыходногоФайла);

    КонецЕсли;

    КонецПроцедуры
```

Для пользователей, у которых пароль состоял из цифр и букв, процедура отрабатывала без ошибок (возвращается xml с данными) Но для пользователя, в пароле которого содержится символ "+", возвращается html. Администраторы сайта посоветовали использовать "multipart/form-data"
Вот текст новой процедуры:

```1c
    Процедура ПолучитьДанныеССервера()
    Сервер = "АдресСервера";
    Пользователь = СтруктураПараметров.Логин;
    Пароль = СтруктураПараметров.Пароль;

    Попытка
    HTTPСоединение = Новый HTTPСоединение(Сервер,, Пользователь, Пароль);
    Исключение
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Нет подключения к серверу" + Сервер);
    Отказ = Истина;
    КонецПопытки;
    Если Не Отказ тогда

    ИмяВыходногоФайла = ПолучитьимяВременногоФайла("xml");

    api = "api/apicrm/";
    method = "phonenumber/";
    phone = СтруктураПараметров.НомерТелефона;

    ПараметрыЗапроса = api + method + phone;

    // подготовим файл с данными для отправки
    ФайлЗапроса = ПолучитьимяВременногоФайла("txt");
    Boundary = СтрЗаменить(Строка(Новый УникальныйИдентификатор()), "-", ");

    ЗаписьТекста = Новый ЗаписьТекста(ФайлЗапроса, КодировкаТекста.UTF8);
    // параметр "login"
    ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
    ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name="login"");
    ЗаписьТекста.ЗаписатьСтроку(");
    ЗаписьТекста.ЗаписатьСтроку(Пользователь);
    // параметр "password"
    ЗаписьТекста.ЗаписатьСтроку("--"+boundary);
    ЗаписьТекста.ЗаписатьСтроку("Content-Disposition: form-data; name="password"");
    ЗаписьТекста.ЗаписатьСтроку(");
    ЗаписьТекста.ЗаписатьСтроку(Пароль);

    ЗаписьТекста.ЗаписатьСтроку("--"+boundary+"--");
    ЗаписьТекста.Закрыть();

    ФайлОтправки = Новый Файл(ФайлЗапроса);
    РазмерФайлаОтправки = XMLСтрока(ФайлОтправки.Размер());

    // передадим данные на сервер
    ЗаголовокHTTP = Новый Соответствие();
    ЗаголовокHTTP.Вставить("Content-Type", "multipart/form-data, boundary="+boundary);
    ЗаголовокHTTP.Вставить("Content-Lenght", РазмерФайлаОтправки);

    HTTPОтвет = HTTPСоединение.ОтправитьДляОбработки(ФайлЗапроса, ПараметрыЗапроса, ИмяВыходногоФайла, ЗаголовокHTTP);

    КонецЕсли;

    КонецПроцедуры
```

Но в итоге возвращается xml с текстом ошибки "При получении данных произошла ошибка: 'Ошибка при передаче параметров' по причине: 'Отсутствует обязятельный параметр login', описание ошибки: 'Запрос не выполнен из-за ошибки при передаче параметров.'"
Подскажите, пож-та, как правильно передать логин и пароль?
---
для логина и пароля в первом варианте используй КодироватьСтроку(<Строка>, <СпособКодированияСтроки>, <КодировкаСтроки>)
---
для логина и пароля в первом варианте используй КодироватьСтроку(<Строка>, <СпособКодированияСтроки>, <КодировкаСтроки>)
---
поправила строку в первом варианте
HTTPЗапрос.УстановитьТелоИзСтроки("&login=" + КодироватьСтроку(Пользователь,СпособКодированияСтроки.КодировкаURL) + "&password=" + КодироватьСтроку(Пароль,СпособКодированияСтроки.КодировкаURL), КодировкаТекста.UTF8);

в итоге возвращается xml с ошибкой
Ошибка разбора XML: - [49,8]
Фатальная ошибка:
Opening and ending tag mismatch: link line 19 and head
SystemId: file://C:/Users/Администратор/AppData/Local/Temp/v8_882D_3d.xml
---
ошибка в файле или на этапе разбора xml?
если на этапе разбора, возможно приходит не xml
---
ошибка на этапе разбора
приходит xml, но она даже в браузере открывается с ошибкой
This page contains the following errors:
error on line 49 at column 8: Opening and ending tag mismatch: link line 0 and head
Below is a rendering of the page up to the first error.
---
выложи файл сюда
---
прикрепила файл
---
это html
---
Извините, не верно сформулировала вопрос. Выдается не ошибка, а возвращается файл с текстом ошибки.
Т.е. в первом варианте получаю xml, а в нем в ветке "response" содержался текст ошибки об отсутствии логина.
После применения КодироватьСтроку(), возвращается html, и это способ, к сожалению, не помог.
---
перед первый параметром убрать &.
Должно быть "login=0&password=0"
---
Спасибо. Все получилось!