Подскажите, как оптимально сделать, чтобы при открытии формы проверялся доступ пользователя к реквизитам формы и недоступные элементы формы не отображались?
Можно как-то оптимальнее, чем это:
Для Каждого Реквизит Из Метаданные.Документы.А_Заявка.Реквизиты Цикл
ЭлементФормы = ЭлементыФормы.Найти(Реквизит.Имя);
Если ЭлементФормы <> Неопределено Тогда
Если ПравоДоступа("Просмотр",Реквизит) Тогда
ЭлементФормы.Видимость = Истина;
Если ПравоДоступа("Редактирование",Реквизит) Тогда
ЭлементФормы.Доступность = Истина;
Иначе
ЭлементФормы.Доступность = Ложь;
Конецесли;
Иначе
ЭлементФормы.Видимость = Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;
(2)Не знаю. Просто подумал, что вдруг все намного проще :)
Еще подумал про RLS, но там ведь ограничение на доступ к записи БД, а не на реквизит? Да и RSL вроде не может же влиять на отрисовку формы.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший