|
Ограничение доступа на определенный тип цен некоторым пользователям | ☑ | ||
---|---|---|---|---|
0
sohm
12.01.12
✎
15:57
|
Может кто делал? я пытаюсь в ролях настроить ограничение на просмотр справочник Типы цен номенклатуры, но не знаю какой запрос написать. к чему привязаться!
|
|||
1
DrShad
12.01.12
✎
15:58
|
ахренеть, а мы тут все знаем какая у тебя конфа и все прочее
|
|||
2
pumbaEO
12.01.12
✎
15:59
|
##Если &ИспользоватьОграничениеПоЦеныНоменклатуры ##Тогда
ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ СоставГруппы.Ссылка КАК ГруппаПользователей ИЗ Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы ГДЕ СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей ПО (ИСТИНА) ГДЕ НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL И (НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей ПО НастройкиПравДоступаПользователей.ОбъектДоступа = ТекущаяТаблица.#Параметр(1) И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ЦеныНоменклатуры) И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей ГДЕ НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ЦеныНоменклатуры)) И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL)) ##КонецЕсли Это шаблон |
|||
3
vmv
12.01.12
✎
16:00
|
(1) после года на мисте присваивают квалификацию
"1С: телепат". если у тебя нет сертификата - ты жалок) |
|||
4
sohm
12.01.12
✎
16:02
|
(3):)
спасибо огромное ща гляну.... огромное огромное............ |
|||
5
pumbaEO
12.01.12
✎
16:05
|
Ты даже не спросил откуда это... Удачи.
(1) прав, может тебе достаточно будет поставить в одном месте ИспользоватьОграничениеПоЦеныНоменклатуры = Истина и все заработает. |
|||
6
sohm
12.01.12
✎
16:14
|
наверно таки это из УПП (5)
|
|||
7
pumbaEO
12.01.12
✎
16:23
|
А это
#ПоЗначениям( "Справочник.ВидыЦен","Чтение","", "ВидыЦен","Ссылка", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","", "","" ) // ПоЗначениям ( Таблица, Право, Модификатор, В1,П1, В2,Р2, ..., В(n), П(n)). // № параметра: 1, 2, 3, 4, 5, 6, 7, ..., 2+n*2,3+n*2 . // Читается так: "ограничение доступа по значениям". // Параметры: // Таблица - Имя текущей таблицы, например "Документ.ПоступлениеТоваровИУслуг". // Право - Одна из строк "Чтение", "Добавление", "Изменение", "Удаление". // Модификатор - изменяет шаблон. // 1-й модификтор - строка "НеОграничиватьДоступКГруппам" указывает // безусловно выбирать группы иерархического справочника. // Других модификаторов в этой версии шаблона не предусмотрено. // В(n) - Вид доступа (имя предопределённого элемента ПланВидовХарактеристик.ВидыДоступа). // Когда В(n) = "Условие" (или ""), тогда Р(n) содержит строку условия на языке запросов, например // "Т.Автор = &ТекущийПользователь", // "ТипЗначения(Т.Владелец) = Тип(Справочник.Организации)", где Т - псевдоним текущей таблицы. // Если по объекту с таблицей Таблица будет выполняться запись наборов значений доступа, // то условие должно проверять значения только из объекта и/или параметров сеанса, например, &ТекущийПользователь. // Когда В(n) = "ПравоЧтения" ИЛИ "ПравоДобавления" ИЛИ "ПравоИзменения", // выполняется проверка наличия права на таблицу значения Т.Р(n). // П(n) - Поле значения, проверяемого по виду доступа, кроме случая В(n) = "Условие" (или ""). // Примечение: максимальное количество одновременно проверяемых значений полей можно увеличить, изменив шаблон, но // необходимо будет указывать все параметры шаблона, т.е. указывать пустые строки, когда количество полей меньше максимального. // Шаблон имеет структуру: // <Общая часть условий> <Условие по группе параметров 1> И <Условие по группе параметров 2> И ... <Условие по группе параметров(n)> // Пример: // ПоЗначениям("Документ.ПоступлениеТоваровИУслуг", "Чтение", "", // "Организации","Организация", // "Поставщики","Контрагент", "","", ...) // Проверка правильности параметра Модификатор. #Если НЕ ("#Параметр(3)" = "НеОграничиватьДоступКГруппам" ИЛИ "#Параметр(3)" = "") #Тогда // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. НеверныйМодификатор: #Параметр(3) #КонецЕсли // Проверка правильности параметра Право. #Если НЕ ("#Параметр(2)" = "Чтение" ИЛИ "#Параметр(2)" = "Добавление" ИЛИ "#Параметр(2)" = "Изменение" ИЛИ "#Параметр(2)" = "Удаление") #Тогда // Когда параметр задан неверно, вставляется строка, чтобы вызвать ошибку сборки ограничения доступа. НеверноеПраво: #Параметр(2) #КонецЕсли // Общая проверка использования ограничений доступа на уровне записей. #Если НЕ &ОграничиватьДоступПоВиду = "" #Тогда Т ИЗ Т // Т - псевдоним текущей таблицы (выбран коротким, чтобы сократить количество символов в тексте параметра-условия на языке запросов). //// Подготовка ТипаСсылки значения поля группы параметров 1. #Если "#Параметр(4)" = "ПравоЧтения" ИЛИ "#Параметр(4)" = "ПравоДобавления" ИЛИ "#Параметр(4)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр5 ПО ТипЗначения(#Параметр(5)) = ТипЗначения(ТипыСсылокПараметр5.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 2. #Если "#Параметр(6)" = "ПравоЧтения" ИЛИ "#Параметр(6)" = "ПравоДобавления" ИЛИ "#Параметр(6)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр7 ПО ТипЗначения(#Параметр(7)) = ТипЗначения(ТипыСсылокПараметр7.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 3. #Если "#Параметр(8)" = "ПравоЧтения" ИЛИ "#Параметр(8)" = "ПравоДобавления" ИЛИ "#Параметр(8)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр9 ПО ТипЗначения(#Параметр(9)) = ТипЗначения(ТипыСсылокПараметр9.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 4. #Если "#Параметр(10)" = "ПравоЧтения" ИЛИ "#Параметр(10)" = "ПравоДобавления" ИЛИ "#Параметр(10)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр11 ПО ТипЗначения(#Параметр(11)) = ТипЗначения(ТипыСсылокПараметр11.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 5. #Если "#Параметр(12)" = "ПравоЧтения" ИЛИ "#Параметр(12)" = "ПравоДобавления" ИЛИ "#Параметр(12)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр13 ПО ТипЗначения(#Параметр(13)) = ТипЗначения(ТипыСсылокПараметр13.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 6. #Если "#Параметр(14)" = "ПравоЧтения" ИЛИ "#Параметр(14)" = "ПравоДобавления" ИЛИ "#Параметр(14)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр15 ПО ТипЗначения(#Параметр(15)) = ТипЗначения(ТипыСсылокПараметр15.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 7. #Если "#Параметр(16)" = "ПравоЧтения" ИЛИ "#Параметр(16)" = "ПравоДобавления" ИЛИ "#Параметр(16)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр17 ПО ТипЗначения(#Параметр(17)) = ТипЗначения(ТипыСсылокПараметр17.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 8. #Если "#Параметр(18)" = "ПравоЧтения" ИЛИ "#Параметр(18)" = "ПравоДобавления" ИЛИ "#Параметр(18)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр19 ПО ТипЗначения(#Параметр(19)) = ТипЗначения(ТипыСсылокПараметр19.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 9. #Если "#Параметр(20)" = "ПравоЧтения" ИЛИ "#Параметр(20)" = "ПравоДобавления" ИЛИ "#Параметр(20)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр21 ПО ТипЗначения(#Параметр(21)) = ТипЗначения(ТипыСсылокПараметр21.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 10. #Если "#Параметр(22)" = "ПравоЧтения" ИЛИ "#Параметр(22)" = "ПравоДобавления" ИЛИ "#Параметр(22)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр23 ПО ТипЗначения(#Параметр(23)) = ТипЗначения(ТипыСсылокПараметр23.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 11. #Если "#Параметр(24)" = "ПравоЧтения" ИЛИ "#Параметр(24)" = "ПравоДобавления" ИЛИ "#Параметр(24)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр25 ПО ТипЗначения(#Параметр(25)) = ТипЗначения(ТипыСсылокПараметр25.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 12. #Если "#Параметр(26)" = "ПравоЧтения" ИЛИ "#Параметр(26)" = "ПравоДобавления" ИЛИ "#Параметр(26)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр27 ПО ТипЗначения(#Параметр(27)) = ТипЗначения(ТипыСсылокПараметр27.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 13. #Если "#Параметр(28)" = "ПравоЧтения" ИЛИ "#Параметр(28)" = "ПравоДобавления" ИЛИ "#Параметр(28)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр29 ПО ТипЗначения(#Параметр(29)) = ТипЗначения(ТипыСсылокПараметр29.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 14. #Если "#Параметр(30)" = "ПравоЧтения" ИЛИ "#Параметр(30)" = "ПравоДобавления" ИЛИ "#Параметр(30)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр31 ПО ТипЗначения(#Параметр(31)) = ТипЗначения(ТипыСсылокПараметр31.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 15. #Если "#Параметр(32)" = "ПравоЧтения" ИЛИ "#Параметр(32)" = "ПравоДобавления" ИЛИ "#Параметр(32)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр33 ПО ТипЗначения(#Параметр(33)) = ТипЗначения(ТипыСсылокПараметр33.ТипТаблицы) #КонецЕсли //// Подготовка ТипаСсылки значения поля группы параметров 16. #Если "#Параметр(34)" = "ПравоЧтения" ИЛИ "#Параметр(34)" = "ПравоДобавления" ИЛИ "#Параметр(34)" = "ПравоИзменения" #Тогда Левое Соединение Справочник.ПрофилиГруппДоступа.ТипыСсылок КАК ТипыСсылокПараметр35 ПО ТипЗначения(#Параметр(35)) = ТипЗначения(ТипыСсылокПараметр35.ТипТаблицы) #КонецЕсли ГДЕ // Безусловная выборка групп в иерархическом объекте метаданных (если нужно). и так еще n строк. |
|||
8
sohm
25.01.12
✎
09:40
|
люди, у меня что то не получается ограничить права! в запросе (2) я передаю #Параметр1 = "ГруппыДоступаКТипамЦен" данный реквизит я создал в справочнике Типы цен, в общем сделал все по аналогии с "ГруппыДоступаККонтрагентам". добавил два перечисления ОбластиДанныхОбъектовДоступа.ЦеныНоменклатуры и ВидыОбъектовДоступа.ЦеныНоменклатуры.
в предприятии сделал настройки, вроде нигде не ругается ограничения по контрагентам - работают а мои - нет ). помогите! |
|||
9
sohm
25.01.12
✎
13:42
|
Обнаружено несоответствие настроек!
Для некоторых групп пользователей, используемых в текущих настройках ограничения прав, выключено использование ограничений по видам объектов доступа. Такие текущие настройки доступа не имеют смысла, потому что разрешения на указанные объекты такие группы пользователей все равно не получат. Возможно, следует скорректировать использование видов объектов доступа в форме группы пользователей. Следует проверить следующие группы пользователей: - Менеджер по продажам () Где включается использование использование ограничений по видам объектов доступа??????????? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |