Доступ к объектам 1С через OLE Automation #24914


#0 by makody
Доброго всем дня.Может ли кто-нибудь подсказать, как именно происходит обращение к внутренним объектам 1С из внешней компоненты через OLE Automation (мне нужно написать AddIn (транслятор) из потока двоичных данных в данные 1С, например новый документ). В часности меня интересует, что означает:Read (<ИмяПеременной>,<СсылкаНаVARIANT>)
#1 by IAm
Меня тоже интересует что означает:Write (<ИмяПеременной>,<СсылкаНаVARIANT>)и откуда Вы это взяли.
#2 by makody
1)
#3 by IAm
По ссылке приведены методы, предоставляемые технологией внешних комспонент. Вы хотите реализовывать это именно через внешние компоненты?
#4 by makody
Sub IInitDone_Init(ByVal Obj As Object)    Dim bRet As Boolean...Doc = V7Object.CreateObject("Документ.Название документа") выдаетсообщение, что у объект V7Object НЕТ метода CreateObject.В чем может быть трабл?
#5 by evGenius
Методы записывают и считывают значение переменной с "именем" из/в структуру VARIANT.
#6 by makody
мне нужна dll, которая не требует регистрации в реестре. Поэтому приходитьс делать именно по технологии внешних компонент.
#7 by IAm
По виду код правильный, не считая того, что Set Не стоит перед Doc
#8 by evGenius
Конечно нет. Воспользуйся функциями GetIDsOfNames и Invoke для вызова функций через OLE Automation, ведь твой V7Object - это указатель на IDispatch. Я правильно понимаю суть?
#10 by makody
Запускаем базу следующим образом:Доступ к справочникам и документам базы OLE (через функцию CreateObject) После создания объекта справочника или документа к нему применимы все методы касающиеся соответствующего объекта V7:>Вроде бы сдесь не используется AppDispatch?
#11 by IAm
Здесь нет. Но какое отношение это имеет к технологии вк.
#12 by evGenius
Это вообще не тот случай. Сравнил V7Object из и БазаОЛЕ из ! %)
#13 by makody
- заработало, но ядро 1С остается висеть в памяти после закрытия программы. Есть ли метод противоположный вызову ЗагрузитьВнешнююКомпоненту("ляляля.dll")?
#14 by IAm
А как ты её загружаешь в 1С, покажи код.
#15 by evGenius
Остается висеть? Новерное ты забыл где-то вызвать метод Release твоего IDispatch, вот он и считает, что его вечно юзают.Что значит противоположный?
#16 by makody
Использую стандартный шаблон AddIn для v77:Sub IInitDone_Init(ByVal Obj As Object)    Dim bRet As Boolean
#17 by makody
Противоположный - это что-то типа "ВыгрузитьВнешнююКомпоненту"
#18 by IAm
15 Насколько я знаю если в ВК не открывались формы, то AddRef и Release предприятие должно делать самостоятельно.16 1С-ный код покажи, как ты вызываешь и используешь?
#19 by makody
Загрузить внешнюю компоненту("RMarsExA.dll");...
#20 by IAm
Попробуй в конце процедуры написатьRX = "";
#21 by makody
У меня стоитRX = 0;Но это не помогает.
#22 by 101
20. кстати на некоторых ! отчетах та же феня ... (почему то только на очень массивных) попозже локализую ...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям