зачем УстановитьПривилегированныйРежим() в клиент-серверном варианте #520360


#0 by MaxS
Для управления привилегированным режимом предназначен метод глобального контекста УстановитьПривилегированныйРежим, который позволяет включать или выключать привилегированный режим. ВНИМАНИЕ. В клиент-серверном варианте вызов метода не оказывает влияния при работе на стороне клиента. По умолчанию привилегированный режим выключен. Вопрос. А зачем нужен этот режим? какая польза, если в файловом работает, в серверном нет?
#1 by Fragster
прочитайте еще раз то, что после "ВНИМАНИЕ"
#2 by MaxS
зачем в платформу вводить такие половинчатые решения? В СП 8.2.12 написано так: Описание: В файловом варианте информационной базы или на сервере в клиент-серверном варианте информационной базы управляет (включает или выключает) привилегированный режим исполнения кода, аналогичный режиму работы кода привилегированных модулей. взял из какого-то сайта
#3 by MaxS
о!  спасибо, научился читать.  если выполняется на сервере, тогда работает. ;)
#4 by 5 Элемент
вообще-то он только на сервере и выполняется.
#5 by MaxS
Создал подписку на событие, событие ОбработкаПроведения В толстом клиенте этот модуль выполняется на клиенте. И как Источник (документ объект) обработать в привилегированном режиме, если общий модуль не привилегированный? передать мутабельное значение в привилегированный модуль нельзя, УстановитьПривилегированныйРежим  тоже нельзя.
#6 by Defender aka LINN
И как же ты его собрался обрабатывать, что тебе привилегированный режим потребовался?
#7 by MaxS
объект нужно передать в типовой модуль НаборДвиженийВзаиморасчеты.КонтрольОстатков(ДокументОбъект, "ДокументыРасчетовСКонтрагентом", СтруктураШапкиДокумента, Источник.мСтруктураПараметровВзаиморасчетов, ЕстьОшибка, Заголовок, РежимПроведенияДокумента.Оперативный, "СуммаВзаиморасчетов");
#8 by MaxS
+  там разные хитрости. в СтруктураШапкиДокумента подставляются данные другого договора того же контрагента но другой организации, на которую у пользователя нет прав. Список договоров можно получить из соседнего привилегированного модуля, а документОбъект передать в процедуру проверки остатков в привилегированном режиме не получается. В худшем случае придётся тянуть все проверки в свой модуль.
#9 by 5 Элемент
Заинтересовал этот вопрос "В толстом клиенте этот модуль выполняется на клиенте". Проверил и вот что получилось в клиент-серверном варианте в толстом клиенте: - модуль выполняется на сервере, если проведение из управляемой формы. - модуль выполняется на клиенте, если проведение из обычной формы.
#10 by Defender aka LINN
" а документОбъект передать в процедуру проверки остатков в привилегированном режиме не получается" - а для нахрена его передавать в эту процедуру?
#11 by MaxS
хм, Ссылку проглотил. спасибо за мысль. Видимо я сегодня поспешил и не глубоко копал. ;) но там есть такая часть кода: ЗаполнениеДокументов.КурсДокумента(ДокументОбъект... а вдруг в Объекте данные отличаются от Ссылки? да, вот такая засада
#12 by Defender aka LINN
При проведении отличаться не должны.
#13 by MaxS
тоже так думаю, но допустим есть проведенный документ. пользователь открывает, меняет данные, например тип цен. запускает перепроведение, получает ошибку(отказ), не записывает документ и он остаётся таким же как был до повторной попытки проведения.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С