Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> импорт данных через COM-объект из "толстого" в "тонкий" клиент          
andytg Подменю пользователя
сообщение Сегодня, 1:23
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 43
Из: Киев
Спасибо сказали: 12 раз
Рейтинг: 11

приветствую, коллеги

возникла следующая задача: есть несколько баз -- управленческая (старая и очень сильно переделанная под наши нужды УНФ 1.5.4.40 на управляемых формах) и несколько бухгалтерких баз БАС бухгалтерия КОРП, тоже на управляемых, понятное дело, формах, со всеми последними обновлениями (тоже слегка переделанных для корректного взаимодействия с измененной же УНФ, ну да не суть...)

из УНФ идет импорт данных в бухгалтерии через вызов com-объекта на сервере, сервер крутится на windows 2008R2

все это написано давно и работает корректно много лет и вопросов не вызывает (а ранее работало еще в такой связке 7.7 (комплексная) --> 7.7 (бух), потом было 7.7 (комплексная) --> 8.3 (бух) и наконец все пришло к 8.3 (унф) --> 8.3 (бух))

сейчас возникла мысль перенести серверную часть на линукс с выносом этого всего в какой-то ДЦ где-то не в Украине (оно и сейчас в ДЦ, только там недалеко на днях очень сильно прилетело, откуда и возникли мысли убраться отсюда от греха подальше smile.gif)

так вот, поскольку в линуксе никаких 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с никогда с ней не сталкивался и не планирую smile.gif wink.gif

Цитата(andytg @ 06.07.25, 2:08) *
_V7._ЗавершитьРаботуСистемы(Истина);


прошу прщения, не Истина, а конечно же Ложь в качестве аргумента

но все равно не работает smile.gif

xlmel Подменю пользователя
сообщение Сегодня, 10:51
Сообщение #2

Говорящий
***
Группа: Пользователи
Сообщений: 57
Из: Харьков
Спасибо сказали: 29 раз
Рейтинг: 30.7

Для пользователя под которым выполняется подключение должен быть отключен флажок «Запрашивать подтверждение при закрытии программы» в его настройках. Для конфигураций, построенных на БСП: Главное -> Настройки -> Персональные настройки и там есть флажок. В старых конфигурациях через Настройки пользователя.
Насколько необходимо использовать "V83.Application"? Фактически, происходит запуск полноценного клиента. Я всегда все задачи решал через "V83.COMConnector", он сам закрывает соединение.

Спасибо сказали: andytg,

andytg Подменю пользователя
сообщение Сегодня, 11:15
Сообщение #3

Общительный
**
Группа: Пользователи
Сообщений: 43
Из: Киев
Спасибо сказали: 12 раз
Рейтинг: 11

Цитата(xlmel @ 06.07.25, 11:51) *
Насколько необходимо использовать "V83.Application"? Фактически, происходит запуск полноценного клиента. Я всегда все задачи решал через "V83.COMConnector", он сам закрывает соединение.

я сейчас и использую V83.COMConnector и всегда использовал (ну, кроме 7.7, где его не было, а был только V77.Application) -- он в разы быстрее и удобнее

но мысль такая -- попробовать использовать сервер 1c не на windows, а на линукс, где com-технология не поддерживается -- поэтому возникла мысль перенести обмен с сервера на клиентскую машину, где windows есть и будет в любом случае (точнее, ту часть обмена, которая читает данные из вызываемой базы, потом com-соединение закрываем, считанные данные передаем на сервер и там обрабатываем уже без всяких com-технологий)

за идею про флажок спасибо, как-то упустил из виду sad.gif

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 06.07.25, 17:56
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!