![]() |
![]() |
![]() |
|
Разный результат запроса у ПолныхПрав и Привилегированного модуля | ☑ | ||
---|---|---|---|---|
0
ИС-2
04.06.15
✎
14:12
|
Не понимаю почему получаются разные результаты запроса.
Один пользователь с полными правами (точно все права полные). Один и тот же запрос с одними же и теми параметрами. Запрос тяжелый, с несколькими РН остатки и обороты и кучей связи, вложенными таблицами, итогами. Выполняю запрос Вариант 1: РезультатЗапроса = ЗапросПоТоварам.Выполнить(); ТЗ = РезультатЗапроса .Выгрузить(); Вариант 2: РезультатЗапроса = ПривилегированныйМодуль.ВыполнитьЗапрос(ЗапросПоТоварам.Текст,ЗапросПоТоварам.Параметры); ТЗ = РезультатЗапроса .Выгрузить(); Функция ВыполнитьЗапрос(ТекстЗапрос,ПараметрыЗапрос,МенеджерВременныхТаблиц = Неопределено) Экспорт Запрос = Новый Запрос; Запрос.Текст = ТекстЗапрос; Для Каждого КлЗн из ПараметрыЗапрос Цикл Запрос.УстановитьПараметр(КлЗн.Ключ,КлЗн.Значение); КонецЦикла; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Возврат Запрос.Выполнить(); КонецФункции Вариант 3: ТЗ = ПривилегированныйМодуль.ВыполнитьЗапросВТЗ(ЗапросПоТоварам.Текст,ЗапросПоТоварам.Параметры); Функция ВыполнитьЗапросВТЗ(ТекстЗапрос,ПараметрыЗапрос,МенеджерВременныхТаблиц = Неопределено) Экспорт Запрос = Новый Запрос; Запрос.Текст = ТекстЗапрос; Для Каждого КлЗн из ПараметрыЗапрос Цикл Запрос.УстановитьПараметр(КлЗн.Ключ,КлЗн.Значение); КонецЦикла; Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц; Возврат Запрос.Выполнить().Выгрузить(); КонецФункции Результаты варианта 1 и 2 не совпадают. Вариант 1 и 3 совпадают. Почему результаты запросов при выполнении в привилигированном модуле не совпадают с выполнением в обычном режиме? |
|||
1
DmitrO
04.06.15
✎
14:18
|
а режим совместимости какой?
|
|||
2
ИС-2
04.06.15
✎
14:20
|
с 8.1, УПП
|
|||
3
ИС-2
04.06.15
✎
14:21
|
8.2.19 SQL 2008
|
|||
4
DmitrO
04.06.15
✎
14:35
|
ну, как бы, разница в функциях ВыполнитьЗапрос и ВыполнитьЗапросВТЗ в том, что предложение запроса ИТОГИ в первом случае выполняется уже не в привилегированном режиме, а во втором случае все еще в привилегированном.
:) если в запросе конечно есть предложение ИТОГИ |
|||
5
ИС-2
04.06.15
✎
14:40
|
(4) да, итоги есть
|
|||
6
DmitrO
04.06.15
✎
14:42
|
РезультатЗапроса = ПривилегированныйМодуль.ВыполнитьЗапрос(ЗапросПоТоварам.Текст,ЗапросПоТоварам.Параметры);
УстановитьПривилегированныйРежим(Истина); ТЗ = РезультатЗапроса .Выгрузить(); УстановитьПривилегированныйРежим(Ложь); |
|||
7
DmitrO
04.06.15
✎
14:43
|
(6)+ попробуй так, если конечно это место выполняется на сервере
|
|||
8
DmitrO
04.06.15
✎
14:44
|
ааа, или что там, на 8.1 такого еще не было? :)
|
|||
9
ИС-2
04.06.15
✎
14:54
|
дело оказалось в итогах - без итогов результаты запросов стали идентичны. Спасибо.
Вот только как передать с сервера мутабельную выборку... |
|||
10
GROOVY
04.06.15
✎
15:05
|
"Полные права" - это не полные права.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |