Пользователю нужно дать полные права на справочник Банковские счета. Но у пользователя не должно быть прав на справочник Контрагенты. Но так как при сохранении записи в справочнике Банковские счета, в справочнике Контрагенты записывается поле ОсновнойБанковскийСчет.
Как настроить права на справочник Контрагенты, чтобы у пользователя были права только на поле ОсновнойБанковскийСчет?
Думала, что достаточно у полей убрать право Редактирование - но так не получилось....
насколько я поняла, нужно на справочник Контрагенты дать права: Просмотр, Чтение, Изменение.
И право Редактирование оставить только одному полю ОсновнойБанковскийсчет. Верно?
(3) user_2010, просто изменение. Чтение само добавится. Просмотр нужен если пользователь смотреть собрался. Редактирование если интерактивно редактировать будет.
насколько я понял - нужно на справочнике контрагенты добавить все права (редактирование, просмотр, чтение, изменение), а вот с реквизитов, кроме основнойбанковскийсчет и стандартных реквизитов, убрать редактирование (возможно и просмотр). Тогда на УФ будет невозможно редактировать все кроме основнойбанковскийсчет.
не получается настроить никак: либо права на все поля справочника Контрагенты, либо ни на одно поле нет прав в справочнике Контрагенты....
(5) 32ops, сейчас попробую ваш вариант...
(5) 32ops, да, ваш вариант сработал! Спасибо!
Единственное неудобство, что в интерфейсе карточки Контрагента все поля доступны для редактирования... и если пользователь изменит не только Банковский счет, а еще какое-нибудь поле, то программа пишет "Нарушение прав доступа"... и нет конкретики - что за поле недоступно... А хотелось бы, чтобы все поля были недоступны для редактирования, кроме Банковских счетов.
Такое возможно настроить?
(7) user_2010, ну так поиграйтесь в правами. Вам же все объяснили редактирование это редактирование, просмотр это просмотр, изменение это не интерактивный режим.
какая-то логика есть назначении прав....
я делаю так:
1. изменяю права на роль в режиме 1С.Конфигуратор
2. в режиме 1С.Предприятие создаю новый Профиль доступа - даю права на мою роль
3. в режиме 1С.Предприятие добавляю права пользователю на мой новый профиль.
А если я просто изменяю права у роли - какие действия нужно выполнить еще?
...возникло подозрение, что я-то меняю..., а реально права остаются теже? не меняются, потому как сейчас с правами, как написал (5) 32ops, ранее давала редактировать прочие поля, а теперь с этими же правами - уже не дает редактировать прочие поля....
???
Проблема с настройкой прав. Не пойму в чем затык.
Добавила РегистрСведений в свою Подсистему. Создала Роль, которой дала полные права на подсистему и на мой РегистрСведений.
Создала ПрофильГруппыДоступа, в него включила только мою Роль.
Назначила данную группу доступа пользователю. Пользователь видит Подсистему, видит мой РегистрСведений, но добавить запись в него не может.
Не пойму почему.
Кэш чищу.
(14) user_2010, странное дело - редактировать записи регистра сведений дает, а вот создать новую. запись - не дает: Нарушение прав доступа!
??? Какие права надо еще дать? Регистр сведений независимый, для роли указаны все галочки для моего регистра сведений...
(20) alwiz3, (22) Xershi, Для моей Роли добавила право АдминистрированиеДанных - и заработало! Спасибо!
Остается вопрос: на что получил права пользователь при установке права АдминистрированиеДанных???
Судя по описанию:
● АдминистрированиеДанных (DataAdministration) – данное право регулирует административные действия над данными. К этим действиям относятся:
● Просмотр записей журнала регистрации и получение значений отбора без ограничений.
● Установка часового пояса информационной базы (области данных) – вызов метода УстановитьЧасовойПоясИнформационнойБазы().
● Создание начального образа подчиненного узла распределенной информационной базы (вызов метода СоздатьНачальныйОбраз()).
● Обновление нумерации объектов (вызов метода ОбновитьНумерациюОбъектов()).
● Выполнение методов объекта СтандартноеХранилищеНастроекМенеджер в тех случаях, если выполняется работа с настройками пользователя, отличными от текущего.
Чего из этого не хватало пользователю? Выполнение методов объекта СтандартноеХранилищеНастроекМенеджер?
1. не трогать типовые права
2. создать(сгенерить, скоприровать) новую форму для редактирования банковских счетов
3. закинуть эту форму в дополнительные обработки и дать право на нее определенному пользователю
4. В этой обработке при записи и в остальных точках модификации данных УстановитьПривилегированныйРежим()
Проверила: убрала право АдминистрированиеДанных, дала права на справочник Удалить_УчетныеЗаписиДокументооборота - добавить запись в регистр сведений нельзя.
Право АдминистрированиеДанных решает проблему. Но смущает что этого права нет у других обычных ролей.
(35) user_2010, значит у вас код так работает. Возможно при записи в регистр включается привелигированный режим, тогда и не нужно права, оно дается только под эту операцию в коде.
Что конкретно пояснить, спрашивайте. Если не понимаете в принципе, то просто методическую информацию почитайте.
(37) Xershi, меня сейчас интересует: если пользователь от моей роли получает право АдминистрированиеДанных для конфигурации - чем это чревато? Это нормально? Или такое право АдминистрированиеДанных ни в коем случае нельзя давать простому пользователю?
(35) См. подписки на события, может при добавлении записи что-то еще обрабатывается. Я так понял там БСП? Попробуй еще запустить с ключом /cЗапуститьОбновлениеИнфомационнойБазы.
(52) alwiz3, зашла отладчиком под пользователем с правами на мою роль (с доступом на мой рег сведений). При добавлении записи в регистр сведений выдается такая ошибка:
{Справочник.Организации.МодульМенеджера(33)}: Ошибка при вызове метода контекста (Загрузить)
ОсновнаяОрганизация = ХранилищеОбщихНастроек.Загрузить("ОсновнаяОрганизация",,, ИмяПользователяИБ);
по причине:
Нарушение прав доступа!
(62) alwiz3, пользователь точно текущий, смотрю отладчиком:
когда пользователь открывает "Кассовые документы" идет обращение к этой строке кода
ОсновнаяОрганизация = ХранилищеОбщихНастроек.Загрузить("ОсновнаяОрганизация",,, ИмяПользователяИБ);
но в этом случае ИмяПользователяИБ = Неопределено - почему-то????
А когда я в своем регистре сведений добавляю запись и вызываю поиск основной организации - в этом случае ИмяПользователяИБ = текущему пользователю и выдается ошибка на нарушение прав доступа!
когда пользователь открывает "Кассовые документы" идет обращение к этой строке кода
ОсновнаяОрганизация = ХранилищеОбщихНастроек.Загрузить("ОсновнаяОрганизация",,, ИмяПользователяИБ);
но в этом случае ИмяПользователяИБ = Неопределено - почему-то????
Тип: Строка.
Ключ объекта настройки.
Подробнее см. в Настройки, автоматически сохраняемые в системном хранилище.
<КлючНастроек> (необязательный)
Тип: Строка.
Ключ загружаемых настроек.
Значение по умолчанию: Пустая строка.
<ОписаниеНастроек> (необязательный)
Тип: ОписаниеНастроек.
Описание настроек.
Если не указан, то описание настройки не загружается.
<ИмяПользователя> (необязательный)
Тип: Строка.
Имя пользователя, настройки которого загружаются.
Если не указан, то загружаются настройки текущего пользователя. В случае переименования пользователя прежние настройки не загружаются.
Если будет создан пользователь, имя которого совпадает с именем прежнего пользователя, для него будут использованы существующие настройки.
Если указан пользователь, не являющийся текущим пользователем, т.е. делается попытка обратиться к настройкам, не принадлежащим текущему пользователю, то требуется наличие у текущего пользователя права АдминистрированиеДанных.
(67) alwiz3, спасибо! буду смотреть что с пользователями. Но отладчик показывает именно того пользователя, под которым запущена 1С!
Текущего пользователя передала Неопределено - и заработало! Спасибо огромное!
(66) Xershi, мы используем разную аутентификацию: пользователи заходят в 1С с V Аутентификация операционной системы.
Мне же нужно проверить права и функционал под пользователем - я установила еще V Аутентификация 1С:Предприятия - запускала 1С, выбирала пользователя и проверяла...
Решение:
0. Создаем роль пустую , называем "ЗапретНаРедактированиеСправочника"
1. В общем модуле было создан объект: ЗапретНаРедактированиеСправочника (рис1) с кодом:
Отказ = РольДоступна("ЗапретНаРедактированиеСправочника");
Если РольДоступна("ЗапретНаРедактированиеСправочника") Тогда
Сообщить ("У вас нет прав, обратитесь к руководителю отдела!");
КонецЕсли;
КонецПроцедуры
2. В подписках на события создаем объект "ЗапретНаРедактированиеСправочника" и в свойствах в "источниках" указываем объекты справочника которые будут запрещены для редактирования и добавления.
3.Добавляем пользователю ЧЕРЕЗ КОНФИГуРАТОР роль "ЗапретНаРедактированиеСправочника"
4.Радуемся жизни :)
Может быть как-то некорректно внедрен в конфигурацию добавленный мной регистр сведений?
При выполнении обработки ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf выдается сообщение:
Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.
При проверке ролей для пользователей приложения найдены ошибки:
Роль "Удаленный доступ (стандартный интерфейс OData)" содержит право Изменение неразделенного объекта Константа.ОсновнаяСиситемаНалогообложения.
Роль "Удаленный доступ (стандартный интерфейс OData)" содержит право Изменение неразделенного объекта Константа.ОсновнойВидОрганизации.
Может быть тут копать?
Но роль-то появляется и ее назначение пользователям - работает. ???
Кто-нибудь понимает в чем проблема?
Может быть как-то некорректно внедрен в конфигурацию добавленный мной регистр сведений?
При выполнении обработки ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf выдается сообщение:
Ошибка в процедуре ПриОпределенииНазначенияРолей общего модуля ПользователиПереопределяемый.
При проверке ролей для пользователей приложения найдены ошибки:
Роль "Удаленный доступ (стандартный интерфейс OData)" содержит право Изменение неразделенного объекта Константа.ОсновнаяСиситемаНалогообложения.
Роль "Удаленный доступ (стандартный интерфейс OData)" содержит право Изменение неразделенного объекта Константа.ОсновнойВидОрганизации.
Знаю, что прошло время и вопрос скорей-всего решен, но может кому-то пригодится.
Данная ошибка возникает, если добавленный/существующий объект не является "разделенным".
Чтобы БСП видела этот объект как разделенный, необходимо в общем реквизите "ОбластьДанныхОсновныеДанные" изменить "Состав", найти там объект по которому возникает ошибка и в использование проставить "Автоматически".
Играет ли какую-то роль, что в конфигурации версия БСП 2.3.2.70, а я запускаю обработку ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf от версии БСП 2.3.2.77?
(56) Xershi, я не понимаю вас. Может конкретнее объяснить что где посмотреть и как это может быть связано с ошибкой, которую выдает обработка ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf?
значит все-таки проблема в недостатке прав на Выполнение методов объекта СтандартноеХранилищеНастроекМенеджер.
А как еще дать права на СтандартноеХранилищеНастроекМенеджер кроме как установив права АдминистрированиеДанных?
с этими значениями по умолчанию в 8.3 намудрили. В 8.2 это были просто настройки пользователя, а в 8.3 - это типа статистика наиболее часто используемого значения...
Вдруг это будет еще кому-то нужно.
Нужно, чтобы на все объекты метаданных (справочники/ПВХ и т.д.), которые используются в собственном регистре, было установлено хотя бы право Чтение.
Иначе получается, что у вас пользователь может изменять, например, значение реквизита регистра, но не имеет доступ к данным, на которые этот реквизит ссылается.
Например.
РС_МойРегистрСведений - право Изменение
Измерение Номенклатура - право Изменение
Справочник Номенклатура - права не установлены (вот тут поставить хотя бы Чтение)