Создание внешних компонент #30424


#0 by stealth
Создаю внешнюю компоненту согласно методике 1среализую в ней тестовую функцию которая возвращаетвсе что ей передается.Если передавть строковые значения то все работает ОК.Если передать элемент справочника то при выходе из 1с1сv7 остается сидеть в памяти.Если ктото сталкивался подскажите в чем дело ?Заранее благодарен.
#1 by Marko
на чем разрабатываешь?
#2 by Stealth
На дельфи.Create C Object files включил.
#3 by Marko
если доступ производится через AppDispatch необходимо дополнительно вызыватьAddRef у полученного IDispatch - в противном случаепосле завершения работы возможно "зависание" 1с-предприятия в памяти. (взято из ИТС)
#4 by stealth
_AddRefА не подскажешь куда именно его надо ставить ?в Init или в Done или еще куда ??В Init ставил :pConn._AddRef;все остается неизменным.
#5 by Marko
ты наверное получаешь доступ к объектам предприятия в методах callasproc/callasfunc ? просто в init'е запоминаешь Obj, а вышеупомянутых методах используешь его проперти AppDispatch. Как только его получишь нужно увеличить счетчик (AddRef у полученного IDispatch)
#6 by Stealth
Можно чуть по подробнее ?Что ты подразумеваещь под Obj в Init'еВ Инит предается IDispatch;и у него нет AppDispatchнапиши подробней что куда.Заранее благодарен.
#7 by Marko
посмотрел описание примеров. в инит передается IDispatch. сохраняешь ссылку (pConn for example - pConn типа IDispatch). чтобы использовать методы 1с-предприятия тебе нужно получить проперти AppDispatch:ret := obj.Выбрать('Выбор элемента для внешней компоненты','');(у тебя есть примеры? смотри Sample2, метод CallAsProc)так вот. после получения AppDispatch необходимо написатьpConn._AddRef.
#8 by Stealth
Я понял.Но я не получаю объекты 1с из компоненты.Я передаю их в качестве параметров.О=СоздатьОбъект("AddIn.Ext");{Тут всякая туфта по выбору эл. справочника}Сообщить(О.Показать(Спр.ТекущийЭлемент));Как в таком случае быть ?
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С