|
![]() |
#1 |
Участник
|
Забираю свои слова относительно того, что можно реализовать систему безопасности на уровне записи без модификации системы. Alex_V оказался прав. Т.е. технологически это возможно (на этом основывалось мое утверждение), но практика программирования, принятая в Attain, когда программисты пишут код в предположении, что они имеют доступ ко всей таблице, этому препятствует. Например, в нашем примере с операциями бюджета формировние ИД новой записи производится следующим образом (Table 96 G/L Budget Entry):
LOCAL PROCEDURE GetNextEntryNo@4() : Integer; VAR GLBudgetEntry@1000 : Record 96; BEGIN GLBudgetEntry.SETCURRENTKEY("Entry No."); IF GLBudgetEntry.FIND('+') THEN EXIT(GLBudgetEntry."Entry No." + 1) ELSE EXIT(1); END; Естественно, если этот код выполняется от имени пользователя, который не видит всех данных, то он будет работать некорректно. Аналогичным образом производится формирование ИД практически для всех операций :-(. |
|