Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Ограничение доступа к элементам и разделам справочника. 2 страниц V   1 2 >          
Михрутка Подменю пользователя
сообщение 04.02.13, 17:42
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

Как ограничить некоторым пользователям выборочный доступ к элементам справочника номенклатура? Т.е. чтобы некоторые позиции для них были не видны? Никак не могу вкурить как создать ограничение.

logist Подменю пользователя
сообщение 04.02.13, 17:50
Сообщение #2

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

В Номенклатуре должен быть какой-то реквизит по которому берется ограничение, или регистр сведений где хранится зависимость ограничений.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Михрутка Подменю пользователя
сообщение 04.02.13, 17:53
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

Допустим такой реквизит есть, как тогда?

Vofka Подменю пользователя
сообщение 04.02.13, 17:55
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

logist, откуда вы знаете, не зная условия ограничения? smile.gif

На подобного рода вопросы
Цитата(Михрутка @ 04.02.13, 17:42) *
чтобы некоторые позиции для них были не видны

можно дать единственный правильный ответ: составить некое условие, в результате которого некоторые позиции не будут видны.

Михрутка Подменю пользователя
сообщение 04.02.13, 17:58
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

Vofka, мне всегда интересен Ваш юмор. smile.gif
Но сейчас мне интересно, как же это его задать? как указать необходимый параметр?

logist Подменю пользователя
сообщение 04.02.13, 19:26
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Михрутка @ 04.02.13, 17:58) *
как указать необходимый параметр?

Делаете РС в котором будит значится кому какое значение этого параметра будет доступно, и через RLS настраиваете доступ.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Спасибо сказали: andreykyiv@bigmir.net,

Vofka Подменю пользователя
сообщение 04.02.13, 19:31
Сообщение #7

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата(Михрутка @ 04.02.13, 17:58) *
Но сейчас мне интересно, как же это его задать? как указать необходимый параметр?

Сформулируйте задачу чётче, непонятно ведь ничего: есть некий реквизит и надо скрыть некий товар. Ну как это можно понять?

Михрутка Подменю пользователя
сообщение 05.03.13, 11:33
Сообщение #8

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

Цитата(Vofka @ 04.02.13, 19:31) *
Сформулируйте задачу чётче, непонятно ведь ничего: есть некий реквизит и надо скрыть некий товар. Ну как это можно понять?

Согласен. Замечание по существу.
Конкретизирую. Есть справочник, например, номенклатуры. В справочнике все товары и услуги разделены на 2 корневые группы, "Продажа" и "Учет". Нужно сделать так, чтобы пользователь не имеющей роли "Администрирование" не мог видеть все товары и услуги из группы "Учет". На первый взгляд задача простая, но у меня не получается. Помогите, пожалуйста. спасибо.

zay Подменю пользователя
сообщение 05.03.13, 12:12
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 163
Из: Киев
Спасибо сказали: 131 раз
Рейтинг: 137.1

Добавьте в перечисление ВидыОбъектовДоступа значение Номенклатура
В измерение ОбъектДоступа регистра НастройкиПравДоступаПользователей добавьте тип Номенклатура

Роли - Все ограничения доступа - Шаблоны ограничений
Добавьте шаблон:
ОграничениеНаНоменклатуру
Текст шаблона:
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК ПраваДоступа
        ПО ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Номенклатура)
        И ПраваДоступа.Пользователь = &ТекущийПользователь
        И ТекущаяТаблица.Родитель.Ссылка = ПраваДоступа.ОбъектДоступа
        
ГДЕ
    (НЕ ПраваДоступа.ОбъектДоступа ЕСТЬ NULL)


Для всех основных ролей настройте RLS (используя созданный шаблон) для справочника Номенклатура

В приложении заполните регистр НастройкиПравДоступаПользователей. Для пользователей администраторов дайте права и на "Продажа" и на "Учет". Для всех остальных - только на "Продажа". (Объект доступа - это группа из справочника "Номенклатура")

Кроме прав доступа непосредственно справочника - проверьте работу отчетов, которыми пользуются пользователи. Скорее всего часть из них перестанет работать с ошибкой "Недостаточно прав доступа". Необходимо подобавлять слово РАЗРЕШЕННЫЕ в запросы.

Сообщение отредактировал zay - 05.03.13, 12:34

