Имя: Пароль:
1C
1С v8
Общие реквизиты: относительное разделение данных.
0 kdenis
 
20.08.14
00:21
Уважаемое сообщество, помогите сориентироваться в вопросе.

Стояла задача в самописной конфигурации разделить доступность некоторых документов в зависимости от подразделения, в котором работает пользователь. Для решения задачи выбирал из двух инструментов: RLS и Общие реквизиты. В итоге задачу решил с помощью RLS, но осадок от неполного понимания механизма разделения данных Общими реквизитами остался. Информации по ни мало.

Конкретная задача, которую пробовал решить Общими реквизитами:
Есть документы разных подразделений, делающие движения в регистры накопления. Пользователи должны видеть документы только своих подразделений. В документах сделал общий реквизит, при запуске устанавливал необходимые параметры сеанса. Документы разделялись.
При этом запросы в отчетах к регистрам накопления показывали остатки и обороты по движениям всех документов. Но, если в отчет выводить документы движения, то для движений, сделанных документом с подразделением, отличным от подразделения текущего пользователя, показывается не его ссылка, а что-то вроде "Объект не найден <идентификатор объекта>.

Вопрос: возможно ли, общие реквизиты, избежать подобного. Чтобы для документа, к которому нет доступа, в отчетах отображалось его представление без возможности открыть документ по нему, а не "Объект не найден <идентификатор объекта>?
1 Остап Сулейманович
 
20.08.14
00:31
Мало смысла разделять документы и не разделять движения. Моя ИМХА - нужно было делить и движения по аналогичному реквизиту
2 kdenis
 
20.08.14
00:39
В общем случае документы списывают товар со склада. Возникают ситуации, когда необходимо проследить движение конкретного товара, независимо от того, в каком подразделении сделан документ. В этом смысл.
3 vicof
 
20.08.14
00:50
А зачем бриться миксером? Rls для ограничения доступа, общие реквизиты для уменьшения количества метаданных.
4 kdenis
 
20.08.14
00:55
Общие реквизиты не только для уменьшения количества метаданных. С их помощью делается разделение данных.
Как раз об этой возможности их применения и хочу услышать мнение опытного специалиста. Даже задачу конкретную расписал.
5 mistеr
 
20.08.14
01:12
(0) В описанном примере просто недопонимание механизмов работы платформы. Если есть ссылка (неважно откуда получена, например из регистра), и запрашивается представление, то платформа выполняет запрос к таблице объекта (здесь документа) по ссылке, к тем полям, из которых формируется представление. Если такой запрос выполнить не удается по любой причине (будь то RLS или права на реквизиты или разделение данных или ссылка битая, или еще что-либо), то представление формируется как "объект не найден".

К архитектурному решению использовать RLS или общие реквизиты это не имеет отношения.
6 kdenis
 
20.08.14
10:41
(5) Понимание формирования ссылки документа как раз есть. На RLS так и сделано: запрещен (по подразделениям) доступ ко всем полям, кроме ссылка, дата, номер. Соответственно, представление любого документа формируется.
Вопрос в том, как такое проделать, используя разделение данных общими реквизитами, и вообще возможно ли это.
7 kdenis
 
20.08.14
17:57
Подниму. Может кто-нибудь откликнется.
8 mistеr
 
22.08.14
03:09
(6) Сам подумай. Разделение данных разделяет доступ по строкам, а не по полям. Поэтому ответ - никак, это нужно делать, используя механизмы RLS.

Разделение данных предназначено для случаев, когда видеть чужие данные никак нельзя, даже иногда, даже чуть-чуть. Это для облаков и прочего multi-tenant.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший