-
Есть некоторые данные сохраненные в регистрах сведений с типом "ХранилищеЗначения". в принципе это "ДвоичныеДанные" ( не Картинка ), так вот вопрос: написан СОМ обьект на Delphi, можно ли передав ему подобную переменную, эти данные извлечь? Дело в том, что из стандартных методов предоставляемых в среде 1с есть только "записать", т.е. на диск. Кто либо с такой задачей сталкивался?., не очень то охото читать из таблицы и получать доступ к данным через диск. Нигде не могу найти.
-
> написан СОМ обьект на Delphi
Внешний 1C-компонент что ли ?
-
нет, ActiveX, но это не меняет сути =) Там сначала были функции сокета, потом ещо много чего туда понадобавлял, сейчас вот еще это =) Все работает и через диск, просто пути оптимизации ищу.
-
> это не меняет сути
Это ощутимо меняет суть.
Пользуй Olevariant-тип
-
> Это ощутимо меняет суть.Пользуй Olevariant-тип
Даблин я его получаю как параметр функции, прямотаки весь приполучался, а впихивать невпихуемое неудается... Данные както извлечь хотелось бы из этой лабуды. Простые значения типа строка число и прочее - очень легко приводятся к определенным типам, а вот с хранилищем как поступать, какие методы есть и прочее, вот что я хотел узнать. Как методы и свойства перечислить у любой такой вариантины ???
ЗЫ. Как это меняет суть ?
-
Ты не нервничай, луна на землю пока еще падать не собралась)
> Как методы и свойства перечислить у любой такой вариантины > ?
Какие могут быть методы и свойства у "вариантины" ? Методы и свойства случаются у классов и объектов, а "вариантина" - это просто запись, не более того.
> Как это меняет суть ?
А ты в курсе протокола взаимодействия 1С с внешними компонентами ?
-
Тек.тип варианта - см. TVarData(вариант).VType Дальше пляска зависит от конкретного типа.
-
Да, удачно написано 2 компоненты, взаимодействие понимаю. Однако, в данном случае, у меня всетаки не компонент, а АctiveX, тоесть в методы моего класса из эски я передаю параметры именно как тип OleVariant. Затем я могу ( и делаю ) следующее:
function TSocketTextX.ParseArrSDX(Val:OleVariant):OleVariant; begin ..... for i := 0 to val.ВГраница do ... zx := Val.Получить(i); ...
..... end;
тоесть имеем именно методы (передаю в качестве параметра обьект Массив ( ну или класс, в эске там кругом только классы да структуры) )..
Так вот, если я передаю в качестве параметра обьект "ДвоичныеДанные" из ХранилищеЗначения, могу ли както я обходя стандартный метод "записать" получить или прочитать эти данные?? Вроде ща пояснил уже понятно. Просто думаю может кто сталкивался...
> Тек.тип варианта - см. TVarData(вариант).VTypeДальше пляска > зависит от конкретного типа.
ок, спасибы, попробую. Тока недавно начал с СОМ и ЭктивХ работать, ещо не устаканился. ;)
-
> Вроде ща пояснил уже понятно > я передаю в качестве параметра обьект
Теперь да, понятно.
Если передан именно объект, доступ к его данным возможен только через методы и свойства этого объекта.
> спасибы, попробую
Можешь даже не пробовать - увидишь там не иначе как varDispatch.
-
Тоесть не позволительно спускаться уровнем ниже.... все ясно, если кто следующим постом кинет ссылку на читабельный материал по теме, тому спасибо.
Сергей, спасибо и Вам.
|