Имя: Пароль:
1C
1С v8
Разграничение прав и RLS. Непонятная ошибка/УТ 10.3
0 Vigor06
 
13.06.13
09:40
День добрый!
Для определенного пользователя установлены роли "Пользователь" и мною созданная роль "ЗАправки"

В "Заправках" установлены ограничения на документ Реализации(на чтение,изменение,добавление и удаление):

РеализацияТоваровУслуг ГДЕ РеализацияТоваровУслуг.Проект.Наименование= "Заправки"

Открываю документы,вижу там единственный ттакой документ,Все гуд.Но после открытия документа при формировании ТЧ получаю ошшибку:
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(2792)}: Ошибка при получении значения атрибута контекста (Товары)
       Для Каждого СтрокаТовара Из Выборка.ДокументОприходования.Товары Цикл
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.



Код следующий:

Процедура РасчитатьПрибыль(ДанныеСтроки, ОформлениеСтроки)
   
   Ном = ДанныеСтроки.Номенклатура;
   КоличествоДляСписания = ДанныеСтроки.Количество;
   
   ТаблицаПартий = Новый ТаблицаЗначений;
   ТаблицаПартий.Колонки.Добавить("Количество");
   ТаблицаПартий.Колонки.Добавить("Цена");
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("Номенклатура", Ном);
   Запрос.УстановитьПараметр("Склад", Склад);
   Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                  |    ПартииТоваровНаСкладахОстатки.Номенклатура,
                  |    ПартииТоваровНаСкладахОстатки.КоличествоОстаток,
                  |    ПартииТоваровНаСкладахОстатки.СтоимостьОстаток,
                  |    ПартииТоваровНаСкладахОстатки.ДокументОприходования
                  |ИЗ
                  |    РегистрНакопления.ПартииТоваровНаСкладах.Остатки КАК ПартииТоваровНаСкладахОстатки
                  |ГДЕ
                  |    ПартииТоваровНаСкладахОстатки.Номенклатура = &Номенклатура
                  |    И ПартииТоваровНаСкладахОстатки.Склад = &Склад
                  |
                  |УПОРЯДОЧИТЬ ПО
                  |    ПартииТоваровНаСкладахОстатки.ДокументОприходования.Дата";
   Выборка = Запрос.Выполнить().Выбрать();
   КоличествоПартий = 0;
   Пока Выборка.Следующий() Цикл
       
       Для Каждого СтрокаТовара Из Выборка.ДокументОприходования.Товары Цикл
...бла-бла-бла...


Лоступ к регистру полный,так же дал доступ на чтение всех документов из "ДокументОприходования"


В чем может быть ошибка?
Спасибо)
1 razlagator
 
13.06.13
09:46
(0) на какой-то документ, который получаешь в запросе нет прав, срабатывает твоё ограничение
2 Vigor06
 
13.06.13
09:53
(1) у меня на документ "ПоступлениеТоваровИУслуг" тоже стоит ограничение на тип Проекта.Может из-за этого быть?
Или права на документы должны быть не только на чтение?
3 Vigor06
 
13.06.13
09:57
(1)виноват.
Почему то у роли "Пользователь"  практически везде стояло ограничение на чтение "Где ложь"

Интересно,Что оно делало?ЧТО ограничивало?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший