Вход | Регистрация

Форумы на Кубань.Ру


1С:Предприятие ::

Метки:

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

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



Список тем форума

Форум Территория 1С

Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует