Цитата:
Сообщение от
AndyD
Прошу прощения, уточню.
Вызов функции tableId2Name() на сервере возвращает для системных таблиц пустое значение.
У меня на сервере то же самое выдает.
Запихнул код в статический метод класса - выполняется гарантированно на сервере - результат тот же.
X++:
server static void Job482serv(Args _args =null)
{
str s;
;
info("server :");
s = tableId2Name(tableNum(dataarea));
info(s);
s = New dictTable(tableNum(dataarea)).name();
info(
s
);
s = strFMT("isSystemTable() = %1",
New dictTable(tableNum(dataarea)).isSystemTable()
);
info(s);
}
У меня Ax3.0 KR3
AndyD, попробуйте перестартовать аос. Замечено что иногда внутри аоса что-то кривится и функции tableName2Id(), fieldname2Id() перестают работать - выдают 0.
По этой же причине при включенном логировании изменений в таблицах, после этой кривоты лезет ошибка тут (для приложения SP5 )
\Classes\Application\addLogFields
что очень неприятно.
Лечится перестартом аоса.
Из-за чего возникает такая кривизна в аосе - непонятно. Есть подозрение что использование функции "Обновить АОТ" в комбинации со всевозможным сбросами кеша и вызовами \System Documentation\Classes\xSession\removeAOC
(это мы так кеш аоса обновляли при обновлении без перестарта) повышает вероятность такой фигни. По крайней мере когда мы отказались от такого сброса кеша - глюк не повторялся.