Есть две базы на разных серверах, хочу записать файл на сервере на котором находится база приемник используя v83.comconnector:

```1c
    СOM1с = Новый COMObject("V83.COMConnector");
    Попытка
    ВнешняяБаза = СOM1с.Connect("Srvr="" + Сервер + "";Ref="" + НаименованиеБазы + "";Usr="" + Пользователь + "";Pwd="" + Пароль + "");
    Исключение
    Сообщить("Ошибка открытия базы!!!");
    Сообщить(ОписаниеОшибки());
    ВнешняяБаза=Неопределено;
    Возврат;
    КонецПопытки;

    Если ВнешняяБаза <> Неопределено Тогда
    ПапкаОбменаПриемника = ВнешняяБаза.Константы.хаз_ОбменКонтрагентамиПапкаОбмена.Получить();
    ИмяФайлаПриемника = ПапкаОбменаПриемника + ?(Прав(ПапкаОбменаПриемника, 1) = "\",", "\") + "Message" +
    СокрЛП(ПланыОбмена.хаз_ОбменКонтрагентами.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml";

    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
    ЗаписьХмл = Новый ЗаписьXML;
    ЗаписьХмл.УстановитьСтроку();
    ЗаписатьXML(ЗаписьХмл, ДвоичныеДанные);
    ЧтениеХмлНаСервере = ВнешняяБаза.NewObject("ЧтениеXML");
    ЧтениеХмлНаСервере.УстановитьСтроку(ЗаписьХмл.Закрыть());
    ДвоичныеДанныеНаСервере = ВнешняяБаза.ПрочитатьXML(ЧтениеХмлНаСервере);
    ДвоичныеДанныеНаСервере.Записать(ИмяФайлаПриемника);
    КонецЕсли;
```

Но проблема в том, что файл создается не на сервере с базой приемником, а на сервере с базой источником, несмотря на то, что объект двоичные данные создается в базе приемнике.
Пробовал перетащить запись файла в метод общего модуля базы приемника, и вызывать его с помощью того же V83.COMConnector, в отладке внешнего соединения базы приемника код записи выполняется но опять же файл записывается на сервере с базой источником.
---
В общем проблема была в контексте исполнения, если контекст исполнения "Внешнее соединение" файл записывается на сервере который организовал соединение, если "Сервер" тогда на сервере к которому установлено соединение. Переписал все в таком виде:
База источник:

```1c
    СOM1с = Новый COMObject("V83.COMConnector");
    Попытка
    ВнешняяБаза = СOM1с.Connect("Srvr="" + Сервер + "";Ref="" + НаименованиеБазы + "";Usr="" + Пользователь + "";Pwd="" + Пароль + "");
    Исключение
    Сообщить("Ошибка открытия базы!!!");
    Сообщить(ОписаниеОшибки());
    ВнешняяБаза=Неопределено;
    Возврат;
    КонецПопытки;

    Если ВнешняяБаза <> Неопределено Тогда
    ПапкаОбменаПриемника = ВнешняяБаза.Константы.хаз_ОбменКонтрагентамиПапкаОбмена.Получить();
    ИмяФайлаПриемника = ПапкаОбменаПриемника + ?(Прав(ПапкаОбменаПриемника, 1) = "\",", "\") + "Message" +
    СокрЛП(ПланыОбмена.хаз_ОбменКонтрагентами.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml";
    ВнешняяБаза.хаз_ОбменКонтрагентами.СохранитьФайлНаСервере(ИмяФайла, ИмяФайлаПриемника)
    КонецЕсли;
```

База приемник:
Общий модуль "хаз_ОбменКонтрагентами" с активными галочками "Сервер" и "Внешнее соединение":

```1c
    Процедура СохранитьФайлНаСервере(ИмяФайла, ИмяФайлаПриемника) Экспорт

    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
    хаз_ОбменКонтрагентамиВызовСервера.СохранитьФайл(ДвоичныеДанные, ИмяФайлаПриемника);

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

Общий модуль "хаз_ОбменКонтрагентамиВызовСервера" с активными галочками "Сервер" и "Вызов сервера":

```1c
    Процедура СохранитьФайл(ДвоичныеДанные, ИмяФайла) Экспорт
    ДвоичныеДанные.Записать(ИмяФайла);
    КонецПроцедуры
