Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Чт Янв 30, 2025 13:50  Ограничение по доступу |
|
Полезность: Нет оценки
|
Здравствуйте, уважаемые форумчане.
Есть проблема.
В справочнике "Подразделения" есть представление "Полный список". Сейчас у меня в доступах стоит "Доступ по реквизиту" по группе подразделения. Например если пользователь числится в группе подразделения 001-01, то соответственно видит все записи принадлежащей к этому подразделению. Но когда заходит в это представление, то видит все подразделения банка. Вопрос. Как ограничить? т.е. если у пользователя в доступах стоит группа 001-01, то в этом представлении должна выходить только одна запись. А если пользователь числится в 001 ГБ, то должен видеть все подразделения.
Прошу проконсультировать. |
|
 |
Volod Эксперт
Вступление в Клуб: 19.09.2007
|
Чт Янв 30, 2025 17:19   |
|
Полезность: Нет оценки
|
В окне Распределение прав доступа какая картина?
В подокне Экземпляры выберите Подразделение и галкой пометьте нужное. В "Классы" выберите класс Подразделение. В Субъекты нажмите кнопку Доступ - будет написано Доступно XX из XXX, нажмите воронку с галкой - будет список субъектов, которые имеют доступ к конкретному подразделению/списку подразделений. |
|
 |
pabrz Участник со стажем
Вступление в Клуб: 27.09.2022
|
Пт Янв 31, 2025 07:10   |
|
Полезность: Нет оценки
|
Тут вопрос, как мне кажется, немного в другом и он проблемный.
Если речь о дистрибутивном представлении "Полный список" и в нем сейчас доступ по реквизиту отсутствует, а работаете вы через IDE, то вы никак такой доступ не организуете.
В IDE ушла возможность включить или выключить доступ по реквизиту в дистрибутивном представлении, поскольку это теперь требует заполнения определенного тэга в описании подразделения, и, соответственно, его deploy на схему. А это сделать не позволит лицензия.
В старой среде разработки с доступом по реквизиту на дистрибутивных представлениях можно было работать.
Таким образом если сейчас у вас IDE, представление дистрибутивное, и доступ по этому реквизиту в представлении не включен - то вы никак его не добавите. Вы максимум можете сделать свое представление и все необходимое сделать там.
Возможно это можно объехать через расширение к дистрибутивному представлению - не проверял, но напрямую точно никак не сделать. |
|
 |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Пт Янв 31, 2025 07:18   |
|
Полезность: Нет оценки
|
pabrz пишет: | Тут вопрос, как мне кажется, немного в другом и он проблемный.
Если речь о дистрибутивном представлении Полный список и в нем сейчас доступ по реквизиту отсутствует, а работаете вы через IDE, то вы никак такой доступ не организуете.
В IDE ушла возможность включить или выключить доступ по реквизиту в дистрибутивном представлении, поскольку это теперь требует заполнения определенного тэга в описании подразделения, и, соответственно, его deploy на схему. А это сделать не позволит лицезния.
В старой админике с доступом по реквизиту на дистрибутивных представлениях можно было работать.
Таким образом если сейчас у вас IDE, представление дистрибутивное, и доступ по этому реквизиту в представлении не включен - то вы никак его не добавите. Вы максимум можете сделать свое представление и все необходимое сделать там.
Возможно это можно объехать через расширение к дистрибутивному представлению - не проверял, но напрямую точно никак не сделать. | Да, это дистрибутивное представление. И как объехать через расширение или же какие условия поставить чтобы сработало? |
|
 |
pabrz Участник со стажем
Вступление в Клуб: 27.09.2022
|
Пт Янв 31, 2025 07:38   |
|
Полезность: 1
|
Тут надо понимать две вещи.
Есть два способа сделать расширение для представления.
Один более безопасный, один менее безопасный.
Более безопасный предполагает, что в расширении вы описываете только свои новые поля, т.е. мы получаем расширение вида:
Код: |
@name('Представление (расширение)')
@tag('EXTENSION')
view VW_CRIT_ТИПА_ИМЯ_РАСШИРЕНИЯ instead of VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ {
type main is
select ext(ВЫТАСКИВАЕМ_КАКОЕ_ТО_ПОЛЕ : C_АЛИАС_ПОЛЯ
)
in VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ;
}
|
При таком подходе, если ЦФТ поменяют родное представление, расширение от этого не сломается.
При этом внутри расширения по алиасу курсора из VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ доступны все уже описанные в первом представлении поля.
Второй вариант расширения - полная подмена.
Код: | @name('ИМЯ_ПРЕДСТАВОЕНИЯ (расширение)')
@tag('EXTENSION')
view VW_CRIT_ТИПА_ИМЯ_РАСШИРЕНИЯ instead of VW_CRIT_ТИПА_ИСХОДНОЕ_ПРЕДСТАВЛЕНИЕ {
type main is
select x(x.[РЕКВИЗИТ] : id)
in ::[КАКОЙ_ТО_ТИП] all where УСЛОВИЕ;
}
|
Такое представление поломается, если ЦФТ изменят порядок или состав полей.
Теперь о доступе.
доступы в IDE - это тэги. В доках есть описание.
Вам нужен, судя по всему, вот этот:
Код: | @access_attribute(<синоним колонки>) Доступ по реквизиту |
Его типовой пример:
Код: | class класс;
@access_attribute(DEPART)
@name('название')
view VW_CRIT_представление {
type main is
select a(
a.[DEPART] : DEPART
) in
..... |
Попробуйте такую штуку сунуть в расширение.
Но в последнее время я обратил внимание, что доступ по реквизитам не всегда работает хорошо, так что к подобным опциям стараюсь не прибегать - иногда проще прямо условие в where бахнуть.
Доступ по реквизиту подразделение у меня, например, где-то работает, где-то нет. Отношу это к проблемам ядра вообще и IDE в частности.
В вашем случае может быть попроще - у вас группа - это более конкретный реквизит чем иерархическая конструкция DEPART. |
|
 |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Чт Фев 06, 2025 08:43   |
|
Полезность: Нет оценки
|
Volod пишет: | В окне Распределение прав доступа какая картина?
В подокне Экземпляры выберите Подразделение и галкой пометьте нужное. В "Классы" выберите класс Подразделение. В Субъекты нажмите кнопку Доступ - будет написано Доступно XX из XXX, нажмите воронку с галкой - будет список субъектов, которые имеют доступ к конкретному подразделению/списку подразделений. | Вот такая картина в распределении прав по доступу "Подразделения" [img]Снимок экрана 2025-02-06 103624.png[/img] |
|
 |
cool_dude Участник - экстремал
Вступление в Клуб: 05.02.2013
|
Чт Фев 06, 2025 08:45   |
|
Полезность: Нет оценки
|
а как вставить картинку, скрин? |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|