Имя: Пароль:
1C
1С v8
как установить УстановитьПривилегированныйРежим
,
0 Эльфийка
 
29.11.12
05:55
Доброго времени суток, Форумчане!
клиент-серверный вариант, управляемый режим. У роли СотрудникОтделаПродаж для документа РасходнаяНакладная есть право только на Чтение, Просмотр, Ввод по строке. В модуле формы документа в процедуре ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) был дан доступ на редактирование поля Комментарий. Как теперь дать этому СотрудникОтделаПродаж возможность сохранить документ, с измененными данными в поле Комментарий, без выполнения движений программно?

В этой же процедуре ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) написала
           УстановитьПривелигированныйРежим(Истина);
           СтандартнаяОбработка= Ложь;
При проверке модуля выходит сообщение, что "данная Процедура или функция с указанным именем не определена (УстановитьПривелигированныйРежим)."
Как правильно определить данную процедуру?
Создать Общий модуль? и как правильно описать данную процедуру?
Заранее благодарю!
1 YHVVH
 
29.11.12
06:52
УстановитьПривелигированныйРежим
УстановитьПривилегированныйРежим

найди 5 отличий
2 YHVVH
 
29.11.12
06:54
(0) но тебе с такими знаниями , лучше не использовать привЕлигированный режим
3 Sammo
 
29.11.12
07:02
Привели или Привиле ?
4 Cyberhawk
 
29.11.12
07:06
(0) реши задачу через внешнюю обработку, чтоб не лезть в процедуры формы / модуля объекта.
5 Живой Ископаемый
 
29.11.12
07:44
как в типовых
6 cw014
 
29.11.12
07:51
И самое забавное - в СП залезть не судьба...
7 Эльфийка
 
29.11.12
08:09
ок, ошиблась (скопировала текст с другого форума и не обратила внимание на ошибку). Написала            УстановитьПривилегированныйРежим(Истина);
8 Эльфийка
 
29.11.12
08:10
что дальше, ? при попытке сохранения пишет Недостаточно прав для сохранения
9 Эльфийка
 
29.11.12
08:11
тьфу, Недостаточно прав для редактирования
10 Эльфийка
 
29.11.12
08:20
Забыла написать, база самописная, не типовая))))
11 Defender aka LINN
 
29.11.12
08:20
(8) Значит, недостаточно прав. Будешь и дальше нас развлекать, или уже программиста позовешь?
12 Эльфийка
 
29.11.12
08:26
(11)в том то и дело, что прав не достаточно, вопрос и заключается в том как дать право программно, без изменения RLS?
13 Эльфийка
 
29.11.12
08:27
(11) здесь вопросы только умные и опытные программисты задают? тогда извините , видимо форумом ошиблась
14 cw014
 
29.11.12
08:28
(0) У роли СотрудникОтделаПродаж для документа РасходнаяНакладная есть право только на Чтение, Просмотр, Ввод по строке

А как ты даешь возможность реквизит править?
15 Defender aka LINN
 
29.11.12
08:30
(13) Не, вопросы здесь задают в том числе и неудавшиеся дворники. Скажи, ты пробовала открыть глаза до щелчка и прочитать описание метода УстановитьПривелегированныйРежим()?
16 Эльфийка
 
29.11.12
08:30
(14)        Если РольДоступна("СотрудникОтделаПродаж") Тогда
           ЭтаФорма.ТолькоПросмотр = Ложь;
           ЭтаФорма.Доступность = Истина;
           Элементы.Группа1.ТолькоПросмотр = Истина;
           Элементы.Группа8.ТолькоПросмотр = Истина;
           Элементы.Ответственный.ТолькоПросмотр = Истина;
           Элементы.Группа2.ТолькоПросмотр = Истина;
           //Элементы.Группа3.ТолькоПросмотр = Истина;
           //Элементы.Группа4.ТолькоПросмотр = Истина;
           //Элементы.Группа13.ТолькоПросмотр = Истина;
           Элементы.НачислениеАгентских.ТолькоПросмотр = Истина;
           Элементы.Автор.ТолькоПросмотр = Истина;
           Элементы.Комментарий.Доступность = Истина;
           Элементы.Комментарий.ТолькоПросмотр = Ложь;
           Элементы.РаспределениеПремийПоСотрудникамЗаполнитьПоСотрудникам.Доступность = Ложь;
           Элементы.РаспределениеПремийПоСерийнымНомерамЗаполнить.Доступность = Ложь;
           УстановитьПривилегированныйРежим(Истина);
           СтандартнаяОбработка= Ложь;
       КонецЕсли;
17 Эльфийка
 
29.11.12
08:33
(15) нет, прочитала только вот:"Привилегированный режим исполнения кода, аналогичный режиму работы кода привилегированных модулей, можно включить/выключить средствами встроенного языка. Для этого в глобальном контексте предусмотрена процедура УстановитьПривилегированныйРежим(), а также функция ПривилегированныйРежим(), которая позволяет определить, включен привилегированный режим, или нет.

