Добрый день, настраиваю обмен между двумя базами (платформа 1С 8.3.15.1830, базы файловые) столкнулся с такой проблемой: при выполнении обмена интерактивно (жму кнопку в дополнительной обработке, либо в списке регламентных заданий) - всё работает, при выполнении регламентным (фоновым) по расписанию - выдаёт ошибку: "Ошибка при вызове метода контекста (Connect)".

Что ей надо?)

Код подключения:

```1c
    &НаСервере
    Функция ПолучитьПодключениеКФайловойБД()

    Если Режим Тогда
    ПараметрыПодключения = "File="" + СокрЛП(ПутьКБазе) + ""; Usr="" + СокрЛП(Пользователь) + ""; Pwd="" + СокрЛП(Пароль) + "";";
    Иначе
    ПараметрыПодключения = "Srvr="" + СокрЛП(ИмяСервера) + ""; Ref="" + СокрЛП(ИмяБазы) + ""; Usr="" + СокрЛП(Пользователь) + ""; Pwd="" + СокрЛП(Пароль) + "";";
    КонецЕсли;
    V83COMConnector= Новый COMОбъект("V83.COMConnector");

    Попытка
    Возврат V83COMConnector.Connect(ПараметрыПодключения);
    Исключение
    ЗаписатьОтобразитьОшибку("Обмен БУХ - ЗУП (ошибка установки соединения)" , ИнформацияОбОшибке().Описание);
    Возврат Неопределено;
    КонецПопытки;

    КонецФункции
```

Код инициализации обработки и порядок выполнения команды:

```1c
    &НаСервере
    Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.1.1.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
    ПараметрыРегистрации.Версия = "1.1";
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    //Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаВременныхФайлов(Истина, Истина);
    //ПараметрыРегистрации.Разрешения.Добавить(Разрешение);

    СтрокаКоманды = ПараметрыРегистрации.Команды.Добавить();
    СтрокаКоманды.Представление = НСтр("ru = 'Выполнить обмен с ЗУП 3.1 (фоновое задание)'");
    СтрокаКоманды.Идентификатор = "ОбменЗУП_Регламент";
    СтрокаКоманды.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    СтрокаКоманды.ПоказыватьОповещение = Истина;

    СтрокаКоманды = ПараметрыРегистрации.Команды.Добавить();
    СтрокаКоманды.Идентификатор = Новый УникальныйИдентификатор;
    СтрокаКоманды.Представление = "Открыть настройки обмена с ЗУП 3.1";
    СтрокаКоманды.ПоказыватьОповещение = Истина;
    СтрокаКоманды.Использование = "ОткрытиеФормы";

    Возврат ПараметрыРегистрации;
    КонецФункции

    &НаСервере
    Процедура ВыполнитьКоманду(ИдентификаторКоманды,ПараметрыОбработки = Неопределено) Экспорт
    ВыполнитьРегламентноеЗадание();
    КонецПроцедуры

    &НаСервере
    Процедура ВыполнитьРегламентноеЗадание() Экспорт

    ЗагрузитьНастройкиФормы();

    ВыполнитьОбмен();

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

    &НаСервере
    Процедура ВыполнитьОбмен() Экспорт

    КОМ = ПолучитьПодключениеКФайловойБД();
    Если КОМ = Неопределено Тогда
    Возврат;
    КонецЕсли;

    // ................

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

    &НаСервере
    Процедура ЗагрузитьНастройкиФормы()
    Попытка
    ХранилищеНастроек = Справочники.ДополнительныеОтчетыИОбработки.НайтиПоНаименованию("Выгрузка из БУХ в ЗУП").ХранилищеНастроек;
    Настройки = ХранилищеНастроек.Получить();
    Если Настройки <> Неопределено Тогда
    ЗаполнитьЗначенияСвойств(ЭтотОбъект, Настройки);
    КонецЕсли;
    Исключение
    СписокСобытий = Новый СписокЗначений;
    СтруктураСобытия = Новый Структура;
    СтруктураСобытия.Вставить("ИмяСобытия", "Обмен с ЗУП (ошибка загрузки настроек)");
    СтруктураСобытия.Вставить("ПредставлениеУровня", "Ошибка");
    СтруктураСобытия.Вставить("Комментарий", ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
    СписокСобытий.Добавить(СтруктураСобытия);
    ЖурналРегистрации.ЗаписатьСобытияВЖурналРегистрации(СписокСобытий);
    КонецПопытки;
    КонецПроцедуры
```
---
Сделал отладку))

это же внешняя обработка, значит в общем модуле "ДополнительныеОтчетыИОбработки" через Расширение прописал мою обработку в наглую, чтобы пошла отладка...

Результат:
Регламентное задание по расписанию отработало без ошибок))

Вообщем варианты решения следующие:

1. Сделать обмен через регламентное задание конфигурации, а не внешнюю обработку
2. Сделать обертку "comcntr.dll" по примеру https://infostart.ru/public/610960/
3. Оставить костыль отладки))

Остановлюсь на первом
---
регламентным (фоновым) - от чьего имени выполняются регламентные и фоновые задания !!!!
---
Да, имя пользователя задал, со всеми разрешениями и отключенной "защитой от опасных действий"
---
UAC на сервере(ах) не включен?
---
вполне возможно, прав на админство нет
---
https://forum.mista.ru/topic.php?id=697577
---
к сожалению не мой случай
---
У пользователя фонового задания есть права на Внешнее соединение?
---
так точно!
---
Создал регламентное задание в конфигураторе, процедура COM соединения отработала! Почему не работает через доп. обработку до сих пор не понятно(
---
Попробуйте добавить в ПараметрыРегистрации внешней обработки:
ПараметрыРегистрации.ВерсияБСП = "1.2.1.4";
---
https://forum.infostart.ru/forum9/topic72637/ тут посмотри, возможно есть что-то
---
Возможно у вас 2 платформы.
Посмотри текст ошибки какой пишет.
В фоне код на сервере выполняется. Возможно нет компиляции.
---
да платформы две: 32ая и 64ая одной версии релиза... по техническим причинам нужны обе. возможно тут собака и зарыта. Зарегистрирована 32 ая
---
99% что в этом. Отладчик даст 100 % ответ.
---
да, сделаю отладку, результаты сообщу)
---
Сделал отладку))

это же внешняя обработка, значит в общем модуле "ДополнительныеОтчетыИОбработки" через Расширение прописал мою обработку в наглую, чтобы пошла отладка...

Результат:
Регламентное задание по расписанию отработало без ошибок))

Вообщем варианты решения следующие:

1. Сделать обмен через регламентное задание конфигурации, а не внешнюю обработку
2. Сделать обертку "comcntr.dll" по примеру https://infostart.ru/public/610960/
3. Оставить костыль отладки))

Остановлюсь на первом
---
вероятно безопасный режим сработал. Пишите код правильно и проблем не будет.
---
Dll какая зарегистрирована 32 или 64. Если сервер 64, а клиент 32, то фоновое задание всегда выполняется на сервере, и может зарегистрировать ту dll?
---
Обычно он ругается, если не зарегистрирован V83.COMConnector, он у Вас зарегистрирован?
---
Так фоновое задание у меня отрабатывается без ошибок, когда запускаю его интерактивно в списке регламентных заданий и оно, как я понимаю, выполняется на сервере. Но вот именно по расписанию выкидывает ошибку...
---
в (12) пост 27 и 44
---
(17) тут проблема что регламентное не запускается по расписанию, у меня запускается, но в процессе выполнения выдаёт ошибку
---
надо попробовать оставить только одну платформу и возможно станет яснее