Цитата:
Сообщение от
trud
Ну придумали его давно, а массово использовать начали в 2012.
По-моему, это не совсем так: я лично 4-ку живьем не видел, но в 2009-й уже массово скрывались определенные поля "для служебного пользования", что иногда очень напрягает.
Цитата:
Сообщение от
trud
Думаю причина в том что в 2012 анонсировали полное соответствие Best practice(а если поле не входит в группу это ошибка), поэтому кто-то и предложил - зачем мучаться, создавать группы полей, давайте просто всем невидимым пользователю полям поставим Visible в No.
Мне кажется, причин тут несколько, и одна из них - это поддержка "невидимости" полей в AIF. Те поля, которые в АОТ помечены как невидимые, не видны как обычным пользователям, так и внешним системам, работающим через AIF, поскольку в нем есть ряд ключевых мест, где явно запрещается использовать невидимые поля в качестве критериев фильтрации в запросах, в качестве полей, получаемых в выборке, и тех, для которых устанавливается значение. См. следующие перекрестные ссылки на \Classes\SysDictField\visible:
- \Classes\AxdBase\initQueryFromQuery
- \Classes\AxdBaseCreate\hasFieldAccessMapAdd
- \Classes\AxdBaseGenerateXSD\addTableProperties
- \Classes\AxdBaseRead\buildFieldInfoMap
- \Classes\AxGenerateAxBCClass\defaultParmMethod
Т.е. подобно CodeAccessPermission, видимость полей - это еще один способ сделать так, чтобы определенные вещи можно было выполнять только в коде приложения, но не в стороннем коде через BC. А уж проверки Best Practices на этом фоне - это так, рюшечки.