OLE: Вставка в иерархический справочник из Delphi #419776


#0 by Moriarti
Написал некий обмен справочников между 1C77 и ...не 1С -) Модуль на Delphi 2007, все Ok: Все отлично работает. Однако, понадобилась обработка иерархических справочников. Внутренний код родителя известен. function ЗначениеИзСтроки2(v7: Olevariant; Стр: string) : OleVariant; begin ^^^ и вот тут: First chance exception at $7C812AFB. Exception class EOleSysError with message 'Параметр задан неверно'. КонтрагентыТам_1 assigned и можно вывести его реквизиты - папка нашлась верно. Этот же код в OLE обертке из v81 работает без проблем: Пробовал так же скобочки ставить: КонтрагентыТам.Родитель := КонтрагентыТам_1.ТекущийЭлемент; ошибка меняется на First chance exception at $7C812AFB. Exception class EOleSysError with message 'Несовпадение типов'. Что не так?
#1 by ТелепатБот
#2 by Moriarti
блин, все дельфинисты-1с-ники на море наверное :-)
#3 by Torquader
Текущий элемент должно быть со скобочками, так как это функция, а не поле. Далее, когда мы собрали значение элемента по коду, то мы получили объект, от которого бессмысленно брать текущий элемент, так как код у вас итак определяет объект (сохранённый в базе). Также и выбран - это тоже функция, а не переменная. (А в delphi разве равно не == пишется ?) И откуда "вырос" КонтрагентыТам ? (Может быть у него должно быть значение). P.S. Delphi при вызове метода передаёт PropertyGet и Function сразу, поэтому наличие скобок не сильно угнетает, но лучше их ставить.
#4 by Moriarti
>Текущий элемент должно быть со скобочками, так как это функция, а не поле. Со скобочками в delphi, кстати не прокатывает, пишет "параметр задан не верно" Вот нашел что-то завтра на работе поразбираюсь....
#5 by Moriarti
Получилось! Во-первых нужно использовать UseParent и Новый - делать после присовения родителя а не до:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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