2012 R2 CU7
В классе RunBaseQuery_RU переменная queryrun объявлена, как SysQueryRun, но в методах самого класса она инициализируется, как QueryRun
X++:
protected final void initQueryRun()
{
...
query = this.initNewQuery();
queryrun = new QueryRun(query);
}
X++:
public boolean unpack(container packedClass)
{
...
if (packedQuery)
{
queryrun = new QueryRun(packedQuery);
}
...
}
Если создать наследника этого класса, то из Ах он будет работать прекрасно, но стоит поставить его в пакет, как тот (пакет) будет валиться с ошибкой неправильного присваивания типа переменной. Видимо, внутри CIL эта ситуация обрабатывается иначе.
Чтобы все заработало, переменную инициализировать, как
X++:
queryrun = new SysQueryRun(...)