УПП 1.3. Создал новую роль МенеджерНов роли дал все права на документ ЗаказПокупателя. Перехожу к реквизиту Организация и почему-то не доступно "Ограничение доступа к данным".
Вопрос: как включить использование "Ограничение доступа к данным"?
(2) Мне нужно ограничение доступа к организации только в реквизите документа Организация документа ЗаказПокупателя. Больше нигде ограничения по Организации не надо.
Опять у меня мозг сломался от вопроса, но, насколько я понимаю, ограничения RLS на реквизит наложить нельзя. RLS накладываем на таблицу документов. Например, ограничиваешь видимость документов по организациям. А там уже в типовой УПП написан шаблон на чтение. Если тебе нужно, чтобы RLS по организациям начал работать только для ЗаказПокупателя - тут нужно по-любому переписывать шаблон RLS. Не проверял, но попробуй убрать проверку параметра #ИспользоватьОграничениеПоОрганизации, и сообразить, как без включения глобального RLS по организациям сделать настройку для группы пользователей.
(4) Мне нужно чтобы при создании документа ЗаказПокупателя пользователю при выборе Организации и при выборе Склада отображились только некоторые организации и Склады. Соответственно в RLS нужно указать список Организаций и Складов для определённого пользователя.
(5) Типовым механизмом вообще никак.
Да и объясни мне, как это: тут мы организацию видим, тут не видим... а тут вообще не организация, это рыбу заворачивали? :-)
Вероятно, задачу ты поставил некорректно. Тебе не права ограничивать, а список выбора урезать надо. Или - ограничивать права, но тогда уж для всех документов.
Простейший вопрос: у пользователя ты ограничил (как-то?) доступ к ООО "А" в Заказах покупателя. Он открывает документ отгрузки по "А", ВИДИТ РЕАЛЬНЫЕ ОТГРУЗКИ В ЭТУ ОРГАНИЗАЦИЮ (!!!), смотрит структуру подчинённости, и оттуда открывает заказ... Дальше что должна сделать программа? Показать заказ? А с чего ли, если доступа нет? Не показывать? А почему, если пользователь его честно открыл из подчиненного документа?
Так что, думай над постановкой задачи, она некорректная...
(7)Согласен что постановка задачи неверна, скорей всего ему просто нужно список выбора ограничить)
"Простейший вопрос: у пользователя ты ограничил (как-то?) доступ к ООО "А" в Заказах покупателя. Он открывает документ отгрузки по "А", ВИДИТ РЕАЛЬНЫЕ ОТГРУЗКИ В ЭТУ ОРГАНИЗАЦИЮ (!!!), смотрит структуру подчинённости, и оттуда открывает заказ... Дальше что должна сделать программа? Показать заказ? А с чего ли, если доступа нет? Не показывать? А почему, если пользователь его честно открыл из подчиненного документа?"
Он не сможет открыть заказ, т.к. в структуре подчинённости он его не увидит) Ну это так, об извращениях)
(8) А с чего ли?!
Тут в УПП нельзя наложить RLS на Номенклатуру. И всё по той же причине.
Если разрешать - то разрешать везде. Если запрещать - то запрещать везде. Ибо - нефиг! Если по RLS у пользователя недоступна Организация, то он по ней вообще ни одного документа не увидит!
(13) С тем что в типовой не получиться согласен(был согласен ещё в первом посту)
То что нельзя чуть(тут возможно и не чуть, но не суть) подправив RLS добиться желаемого результата не согласен совсем!)
(10) Тогда проще.Изменяйте форму документа и обрабатывайте Выбор у поля. Ставьте СтандартнаяОбработка = Ложь и реализуйте выбор из своего собственного списка значений (тут пригодится метод формы ВыбратьИзСписка).
(14) Тут писать уже поздно. Событие ПриИзменении() возникает уже ПОСЛЕ выбора. Вам нужно обрабатывать событие Выбор (скорее всего, для него обработчик и не будет назначен, так что сами напишете процедуру).
В принципе, ПриИзменении тоже неплохо бы обрабатывать, проверять полученное значение: пользователь может ввести значение не только выбором, но и с клавиатуры, например...
Это на справочники Организации и Склады RLS надо накладывать, а не на заказы.
Одно но - это ограничение будет действовать для всех документов, не только для заказа. При этом другие организации и склады пользователь будет видеть как битые ссылки в документах, если не включать ограничение по организациям и складам в самих таблицах документов
Если нужно такое ограничение только для заказа и при этом пользователь должен видеть все заказы - реализовать это можно только кодом.
Написал Организация = Справочники.Организации.НайтиПоНаименованию("КОНСТАНТА");
в процедуре ОрганизацияПриИзменении(Элемент)
Открываю документ и в нём не установился отбор по указанной Организации, а вместо того что надо полный список из Справочника Организации
(20) Искать элемент справочника по наименованию - это отвратительно плохо, просто-таки гарантируете себе проблемы. Создайте новую константу типа "СправочникСсылка.Организации", и в ней выбирайте одну для всех организацию. Или создайте параметр сеанса и заполняйте его для каждого пользователя отдельно... А искать по имени - плохо, имя может меняться.
Не срабатывает даже оператор Сообщить("Процедура ОрганизацияНачалоВыбора");
Вопросы:
1) правильно ли я прописал отбор
2) правильно ли я выбрал процедуру для установки отбора?
(26) 1. Указываем: СтандартнаяОбработка=Ложь;
что программа понимала, что действовать надо не как обычно.
А затем пишем, что нужно открыть форму выбора организаций с нужным нам отбором.
2. Для организация проще сделать поле с выпадающим списком выбора. А этот список программно заполнить только нужными организациями.