Не работает УстановитьПривилегированныйРежим()
Конфа - типовая УТ11, режим - и клиент-серверный и файловый.
Есть обработка, которая создает Чек ККМ и при этом распроводит и помечает документ реализации, на основе которого его создали. Все работало, пока не ограничили права пользователям.
Проблема возникает в этой функции
В табло ПривилегированныйРежим() пишет "Ложь", даже после прохождения строки
Ну и, соответственно, при прохождении цепочки функций, связанных с проверкой необходимости обновления ИБ, вылетает на первом же обращении к РС ВерсииПодсистем.
Вопрос: почему? Если открыть эту же обработку через "Файл-Открыть", то режим устанавливается, но у пользователя нет прав на такой вариант
Есть обработка, которая создает Чек ККМ и при этом распроводит и помечает документ реализации, на основе которого его создали. Все работало, пока не ограничили права пользователям.
Проблема возникает в этой функции
Функция ЗапретИзмененияДанныхНеИспользуется()
УстановитьПривилегированныйРежим(Истина);
Если ОбновлениеИнформационнойБазыСлужебныйПовтИсп.НеобходимоОбновлениеИнформационнойБазы() Тогда
Возврат Истина;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ИСТИНА КАК ЗначениеИстина
|ИЗ
| РегистрСведений.ДатыЗапретаИзменения КАК ДатыЗапретаИзменения";
НеИспользуется = Запрос.Выполнить().Пустой();
Возврат НеИспользуется;
КонецФункции
ПоказатьВ табло ПривилегированныйРежим() пишет "Ложь", даже после прохождения строки
УстановитьПривилегированныйРежим(Истина);
Ну и, соответственно, при прохождении цепочки функций, связанных с проверкой необходимости обновления ИБ, вылетает на первом же обращении к РС ВерсииПодсистем.
Вопрос: почему? Если открыть эту же обработку через "Файл-Открыть", то режим устанавливается, но у пользователя нет прав на такой вариант
По теме из базы знаний
- Внеконтекстный вызов методов объекта обработки (отчета) в управляемой форме
- Назад в прошлое! Небольшие заметки по администрированию пользователей в УПП
- Выполнение внешней обработки по расписанию для управляемого и обычного приложения
- Сказ о том, как в одной крупной компании документооборот внедряли, или проблемы типовых обменов между КА и ДО
- Применение Clickhouse для ускорения поиска номенклатуры
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(12) Rothschild, и? я про (10) вообще-то.
Глобальный контекст (Global context)
БезопасныйРежим (SafeMode)
Синтаксис:
БезопасныйРежим()
Возвращаемое значение:
Тип: Булево.
Истина, если установлен безопасный режим.
Ложь, если безопасный режим не установлен.
Описание:
Получает текущее значение безопасного режима.
Доступность:
Сервер, толстый клиент, внешнее соединение.
См. также:
Глобальный контекст, метод УстановитьБезопасныйРежим
ПоказатьБезопасныйРежим (SafeMode)
Синтаксис:
БезопасныйРежим()
Возвращаемое значение:
Тип: Булево.
Истина, если установлен безопасный режим.
Ложь, если безопасный режим не установлен.
Описание:
Получает текущее значение безопасного режима.
Доступность:
Сервер, толстый клиент, внешнее соединение.
См. также:
Глобальный контекст, метод УстановитьБезопасныйРежим
(17) AJlEKCA, признаю свою неправоту.
эту проверку надо вынести в обработчик ПриСозданииНаСервере()
---
но для толстого клиента клиента (управляемого)
можно точно утверждать,
что внешняя обработка из меню "Файл-Открыть"
открывается с отключенным режимом безопасности.
эту проверку надо вынести в обработчик ПриСозданииНаСервере()
---
но для толстого клиента клиента (управляемого)
можно точно утверждать,
что внешняя обработка из меню "Файл-Открыть"
открывается с отключенным режимом безопасности.
Столкнулась с такой же проблемой в клиент-серверном режиме толстого клиента. Не устанавливался привилегированный режим в экспортной процедуре модуля менеджера.
Решение (может кому пригодится):
Создала в серверном модуле универсальную процедуру - и вызываю через неё.
В модуле менеджера:
В общем серверном модуле ():
Решение (может кому пригодится):
Создала в серверном модуле универсальную процедуру - и вызываю через неё.
В модуле менеджера:
Процедура ЗаписатьШтрихкодОбъекта(Объект, Штрихкод)Экспорт
УстановитьПривилегированныйРежим(Истина); // Работет в файловом режиме толстого клиента и на сервере
#Если Клиент Тогда
Если НЕ ПривилегированныйРежим() Тогда // На Клиенте (даже на толстом), в клиент-серверном режиме не устанавливается!
Парам = Новый Структура();
Парам.Вставить("Объект", Объект);
Парам.Вставить("Штрихкод", Штрихкод);
ОбщегоНазначенияСервер.ВыполнитьПроцедуруИзСерверногоВызова("РегистрыСведений.Штрихкоды.ЗаписатьШтрихкодОбъекта(Парам.Объект, Парам.Штрихкод)", Парам);
Возврат;
КонецЕсли;
#КонецЕсли
// Некий код требующий привилегированного режима
КонецПроцедуры // ЗаписатьШтрихкодОбъекта()
ПоказатьВ общем серверном модуле ():
Процедура ВыполнитьПроцедуруИзСерверногоВызова(ПолноеИмяПроцедуры, Парам)Экспорт
Выполнить(ПолноеИмяПроцедуры);
КонецПроцедуры // ВыполнитьПроцедуруИзСерверногоВызова()
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот