Имя: Пароль:
1C
1С v8
Ограничение чтения через РЛС
0 Vade_kirza
 
05.06.14
17:35
Добрый день, подскажите кто сталкивался, создал роль, настроил, просят чтобы пользователь видел изменял или добавлял элементы номенклатуры только по одной папке, опыта работы с РЛС пока не имел, к сожалению. Пытался сам - поставил ограничение на чтение Поля:ссылка, Ограничение:
Номенклатура ГДЕ Номенклатура.Родитель = "Работы Генподряд" не показывает вообще ничего, а если вместо равно поставить <>, то выводит все папки. Понимаю, что делаю не правильно, но все бывает в первый раз, поэтому решил обратиться за помощью
Если кто сталкивался с подобным или может уже есть готовый похожий пример, подскажите пожалуйста)) Заранее спасибо за помощь!
1 RMpnz
 
05.06.14
17:42
видимо надо Номенклатура.Родитель.Наименование = "Работы Генподряд". а вообще неправильно это всё как-то)
2 Franchiser
 
гуру
05.06.14
17:42
попробуй просто ГДЕ Номенклатура.Родитель = "Работы Генподряд"
3 Franchiser
 
гуру
05.06.14
17:44
ГДЕ Подстрока(Номенклатура.Родитель.наименование,1,16) = "Работы Генподряд"
4 Vade_kirza
 
05.06.14
17:47
(1) Наименование, НаименованиеПолное, выдает тоже пустоту (2) (2) (3) щас попробую) напишу
5 Vade_kirza
 
05.06.14
17:49
(2) Синтаксическая ошибка (3) тоже пустоту выводит :*(
6 Franchiser
 
гуру
05.06.14
17:50
В полях не надо поля указывать.
7 Vade_kirza
 
05.06.14
17:51
(6) пробовал, тоже самое
8 Franchiser
 
гуру
05.06.14
17:52
Поставь пока "ГДЕ ИСТИНА". Что выводит?
9 acsent
 
05.06.14
17:53
ГДЕ Номенклатура.Родитель = &Группа
Создать параметр сеанса Группа и заполнить его
10 Vade_kirza
 
05.06.14
17:56
(9) Параметр сеанса создал, а вот где его заполнить что-то не могу найти
11 Franchiser
 
гуру
05.06.14
17:57
там где все параметры сеанса заполняются в предопределенной процедуре
12 Enders
 
05.06.14
18:02
(0)
1)А там в папке что-нить есть?
2) Попробуй через "подобно"
Где Номенклатура.Родитель.Наименование Подобно "%Генподряд%"
3) Хотя через параметр сеанса наверное правильнее будет)
13 Dionis Sergeevich
 
05.06.14
18:02
(0) одной номенклатурой не отделаешься. Придется на документы тоже писать РЛС - иначе <Объект не найден>. И вообще типовой РЛС по номенклатуре есть - с типовым не работал но возможно он поможе тебе
14 Vade_kirza
 
05.06.14
18:05
(12) Через подобно тоже пустота, в папке номенклатура имеется, буду пробовать через параметры сеанса, но пока не могу найти нужную процедуру
15 Vade_kirza
 
05.06.14
18:06
(13) А где его найти?
16 Vade_kirza
 
05.06.14
18:08
(8) ГДЕ ИСТИНА выдает синтаксическую ошибку
17 Dionis Sergeevich
 
05.06.14
18:09
константы - настройка параметров доступа на уровне записей - там включаешь, выбираешь Номенклатура. Ну и погугли где-нибудь манульчик - в регистрике видимо НАстройки прав доступа пользователей - добавляешь свою группу(папочку номенклатуры), добавляешь группу пользователей, ставишь наследование прав.
18 Dionis Sergeevich
 
05.06.14
18:12
(16) делай через шаблон - #ТекущаяТаблица как ТекущаяТаблица ГДЕ ИСТИНА
19 Dionis Sergeevich
 
05.06.14
18:12
* ТекущаяТаблица ИЗ #ТекущаяТаблица как ТекущаяТаблица ГДЕ ИСТИНА
20 Vade_kirza
 
05.06.14
18:16
(19) ТекущаяТаблица ИЗ #ТекущаяТаблица как ТекущаяТаблица ГДЕ ИСТИНА Номенклатура.Родитель = "Работы Генподряд" так? если да, то ругается, если нет, то туплю ))
21 Dionis Sergeevich
 
05.06.14
18:21
пробуй типовой!
22 Klesk666
 
05.06.14
18:58
может сделать "Работы Генподряд" предопределенным?
23 rphosts
 
