Xpoint
   [напомнить пароль]

1C OLE

Метки: [без меток]
2010-07-26 14:15:09 [обр] Александр Петров(2/4)[досье]

Здравствуйте, проблема не могу разобраться. форумы 1С, это...(((((
Вообщем дело такое:
Установлена база 1С, подключаюсь к ней как к OLE серверу на php. В php есть метод для com объектов com_event_sync, смотрю примеры как с ie работает, хочется тоже самое с 1С провернуть, ну вот информации... 1С-ники что в сети что на работе дальше слова OLE вообще ни чего не понимают. Версия 1С любая 7 или 8. Нашел информацию что 8 может быть тоже ole клиентом и что мол так можно двунаправленный обмен делать данными, но это изврат. Намного красивее (и по стандарту наверное) события в php отлавливать, а в 1С работающей как OLE сервер их генерировать. Натолкните чуть у кого какие соображения.

Делаю web-интерфейс к 1С, к её малой части, через websockets поэтому и хочу двунаправленного взаимодействия добиться. Что бы любые изменения в 1С сразу были видны на сайте. Допустим документ провели, возникло событие что документ проведен и если на сайте открыт журнал с этим документом пусть значок измениться тоже, через сокет это моментально, но как эти события отловить и генерировать?

спустя 25 минут [обр] Александр Петров(2/4)[досье]
com_print_typeinfo
использую для 1С 7 не работает, для explorer работает, понимаю как 1С 7 не поддерживает события
сейчас поставлю 8
спустя 31 минуту [обр] Александр Петров(2/4)[досье]

вот, а с 8 работает.

class IV8COMConnector3 { /* GUID={2FF2245E-C604-45BD-AC16-19B1F64BD9A4} */
        /* DISPID=1610612736 */
        function QueryInterface(
                /* VT_PTR [26] [in] --> ? [29]  */ &$riid,
                /* VT_PTR [26] [out] --> VT_PTR [26]  */ &$ppvObj
                )
        {
        }
        /* DISPID=1610612737 */
        /* VT_UI4 [19] */
        function AddRef(
                )
        {
        }
        /* DISPID=1610612738 */
        /* VT_UI4 [19] */
        function Release(
                )
        {
        }
        /* DISPID=1610678272 */
        function GetTypeInfoCount(
                /* VT_PTR [26] [out] --> VT_UINT [23]  */ &$pctinfo
                )
        {
        }
        /* DISPID=1610678273 */
        function GetTypeInfo(
                /* VT_UINT [23] [in] */ $itinfo,
                /* VT_UI4 [19] [in] */ $lcid,
                /* VT_PTR [26] [out] --> VT_PTR [26]  */ &$pptinfo
                )
        {
        }
        /* DISPID=1610678274 */
        function GetIDsOfNames(
                /* VT_PTR [26] [in] --> ? [29]  */ &$riid,
                /* VT_PTR [26] [in] --> VT_PTR [26]  */ &$rgszNames,
                /* VT_UINT [23] [in] */ $cNames,
                /* VT_UI4 [19] [in] */ $lcid,
                /* VT_PTR [26] [out] --> VT_I4 [3]  */ &$rgdispid
                )
        {
        }
        /* DISPID=1610678275 */
        function Invoke(
                /* VT_I4 [3] [in] */ $dispidMember,
                /* VT_PTR [26] [in] --> ? [29]  */ &$riid,
                /* VT_UI4 [19] [in] */ $lcid,
                /* VT_UI2 [18] [in] */ $wFlags,
                /* VT_PTR [26] [in] --> ? [29]  */ &$pdispparams,
                /* VT_PTR [26] [out] --> VT_VARIANT [12]  */ &$pvarResult,
                /* VT_PTR [26] [out] --> ? [29]  */ &$pexcepinfo,
                /* VT_PTR [26] [out] --> VT_UINT [23]  */ &$puArgErr
                )
        {
        }
        /* DISPID=11 */
        /* VT_DISPATCH [9] */
        function Connect(
                /* VT_BSTR [8] [in] */ $connectString
                )
        {
                /* method Connect */
        }
        /* DISPID=1 */
        /* VT_UI4 [19] */
        /* property PoolCapacity */
        var $PoolCapacity;

        /* DISPID=1 */
        /* property PoolCapacity */
        var $PoolCapacity;

        /* DISPID=2 */
        /* VT_UI4 [19] */
        /* property PoolTimeout */
        var $PoolTimeout;

        /* DISPID=2 */
        /* property PoolTimeout */
        var $PoolTimeout;

        /* DISPID=3 */
        /* VT_UI4 [19] */
        /* property MaxConnections */
        var $MaxConnections;

        /* DISPID=3 */
        /* property MaxConnections */
        var $MaxConnections;

        /* DISPID=12 */
        /* VT_PTR [26] */
        function ConnectWorkingProcess(
                /* VT_BSTR [8] [in] */ $serverName
                )
        {
                /* Administrative Connect method */
        }
        /* DISPID=13 */
        /* VT_PTR [26] */
        function ConnectAgent(
                /* VT_BSTR [8] [in] */ $serverName
                )
        {
                /* Administrative Connect Agent method */
        }
        /* DISPID=14 */
        /* VT_INT [22] */
        /* Default Server Arent IP Port property */
        var $RAgentPortDefault;

        /* DISPID=15 */
        /* VT_INT [22] */
        /* Default Registry Manager IP Port property */
        var $RMngrPortDefault;

        /* DISPID=16 */
        /* VT_INT [22] */
        /* Default IP Port Low Bound property */
        var $LowBoundDefault;

        /* DISPID=17 */
        /* VT_INT [22] */
        /* Default IP Port High Bound property */
        var $HighBoundDefault;

}

Осталось понять как выглядать события проведения, изменения и всего прочего

спустя 5 дней [обр] LookeR(0/1069)[досье]
М Перенесено из форума "Прочее"
Powered by POEM™ Engine Copyright © 2002-2005