|
ПривилегированныйРежим() то истина, то ложь | ☑ | ||
---|---|---|---|---|
0
iceman2112
03.07.18
✎
10:10
|
Доброе утро, граждане.
В коде есть строчка, код вызывается из формы списка документа и формы документа УстановитьПривилегированныйРежим(Истина) Так вот сразу после этой строчки в табло пишу ПривилегированныйРежим() и при вызове из Формы списка, всегда ПривилегированныйРежим() = Истина, при открытие первый раз из формы документа ПривилегированныйРежим() = Истина, а потом = Ложь. В результате чего у пользователя не открывается форма документа с ошибкой прав доступа, потому что Если НЕ Пользователи.ЭтоПолноправныйПользователь(, ПроверятьПраваАдминистрированияСистемы) Тогда ВызватьИсключение НСтр("ru = 'Нарушение прав доступа.'"); КонецЕсли; Почему ПривилегированныйРежим() = Ложь, сразу после установки УстановитьПривилегированныйРежим(Истина) |
|||
1
Вафель
03.07.18
✎
10:19
|
Этот метод действует в пределах вызова 1 процедуры
|
|||
2
vde69
03.07.18
✎
10:26
|
(1) и только в контексте &НаСервере
|
|||
3
iceman2112
03.07.18
✎
10:40
|
(1) Это тут причем?
(2) Все на сервере. Нетронутая УНФ 1.6 (1.6.14.81) при открытие заказ покупателя ищет регламентную процедура для обмена ЭДО, и вызывается исключение если нет прав Админа или не стоит ПривилегированныйРежим |
|||
4
Tonik992
03.07.18
✎
11:10
|
ПривилегированныйРежим() не дает права Администрирования
|
|||
5
Tonik992
03.07.18
✎
11:11
|
Посмотрите как работает Пользователи.ЭтоПолноправныйПользователь()
|
|||
6
iceman2112
03.07.18
✎
11:24
|
(4) Я это и не утверждал, Вопрос не в этом стоит.
Он заходит в Пользователи.ЭтоПолноправныйПользователь() в одном случае у него проскакивает, а в другом случае нет. Потому что УстановитьПривилегированныйРежим(Истина) дает Ложь. Это код в Пользователи.ЭтоПолноправныйПользователь(), перед вызовом этой процедуры УстановитьПривилегированныйРежим(Истина) Если УчитыватьПривилегированныйРежим И ПривилегированныйРежимУстановлен Тогда Возврат Истина; КонецЕсли; |
|||
7
iceman2112
03.07.18
✎
11:33
|
В этой строчке он через раз падает РегламентныеЗаданияСервер.РегламентноеЗаданиеИспользуется(ЗаданиеПроверкаНовыхЭлектронныхДокументов); А если глубже копнуть, то внутри
Идем в нее
|
|||
8
Tonik992
03.07.18
✎
14:23
|
"То истина, то ложь" - как наблюдается, запускаете со своего компьютера в режиме отладки периодически?
В каком режиме запускаете? (тонкий/толстый клиент, обычное приложение) |
|||
9
iceman2112
03.07.18
✎
14:35
|
(8) Тонкий клиент, один и тот же компьютер, один пользователь 1с.
Запускаешь список заказов клиента = Истина, Открываешь Форму заказ или создаешь истина (первый раз), дальнейшие открытие или создание заказа = ложь = ошибка. На копию 2 месячной давности этой ошибки не наблюдается. Я думаю тестирование и иправление провести |
|||
10
Buster007
03.07.18
✎
14:45
|
Расширения кажись подключил?
|
|||
11
iceman2112
03.07.18
✎
14:49
|
(10) было дело, была проблема с моим расширением при обновление. из конфигуратора не обновлялся. пришлось в предприятие удалить и добавить.
|
|||
12
RomaH
naïve
03.07.18
✎
14:50
|
(0) ИМХО баг платформы
в БСП есть код УстановитьПривилегированныйРежим(Истина); куча кода Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КОнецесли; и иногда выпадает в исключение, ибо если нет ПР - то попытка снять его дает исключение пришлось вообще отказаться от УстановитьПривилегированныйРежим(Ложь); ибо она работает в рамках одной процедуры - нафига его отключать практически на выходе из неё |
|||
13
iceman2112
03.07.18
✎
14:52
|
(12) (8.3.12.1412)
|
|||
14
Tonik992
03.07.18
✎
14:56
|
(12) не факт, процедура может вызываться на клиенте. И тогда УстановитьПривилегированныйРежим(Истина) в клиент-серверном варианте не даст эффекта никакого
|
|||
15
RomaH
naïve
03.07.18
✎
15:30
|
(14)
Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КОнецесли; |
|||
16
Buster007
03.07.18
✎
15:33
|
(11) у расширения выключил безопасный режим?
|
|||
17
Tonik992
03.07.18
✎
15:51
|
(15) все верно, поэтому если УстановитьПривилегированныйРежим(Истина) не дает никакого эффекта, то проверка
Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КОнецесли; просто необходима |
|||
18
RomaH
naïve
03.07.18
✎
15:54
|
(17) чукча не читатель?
Если ПривилегированныйРежим() Тогда УстановитьПривилегированныйРежим(Ложь); КОнецесли; просто необходима но она дает истину и УстановитьПривилегированныйРежим(Ложь); вываливает исключение |
|||
19
iceman2112
03.07.18
✎
16:32
|
(16) Неа, нужно выкл.?
|
|||
20
iceman2112
03.07.18
✎
16:39
|
(16) Ты телепат?))) все заработало. Можешь пояснить?
|
|||
21
Buster007
03.07.18
✎
17:31
|
(20) Почитай на ИТС как работает безопасный режим ))
|
|||
22
iceman2112
03.07.18
✎
17:56
|
(21) Понял, спасибо всем
|
|||
23
Mankubus
03.07.18
✎
18:29
|
(22) а можно подробнее?
|
|||
24
Вафель
03.07.18
✎
18:41
|
Безопасный режим не позволяет включать Привелигерованный
|
|||
25
iceman2112
03.07.18
✎
18:42
|
(23) Отключение безопасного режима у расширения решило проблему, хотя код выше в конфигурации находиться.
А почему это решило проблему, я пока не понял, позже почитаю |
|||
26
Вафель
03.07.18
✎
18:44
|
(25) это не важно где код находится
|
|||
27
iceman2112
03.07.18
✎
18:52
|
(26) и примерно понял, после вашего сообщения, что происходит.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |