Есть справочник контрагентов. На него прикручен РЛС по группе доступа контрагентов. РЛС настроены следующим образом:
ПрочиеПоля - шаблон по группе доступа
Ссылка, НаименованиеПолное, Код, Наименование - ГДЕ ИСТИНА
когда пользователь выбирает не своего контрагента вываливается ошибка:
{Документ.ПриходныйКассовыйОрдер.МодульОбъекта(1706)}: Ошибка при получении значения атрибута контекста (НаименованиеПолное)
ПринятоОт = ?(Контрагент.НаименованиеПолное="", Контрагент.Наименование, Контрагент.НаименованиеПолное);
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.
Я же дал доступ на поле НаименованиеПолное и на Ссылка !!! Что я делаю не так???
(0) Когда во встроенном языке происходит обращение к реквизиту объекта через точку (как в вашем случае), то из базы считывается весь объект целиком, а на весь объект у вас нет прав, соответственно, система и ругается.
(7) Если требуется получить эти реквизиты, то необходимо использовать запрос, в котором выбрать только эти два поля. Затем через выборку запроса получить значения этих полей. Т,е. будет что-то вроде этого.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
Контрагенты.Наименование,
Контрагенты.НаименованиеПолное
ГДЕ
Контрагенты.Ссылка = &ПарСсылка";
Запрос.УстановитьПараметр("ПарСсылка", Контрагент);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
И вот далее можете получать значения этих реквизитов через объект выборки (Выборка.Наименование или Выборка.НаименованиеПолное).
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший