|
![]() |
#1 |
Участник
|
![]()
Ребята, вероятно мой вопрос окажется бояном, но я честно искал и не нашел(
Итак, следующий BP: TwC: Validate access to return value from display/edit method. Вот собсна метод. X++: display Addressing address() { Addressing address; ; address=Address::find(this.TableId, this.RecId, AddressType::Delivery).Address; if(!(hasSecurityKeyAccess(securitykeyNum(My_SK), AccessType::View)) &&isConfigurationkeyEnabled(configurationkeyNum(MY_CK)) ) { throw error("@SYS57330"); } return address; }
__________________
Axapta has seduced me deadly! ![]() |
|
![]() |
#2 |
Участник
|
//BP Deviation Documented
перед названием метода влепи. ![]() |
|
![]() |
#3 |
Участник
|
Да это ясно) Просто хотелось без такой гадости, хотя посмотрел стандартный функционал, там тоже не смотря на проверки, сверху документируеццо БП. А потом всё-таки отрыл на форуме похожую тему и тут стало всё свои на места:
Цитата:
Так как дисплей/едит метод может возвращать данные с другой таблицы, к которой у вас может и не быть доступа, это предупреждение выводится, чтобы вы проверили, возможно ли такое нарушение секурити - поставили например проверку на конфигурейшен и секурити ключи.
И это чисто на совести программиста, потому что можно ситуацию исправить упомянутой уже строчкой ![]() И, кстати, бест практис не оценивает содержимое метода, а просто всегда бросает ошибку, если видит ключевые слова дисплей/едит.
__________________
Axapta has seduced me deadly! ![]() Последний раз редактировалось HorrR; 04.03.2008 в 16:53. |
|
![]() |
#4 |
Модератор
|
__________________
-ТСЯ или -ТЬСЯ ? |
|
![]() |
#5 |
Участник
|
![]() В том смысле, что это так специально сделано. Компилятор будет выдавать предупреждение до тех пор, пока программист не проанализирует код, и не напишет его так, чтобы учитывать права доступа. После этого он, как бы, выставляет флажок, что, мол, проверено - права учитываются. А флажок этот - это как раз этот комментарий |
|
![]() |
#6 |
Участник
|
Интересно, они действительно это проверяют?
|
|
![]() |
#7 |
MCTS
|
Цитата:
А флажок этот - это как раз этот комментарий
![]() |
|
![]() |
#8 |
Участник
|
А это не компилятор делает.
![]() Это тулзень, вызываемая во время компиляции - совсем разные вещи. Код, кстати, вдруг кто не знает, можно посмотреть/подкорректировать в классах, которые начинаются на SysBPCheck Цитата:
Сообщение от belugin
Интересно, они действительно это проверяют?
Последний раз редактировалось kashperuk; 05.03.2008 в 11:27. |
|
![]() |
#9 |
MCTS
|
[offtop]
Хотел было написать "выглядит дико", но тут вспомнилось "// TODO", хотя опять же, кажется, это MS фича. Когда искал решение этой проблемы, то привел вид метода edit, в точности к виду какого-то edit метода на SYS слое, за исключением того самого комментария. Предупреждение осталось. Была мысль, что это комментарий виноват, но отбросили ее как бредовую ![]() [/offtop] |
|
![]() |
#10 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: HorrR (1). |
![]() |
#11 |
Участник
|
Предполагаю, что со всеми TWC BP та же ситуёвина. Как минимум с тем, что ругается на Assert.
__________________
Axapta has seduced me deadly! ![]() |
|