|
|
Разный результат запроса у ПолныхПрав и Привилегированного модуля |
☑ |
|
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
|
"Полные права" - это не полные права.
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший