Показать сообщение отдельно
Старый 17.05.2017, 14:56   #242  
mayk is offline
mayk
Участник
Аватар для mayk
 
43 / 65 (3) ++++
Регистрация: 07.03.2008
Вчера вылезло нечто странное в 2012 аксапте.

Код шёл примерно так (очень упрощенная версия)
X++:
[record1] = map.lookup(#current); 
tmpTable.value = strfmt("%1", record1.(fieldnum(RealTable, dataAreaid)))
И несмотря на то, что RealTable record1 был положен в карту абсолютно нормальным(dataAreaId заполнен, никаких select crosscompany, всё как обычно)
это вылетало с "Внутренняя ошибка номер 25".

Научный метод тыка показал, что info(record1.dataAreaId); работает и показывает код компании. А вот info(record1.(fieldnum(RealTable, dataAreaid))) вылетает.

Веселье продолжилось, дальнейшее шаманство показало что
X++:
[recordTmp] = map.lookup(#current); 
record1.data(recordTmp); // <<< копируем полученное из map'а
info(record1.(fieldnum(RealTable, dataAreaid)))
tmpTable.value = record1.(fieldnum(RealTable, dataAreaid))
работает.

Я ничего не понял.