Привет Всем
Создал тестовую конфигурацию на платформе 8.3.10 , при помощи Apachi опубликовал информационную базу, база публикации веб сервера на диске "D:\web", имя публикации "post_test", если открывать в браузере то открывается по адресу "http://localhost/post_test/ru_RU/" пытаюсь отправить простой текстовый файл используя httpсоединение , я так понимаю если отправлять файл с диска "C:\temp\отправка.txt" через httpсоединение то он по логике наверное должен сохранится в "D:\web\отправка.txt", ведь так? вот код обработки:

```1c
    &НаКлиенте
    Процедура ХТТП()
    СерверПриемник = "localhost/post_test";
    ИмяФайлаДляЗагрузки = "C:\отправка.txt";
    ДанныеЗапроса = Новый Соответствие;
    ДанныеЗапроса.Вставить("Content-Type", "text/plain;charset=UTF-8");
    ХТТПЗапросПост(СерверПриемник,ИмяФайлаДляЗагрузки,ДанныеЗапроса);
    КонецПроцедуры

    &НаКлиенте
    Функция ХТТПЗапросПост(АдресСайта,АдресРесурса,ДанныеЗапроса)
    ТекстДляОтправки = ";
    Boundary = Строка(Новый УникальныйИдентификатор());

    НомерФайла = 0;
    Для Каждого Элемент Из ДанныеЗапроса Цикл
    ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
    Если ТипЗнч(Элемент.Значение) = Тип("ДвоичныеДанные") Тогда
    НомерФайла = НомерФайла + 1;
    ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name="file"+НомерФайла+""; filename="" + Элемент.Ключ + "" + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + "Content-Type: application/x-octet-stream" + Символы.ПС;
    Данные = Base64Строка(Элемент.Значение);
    Иначе
    ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""+Элемент.Ключ+"" + Символы.ПС;
    Данные = Строка(Элемент.Значение);
    КонецЕсли;
    ТекстДляОтправки = ТекстДляОтправки + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + Данные + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
    КонецЦикла;
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
    Заголовки.Вставить("Content-Lenght", XMLСтрока(СтрДлина(ТекстДляОтправки)));
    Запрос = Новый HTTPЗапрос(АдресРесурса,Заголовки);
    Запрос.УстановитьТелоИзСтроки(ТекстДляОтправки, КодировкаТекста.ANSI);

    Попытка
    Соединение = Новый HTTPСоединение(АдресСайта);
    Возврат Соединение.ОтправитьДляОбработки(Запрос);
    Исключение
    Возврат Неопределено;
    КонецПопытки;
    КонецФункции
```

код отрабатывает без ошибок но никуда этот файл не копируется, как мне его правильно скопировать?
---
Можно так:

```1c
    ///Сервер
    Функция ШаблонURL1Метод1(Запрос)
    Ответ = Новый HTTPСервисОтвет(200);
    ТекстФайла = Запрос.ПараметрыURL.Получить("Файл");
    ДвоичныеДанные = ПолучитьДвоичныеДанныеИзBase64Строки(ТекстФайла);
    ИмяФайла = ПолучитьИмяВременногоФайла(".txt");
    ДвоичныеДанные.Записать(ИмяФайла);
    Ответ.УстановитьТелоИзСтроки("Успешно сохранено на: " + ИмяФайла );
    Возврат Ответ;
    КонецФункции

    ///Второй ПК
    &НаКлиенте
    Процедура ХТТП()
    СерверПриемник = "localhost/post_test";
    ИмяФайлаДляЗагрузки = "C:\отправка.txt";
    ТекстФайла = ПолучитьBase64СтрокуИзДвоичныхДанных(новый ДвоичныеДанные(ИмяФайлаДляЗагрузки));

    Запрос = Новый HTTPЗапрос(АдресРесурса,Заголовки);
    Запрос.УстановитьТелоИзСтроки(ТекстФайла, КодировкаТекста.ANSI);

    Соединение = Новый HTTPСоединение(АдресСайта);
    Возврат Сообщить(Соединение.ОтправитьДляОбработки(Запрос));

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

///Это если очень вкратце )
---
Нет. Отправить-то вы его отправили (особенно в попытке). А приемник-то в курсе, что ему что-то отправляют?
---
Привет Всем
Создал тестовую конфигурацию на платформе 8.3.10 , при помощи Apachi опубликовал информационную базу, база публикации веб сервера на диске "D:\web", имя публикации "post_test", если открывать в браузере то открывается по адресу "http://localhost/post_test/ru_RU/" пытаюсь отправить простой текстовый файл используя httpсоединение , я так понимаю если отправлять файл с диска "C:\temp\отправка.txt" через httpсоединение то он по логике наверное должен сохранится в "D:\web\отправка.txt", ведь так? вот код обработки:

```1c
    &НаКлиенте
    Процедура ХТТП()
    СерверПриемник = "localhost/post_test";
    ИмяФайлаДляЗагрузки = "C:\отправка.txt";
    ДанныеЗапроса = Новый Соответствие;
    ДанныеЗапроса.Вставить("Content-Type", "text/plain;charset=UTF-8");
    ХТТПЗапросПост(СерверПриемник,ИмяФайлаДляЗагрузки,ДанныеЗапроса);
    КонецПроцедуры

    &НаКлиенте
    Функция ХТТПЗапросПост(АдресСайта,АдресРесурса,ДанныеЗапроса)
    ТекстДляОтправки = ";
    Boundary = Строка(Новый УникальныйИдентификатор());

    НомерФайла = 0;
    Для Каждого Элемент Из ДанныеЗапроса Цикл
    ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
    Если ТипЗнч(Элемент.Значение) = Тип("ДвоичныеДанные") Тогда
    НомерФайла = НомерФайла + 1;
    ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name="file"+НомерФайла+""; filename="" + Элемент.Ключ + "" + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + "Content-Type: application/x-octet-stream" + Символы.ПС;
    Данные = Base64Строка(Элемент.Значение);
    Иначе
    ТекстДляОтправки = ТекстДляОтправки + "Content-Disposition: form-data; name=""+Элемент.Ключ+"" + Символы.ПС;
    Данные = Строка(Элемент.Значение);
    КонецЕсли;
    ТекстДляОтправки = ТекстДляОтправки + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + Данные + Символы.ПС;
    ТекстДляОтправки = ТекстДляОтправки + "--"+Boundary + Символы.ПС;
    КонецЦикла;
    Заголовки = Новый Соответствие();
    Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
    Заголовки.Вставить("Content-Lenght", XMLСтрока(СтрДлина(ТекстДляОтправки)));
    Запрос = Новый HTTPЗапрос(АдресРесурса,Заголовки);
    Запрос.УстановитьТелоИзСтроки(ТекстДляОтправки, КодировкаТекста.ANSI);

    Попытка
    Соединение = Новый HTTPСоединение(АдресСайта);
    Возврат Соединение.ОтправитьДляОбработки(Запрос);
    Исключение
    Возврат Неопределено;
    КонецПопытки;
    КонецФункции
