Имя: Пароль:
1C
1С v8
Настройка прав доступа УТ 8.2 10.3
0 EKO LX
 
05.11.12
15:03
К сожалению в УТ в отличие от УПП при включении Ограничение права доступа на уровне записей фильтрацию можно настраивать только в разрезе Организация и Группа контрагентов, в УПП же есть также Подразделения, Склады, Типы цен и т.д. Поэтому немножко трудновато. Создаю роль для кассира. Доступы для многих объектов настроил, кроме одной детали. Для документа Реализация товаров и услуг есть почти все права, кроме интерактивного удаления. но вот при записи или проведения выдает ощибку

{ОбщийМодуль.НастройкаПравДоступа(929)}: Ошибка при установке значения атрибута контекста (МетаданныеДокументовРегистрацииОбъектовДоступа)
       ПараметрыСеанса.МетаданныеДокументовРегистрацииОбъектовДоступа = Новый ХранилищеЗначения(СоответствиеДанных);
по причине:
Нарушение прав доступа!

не пойму где это, что это? ошибку показывает в

Функция ПолучитьТаблицуСвойствДляРегистрацииОбъектовДоступаДокумента(МетаданныеДокумента) Экспорт

   СоответствиеДанных = ПараметрыСеанса.МетаданныеДокументовРегистрацииОбъектовДоступа.Получить();
   ИскомыйКлюч = Тип("ДокументСсылка." + МетаданныеДокумента.Имя);

   ИскомоеЗначение = СоответствиеДанных[ИскомыйКлюч];
   Если ИскомоеЗначение = Неопределено Тогда // данных по этому документу нет
       МассивИскомыхТипов = СоответствиеДанных["ТипыОбъектовДоступа"];

       ТаблицаСвойств = Новый ТаблицаЗначений;
       ТаблицаСвойств.Колонки.Добавить("ИмяТЧ");
       ТаблицаСвойств.Колонки.Добавить("ИмяСвойства");

       // Обработаем реквизиты шапки.
       РеквизитыДокумента = МетаданныеДокумента.Реквизиты;
       Для каждого Реквизит Из РеквизитыДокумента Цикл
           ОписаниеТиповРеквизита = Реквизит.Тип;
           Для каждого ИскомыйТип Из МассивИскомыхТипов Цикл
               Если ОписаниеТиповРеквизита.СодержитТип(ИскомыйТип) Тогда
                   НоваяСтрока = ТаблицаСвойств.Добавить();
                   НоваяСтрока.ИмяТЧ = "";
                   НоваяСтрока.ИмяСвойства = Реквизит.Имя;
                   Прервать;
               КонецЕсли;
           КонецЦикла;
       КонецЦикла;

       // Обработаем табличные части.
       ТабличныеЧастиДокумента = МетаданныеДокумента.ТабличныеЧасти;
       Для каждого ТЧ Из ТабличныеЧастиДокумента Цикл
           РеквизитыТЧДокумента = ТЧ.Реквизиты;
           Для каждого Реквизит Из РеквизитыТЧДокумента Цикл
               ОписаниеТиповРеквизита = Реквизит.Тип;
               Для каждого ИскомыйТип Из МассивИскомыхТипов Цикл
                   Если ОписаниеТиповРеквизита.СодержитТип(ИскомыйТип) Тогда
                       НоваяСтрока = ТаблицаСвойств.Добавить();
                       НоваяСтрока.ИмяТЧ = ТЧ.Имя;
                       НоваяСтрока.ИмяСвойства = Реквизит.Имя;
                       Прервать;
                   КонецЕсли;
               КонецЦикла;
           КонецЦикла;
       КонецЦикла;

       СоответствиеДанных.Вставить(ИскомыйКлюч, ТаблицаСвойств);

       ПараметрыСеанса.МетаданныеДокументовРегистрацииОбъектовДоступа = Новый ХранилищеЗначения(СоответствиеДанных);
   Иначе
       ТаблицаСвойств = ИскомоеЗначение;
   КонецЕсли;

   Возврат ТаблицаСвойств;

КонецФункции // ПолучитьТаблицуСвойствДляРегистрацииОбъектовДоступаДокумента()
1 EKO LX
 
05.11.12
15:34
Не пометил в новой роли объект Общие - Параметры сеанса. после пометки все заработало
2 EKO LX
 
05.11.12
16:05
А как сделать чтобы каждый кассир видел только свой КассаККМ и свой Склад? Помогите пожалуйста очень нужно. В УПП я бы сделал, но в УТ РЛС не обширен.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.