|
![]() |
#1 |
Участник
|
Цитата:
И получается в иерархии DirPartyTable ... CompanyInfo у нас есть набор интерфейсов по работе с ядреным курсором. При этом реализация DirPartyTable.orig() и CompanyInfo.orig() разная. Каждый знает только про свой набор полей - про тот набор, который мы в AOT для таблички описали. И именно этот набор полей при вызове и заполняет в возвращаемом буфере. Соответственно, задача стояла как получить доступ к соответствующему интерфейсу курсора. Если в коде объявлена переменная соответствующего типа, то все просто, а если ее нет, то как ее получить в runTime. Ну, я нашел способ. P.S. Кстати, аналогичная проблема возникает при помещении и извлечении буфера в List (см. http://sashanazarov.blogspot.com/201...n-objects.html) а также при помещении и извлечении в контейнер таким способом, популярным в предыдущих версиях: X++: con = [buffer]; buffer = conPeek(con, 1); Видимо, во всех этих случаях задействован какой-то общий механизм в ядре. |
|