```

код отрабатывает без ошибок но никуда этот файл не копируется, как мне его правильно скопировать?

(2) ок, а как тогда доработать код? можно как то попроще это сделать?
---
а как тогда доработать код? можно как то попроще это сделать? Да я даже и не читал, если честно.
Да и не собирался если честно, после того, как увидел вот это: то он по логике наверное должен сохранится в "D:\web\отправка.txt", ведь так?

Кстати, попробуйте вместо адреса вашей публикации использовать, например... ну не знаю... yandex.ru что ли. Сработает?
---
Куда пытаетесь отправить файл ? С одной базы на другую ?
---
нет , предположим есть комп2 с выделенным ip и там развернута база с веб сервером, я хочу передать со своего комп1 файл на комп2 по httpсоединению , у меня уже есть рабочая схема для обмена файлами через webdav.yandex.ru. там все работает , а тут простой апачи сервер на комп2 нужно чтобы он принял этот файл, это можно реализовать?
---
Ну так отправляйте на сервер апача его методами, причем тут опубликованная база 1С?
---
да можно конечно скриптом отправлять напрямую это понятно, а если мне нужно будет что бы сформированный запросом хмл файл в 1с с данными отправить на этот веб сервер отправить тогда как?
---
Тогда отправляй в 1С, а не на веб-сервер. Вот только сначала научи 1С обрабатывать свои посылки.
---
Вы имеете ввиду механизм HTTP сервисов 1с?
---
Ааааалллилуйя!
---
да я думал об этом, это можно сделать, проблема в том что конфа развернутаю на комп2 с сервером апачи обрабатывает конкретный файл хмл расположенный в определенном месте диска где хранится этот файл, переписать ту конфу пока нету возможности
---
да можно сказать и так, сформированный хмл файл нужно отправлять на этот веб сервер, что бы он конкретно в определенном месте диска сохранился
---
Можно так:

```1c
    ///Сервер
    Функция ШаблонURL1Метод1(Запрос)
    Ответ = Новый HTTPСервисОтвет(200);
    ТекстФайла = Запрос.ПараметрыURL.Получить("Файл");
    ДвоичныеДанные = ПолучитьДвоичныеДанныеИзBase64Строки(ТекстФайла);
    ИмяФайла = ПолучитьИмяВременногоФайла(".txt");
    ДвоичныеДанные.Записать(ИмяФайла);
    Ответ.УстановитьТелоИзСтроки("Успешно сохранено на: " + ИмяФайла );
    Возврат Ответ;
    КонецФункции

    ///Второй ПК
    &НаКлиенте
    Процедура ХТТП()
    СерверПриемник = "localhost/post_test";
    ИмяФайлаДляЗагрузки = "C:\отправка.txt";
    ТекстФайла = ПолучитьBase64СтрокуИзДвоичныхДанных(новый ДвоичныеДанные(ИмяФайлаДляЗагрузки));

    Запрос = Новый HTTPЗапрос(АдресРесурса,Заголовки);
    Запрос.УстановитьТелоИзСтроки(ТекстФайла, КодировкаТекста.ANSI);

    Соединение = Новый HTTPСоединение(АдресСайта);
    Возврат Сообщить(Соединение.ОтправитьДляОбработки(Запрос));

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

///Это если очень вкратце )
---
Спасибо помогло
---
я так понимаю если отправлять файл с диска "C:\temp\отправка.txt" через httpсоединение то он по логике наверное должен сохранится в "D:\web\отправка.txt",

Так не работает. Помимо отправки нужно организовать еще и прием и обработку. Должен быть реализован http сервис, который примет запрос, обработает входящие данные и сохранит файл по нужному пути.