приветствую, коллеги
возникла следующая задача: есть несколько баз -- управленческая (старая и очень сильно переделанная под наши нужды УНФ 1.5.4.40 на управляемых формах) и несколько бухгалтерких баз БАС бухгалтерия КОРП, тоже на управляемых, понятное дело, формах, со всеми последними обновлениями (тоже слегка переделанных для корректного взаимодействия с измененной же УНФ, ну да не суть...)
из УНФ идет импорт данных в бухгалтерии через вызов com-объекта на сервере, сервер крутится на windows 2008R2
все это написано давно и работает корректно много лет и вопросов не вызывает (а ранее работало еще в такой связке 7.7 (комплексная) --> 7.7 (бух), потом было 7.7 (комплексная) --> 8.3 (бух) и наконец все пришло к 8.3 (унф) --> 8.3 (бух))
сейчас возникла мысль перенести серверную часть на линукс с выносом этого всего в какой-то ДЦ где-то не в Украине (оно и сейчас в ДЦ, только там недалеко на днях очень сильно прилетело, откуда и возникли мысли убраться отсюда от греха подальше

)
так вот, поскольку в линуксе никаких com-объектов нет, решено реорганизовать com-обмен не на сервере, а на клиенте (который все равно на windows, т.к. Fredo и все такое...), с переносом на клиент никаких проблем нет -- вызываем из "тонкого" клиента (бух. КОРП) "толстый" клиент (УНФ), читаем данные в таблицу значений, закрываем com-объект на клиенте, таблицу значений передаем на сервер и там производим создание новых объектов
на клиенте вместо v83.ComConneсtor вызываем v83.Application -- и все работает, не так быстро, но приемлемо
однако, возникла проблема -- вызываемый com-объект после отработки не хочет закрываться никак
платформа БАФ 8.3.15.1887 x64
&НаКлиенте
Процедура _ИмпортДанныхНаКлиенте()
Попытка
_V7 = Новый COMObject("V83.Application"); // _V7 -- это на самом деле v83
Исключение
ПоказатьПредупреждение( ,"Ошибка установки соединения");
Возврат;
КонецПопытки;
СтрокаСоединения = "Srvr=" + _IP_адрес_сервера + "; Ref=" + _Имя_БД + "; Usr=" + _Имя_Пользователя + "; Pwd=" + _Пароль_Пользователя;
Попытка
_V7.Connect(СтрокаСоединения);
Исключение
ПоказатьПредупреждение( ,"Не удалось подключиться к базе");
Возврат;
КонецПопытки;
// дальше читаем данные на клиенте и грузим их в ТЗ, а потом пытаемся закрыть ставщий ненужным com-объект
_V7._ЗавершитьРаботуСистемы(Истина); // вот это не срабатывает, com-объект не закрывается и висит окно подтверждения выхода из программы (как при обычном интерактивном закрытии)
всевозможные варианты с объявлением в модуле прикладной программы (мы ж вызываем толстый клиент) экспортной процедуры
Процедура _ЗавершитьРаботуСистемыПриВызовеИзБухКОРП() Экспорт
ЗавершитьРаботуСистемы(Ложь);
КонецПроцедуры
и последующем вызове её на клиенте вместо
_V7._ЗавершитьРаботуСистемы(Истина);
как
_V7._ЗавершитьРаботуСистемыПриВызовеИзБухКОРП();
тоже ни к чему не приводят (хотя при точно таком же вызове этой же УНФ из другой БД на старой бухгалтерии 7.7 этот второй вариант нормально отрабатывает)
вопрос -- как в этом случае заставить закрыться com-объект без вывода окна запроса подтверждения закрытия программы?
перепробовал разные варианты -- ни один ни помогает
спасибо
p.s. конвертацию данных не предлагать -- я её не знаю, за 25+ лет работы с 1с никогда с ней не сталкивался и не планирую

Цитата(andytg @ 06.07.25, 2:08)
_V7._ЗавершитьРаботуСистемы(Истина);
прошу прщения, не Истина, а конечно же Ложь в качестве аргумента
но все равно не работает