Имя: Пароль:
1C
1С v8
Привилегированный модуль
0 Konst1Cv8
 
12.09.11
21:24
Возникла проблема с перепроведением документа, к которому у пользователя нет доступа даже на чтение, при проведении им документа (на который у него есть все необходимые права). Не буду описывать, что пытался сделать, т.к. результат не был достигнут, а задам вопрос: как правильно реализовать этот механизм? (и + вариант механизма отмены проведения с перепроведением "недоступного" документа)
1 zmaximka
 
12.09.11
21:44
как вариант УстановитьПривегилированыйРежим()на время проведения документа а потом снять. Но возникают вопросы по безопасности этого дела
2 zmaximka
 
12.09.11
21:45
точнее перед проведением недоступного документа
3 Konst1Cv8
 
12.09.11
21:50
Спасибо, но нужны не функции из Синтакс-помощника, а реально работающий механизм.
4 zmaximka
 
12.09.11
22:09
ну дык тогда чуть подробнее опиши как этот пользователь с урезанными правами должен провести документ? После проведения разрешенного или на основании ?
5 zmaximka
 
12.09.11
22:12
Механизм кстати рабочий
[code]
Процедура ПровестиПодчиненныеДокументыПоТаблице(пТаблицаДокументов)
   
   УстановитьПривилегированныйРежим(Истина);
   
   Для Каждого СтрокаТЗ Из пТаблицаДокументов Цикл
       
КонецЦикла
КонецПроцедуры
[/code]
6 Konst1Cv8
 
12.09.11
22:13
Попробую так: при проведении документа на который есть необходимые права, нужно в этой-же транзакции выполнить перепроведение другого документа, на который прав доступа нет.
7 zmaximka
 
12.09.11
22:15
ну либо в обработке проведения вызывай процедуру в которой будет устанавливатся привилегированный режим, либо в подписке на событие. Но еще раз замечу то не секьюрно это :)
8 Konst1Cv8
 
12.09.11
22:20
Спасибо, сейчас попробую в подписке на события
9 Konst1Cv8
 
12.09.11
23:25
Попытка передачи с клиента на сервер мутабельного значения 1-го параметра - попытка передать объект, а если выполнять на клиенте, то не работает УстановитьПривилегированныйРежим(Истина); :((
10 Икогнито
 
12.09.11
23:44
(9) вызовы процедур покажи
11 Konst1Cv8
 
12.09.11
23:51
В подписке вызова нет, т.к. это параметр подписки и все что с ней связано формируется автоматом, а установка режима вот:

Попытка
   УстановитьПривилегированныйРежим(Истина);
   ДокОтр.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
   УстановитьПривилегированныйРежим(Ложь);
Исключение
   УстановитьПривилегированныйРежим(Ложь);
   
   Отказ = Истина;
   
   ЗаписьЖурналаРегистрации("Косяк", УровеньЖурналаРегистрации.Ошибка, Док.Метаданные().Имя, Док);
КонецПопытки;
12 Konst1Cv8
 
16.09.11
13:21
и УстановитьПривилегированныйРежим должен выполняться на сервере, а подписка на события выполняется на клиенте
13 zmaximka
 
16.09.11
13:42
Доступность:

Сервер, толстый клиент, внешнее соединение.
14 vmv
 
16.09.11
13:48
(6) "при проведении документа на который есть необходимые права, нужно в этой-же транзакции выполнить перепроведение другого документа, на который прав доступа нет"(С)

Растрелять без суда и следствия
15 Defender aka LINN
 
16.09.11
13:55
(0) А нахрена перепроводить один документ из другого? Это у вас что-то в консерватории глубоко не так.
16 neckto
 
16.09.11
14:08
В конфигураторе, на закладке Права ткни галки Превелигированный режим при проведении и при отмене.