Вот единственное концов не найти при COM-подключении если в модуле внешнего подключения в конфигурации на сервере (куда подключаемся из другой конфигурации) стоит функция выполнения произвольного кода, передаваемого как текст? Тут только факт регистрации ошибок можно есть или нет. Может, Вам нужно разбить логику решения и разбить на мелкие этапы при передаче и выполнении кода на сервере?
//#Доработка(+) НН ###
// Подставить во все экспортные функции модуля внешнего соединения (и прочих модулей с разрешенным внешним подключением!!!)
Процедура ПроверкаБезопасности() // Защита от попытки выполнения вредоносного кода при внешнем подключении от имени другого пользователя.
ТекПользователь = ПараметрыСеанса.ТекущийПользователь;
Если ТекПользователь.Пустая() Тогда
ВызватьИсключение("Внимание!!! Параметр сеанса ТекущийПользователь не инициализирован (попытка внешнего подключения к базе Весы)");
КонецЕсли;
ПользовательИБ = Справочники.Пользователи.НайтиПоНаименованию(ТекПользователь.Наименование, Истина);
Если ПользовательИБ.Наименование = "КомОбмен" Тогда
Возврат; // Все ОК
Иначе
ВызватьИсключение("ВНИМАНИЕ!!! Попытка внешнего подключения к базе Весы (через модуль внешнего подключения)");
КонецЕсли;
КонецПроцедуры
Функция ИсполнитьВн(КодВыполнить, ВспомПараметр= "") Экспорт
ПроверкаБезопасности(); // Защита от попытки выполнения вредоносного кода при внешнем подключении от имени другого пользователя.
Ответ = "0";//Если ничего не нужно будет возвращать, то при отсутствии ошибок в коде
//вернется просто ОК
//Т.к. переданный код может быть с ошибками, то завернем его исполнение в попытку.
Попытка
Выполнить(КодВыполнить); // Выполнение кода как строки на другом компьютере по COM-Соединению (Модуль внешнего соединения базы Весы)
Исключение
//если все таки ошибка, то вернем ее текст
Ответ = ПодробноеПредставлениеОшибки(ИнформацияОбОшибке() );
КонецПопытки;
Возврат Ответ;
КонецФункции
Функция ТестСвязи(ВхПараметр, ВыхПараметр) Экспорт
ПроверкаБезопасности(); // Защита от попытки выполнения вредоносного кода при внешнем подключении от имени другого пользователя.
ВыхПараметр = "Есть связь с базой весы по COM-Соединению!";
Возврат Истина;
КонецФункции
Функция ПолучитьТаблицуКонтрагентовИДоговоров() Экспорт
ПроверкаБезопасности(); // Защита от попытки выполнения вредоносного кода при внешнем подключении от имени другого пользователя.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ДоговорыКонтрагентов.Владелец,
| ДоговорыКонтрагентов.Код КАК КодДоговора,
| ДоговорыКонтрагентов.Груз,
| ДоговорыКонтрагентов.Цена,
| ДоговорыКонтрагентов.НДС,
| ДоговорыКонтрагентов.НомерДоговора КАК НомерДоговора,
| ДоговорыКонтрагентов.ДатаДоговора КАК ДатаДоговора
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
|
|УПОРЯДОЧИТЬ ПО
| НомерДоговора,
| ДатаДоговора";
Возврат Запрос.Выполнить().Выгрузить();
КонецФункции
//.Доработка(-) ...