Спасибо сказали: andreykyiv@bigmir.net,

logist Подменю пользователя
сообщение 05.03.13, 13:03
Сообщение #10

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

И ТекущаяТаблица.Родитель.Ссылка = ПраваДоступа.ОбъектДоступа

А ограничение будет действовать только на элементы корневой папки? Т.е. если я путем ручного ввода введу в поле ввода название элемента где-то из глубины иерархии, я же получу к нему доступ...


Signature
Личные бесплатные консультации не даю, для этого есть форум!

zay Подменю пользователя
сообщение 05.03.13, 13:27
Сообщение #11

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 163
Из: Киев
Спасибо сказали: 131 раз
Рейтинг: 137.1

Цитата(logist @ 05.03.13, 13:03) *
А ограничение будет действовать только на элементы корневой папки? Т.е. если я путем ручного ввода введу в поле ввода название элемента где-то из глубины иерархии, я же получу к нему доступ...

Согласен. Правильно надо писать
ТекущаяТаблица.Родитель.Ссылка = ПраваДоступа.ОбъектДоступа
ИЛИ ТекущаяТаблица.Родитель.Родитель.Ссылка = ПраваДоступа.ОбъектДоступа

Это исходя из того, что в справочнике 2 уровня иерархии. Если больше - надо будет плодить ИЛИ ....Родитель.Родитель

Воообще, ИМХО, делать ограничение по группе в которой находится элемент - неудачная идея. Помимо "некрасивого" запроса для RLS тут как минимум еще две проблемы.
1. Пользователи не всегда создают номенклатуру в правильной группе.
2. Если будут появлятся новые корневые группы - по ним надо будет настраивать права доступа.
Я бы делал ограничение через реквизит номенклатуры.

Сообщение отредактировал zay - 05.03.13, 13:36

yuritch Подменю пользователя
сообщение 05.03.13, 13:43
Сообщение #12

Общительный
Иконка группы
Группа: Местный
Сообщений: 46
Спасибо сказали: 21 раз
Рейтинг: 0

Вот так должно работать для любой глубины вложенности:
И ТекущаяТаблица.Родитель.Ссылка В ИЕРАРХИИ (ПраваДоступа.ОбъектДоступа)

(никогда не использовал В ИЕРАРХИИ в RLS, не уверен, что такая конструкция будет работать достаточно быстро)

zay Подменю пользователя
сообщение 05.03.13, 13:53
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 163
Из: Киев
Спасибо сказали: 131 раз
Рейтинг: 137.1

Цитата(yuritch @ 05.03.13, 13:43) *
Вот так должно работать для любой глубины вложенности:
И ТекущаяТаблица.Родитель.Ссылка В ИЕРАРХИИ (ПраваДоступа.ОбъектДоступа)

К сожалению это работать не будет
условие В ИЕРАРХИИ работатет так:
В ИЕРАРХИИ (&ТутДолженБытьПараметр)

Михрутка Подменю пользователя
сообщение 20.03.13, 8:53
Сообщение #14

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

Цитата(zay @ 05.03.13, 13:27) *
Согласен. Правильно надо писать
ТекущаяТаблица.Родитель.Ссылка = ПраваДоступа.ОбъектДоступа
ИЛИ ТекущаяТаблица.Родитель.Родитель.Ссылка = ПраваДоступа.ОбъектДоступа

Это исходя из того, что в справочнике 2 уровня иерархии. Если больше - надо будет плодить ИЛИ ....Родитель.Родитель

Воообще, ИМХО, делать ограничение по группе в которой находится элемент - неудачная идея. Помимо "некрасивого" запроса для RLS тут как минимум еще две проблемы.
1. Пользователи не всегда создают номенклатуру в правильной группе.
2. Если будут появлятся новые корневые группы - по ним надо будет настраивать права доступа.
Я бы делал ограничение через реквизит номенклатуры.

Хорошо, если по группам не правильно, как лучше сделать. Как бы сделали Вы? Через какой реквизит? Т.е. нужно добавить еще один реквизит к элементу номенклатуры, ну назовем его допустим "Запрет доступа" и если реквизит установлен, то элемент не виден, а если нет, то виден. Опять таки через RLS ограничение создается. Я правильно понял Ваше предложение?