```
---
В общем проблема была в контексте исполнения, если контекст исполнения "Внешнее соединение" файл записывается на сервере который организовал соединение, если "Сервер" тогда на сервере к которому установлено соединение. Переписал все в таком виде:
База источник:

```1c
    СOM1с = Новый COMObject("V83.COMConnector");
    Попытка
    ВнешняяБаза = СOM1с.Connect("Srvr="" + Сервер + "";Ref="" + НаименованиеБазы + "";Usr="" + Пользователь + "";Pwd="" + Пароль + "");
    Исключение
    Сообщить("Ошибка открытия базы!!!");
    Сообщить(ОписаниеОшибки());
    ВнешняяБаза=Неопределено;
    Возврат;
    КонецПопытки;

    Если ВнешняяБаза <> Неопределено Тогда
    ПапкаОбменаПриемника = ВнешняяБаза.Константы.хаз_ОбменКонтрагентамиПапкаОбмена.Получить();
    ИмяФайлаПриемника = ПапкаОбменаПриемника + ?(Прав(ПапкаОбменаПриемника, 1) = "\",", "\") + "Message" +
    СокрЛП(ПланыОбмена.хаз_ОбменКонтрагентами.ЭтотУзел().Код) + "_" + СокрЛП(Ссылка.Код) + ".xml";
    ВнешняяБаза.хаз_ОбменКонтрагентами.СохранитьФайлНаСервере(ИмяФайла, ИмяФайлаПриемника)
    КонецЕсли;
```

База приемник:
Общий модуль "хаз_ОбменКонтрагентами" с активными галочками "Сервер" и "Внешнее соединение":

```1c
    Процедура СохранитьФайлНаСервере(ИмяФайла, ИмяФайлаПриемника) Экспорт

    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
    хаз_ОбменКонтрагентамиВызовСервера.СохранитьФайл(ДвоичныеДанные, ИмяФайлаПриемника);

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

Общий модуль "хаз_ОбменКонтрагентамиВызовСервера" с активными галочками "Сервер" и "Вызов сервера":

```1c
    Процедура СохранитьФайл(ДвоичныеДанные, ИмяФайла) Экспорт
    ДвоичныеДанные.Записать(ИмяФайла);
    КонецПроцедуры
```
---
Где создается двоичный файл?

```1c
    ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла);
```
---
Достаточно воспользоваться встроенной в платформу функцией – ПолучитьИмяВременногоФайла(), которая автоматом решает многие проблемы:

- Гарантирует, что имя файла будет действительно уникально;

- Если разработчик забудет удалить файл самостоятельно, то он обязательно удалится при следующем запуске платформы.
---
Временные файлы мне не нужны так как этот файл будет потом использоваться базой приемником для чтения и мне его нужно точно идентифицировать от какого к какому узлу обмена этот файл. Пример наименования: MessageБЭ_ЗУ.xml, MessageЗУ_БЭ.xml.
---
Вот смотрите, если вызвать метод ПолучитиьИмяВременогоФайла() - то он вернет путь к файлу на том сервере где выполняется соединение (то есть на базе приемника), а если использовать ВнешняяБаза.ПолучитиьИмяВременогоФайла() - то путь получится от базы источника.
Попробуйте экспиремент провести

ИмяФайлаПриемника = ПолучитиьИмяВременогоФайла()
ИмяФайлаИсточника = ВнешняяБаза.ПолучитиьИмяВременогоФайла()

Далее будете записывать двоичные данные
---
ПолучитьИмяВременогоФайла()
C:\Users\USR1CV8\AppData\Local\Temp\v8_464F_111.tmp

ВнешняяБаза.ПолучитьИмяВременогоФайла()
C:\Users\USR1CV8\AppData\Local\Temp\v8_F7D9_1.tmp

СтрокаСоединенияИнформационнойБазы()
Srvr="1c";Ref="test5";

ВнешняяБаза.СтрокаСоединенияИнформационнойБазы()
Srvr="2c";Ref="test9";

Дело в том, что метод Записать() производит запись на сервере "1с" вне зависимости где создавался объект ДвоичныеДанные:

```1c
    ДвоичныеДанныеНаСервере = Новый Двоичныеданные(ИмяФайла);
```

или

```1c
    ДвоичныеДанныеНаСервере = ВнешняяБаза.NewObject("ДвоичныеДанные", ИмяФайла);
```

А нужно произвести запись на сервере "2с".
---
Скажите а вы провели эксперимент, может все таки когда вы указываете ВнешняяБаза.NewObject("ДвоичныеДанные", ИмяФайла) и если переменная ИмяФайла получена методом ВнешняяБаза.ПолучитьИмяВременогоФайла она сохранит его как раз в директории сервера Srvr="2c"??? Мне кажется так и будет
---
с другой стороны. если же такое не получиться как в (5) то почему бы вам явно путь не дописать (если политика безопасности) позволяет

Например
ИмяФайла= ПолучитьИмяВременогоФайла() ;
получили путь C:\Users\USR1CV8\AppData\Local\Temp\v8_464F_111.tmp
Далее допишите к нему ИмяФайла = "\\2С\" + ИмяФайла и у вас получиться \\2С\C:\Users\USR1CV8\AppData\Local\Temp\v8_464F_111.tmp
---
Пробовал перетащить запись файла в метод общего модуля базы приемника, и вызывать его с помощью того же V83.COMConnector

Вроде правильное направление... Попробуйте написать код в общем модуле базы приемника который без всяких там двоичных данных просто создаст файл на диске сервера приемника... кстати у общего модуля базы приемника какие флажки установлены? Только Внешнее соединение? Или Сервер тоже?
---
Щас попробую, ВнешнееСоединение стоит и Сервер, если не поставить ВнешнееСоединение, то процедуру не найдет.
---
И кстати если будут сплошные грабли, а сроки будут гореть, то остается еще вариант с регламентным заданием на базе приемнике которое примет данные через любое хранилище доступное через ком например справочник и запишет в файл... Но это из серии "Мсье знает толк в извращениях"