|
RLS | ☑ | ||
---|---|---|---|---|
0
lom7000
05.08.13
✎
15:41
|
Добрый день!
есть список документов, в документе реквизит "ЗалогВозвращенКлиенту" в Ограничение доступа к данным, Чтение, пишу: <Прочие поля> "АрендаДокументы ГДЕ АрендаДокументы.ЗалогВозвращенКлиенту = ЛОЖЬ" В результата в общем списке у роли отображаются только документы с "ЗалогВозвращенКлиенту = ЛОЖЬ" Далее пользователь заходит в документ и в форме ставит галочку "ЗалогВозвращенКлиенту", при попытке сохранения выдает "у пользователя недостаточно прав для исполнения операций над базой данных". Если менять любые другие данные в документе, не изменяя "ЗалогВозвращенКлиенту", то сохраняет без проблем. Собственно, нужно сохранить документ с измененным статусом "ЗалогВозвращенКлиенту" 1С:Предприятие 8.2 (8.2.17.143) "Управление торговлей", редакция 10.3 (10.3.12.3) |
|||
1
Maxus43
05.08.13
✎
15:44
|
данную задачу я бы решал не через РЛС... У пользователя просто нет доступа к доукментам с другим значением флага
|
|||
2
lom7000
05.08.13
✎
15:46
|
после сохранения он и из списка должен пропасть, что собственно и нужно
|
|||
3
Maxus43
05.08.13
✎
15:46
|
+ возможностью редактирования формы решай + жёсткими отборами в форме списка.
|
|||
4
Defender aka LINN
05.08.13
✎
15:48
|
(0) От такой постановки задачи попахивает бредом.
Если у пользователя нет прав даже смотреть на документы с таким флагом, то как он может их создавать? |
|||
5
Maxus43
05.08.13
✎
15:49
|
Либо - записывай смену статуса в привелигированном модуле
|
|||
6
lom7000
05.08.13
✎
15:57
|
(4) Он создает их со статусом ЗалогВозвращенКлиенту = ЛОЖЬ, может их читать и редактировать
|
|||
7
Maxus43
05.08.13
✎
15:58
|
(6) РЛС не даст доступа к другому статусу, о чем ты сам его и пропросил в (0)
|
|||
8
lom7000
05.08.13
✎
15:59
|
(5) УстановитьПривилегированныйРежим(ИСТИНА); так? ток куда это вставить? ПриЗаписи ?
|
|||
9
lom7000
05.08.13
✎
16:00
|
(7) согласен
|
|||
10
Maxus43
05.08.13
✎
16:01
|
(8) это сработает только в файловом варианте...
Поидее придётся стандартную кнопку менять на свою, и записывать только в общем привелигированном модуле. Короче извращение получится |
|||
11
Maxus43
05.08.13
✎
16:03
|
хм... запрос РЛС может изменить?
Соединить с таблицей документов и проверить на совпадение этого реквизита. Типа сравнить Объект со ссылкой в БД. Хз получится ли правда |
|||
12
capitanjack1
05.08.13
✎
16:08
|
(3) дело говорит, поставь в форме отбор и запрети его снимать/ставить.
|
|||
13
lom7000
05.08.13
✎
16:36
|
Ну вот так извратился:),
Добавил реквизит, ДокументЗаписывается(BUL) Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) ДокументЗаписывается = ИСТИНА; КонецПроцедуры Процедура ПослеЗаписи() УстановитьПривилегированныйРежим(ИСТИНА); ДокАРСсылка = Документы.АрендаДокументы.НайтиПоНомеру(Номер); ДокАР = ДокАРСсылка.ПолучитьОбъект(); ДокАР.ДокументЗаписывается = ЛОЖЬ; ДокАР.Записать(); УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры ну и в РЛС: "АрендаДокументы ГДЕ АрендаДокументы.ЗалогВозвращенКлиенту = ЛОЖЬ ИЛИ ДокументЗаписывается = ИСТИНА" |
|||
14
m-serg74
05.08.13
✎
16:45
|
ПослеЗаписи()
................. ДокАР.Записать(); ?????????? и снова ПередЗаписью() и снова ПослеЗаписи()??? что это? |
|||
15
m-serg74
05.08.13
✎
16:46
|
еще и
Документы.АрендаДокументы.НайтиПоНомеру(Номер); фуууу |
|||
16
lom7000
05.08.13
✎
16:52
|
(14) ну это только для того чтобы изменить только "ДокументЗаписывается", чтоб другое не задеть.
(15) ну а что фукать то сразу, как будто других слов нет, не все же профессионалы, каждый выкручивается как может... m-serg74 ну а вы бы как сделали? |
|||
17
m-serg74
05.08.13
✎
16:57
|
(16) раза три написали через отбор в форме списка а не через РЛС, тем более так через одно место как думаешь сколько раз произойдет событие ПослеЗаписи() ???
|
|||
18
m-serg74
05.08.13
✎
16:58
|
а искать документ по номеру когда ты в его модуле объекта находишься так это вообще ни в какие ворота не лезет
|
|||
19
lom7000
05.08.13
✎
17:06
|
(17) согласен с (3)
просто отбор в форме не гарантирует что пользователь не сможет поднять заблокированный для него документ. (18) ну просто я не уверен что он еще чего нибудь не сохранит кроме "ДокументЗаписывается", решил все сделать стерильно... |
|||
20
m-serg74
05.08.13
✎
17:08
|
(19) да бесконечная рекурсия получится вроде
Процедура ПослеЗаписи() ДокАР.Записать(); или я не прав? |
|||
21
lom7000
05.08.13
✎
17:10
|
(20) нет, не будет, вызов динамический а не через форму.
проверил, работает, просто сам костыли не очень люблю... |
|||
22
Maxus43
05.08.13
✎
17:11
|
(21) делай (3), тоже костыль, но хоть красивый.
|
|||
23
m-serg74
05.08.13
✎
17:12
|
(21) что значит "вызов динамический а не через форму."
|
|||
24
lom7000
05.08.13
✎
17:13
|
(22) согласен
|
|||
25
lom7000
05.08.13
✎
17:18
|
(23)не динамический то-есть, а программно, через код, минуя форму...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |