Не работает УстановитьПривилегированныйРежим()

1. AJlEKCA 10.01.14 11:06 Сейчас в теме
Конфа - типовая УТ11, режим - и клиент-серверный и файловый.
Есть обработка, которая создает Чек ККМ и при этом распроводит и помечает документ реализации, на основе которого его создали. Все работало, пока не ограничили права пользователям.
Проблема возникает в этой функции
Функция ЗапретИзмененияДанныхНеИспользуется()
	
	УстановитьПривилегированныйРежим(Истина);
	
	Если ОбновлениеИнформационнойБазыСлужебныйПовтИсп.НеобходимоОбновлениеИнформационнойБазы() Тогда
		Возврат Истина;
	КонецЕсли;
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ ПЕРВЫЕ 1
	|	ИСТИНА КАК ЗначениеИстина
	|ИЗ
	|	РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения";
	НеИспользуется = Запрос.Выполнить().Пустой();
	
	Возврат НеИспользуется;
	
КонецФункции
Показать

В табло ПривилегированныйРежим() пишет "Ложь", даже после прохождения строки
УстановитьПривилегированныйРежим(Истина);

Ну и, соответственно, при прохождении цепочки функций, связанных с проверкой необходимости обновления ИБ, вылетает на первом же обращении к РС ВерсииПодсистем.
Вопрос: почему? Если открыть эту же обработку через "Файл-Открыть", то режим устанавливается, но у пользователя нет прав на такой вариант
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
6. mymyka 10.01.14 11:23 Сейчас в теме
(1)У вас случаем безопасный режим не стоит у обработки?
Serg2000mr; tokmakov_am; Prad2002; resonant; demONx7; Anhenyan; Luksez; shalupov61; user1252779; Silenser; Рамзес; BarsukM; Sagat777; marzhinator; DennyPhilord; adhocprog; mlv84; kassbar; bendarik; as7bs; Rokky78; Rothschild; +22 Ответить
8. Rothschild 10.01.14 11:26 Сейчас в теме
(6) mymyka, очень даже может быть ... в управляемом приложении.
9. AJlEKCA 10.01.14 11:27 Сейчас в теме
(6) mymyka, эм... стоит. стоял =) спасибо) т.е. если открывать через "Файл", то обработка используется без безопасного режима?
10. Rothschild 10.01.14 11:38 Сейчас в теме
(9) AJlEKCA,
определено безопасный режим в этом случае отключен.
проверяется просто - в основной форме обработки пишем:

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	Сообщить("БезопасныйРежим: " + БезопасныйРежим());
КонецПроцедуры

BarsukM; adhocprog; +2 Ответить
11. AJlEKCA 10.01.14 11:57 Сейчас в теме
(10) Rothschild,
Доступность:

Сервер, толстый клиент, внешнее соединение.
12. Rothschild 10.01.14 12:03 Сейчас в теме
(11) AJlEKCA,
читай внимательно - там много буков написано:
Прикрепленные файлы:
doom2good; shalupov61; +2 Ответить
13. Rothschild 10.01.14 12:07 Сейчас в теме
(12)
с этой функцией есть еще одна заподляна...
вот так - не проканает:
     Выполнить("УстановитьПривилегированныйРежим(Истина);");
     // КусокКода

придется включить <КусокКода> в исполняемый код оператора Выполнить
14. AJlEKCA 10.01.14 12:09 Сейчас в теме
(12) Rothschild, и? я про (10) вообще-то.
Глобальный контекст (Global context)
БезопасныйРежим (SafeMode)
Синтаксис:

БезопасныйРежим()
Возвращаемое значение:

Тип: Булево.
Истина, если установлен безопасный режим.
Ложь, если безопасный режим не установлен.
Описание:

Получает текущее значение безопасного режима.

Доступность:

Сервер, толстый клиент, внешнее соединение.
См. также:

Глобальный контекст, метод УстановитьБезопасныйРежим
Показать
15. Rothschild 10.01.14 12:15 Сейчас в теме
(14) AJlEKCA, ну наверное косяг в описаловке...
хочешь верь, а хочешь нет
вот результат примера в (10)
Прикрепленные файлы:
16. Rothschild 10.01.14 12:16 Сейчас в теме
(15)
а вот сам пример
Прикрепленные файлы:
Тест82-1.epf
17. AJlEKCA 10.01.14 12:18 Сейчас в теме
(16) Rothschild,
{Форма.Форма.Форма(36,33)}: Процедура или функция с указанным именем не определена (БезопасныйРежим)
Сообщить("БезопасныйРежим: " + <<?>>БезопасныйРежим());
t278; Rothschild; +2 Ответить
18. Rothschild 10.01.14 18:23 Сейчас в теме
(17) AJlEKCA, признаю свою неправоту.
эту проверку надо вынести в обработчик ПриСозданииНаСервере()

---
но для толстого клиента клиента (управляемого)
можно точно утверждать,
что внешняя обработка из меню "Файл-Открыть"
открывается с отключенным режимом безопасности.
2. Rothschild 10.01.14 11:14 Сейчас в теме
Для серверной базы на стороне клиентов
согласно документации функция УстановитьПривилегированныйРежим(Истина);

"не выполняет ни каких действий"
user970589; COMPER; adhocprog; purgin; +4 Ответить
3. Rothschild 10.01.14 11:17 Сейчас в теме
(2)
единственный выход для серверной базы - вынести весь этот код на сторону сервера.
Для обычного приложения (в обычной форме) -
- это только вызов метода серверного общего модуля.
5. Rothschild 10.01.14 11:21 Сейчас в теме
(3)
для файловой базы справедливо утверждение "Сервер = Клиент"
поэтому функция УстановитьПривилегированныйРежим(Истина); должна работать.
22. user970589 10 30.10.22 08:10 Сейчас в теме
(3)
ти весь этот код на сторону серв

в клиент-сервер она не работает совсем.
4. AJlEKCA 10.01.14 11:20 Сейчас в теме
(2) Rothschild, т.е. наличие этих галочек у модуля вообще по барабану?
Прикрепленные файлы:
7. Rothschild 10.01.14 11:26 Сейчас в теме
(4) AJlEKCA,
не по барабану.
должна стоять галка "Вызов сервера",
иначе свойство глобального контекста <ИмяМодуля> будет не доступно
на стороне клиента для серверной базы.
19. ALLES 65 19.05.17 07:42 Сейчас в теме
Едрить, столкнулся с такой же затыркой. Не работает метод и всё тут: Файловая база, управляемые формы, тонкий клиент, метод исполняется в процедуре общего серверного модуля..
20. ALLES 65 19.05.17 16:30 Сейчас в теме
Ха, движок похоже сглючил. 8,3,10,2252. Закрыл конфигуратор, открыл - запускаю всё работает
21. Gobbledegook 04.08.20 10:26 Сейчас в теме
Столкнулся с такой же проблемой в расширении. Нужно в самом расширении выключить безопасный режим.
Прикрепленные файлы:
irvin12345; PlatonStepan; romankoav; +3 Ответить
23. FeliceYa 5 19.10.23 17:36 Сейчас в теме
Столкнулась с такой же проблемой в клиент-серверном режиме толстого клиента. Не устанавливался привилегированный режим в экспортной процедуре модуля менеджера.

Решение (может кому пригодится):
Создала в серверном модуле универсальную процедуру - и вызываю через неё.
В модуле менеджера:
Процедура ЗаписатьШтрихкодОбъекта(Объект, Штрихкод)Экспорт
	
	УстановитьПривилегированныйРежим(Истина); // Работет в файловом режиме толстого клиента и на сервере
#Если Клиент Тогда
	Если НЕ ПривилегированныйРежим() Тогда // На Клиенте (даже на толстом), в клиент-серверном режиме не устанавливается!
		Парам = Новый Структура();
		Парам.Вставить("Объект", Объект);
		Парам.Вставить("Штрихкод", Штрихкод);
		ОбщегоНазначенияСервер.ВыполнитьПроцедуруИзСерверногоВызова("РегистрыСведений.Штрихкоды.ЗаписатьШтрихкодОбъекта(Парам.Объект, Парам.Штрихкод)", Парам);
		Возврат;
	КонецЕсли;
#КонецЕсли
	
	// Некий код требующий привилегированного режима
	
КонецПроцедуры // ЗаписатьШтрихкодОбъекта()
Показать

В общем серверном модуле ():
Процедура ВыполнитьПроцедуруИзСерверногоВызова(ПолноеИмяПроцедуры, Парам)Экспорт
	
	Выполнить(ПолноеИмяПроцедуры);
	
КонецПроцедуры // ВыполнитьПроцедуруИзСерверногоВызова()
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот