Показать сообщение отдельно
Старый 08.04.2009, 10:33   #8  
Logger is offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3,875 / 3123 (112) ++++++++++
Регистрация: 12.10.2004
Адрес: Москва
Записей в блоге: 2
Цитата:
Сообщение от 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
(это мы так кеш аоса обновляли при обновлении без перестарта) повышает вероятность такой фигни. По крайней мере когда мы отказались от такого сброса кеша - глюк не повторялся.

Последний раз редактировалось Logger; 08.04.2009 в 10:49. Причина: опечатки
За это сообщение автора поблагодарили: AndyD (10).