Использование привилегированного режима позволяет, во-первых, ускорить работу, так как не будут накладываться ограничения на доступ к данным, а во-вторых, позволяет выполнять операции с данными от лица пользователей, которым эти данные недоступны.

Привилегированный режим рекомендуется использовать тогда, когда с логической точки зрения нужно отключить проверку прав, или когда можно отключить проверку прав, чтобы ускорить работу. "
18 Defender aka LINN
 
29.11.12
08:38
(17) Читай дальше
19 kosts
 
29.11.12
08:43
(0) Можно поступить следующим образом.
На форме списка добавить кнопку "Изменить комментарий".
В диалоге ввести комментарий.
В привилегированном режиме записать документ с флагом ОбменДанными.Загрузка = Истина
20 Живой Ископаемый
 
29.11.12
08:54
2(19) Ваш совет похож на такой:
"Как купить яхту, если у тебя нет денег?
Нужно стать богатым, заказть постройку яхты в Бристоле или нантакете, и через год у вас будет своя яхта - плывите куда хотите!"
21 Defender aka LINN
 
29.11.12
08:56
(19) Хватит курить всякую дрянь :)
22 Seeker
 
29.11.12
09:01
(16) - мб УстановитьПривелигерованныйРежим(Истина) перенести в начало модуля?
23 Sammo
 
29.11.12
09:04
(16) На толстом клиенте? Читай СП
Синтаксис:

УстановитьПривилегированныйРежим(<Включить>)
Параметры:

<Включить> (обязательный)

Тип: Булево.
Определяет, будет ли включен привилегированный режим:
Истина - включить режим;
Ложь - выключить режим.
Описание:

В файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы управляет (включает или выключает) привилегированный режим исполнения кода, аналогичный режиму работы кода привилегированных модулей. В привилегированном режиме никакие проверки прав не выполняются и разрешены любые операции. В клиент-серверном варианте при выполнении на клиенте данный метод не выполняет никаких действий.
Первое выполнение метода с параметром Истина в файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы включает привилегированный режим.
Для явного выключения привилегированного режима необходимо внутри процедуры или функции, в которой он был включен, вызвать метод с параметром Ложь столько же раз, сколько раз в этой же процедуре или функции был вызван метод с параметром Истина.
Если этого сделано не было, то при возврате из процедуры/ функции, в которой был включен привилегированный режим, он будет выключен автоматически (неявно).
Если в процедуре или функции вызовов метода с параметром Ложь сделано больше, чем вызовов с параметром Истина, то будет вызвано исключение.
24 kosts
 
29.11.12
09:24
(19) Однако это простой способ корректно решить данную задачу.
25 Bober
 
29.11.12
09:32
(24) самый постой и правильный способ. В дополнение к (19) открывать не стандартную форму а эту при открытии формы из списка
26 Bober
 
29.11.12
09:34
(0) ключевая ошибка что этот режим действует до конца процедуры/функции, в данном случае присозланиинасервере и работает эта вещь только на стороне сервера.
27 Конфигуратор1с
 
29.11.12
11:18
ПО идее
           УстановитьПривилегированныйРежим(Истина);
    ЭтаФорма.ТолькоПросмотр = Ложь;
           ЭтаФорма.Доступность = Истина;
           Элементы.Группа1.ТолькоПросмотр = Истина;
           Элементы.Группа8.ТолькоПросмотр = Истина;
           Элементы.Ответственный.ТолькоПросмотр = Истина;
           Элементы.Группа2.ТолькоПросмотр = Истина;
           //Элементы.Группа3.ТолькоПросмотр = Истина;

           //Элементы.Группа4.ТолькоПросмотр = Истина;

           //Элементы.Группа13.ТолькоПросмотр = Истина;

           Элементы.НачислениеАгентских.ТолькоПросмотр = Истина;
           Элементы.Автор.ТолькоПросмотр = Истина;
           Элементы.Комментарий.Доступность = Истина;
           Элементы.Комментарий.ТолькоПросмотр = Ложь;
           Элементы.РаспределениеПремийПоСотрудникамЗаполнитьПоСотрудникам.Доступность = Ложь;
           Элементы.РаспределениеПремийПоСерийнымНомерамЗаполнить.Доступность = Ложь;
           УстановитьПривилегированныйРежим(Ложь);
    //       СтандартнаяОбработка= Ложь;
28 Конфигуратор1с
 
29.11.12
11:18
СтандартнаяОбработка= Ложь; - а зачем сие в при создании на сервере?
29 mikecool
 
29.11.12
11:20
вынести обработку в привилегированный модуль и не ипать мосх
30 Конфигуратор1с
 
29.11.12
11:20
(29)Как вариант
31 Эльфийка
 
01.12.12
02:09
(28) Так было написано на форумах, по данному вопросу о УстановитьПривилегированныйРежим)))).
32 Эльфийка
 
01.12.12
02:10
(27) Огромное спасибо, Конфигуратор1с, что ответили!!!!
33 Конфигуратор1с
 
01.12.12
16:13
(32)Так получилось?
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой