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

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 Сейчас в теме
Столкнулась с такой же проблемой в клиент-серверном режиме толстого клиента. Не устанавливался привилегированный режим в экспортной процедуре модуля менеджера.

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

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

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)