Имя: Пароль:
1C
1С v8
Вопрос по ограничению к справочнику номенклатуры (RLS)
,
0 MatrosoV AleXXXand_R
 
17.07.13
08:03
Есть задача, она уже выполнена мной (как писать не буду), но хочу узнать мнение других программистов - как бы они сделали в данном случае (а может и делали), чтобы удостовериться - точно ли я пошел в том направлении

Суть задачи: Есть непериодический регистр сведений - Группа пользователей, Группа номенклатуры ("группы" справочника номенклатуры). Нужно предоставить права доступа пользователю к элементам только тех групп, которые указаны в регистре через RLS (на чтение)

Нюансы:
1) в RLS в условии нельзя наложить "В ИЕРАРХИИ" (просто не распознается + нет в конструкторе)
2) Когда я ставлю условие или соединяю примерно как:

ГДЕ
...

ТекущаяТаблица.Ссылка В
(Выбрать СпрНоменклатура.Ссылка ИЗ Справочник.Номенклатура КАК СпрНоменклатура ГДЕ СпрНоменклатура.Ссылка

В ИЕРАРХИИ

(ВЫБРАТЬ ЗаписиРегистра.ГруппаНоменклатуры ИЗ Регистр.[...] КАК ЗаписиРегистра

ГДЕ ЗаписиРегистра.ГруппаПользователей В (&ГруппыТекущегоПользователя)))

то при открытии формы списка справочника вылетает ошибка что-то типа "Ошибка выполнение транзакции. Необходима предвартельная выборка во временную таблицу"

3) В RLS насколько я понял нет временных таблиц

Вот как бы вы выполнили задачу в данном случае?
1 1Сергей
 
17.07.13
08:05
Заюзать Номенклатурные группы?
2 MatrosoV AleXXXand_R
 
17.07.13
08:06
(1) нет ... Ограничение строго по группам номенклатуры
3 MatrosoV AleXXXand_R
 
17.07.13
08:06
если бы было все так просто - я бы не стал спрашивать :)
4 1Сергей
 
17.07.13
08:07
(2) т.е. их трогать нельзя?
5 Ненавижу 1С
 
гуру
17.07.13
08:08
(2) я бы заюзал еще один РС: Группа пользователей, Номенклатура (элементы)
который бы программно бы менялся бы при изменении первого РС и справочника Номенклатуры
6 MatrosoV AleXXXand_R
 
17.07.13
08:08
(4) ограничение только по группам номенклатуры устанавливается
7 LehhaK
 
17.07.13
08:08
я б добавил в справочник пользователи ТЧ со списком доступных групп, при начале работы системы выкидывал в параметр сеанса. РЛС на параметр сеанса. Это навскидку
8 MatrosoV AleXXXand_R
 
17.07.13
08:09
(5) + да, как вариант, только необходимо учитывать, что номенклатуру могут удалять и добавлять, а также перекидывать в другую группу (но это можно программно настроить)
9 Ненавижу 1С
 
гуру
17.07.13
08:09
+(5) и RLS накладывал бы уже на новый РС
10 1Сергей
 
17.07.13
08:09
(7) т.е. при добавлении новой номенклатуры, распихивать её по всем нужным зверям?
11 Ненавижу 1С
 
гуру
17.07.13
08:10
(8) я это описал же "при изменении первого РС и справочника Номенклатуры"
12 MatrosoV AleXXXand_R
 
17.07.13
08:10
(7) в параметр сеанса - список номенклатуры? Опять-таки а если добавляют или удаляют?

И какой вариант в итоге лучше - параметром или регистром?
13 LehhaK
 
17.07.13
08:11
(10) Нет. Есть папка Ололо. в ней 50 папок ололо2 в каждой из которых 500 ололош. В ТЧ только Ололо. Параметр сеанса заполняется запросом В ИЕРАРХИИ
14 MatrosoV AleXXXand_R
 
17.07.13
08:11
(11) извини .. невнимательно прочитал
15 Ненавижу 1С
 
гуру
17.07.13
08:11
(12) если номенклатуры много, то это большой кусок памяти в параметре сеанса постоянно висит
16 LehhaK
 
17.07.13
08:12
(15) Это да. Зато просто
17 MatrosoV AleXXXand_R
 
17.07.13
08:13
(13) немного не понял про "В ИЕРАРХИИ" - ты его накладываешь при запуске системы или на RLS? Если на RLS - то там нет его, и хранить придется весь список
18 MatrosoV AleXXXand_R
 
17.07.13
08:14
а хотя можно по идее хранить список групп и накладывать в RLS условие ТекущаяТаблица.Родитель В (&СписокГрупп)
19 LehhaK
 
17.07.13
08:15
(17) При запуске системы формируешь параметр сеанса, который заполняется запросом (Где Номенклатура В ИЕРАРХИИ). В РЛС ТОлько ГДЕ НОменклатура в &СписокДоступнойНоменклатуры
20 LehhaK
 
17.07.13
08:15
(18) Шаришь :)))
21 LehhaK
 
17.07.13
08:16
Хотя в (5) круче и правильней, имхо
22 MatrosoV AleXXXand_R
 
17.07.13
08:17
да и групп порядком меньше будет, чем элементов, места много наверняка отжирать не будет

Чуть позже проверю. Я пока сделал помещением в параметр сеанса всего списка номенклатуры, включая элементы
23 Лодырь
 
17.07.13
08:17
(5) У меня в одном из сопровождаемых систем реализовано почти что полностью аналогично. Правда справочник не Номенклатура, а Контрагенты. Работает. Не тормозит.
24 ИС-2
 
naïve
17.07.13
08:19
(0) делали по родителям. Работает быстро
25 ИС-2
 
naïve
17.07.13
08:28
(0) а вообще не понимаю зачем делать велосипед. В типовых это реализовано через реквизит ограничения доступа
26 Лодырь
 
17.07.13
08:30
(25) Да там нужен не велосипед, там моторчик к велосипеду чтоб расставлял группы доступа согласно регистра правил.