Petre Подменю пользователя
сообщение 20.03.13, 9:16
Сообщение #15

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Хитрый юзер возьмет и перенесет элемент в другую группу, посмотрит реквизит и вернет обратно в начальную группу.
Вообще к группе привязываться не рекомендую.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

zay Подменю пользователя
сообщение 20.03.13, 10:34
Сообщение #16

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 163
Из: Киев
Спасибо сказали: 131 раз
Рейтинг: 137.1

Цитата(Михрутка @ 20.03.13, 8:53) *
Хорошо, если по группам не правильно, как лучше сделать. Как бы сделали Вы? Через какой реквизит? Т.е. нужно добавить еще один реквизит к элементу номенклатуры, ну назовем его допустим "Запрет доступа" и если реквизит установлен, то элемент не виден, а если нет, то виден. Опять таки через RLS ограничение создается. Я правильно понял Ваше предложение?

Да, добавить еще один реквизит "Уровень доступа". Ссылка на справочник "Уровни доступа к номенклатуре". В справочнике "Уровни доступа к номенклатуре" два элемента: "Продажа" и "Учет".
При записи номенклатуры, если "Уровень доступа" не установлен - два варианта:
ругаться и не давать записывать
инициализация в значение "Продажа" или "Учет", в зависимости от прав пользователя, который создает номенклатуру

Дальше RLS ограничение
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК ПраваДоступа
        ПО ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Номенклатура)
        И ПраваДоступа.Пользователь = &ТекущийПользователь
        И ТекущаяТаблица.УровеньДоступа = ПраваДоступа.ОбъектДоступа
        
ГДЕ
    (НЕ ПраваДоступа.ОбъектДоступа ЕСТЬ NULL)

Объект доступа - это элемент из справочника "Уровни доступа к номенклатуре"

Спасибо сказали: BBDragon,

Михрутка Подменю пользователя
сообщение 20.03.13, 12:26
Сообщение #17

Оратор
*****
Группа: Пользователи
Сообщений: 311
Из: Харьков
Спасибо сказали: 7 раз
Рейтинг: 0

Цитата(zay @ 20.03.13, 10:34) *
Да, добавить еще один реквизит "Уровень доступа". Ссылка на справочник "Уровни доступа к номенклатуре". В справочнике "Уровни доступа к номенклатуре" два элемента: "Продажа" и "Учет".
При записи номенклатуры, если "Уровень доступа" не установлен - два варианта:
ругаться и не давать записывать
инициализация в значение "Продажа" или "Учет", в зависимости от прав пользователя, который создает номенклатуру

Дальше RLS ограничение
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица

    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК ПраваДоступа
        ПО ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Номенклатура)
        И ПраваДоступа.Пользователь = &ТекущийПользователь
        И ТекущаяТаблица.УровеньДоступа = ПраваДоступа.ОбъектДоступа
        
ГДЕ
    (НЕ ПраваДоступа.ОбъектДоступа ЕСТЬ NULL)

Объект доступа - это элемент из справочника "Уровни доступа к номенклатуре"

Спасибо. Сегодня попробую реализовать. Отпишусь по результату.

Спасибо сказали: BBDragon,

BBDragon Подменю пользователя
сообщение 28.06.16, 12:22
Сообщение #18

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

Каюсь за некропостинг, но хотелось бы узнать - как реализовать то же самое в 8.3, например УТ 11.1? Заранее спасибо!

Как ограничить некоторым пользователям выборочный доступ к элементам справочника номенклатура в УТ 11.1? Т.е. чтобы при реализации и приходовании каждой группе пользователей были доступны только свои позиции.
Была подобная тема (http://pro1c.org.ua/index.php?showtopic=10965), но там было под 8.2


 i 

Объединил темы
 


Сообщение отредактировал logist - 28.06.16, 14:21

zetovich Подменю пользователя
сообщение 28.06.16, 13:38
Сообщение #19

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

RLS

Сообщение отредактировал zetovich - 28.06.16, 13:39

Спасибо сказали: BBDragon,

BBDragon Подменю пользователя
сообщение 28.06.16, 13:42
Сообщение #20

Молчаливый
*
Группа: Пользователи
Сообщений: 5
Спасибо сказали: 0 раз
Рейтинг: 0

zetovich @ Сегодня, 14:38 *,
Это понятно, но хотелось бы конкретный пример увидеть. C RLS дела не имел

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 19.04.24, 22:09
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!