05.06.14
19:03
(0) Если не можешь сделать свой генподряд предопределённым элементом, то делай по такой схеме:
1.где-то хранишь требуемое значение (константа, спец. РС и т.д.).
2.Создаёшь параметрСеанса, ну пусть ОтборДляРЛС требуемого типа и прочитываешь в него то самое сохранённое значение.
3.В Запросе шаблона РЛС обращаешся к этому Параметру сеанса так: &ОтборДляРЛС, например:
ГДЕ Ноенклатура.Родитель = &ОтборДляРЛС
24 Dionis Sergeevich
 
05.06.14
23:46
(23) тогда в РС ЗначенияСвойствОбъектов - чтобы без доработок

(0) и да, а вдруг у тебя внутри группы будут еще группы)))
25 rphosts
 
06.06.14
03:36
(24) тогда запрос в рлс будет немного сложнее и немного медленнее... пусть уж сделает по этой схеме, а потом при желании оптимизирует хоть до посинения
26 senior
 
06.06.14
08:50
(0) типовая конфа? в упп этот функционал идет из коробки
27 vhl
 
06.06.14
09:22
Тупо сделай предопределенным и вот так:
ГДЕ Номенклатура.Родитель = ЗНАЧЕНИЕ(Справочник.Номенклатура.РаботыГенподряд)
28 Franchiser
 
гуру
06.06.14
10:35
(20) ТекущаяТаблица ИЗ #ТекущаяТаблица как ТекущаяТаблица ГДЕ ИСТИНА
или
ТекущаяТаблица ИЗ #ТекущаяТаблица как ТекущаяТаблица ГДЕ ТекущаяТаблица.Номенклатура.Родитель.Наименование Подобно "%Генподряд%"
29 Franchiser
 
гуру
06.06.14
10:43
Какие роли сейчас у пользователя доступны? и как ты настроил доступ по ролям?
30 Vade_kirza
 
06.06.14
11:34
(29) Базовые + Моя

(23) Сделал через параметр сеанса, и выходит какая-то магия :) создал параметр сеанса ОгрНомен, в процедуре прописал :
Группа = Справочники.Номенклатура.НайтиПоНаименованию("Работы Генподряд");
ИменаПараметровСеанса.Найти("ОгрНомен");
ПараметрыСеанса.ОгрНомен = Группа.Ссылка;
В отладке смотрю, все находит правильно. Дальше начинаются какие-то непонятные вещи: ставлю ограничение на чтение, добавление ГДЕ Родитель <> &ОгрНомен Результат получается : показывает все папки, НО в папке Работы Генподряда нету ничего и создать не дает, в остальных все в порядке, видит, записывает. Ставлю наоборот ГДЕ Родитель = &ОгрНомен и он перестает показывать вообще все. Ок ставлю ГДЕ Ссылка В &ОгрНомен, он наконец начинает показывать мне только одну, нужную мне папку, но в ней пусто и создать не дает. Я запутался в конец)) где я что упустил?)
31 Vade_kirza
 
06.06.14
11:36
ПараметрыСеанса.ОгрНомен = Группа; тоже пробовал, результат тот же
32 Dionis Sergeevich
 
06.06.14
11:36
(30) читай (17) ибо судя по (20) не затащишь ты
33 Vade_kirza
 
06.06.14
11:38
(32) Главное не сдаваться! :)
34 rphosts
 
06.06.14
11:41
(33) +1
35 Vade_kirza
 
06.06.14
11:45
Главное не понимаю почему он выдает мне все наоборот при <> а при = вообще ничего?
36 Vade_kirza
 
06.06.14
11:45
Больше всего на правду похож вариант с ГДЕ Ссылка В &ОгрНомен, но в этом варианте он показывает только мою группу, а номенклатуру в ней нет
37 rphosts
 
06.06.14
11:47
(36) если могут быть вложеные папки, то
ГДЕ Ссылка В ИЕРАРХИИ &ОгрНомен
38 Dionis Sergeevich
 
06.06.14
11:48
(36) ты свой шаблон засунь себе в консоль запросов. И пробуй тогда, раз не сдаешься. В виде "выбрать * ИЗ Справочник.Номенклатура как ТекущаяТаблица ГДЕ..."
39 Dionis Sergeevich
 
06.06.14
11:48
(36) где ссылка.Родитель в ...
40 Vade_kirza
 
06.06.14
11:51
(37) Вложенных нет
41 Franchiser
 
гуру
06.06.14
12:11
добавь еще где Родитель  - пустаяссылка
42 Vade_kirza
 
06.06.14
14:06
(41) Спасибо!Вы оказались правы. Вначале не понял зачем, а потом как начал уже искать причины такого поведения системы, дошел мозгами до того же, что вы написали))) зато не тупо сделал и забыл, а разобрался и теперь уж не забуду)). Пустоту он все это время выводил из-за того, что у самой папки родитель не равен самому себе и он скрывает папку, и соответственно и номенклатуру внутри, всем спасибо за помощь!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший