8.х Взимобмен 1С и других приложений по COM

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем fHunter, 1 апр 2008.

  1. TopicStarter Overlay
    fHunter
    Offline

    fHunter

    Регистрация:
    1 апр 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Приславутый обмен 1С.
    Сразу прошу прощения я к 1С имею поверхностное отношение.
    Задача есть 1С и трехзвенное приложение. Между ними нужно наладить взаимообмен.
    В общем задача на 90% решена, за исключением одного но.
    Есть общий модуль с именем “ Обмен ” и установленными свойствами “глобальный” и “сервер” в нём есть процедура.
    Код:
    #Если Сервер Тогда
    Функция ОтправкаВКСБ1(PacketData) Экспорт
    Перем FoundVersion;
    Перем Флаг;
    Перем Electra;
    Флаг = 0;
    Попытка
    Electra = Новый COMОбъект("AppServer.easServer", "dev");
    //Electra = Неопределено;
    Исключение
    Флаг=1;
    КонецПопытки;
    
    Если Флаг = 0 Тогда
    Попытка   
    RemoteData = Electra.GetChild("tmo1CCommonRemoteData", FoundVersion);
    Исключение
    Флаг=2;
    КонецПопытки;
    КонецЕсли;
    
    Если Флаг = 0 Тогда
    Попытка
    RemoteData.SetInvoicePayment(PacketData);
    Исключение
    Флаг=3;
    КонецПопытки;
    КонецЕсли;
    
    Возврат Флаг;
    КонецФункции
    #КонецЕсли 
    
    
    При определённой операции формируется PacketData (xml) и вызывается эта процедура на сервере. Всё работает в обе стороны нормально (здесь приведена только посылка данных от 1С), но на сервере остается висеть процесс easServer (я подразумевал что COMОбъект уничтожиться при выходе из процедуры). Как правильно его уничтожить (Electra = Неопределенно эффекта не дало);
  2. vlashi
    Offline

    vlashi Опытный в 1С

    Регистрация:
    18 янв 2008
    Сообщения:
    143
    Симпатии:
    0
    Баллы:
    26
    Код:
     
    Electra.Close();
    
    
  3. TopicStarter Overlay
    fHunter
    Offline

    fHunter

    Регистрация:
    1 апр 2008
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Спасибо за ответ. Но боюсь что это не будет работать, т.к. данный обьект не поддерживает метод Close. Завтра доберусь до 1С и сообщу результат.
  4. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Надо документацию по ком объекту почитать. Иногда достаточно сделать:
    ВашОбъект = 0; (Не неопределено, а именно нулю присвоить)
    Иногда надо вызывать деструктор объекта (Close, Exit и т.д.).

Поделиться этой страницей