8.х Написание компонент для 8.х

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

  1. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Пишу компоненту для восьмерки и столкнулся с такой проблемой: не могу получить диспатч восьмерки. На 7.7 это можно было сделать при помощи AppDispatch, а на 8.х это метод не работает.
  2. dend
    Offline

    dend Опытный в 1С

    Регистрация:
    9 апр 2007
    Сообщения:
    175
    Симпатии:
    0
    Баллы:
    26
    Компоненты не писал, но на итс видел статью с примерами ;)
  3. TopicStarter Overlay
    ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Примеры есть, только среди них нет для C#.
    Вообще проблема уже решена, просто из 7.7 к AppDispatch нужно обращаться как к методу, а из 8.х - как к свойству.
  4. zhenya
    Offline

    zhenya

    Регистрация:
    6 апр 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Перечитал всевозможные совету, но не получается справиться с зависанием 1С. В чем моя проблема?

    Код:
    public void Init([MarshalAs(UnmanagedType.IDispatch)] object pConnection)
    {
    V81Data.V81Object = pConnection;
    _1CObject._v81Connector = pConnection;
    if (m_Enter == 0)
    {
    AppDispatch = pConnection.GetType().InvokeMember("AppDispatch", System.Reflection.BindingFlags.GetProperty, null, pConnection, null);
    Marshal.GetIUnknownForObject(AppDispatch);
    m_Enter = 1;
    }
    }
    public void Done()
    {
    foreach (Wab08RK cash in cashs.Values)
    {
    cash.Dispose();
    }
    Marshal.Release(Marshal.GetIDispatchForObject(_1CObject._v81Connector));
    Marshal.ReleaseComObject(_1CObject._v81Connector);
    Marshal.Release(Marshal.GetIDispatchForObject(V81Data.V81Object));
    Marshal.ReleaseComObject(V81Data.V81Object);
    Marshal.Release(Marshal.GetIDispatchForObject(AppDispatch));
    Marshal.ReleaseComObject(AppDispatch);
    AppDispatch = null;
    _1CObject._v81Connector = null;
    V81Data.V81Object = null;
    GC.Collect();
    GC.WaitForPendingFinalizers();
    GC.Collect();
    }
    
    Процесс так и весит, уже с ума схожу, когда его вижу...
  5. zhenya
    Offline

    zhenya

    Регистрация:
    6 апр 2010
    Сообщения:
    2
    Симпатии:
    0
    Баллы:
    1
    Если есть у кого-то пример ВК в которую передается таблица значений и в ней заполняется в цикле. Буду очень признателен. Намучился работать с объектами 1С, то освободил не то, то не освободил...(

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