Показать сообщение отдельно
Старый 18.03.2008, 14:59   #78  
HorrR is offline
HorrR
Участник
 
340 / 30 (2) +++
Регистрация: 18.02.2008
Адрес: Киев
Длина названия метода в АХ ограничена 40ка символами, длина поля тоже 40ка. Методом тыка определил, что компиль аксапты очень просто определяет, есть ли парм-метод на AxBc классе - просто проверяет, есть ли в классе метод с названием: "parm"+имя поля. Вот и всё!!! И даже если тело метода поля не касается, компилю по барабану и наоборот, если даже метод правильный: возвращает и устанавливает значение нужного поля, но название у него не вышеупомянутое "parm"+имя поля - выдает BP. И вот тут же появилась мысль, а что будет, если имя поля будет больше 36ти символов? То есть метод с названием "parm"+название поле создать нельзя будет. И тут собсна и зарыто пасхальное яйцо. В таблице SalesTable есть стандартное поле InterCompanyAllowIndirectCreationOrig, метод в AxSalesTable как и предпологалось называется parmInterCompanyAllowIndirectCreationOri то есть без последней буквы в названии поля. А Аксапта хавает его!!! При этом если я создаю на своём классе подобный метод(без последней буквы в названии поля) - девиейшн конечно же присутствует. Вот такая маца, строки //BP deviation documented нигде не увидел, да и где она там может быть воткнута с другой стороны, так что каким образом сделано это исключение в одном экземпляре(хотя кто его знает, мож ещё такие поля есть ) - ХЗ. З.Ы В завершение вопрос: что мешало разработчикам Аксапты, ежели они поленились и не написали нормальный алгоритм распознавания парма и решили использовать фиксированый: "parm"+fieldname, сделать максимальную длину для названия метода на 4 символа больше, чем поля?
__________________
Axapta has seduced me deadly!

Последний раз редактировалось HorrR; 18.03.2008 в 15:03.
За это сообщение автора поблагодарили: EVGL (-1).